From c5d389392681869a17be5b1922ef9f42b91eb37a Mon Sep 17 00:00:00 2001 From: Krist Wongsuphasawat Date: Wed, 29 Apr 2020 15:37:42 -0700 Subject: [PATCH] feat(plugin-word-cloud): change how wordcloud is exported (#418) * feat(plugin-word-cloud): change how wordcloud is exported * docs: fix storybook --- .../plugin-chart-word-cloud/Stories.tsx | 6 +++-- .../ChartDataProviderStories.tsx | 4 +-- plugins/plugin-chart-word-cloud/src/index.ts | 27 +++---------------- .../src/{legacy => legacyPlugin}/index.ts | 4 +-- .../transformProps.ts | 0 .../src/{legacy => legacyPlugin}/types.ts | 0 .../src/{ => plugin}/buildQuery.ts | 2 +- .../src/plugin/index.ts | 24 +++++++++++++++++ .../src/{ => plugin}/transformProps.ts | 4 +-- .../test/index.test.ts | 10 +++++++ .../transformProps.test.ts | 2 +- .../test/{ => plugin}/buildQuery.test.ts | 2 +- 12 files changed, 50 insertions(+), 35 deletions(-) rename plugins/plugin-chart-word-cloud/src/{legacy => legacyPlugin}/index.ts (80%) rename plugins/plugin-chart-word-cloud/src/{legacy => legacyPlugin}/transformProps.ts (100%) rename plugins/plugin-chart-word-cloud/src/{legacy => legacyPlugin}/types.ts (100%) rename plugins/plugin-chart-word-cloud/src/{ => plugin}/buildQuery.ts (87%) create mode 100644 plugins/plugin-chart-word-cloud/src/plugin/index.ts rename plugins/plugin-chart-word-cloud/src/{ => plugin}/transformProps.ts (78%) create mode 100644 plugins/plugin-chart-word-cloud/test/index.test.ts rename plugins/plugin-chart-word-cloud/test/{legacy => legacyPlugin}/transformProps.test.ts (94%) rename plugins/plugin-chart-word-cloud/test/{ => plugin}/buildQuery.test.ts (88%) diff --git a/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-word-cloud/Stories.tsx b/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-word-cloud/Stories.tsx index c6b4a1492c..2986bfae65 100644 --- a/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-word-cloud/Stories.tsx +++ b/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-word-cloud/Stories.tsx @@ -1,8 +1,10 @@ import React from 'react'; import { SuperChart } from '@superset-ui/chart'; import { select, withKnobs } from '@storybook/addon-knobs'; -import WordCloudChartPlugin from '@superset-ui/plugin-chart-word-cloud'; -import LegacyWordCloudChartPlugin from '@superset-ui/plugin-chart-word-cloud/esm/legacy'; +import { + WordCloudChartPlugin, + LegacyWordCloudChartPlugin, +} from '@superset-ui/plugin-chart-word-cloud'; import data from './data'; new WordCloudChartPlugin().configure({ key: 'word-cloud2' }).register(); diff --git a/packages/superset-ui-demo/storybook/stories/superset-ui-chart/ChartDataProviderStories.tsx b/packages/superset-ui-demo/storybook/stories/superset-ui-chart/ChartDataProviderStories.tsx index 008f2a6431..c02c94f948 100644 --- a/packages/superset-ui-demo/storybook/stories/superset-ui-chart/ChartDataProviderStories.tsx +++ b/packages/superset-ui-demo/storybook/stories/superset-ui-chart/ChartDataProviderStories.tsx @@ -7,7 +7,7 @@ import { BigNumberChartPlugin as LegacyBigNumberPlugin } from '@superset-ui/lega import LegacySankeyPlugin from '@superset-ui/legacy-plugin-chart-sankey'; import LegacySunburstPlugin from '@superset-ui/legacy-plugin-chart-sunburst'; import LegacyWordCloudPlugin from '@superset-ui/legacy-plugin-chart-word-cloud'; -import WordCloudPlugin from '@superset-ui/plugin-chart-word-cloud'; +import { WordCloudChartPlugin } from '@superset-ui/plugin-chart-word-cloud'; import { bigNumberFormData, @@ -33,7 +33,7 @@ new LegacySunburstPlugin().configure({ key: SUNBURST }).register(); // @ts-ignore new LegacyWordCloudPlugin().configure({ key: WORD_CLOUD_LEGACY }).register(); // @ts-ignore -new WordCloudPlugin().configure({ key: WORD_CLOUD }).register(); +new WordCloudChartPlugin().configure({ key: WORD_CLOUD }).register(); const VIS_TYPES = [BIG_NUMBER, SANKEY, SUNBURST, WORD_CLOUD, WORD_CLOUD_LEGACY]; const FORM_DATA_LOOKUP = { diff --git a/plugins/plugin-chart-word-cloud/src/index.ts b/plugins/plugin-chart-word-cloud/src/index.ts index 69387a435b..5fe4eb4f17 100644 --- a/plugins/plugin-chart-word-cloud/src/index.ts +++ b/plugins/plugin-chart-word-cloud/src/index.ts @@ -1,24 +1,3 @@ -import { t } from '@superset-ui/translation'; -import { ChartMetadata, ChartPlugin } from '@superset-ui/chart'; -import buildQuery from './buildQuery'; -import { WordCloudFormData } from './types'; -import transformProps from './transformProps'; -import thumbnail from './images/thumbnail.png'; - -const metadata = new ChartMetadata({ - credits: ['https://github.com/jasondavies/d3-cloud'], - description: '', - name: t('Word Cloud'), - thumbnail, -}); - -export default class WordCloudChartPlugin extends ChartPlugin { - constructor() { - super({ - buildQuery, - loadChart: () => import('./chart/WordCloud'), - metadata, - transformProps, - }); - } -} +export { default as WordCloudChartPlugin } from './plugin'; +export { default as LegacyWordCloudChartPlugin } from './legacyPlugin'; +export * from './types'; diff --git a/plugins/plugin-chart-word-cloud/src/legacy/index.ts b/plugins/plugin-chart-word-cloud/src/legacyPlugin/index.ts similarity index 80% rename from plugins/plugin-chart-word-cloud/src/legacy/index.ts rename to plugins/plugin-chart-word-cloud/src/legacyPlugin/index.ts index 0eaeefee3d..48f23996d5 100644 --- a/plugins/plugin-chart-word-cloud/src/legacy/index.ts +++ b/plugins/plugin-chart-word-cloud/src/legacyPlugin/index.ts @@ -1,6 +1,6 @@ import { t } from '@superset-ui/translation'; import { ChartMetadata, ChartPlugin } from '@superset-ui/chart'; -import buildQuery from '../buildQuery'; +import buildQuery from '../plugin/buildQuery'; import transformProps from './transformProps'; import thumbnail from '../images/thumbnail.png'; import { LegacyWordCloudFormData } from './types'; @@ -13,7 +13,7 @@ const metadata = new ChartMetadata({ useLegacyApi: true, }); -export default class WordCloudChartPlugin extends ChartPlugin { +export default class LegacyWordCloudChartPlugin extends ChartPlugin { constructor() { super({ buildQuery, diff --git a/plugins/plugin-chart-word-cloud/src/legacy/transformProps.ts b/plugins/plugin-chart-word-cloud/src/legacyPlugin/transformProps.ts similarity index 100% rename from plugins/plugin-chart-word-cloud/src/legacy/transformProps.ts rename to plugins/plugin-chart-word-cloud/src/legacyPlugin/transformProps.ts diff --git a/plugins/plugin-chart-word-cloud/src/legacy/types.ts b/plugins/plugin-chart-word-cloud/src/legacyPlugin/types.ts similarity index 100% rename from plugins/plugin-chart-word-cloud/src/legacy/types.ts rename to plugins/plugin-chart-word-cloud/src/legacyPlugin/types.ts diff --git a/plugins/plugin-chart-word-cloud/src/buildQuery.ts b/plugins/plugin-chart-word-cloud/src/plugin/buildQuery.ts similarity index 87% rename from plugins/plugin-chart-word-cloud/src/buildQuery.ts rename to plugins/plugin-chart-word-cloud/src/plugin/buildQuery.ts index d83f8638ae..2a3a713213 100644 --- a/plugins/plugin-chart-word-cloud/src/buildQuery.ts +++ b/plugins/plugin-chart-word-cloud/src/plugin/buildQuery.ts @@ -1,5 +1,5 @@ import { buildQueryContext } from '@superset-ui/query'; -import { WordCloudFormData } from './types'; +import { WordCloudFormData } from '../types'; export default function buildQuery(formData: WordCloudFormData) { // Set the single QueryObject's groupby field with series in formData diff --git a/plugins/plugin-chart-word-cloud/src/plugin/index.ts b/plugins/plugin-chart-word-cloud/src/plugin/index.ts new file mode 100644 index 0000000000..83737a7961 --- /dev/null +++ b/plugins/plugin-chart-word-cloud/src/plugin/index.ts @@ -0,0 +1,24 @@ +import { t } from '@superset-ui/translation'; +import { ChartMetadata, ChartPlugin } from '@superset-ui/chart'; +import buildQuery from './buildQuery'; +import { WordCloudFormData } from '../types'; +import transformProps from './transformProps'; +import thumbnail from '../images/thumbnail.png'; + +const metadata = new ChartMetadata({ + credits: ['https://github.com/jasondavies/d3-cloud'], + description: '', + name: t('Word Cloud'), + thumbnail, +}); + +export default class WordCloudChartPlugin extends ChartPlugin { + constructor() { + super({ + buildQuery, + loadChart: () => import('../chart/WordCloud'), + metadata, + transformProps, + }); + } +} diff --git a/plugins/plugin-chart-word-cloud/src/transformProps.ts b/plugins/plugin-chart-word-cloud/src/plugin/transformProps.ts similarity index 78% rename from plugins/plugin-chart-word-cloud/src/transformProps.ts rename to plugins/plugin-chart-word-cloud/src/plugin/transformProps.ts index 2004ea39eb..62040008af 100644 --- a/plugins/plugin-chart-word-cloud/src/transformProps.ts +++ b/plugins/plugin-chart-word-cloud/src/plugin/transformProps.ts @@ -1,6 +1,6 @@ import { ChartProps } from '@superset-ui/chart'; -import { WordCloudProps } from './chart/WordCloud'; -import { WordCloudFormData } from './types'; +import { WordCloudProps } from '../chart/WordCloud'; +import { WordCloudFormData } from '../types'; export default function transformProps(chartProps: ChartProps): WordCloudProps { const { width, height, formData, queryData } = chartProps; diff --git a/plugins/plugin-chart-word-cloud/test/index.test.ts b/plugins/plugin-chart-word-cloud/test/index.test.ts new file mode 100644 index 0000000000..413a113167 --- /dev/null +++ b/plugins/plugin-chart-word-cloud/test/index.test.ts @@ -0,0 +1,10 @@ +import { WordCloudChartPlugin, LegacyWordCloudChartPlugin } from '../src'; + +describe('plugin-chart-word-cloud', () => { + it('exports WordCloudChartPlugin', () => { + expect(WordCloudChartPlugin).toBeDefined(); + }); + it('exports LegacyWordCloudChartPlugin', () => { + expect(LegacyWordCloudChartPlugin).toBeDefined(); + }); +}); diff --git a/plugins/plugin-chart-word-cloud/test/legacy/transformProps.test.ts b/plugins/plugin-chart-word-cloud/test/legacyPlugin/transformProps.test.ts similarity index 94% rename from plugins/plugin-chart-word-cloud/test/legacy/transformProps.test.ts rename to plugins/plugin-chart-word-cloud/test/legacyPlugin/transformProps.test.ts index 4b28ca7dab..07c505be11 100644 --- a/plugins/plugin-chart-word-cloud/test/legacy/transformProps.test.ts +++ b/plugins/plugin-chart-word-cloud/test/legacyPlugin/transformProps.test.ts @@ -1,6 +1,6 @@ import 'babel-polyfill'; import { ChartProps } from '@superset-ui/chart'; -import transformProps from '../../src/legacy/transformProps'; +import transformProps from '../../src/legacyPlugin/transformProps'; describe('WordCloud tranformProps', () => { const formData = { diff --git a/plugins/plugin-chart-word-cloud/test/buildQuery.test.ts b/plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts similarity index 88% rename from plugins/plugin-chart-word-cloud/test/buildQuery.test.ts rename to plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts index 8528c54659..ecc8013183 100644 --- a/plugins/plugin-chart-word-cloud/test/buildQuery.test.ts +++ b/plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts @@ -1,5 +1,5 @@ import 'babel-polyfill'; -import buildQuery from '../src/buildQuery'; +import buildQuery from '../../src/plugin/buildQuery'; describe('WordCloud buildQuery', () => { const formData = {