From 012e5dcbc0b536e66537ee5dd0982262ad4cdea3 Mon Sep 17 00:00:00 2001 From: Yaozong Liu <750188453@qq.com> Date: Mon, 10 May 2021 23:19:24 +0800 Subject: [PATCH] feat(plugin-chart-echarts): Echarts Treemap (#1094) * feat(plugin-chart-echarts): add echarts treemap plugin * fix(plugin-chart-echarts): add sort descending * fix(plugin-chart-echarts): add label position and set clear before setOption * fix(plugin-chart-echarts): metric -> metrics * fix(plugin-chart-echarts): change thumbnail. * fix(plugin-chart-echarts): fix treemap transformProps test * fix(plugin-chart-echarts): clear nouse types * fix(plugin-chart-echarts): storybook data * fix(plugin-chart-echarts): remove features * fix(plugin-chart-echarts): add forceClear * fix(plugin-chart-echarts): change storybook data * fix(plugin-chart-echarts): enhancements * fix(plugin-chart-echarts): enhancements for color and fix ci --- .../superset-ui-demo/.storybook/preview.js | 3 +- .../plugin-chart-echarts/Treemap/Stories.tsx | 35 +++ .../plugin-chart-echarts/Treemap/data.ts | 50 ++++ .../src/Treemap/EchartsTreemap.tsx | 25 ++ .../src/Treemap/buildQuery.ts | 27 ++ .../src/Treemap/controlPanel.tsx | 161 ++++++++++++ .../src/Treemap/images/thumbnail.png | Bin 0 -> 167011 bytes .../plugin-chart-echarts/src/Treemap/index.ts | 55 ++++ .../src/Treemap/transformProps.ts | 235 ++++++++++++++++++ .../plugin-chart-echarts/src/Treemap/types.ts | 62 +++++ .../src/components/Echart.tsx | 5 + .../plugins/plugin-chart-echarts/src/index.ts | 1 + .../plugins/plugin-chart-echarts/src/types.ts | 1 + .../test/Treemap/buildQuery.test.ts | 36 +++ .../test/Treemap/transformProps.test.ts | 74 ++++++ .../plugin-chart-echarts/test/index.test.ts | 2 + 16 files changed, 771 insertions(+), 1 deletion(-) create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/Stories.tsx create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/data.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/EchartsTreemap.tsx create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/buildQuery.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/images/thumbnail.png create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/index.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/transformProps.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/types.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/buildQuery.test.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/.storybook/preview.js b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/.storybook/preview.js index 45f793ead2b1..49d62d221f80 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/.storybook/preview.js +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/.storybook/preview.js @@ -1,6 +1,7 @@ import { addParameters, addDecorator } from '@storybook/react'; import { jsxDecorator } from 'storybook-addon-jsx'; import categoricalD3 from '@superset-ui/core/lib/color/colorSchemes/categorical/d3'; +import categoricalSuperset from '@superset-ui/core/lib/color/colorSchemes/categorical/superset'; import sequentialCommon from '@superset-ui/core/lib/color/colorSchemes/sequential/common'; import sequentialD3 from '@superset-ui/core/lib/color/colorSchemes/sequential/d3'; import { @@ -55,7 +56,7 @@ configure(); // Register color schemes const categoricalSchemeRegistry = getCategoricalSchemeRegistry(); -[categoricalD3].forEach(group => { +[categoricalD3, categoricalSuperset].forEach(group => { group.forEach(scheme => { categoricalSchemeRegistry.registerValue(scheme.id, scheme); }); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/Stories.tsx b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/Stories.tsx new file mode 100644 index 000000000000..1e960215ea05 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/Stories.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { SuperChart, getChartTransformPropsRegistry } from '@superset-ui/core'; +import { boolean, withKnobs, select } from '@storybook/addon-knobs'; +import { EchartsTreemapChartPlugin } from '@superset-ui/plugin-chart-echarts'; +import transformProps from '@superset-ui/plugin-chart-echarts/lib/Treemap/transformProps'; +import data from './data'; +import { withResizableChartDemo } from '../../../../shared/components/ResizableChartDemo'; + +new EchartsTreemapChartPlugin().configure({ key: 'echarts-treemap' }).register(); + +getChartTransformPropsRegistry().registerValue('echarts-treemap', transformProps); + +export default { + title: 'Chart Plugins|plugin-chart-echarts/Treemap', + decorators: [withKnobs, withResizableChartDemo], +}; + +export const Treemap = ({ width, height }) => { + return ( + + ); +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/data.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/data.ts new file mode 100644 index 000000000000..b8c3a3020123 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap/data.ts @@ -0,0 +1,50 @@ +export default [ + { + genre: 'Action', + count: 3315, + }, + { + genre: 'Adventure', + count: 1286, + }, + { + genre: 'Fighting', + count: 848, + }, + { + genre: 'Misc', + count: 1739, + }, + { + genre: 'Platform', + count: 886, + }, + { + genre: 'Puzzle', + count: 582, + }, + { + genre: 'Racing', + count: 1249, + }, + { + genre: 'Role-Playing', + count: 1487, + }, + { + genre: 'Shooter', + count: 1310, + }, + { + genre: 'Simulation', + count: 866, + }, + { + genre: 'Sports', + count: 2346, + }, + { + genre: 'Strategy', + count: 681, + }, +]; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/EchartsTreemap.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/EchartsTreemap.tsx new file mode 100644 index 000000000000..c6250b4ae29e --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/EchartsTreemap.tsx @@ -0,0 +1,25 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import { EchartsProps } from '../types'; +import Echart from '../components/Echart'; + +export default function EchartsTreemap({ height, width, echartOptions }: EchartsProps) { + return ; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/buildQuery.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/buildQuery.ts new file mode 100644 index 000000000000..257fc15faeac --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/buildQuery.ts @@ -0,0 +1,27 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { buildQueryContext, QueryFormData } from '@superset-ui/core'; + +export default function buildQuery(formData: QueryFormData) { + return buildQueryContext(formData, baseQueryObject => [ + { + ...baseQueryObject, + }, + ]); +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx new file mode 100644 index 000000000000..d05ae77187c8 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx @@ -0,0 +1,161 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import { t } from '@superset-ui/core'; +import { + ControlPanelConfig, + D3_FORMAT_DOCS, + D3_FORMAT_OPTIONS, + D3_TIME_FORMAT_OPTIONS, + sections, +} from '@superset-ui/chart-controls'; +import { DEFAULT_FORM_DATA } from './types'; +import { LABEL_POSITION } from '../constants'; + +const { + labelType, + labelPosition, + numberFormat, + showLabels, + showUpperLabels, + dateFormat, +} = DEFAULT_FORM_DATA; + +const config: ControlPanelConfig = { + controlPanelSections: [ + sections.legacyRegularTime, + { + label: t('Query'), + expanded: true, + controlSetRows: [ + ['groupby'], + ['metrics'], + ['row_limit'], + ['timeseries_limit_metric'], + [ + { + name: 'order_desc', + config: { + type: 'CheckboxControl', + label: t('Sort Descending'), + default: true, + description: t('Whether to sort descending or ascending'), + }, + }, + ], + ['adhoc_filters'], + ], + }, + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + ['color_scheme'], + [

{t('Labels')}

], + [ + { + name: 'show_labels', + config: { + type: 'CheckboxControl', + label: t('Show Labels'), + renderTrigger: true, + default: showLabels, + description: t('Whether to display the labels.'), + }, + }, + ], + [ + { + name: 'show_upper_labels', + config: { + type: 'CheckboxControl', + label: t('Show Upper Labels'), + renderTrigger: true, + default: showUpperLabels, + description: t('Show labels when the node has children.'), + }, + }, + ], + [ + { + name: 'label_type', + config: { + type: 'SelectControl', + label: t('Label Type'), + default: labelType, + renderTrigger: true, + choices: [ + ['Key', 'Key'], + ['value', 'Value'], + ['key_value', 'Category and Value'], + ], + description: t('What should be shown on the label?'), + }, + }, + ], + [ + { + name: 'label_position', + config: { + type: 'SelectControl', + freeForm: false, + label: t('Label position'), + renderTrigger: true, + choices: LABEL_POSITION, + default: labelPosition, + description: D3_FORMAT_DOCS, + }, + }, + ], + [ + { + name: 'number_format', + config: { + type: 'SelectControl', + freeForm: true, + label: t('Number format'), + renderTrigger: true, + default: numberFormat, + choices: D3_FORMAT_OPTIONS, + description: `${t('D3 format syntax: https://github.com/d3/d3-format. ')} ${t( + 'Only applies when "Label Type" is set to show values.', + )}`, + }, + }, + ], + [ + { + name: 'date_format', + config: { + type: 'SelectControl', + freeForm: true, + label: t('Date format'), + renderTrigger: true, + choices: D3_TIME_FORMAT_OPTIONS, + default: dateFormat, + description: D3_FORMAT_DOCS, + }, + }, + ], + ], + }, + ], +}; + +export default config; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/images/thumbnail.png b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/images/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..27ef3432b96bd3677cb8c40375d88c189262b25e GIT binary patch literal 167011 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%0D03|J?c4^v;q3c+pkGz21L* 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 literal 0 HcmV?d00001 diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/index.ts new file mode 100644 index 000000000000..56271324326d --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/index.ts @@ -0,0 +1,55 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regardin + * g copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { ChartMetadata, ChartPlugin, t } from '@superset-ui/core'; +import buildQuery from './buildQuery'; +import controlPanel from './controlPanel'; +import transformProps from './transformProps'; +import thumbnail from './images/thumbnail.png'; +import { EchartsTreemapChartProps, EchartsTreemapFormData } from './types'; + +export default class EchartsTreemapChartPlugin extends ChartPlugin< + EchartsTreemapFormData, + EchartsTreemapChartProps +> { + /** + * The constructor is used to pass relevant metadata and callbacks that get + * registered in respective registries that are used throughout the library + * and application. A more thorough description of each property is given in + * the respective imported file. + * + * It is worth noting that `buildQuery` and is optional, and only needed for + * advanced visualizations that require either post processing operations + * (pivoting, rolling aggregations, sorting etc) or submitting multiple queries. + */ + constructor() { + super({ + buildQuery, + controlPanel, + loadChart: () => import('./EchartsTreemap'), + metadata: new ChartMetadata({ + credits: ['https://echarts.apache.org'], + description: 'Treemap (Apache ECharts)', + name: t('Treemap'), + thumbnail, + }), + transformProps, + }); + } +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/transformProps.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/transformProps.ts new file mode 100644 index 000000000000..335322b19bdb --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/transformProps.ts @@ -0,0 +1,235 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { + CategoricalColorNamespace, + DataRecord, + getMetricLabel, + getNumberFormatter, + getTimeFormatter, + NumberFormatter, +} from '@superset-ui/core'; +import { groupBy, isNumber, transform } from 'lodash'; +import { CallbackDataParams } from 'echarts/types/src/util/types'; +import { TreemapSeriesNodeItemOption } from 'echarts/types/src/chart/treemap/TreemapSeries'; +import { EChartsOption, TreemapSeriesOption } from 'echarts'; +import { + DEFAULT_FORM_DATA as DEFAULT_TREEMAP_FORM_DATA, + EchartsTreemapChartProps, + EchartsTreemapFormData, + EchartsTreemapLabelType, +} from './types'; +import { EchartsProps } from '../types'; +import { formatSeriesName } from '../utils/series'; +import { defaultTooltip } from '../defaults'; + +export function formatLabel({ + params, + labelType, + numberFormatter, +}: { + params: CallbackDataParams; + labelType: EchartsTreemapLabelType; + numberFormatter: NumberFormatter; +}): string { + const { name = '', value } = params; + const formattedValue = numberFormatter(value as number); + + switch (labelType) { + case EchartsTreemapLabelType.Key: + return name; + case EchartsTreemapLabelType.Value: + return formattedValue; + case EchartsTreemapLabelType.KeyValue: + return `${name}: ${formattedValue}`; + default: + return name; + } +} + +export default function transformProps(chartProps: EchartsTreemapChartProps): EchartsProps { + const { formData, height, queriesData, width } = chartProps; + const { data = [] } = queriesData[0]; + + const { + colorScheme, + groupby = [], + metrics = [], + labelType, + labelPosition, + numberFormat, + dateFormat, + showLabels, + showUpperLabels, + nodeClick, + roam, + }: EchartsTreemapFormData = { + ...DEFAULT_TREEMAP_FORM_DATA, + ...formData, + }; + + const colorFn = CategoricalColorNamespace.getScale(colorScheme as string); + const numberFormatter = getNumberFormatter(numberFormat); + const formatter = (params: CallbackDataParams) => + formatLabel({ + params, + numberFormatter, + labelType, + }); + + const transformer = ( + data: DataRecord[], + groupbyData: string[], + metric: string, + depth: number, + ): TreemapSeriesNodeItemOption[] => { + const [currGroupby, ...restGroupby] = groupbyData; + const currGrouping = groupBy(data, currGroupby); + if (!restGroupby.length) { + return transform( + currGrouping, + (result, value, key) => { + (value ?? []).forEach(datum => { + const name = formatSeriesName(key, { + numberFormatter, + timeFormatter: getTimeFormatter(dateFormat), + }); + result.push({ + name, + value: isNumber(datum[metric]) ? (datum[metric] as number) : 0, + }); + }); + }, + [] as TreemapSeriesNodeItemOption[], + ); + } + const sortedData = transform( + currGrouping, + (result, value, key) => { + const name = formatSeriesName(key, { + numberFormatter, + timeFormatter: getTimeFormatter(dateFormat), + }); + const children = transformer(value, restGroupby, metric, depth + 1); + result.push({ + name, + children, + value: children.reduce((prev, cur) => prev + (cur.value as number), 0), + }); + result.sort((a, b) => (b.value as number) - (a.value as number)); + }, + [] as TreemapSeriesNodeItemOption[], + ); + // sort according to the area and then take the color value in order + return sortedData.map(child => ({ + ...child, + colorSaturation: [0.4, 0.7], + itemStyle: { + borderColor: showUpperLabels ? colorFn(`${child.name}_${depth - 1}`) : '#fff', + color: colorFn(`${child.name}_${depth}_${showUpperLabels}`), + borderWidth: 2, + gapWidth: 2, + }, + })); + }; + + const metricsLabel = metrics.map(metric => getMetricLabel(metric)); + + const initialDepth = 1; + const transformedData: TreemapSeriesNodeItemOption[] = metricsLabel.map(metricLabel => ({ + name: metricLabel, + colorSaturation: [0.4, 0.7], + itemStyle: { + borderColor: showUpperLabels ? colorFn(`${metricLabel}_${initialDepth}`) : '#fff', + borderWidth: 2, + gapWidth: 2, + }, + children: transformer(data, groupby, metricLabel, initialDepth), + })); + + // set a default color when metric values are 0 over all. + const levels = [ + { + upperLabel: { + show: false, + }, + label: { + show: false, + }, + itemStyle: { + color: CategoricalColorNamespace.getColor(), + }, + }, + ]; + + const series: TreemapSeriesOption[] = [ + { + type: 'treemap', + animation: false, + width: '100%', + height: '100%', + nodeClick, + roam, + breadcrumb: { + show: false, + emptyItemWidth: 25, + }, + squareRatio: 0.5 * (1 + Math.sqrt(5)), // golden ratio + emphasis: { + label: { + show: true, + }, + }, + levels, + label: { + show: showLabels, + position: labelPosition, + formatter, + color: '#000', + fontSize: 11, + }, + upperLabel: { + show: showUpperLabels, + formatter, + textBorderColor: 'transparent', + fontSize: 11, + }, + data: transformedData, + }, + ]; + + const echartOptions: EChartsOption = { + tooltip: { + ...defaultTooltip, + trigger: 'item', + formatter: (params: any) => + formatLabel({ + params, + numberFormatter, + labelType: EchartsTreemapLabelType.KeyValue, + }), + }, + series, + }; + + return { + width, + height, + echartOptions, + }; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/types.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/types.ts new file mode 100644 index 000000000000..ba8f1da4acdb --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Treemap/types.ts @@ -0,0 +1,62 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { + ChartDataResponseResult, + ChartProps, + QueryFormData, + QueryFormMetric, +} from '@superset-ui/core'; +import { LabelPositionEnum } from '../types'; + +export type EchartsTreemapFormData = QueryFormData & { + colorScheme?: string; + groupby: string[]; + metric?: QueryFormMetric[]; + labelType: EchartsTreemapLabelType; + labelPosition: LabelPositionEnum; + showLabels: boolean; + showUpperLabels: boolean; + numberFormat: string; + dateFormat: string; + nodeClick: undefined | 'zoomToNode' | 'link'; + roam: boolean | 'scale' | 'move'; +}; + +export enum EchartsTreemapLabelType { + Key = 'key', + Value = 'value', + KeyValue = 'key_value', +} + +export interface EchartsTreemapChartProps extends ChartProps { + formData: EchartsTreemapFormData; + queriesData: ChartDataResponseResult[]; +} + +export const DEFAULT_FORM_DATA: Partial = { + groupby: [], + labelType: EchartsTreemapLabelType.KeyValue, + labelPosition: LabelPositionEnum.InsideTopLeft, + numberFormat: 'SMART_NUMBER', + showLabels: true, + showUpperLabels: false, + dateFormat: 'smart_date', + nodeClick: 'zoomToNode', + roam: true, +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx index 5ab0011120b5..5502af3f3f67 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx @@ -32,6 +32,7 @@ export default function Echart({ echartOptions, eventHandlers, selectedValues = {}, + forceClear = false, }: EchartsProps) { const divRef = useRef(null); const chartRef = useRef(); @@ -49,6 +50,10 @@ export default function Echart({ chartRef.current?.on(name, handler); }); + if (forceClear) { + chartRef.current.clear(); + } + chartRef.current.setOption(echartOptions, true); chartRef.current.dispatchAction({ diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts index 7006f1cf7dbf..b33f4c1b5d7a 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts @@ -25,6 +25,7 @@ export { default as EchartsGaugeChartPlugin } from './Gauge'; export { default as EchartsRadarChartPlugin } from './Radar'; export { default as EchartsFunnelChartPlugin } from './Funnel'; export { default as EchartsTreeChartPlugin } from './Tree'; +export { default as EchartsTreemapChartPlugin } from './Treemap'; /** * Note: this file exports the default export from EchartsTimeseries.tsx. diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts index d015fe421e88..271b2d0436c1 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts @@ -30,6 +30,7 @@ export interface EchartsProps { echartOptions: EChartsOption; eventHandlers?: EventHandlers; selectedValues?: Record; + forceClear?: boolean; } export enum ForecastSeriesEnum { diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/buildQuery.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/buildQuery.test.ts new file mode 100644 index 000000000000..913237f915a2 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/buildQuery.test.ts @@ -0,0 +1,36 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import buildQuery from '../../src/Treemap/buildQuery'; + +describe('Treemap buildQuery', () => { + const formData = { + datasource: '5__table', + granularity_sqla: 'ds', + metric: 'foo', + groupby: ['bar'], + viz_type: 'my_chart', + }; + + it('should build query fields from form data', () => { + const queryContext = buildQuery(formData); + const [query] = queryContext.queries; + expect(query.metrics).toEqual(['foo']); + expect(query.columns).toEqual(['bar']); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts new file mode 100644 index 000000000000..9c8829bbff93 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts @@ -0,0 +1,74 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { ChartProps } from '@superset-ui/core'; +import transformProps from '../../src/Treemap/transformProps'; + +describe('Treemap tranformProps', () => { + const formData = { + colorScheme: 'bnbColors', + datasource: '3__table', + granularity_sqla: 'ds', + metrics: ['sum__num'], + groupby: ['foo', 'bar'], + }; + const chartProps = new ChartProps({ + formData, + width: 800, + height: 600, + queriesData: [ + { + data: [ + { foo: 'Sylvester', bar: 'bar1', sum__num: 10 }, + { foo: 'Arnold', bar: 'bar2', sum__num: 2.5 }, + ], + }, + ], + }); + + it('should tranform chart props for viz', () => { + expect(transformProps(chartProps)).toEqual( + expect.objectContaining({ + width: 800, + height: 600, + echartOptions: expect.objectContaining({ + series: [ + expect.objectContaining({ + data: expect.arrayContaining([ + expect.objectContaining({ + name: 'sum__num', + children: expect.arrayContaining([ + expect.objectContaining({ + name: 'Sylvester', + children: expect.arrayContaining([ + expect.objectContaining({ + name: 'bar1', + value: 10, + }), + ]), + }), + ]), + }), + ]), + }), + ], + }), + }), + ); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts index c6272ce4116d..4ffd1cf473f2 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts @@ -22,6 +22,7 @@ import { EchartsTimeseriesChartPlugin, EchartsGraphChartPlugin, EchartsFunnelChartPlugin, + EchartsTreemapChartPlugin, } from '../src'; describe('@superset-ui/plugin-chart-echarts', () => { @@ -31,5 +32,6 @@ describe('@superset-ui/plugin-chart-echarts', () => { expect(EchartsTimeseriesChartPlugin).toBeDefined(); expect(EchartsGraphChartPlugin).toBeDefined(); expect(EchartsFunnelChartPlugin).toBeDefined(); + expect(EchartsTreemapChartPlugin).toBeDefined(); }); });