This is an automated email from the ASF dual-hosted git repository.
kgabryje pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 354a89950c feat(explore): Denormalize form data in echarts, world map
and nvd3 bar and line charts (#20313)
354a89950c is described below
commit 354a89950c4d001da3e107f60788cea873bd6bf6
Author: Kamil Gabryjelski <[email protected]>
AuthorDate: Thu Jun 9 11:54:09 2022 +0200
feat(explore): Denormalize form data in echarts, world map and nvd3 bar and
line charts (#20313)
* feat(explore): Apply denormalize form data function to echarts and world
map
* Denormalize form data in mixed timeseries
* Add dist bar chart
---
.../src/controlPanel.ts | 4 ++++
.../src/Bar/controlPanel.ts | 5 +++++
.../src/DistBar/controlPanel.ts | 12 +++++++++++-
.../src/Line/controlPanel.ts | 5 +++++
.../src/BoxPlot/controlPanel.ts | 13 ++++++++++++-
.../src/Funnel/controlPanel.tsx | 5 +++++
.../src/Gauge/controlPanel.tsx | 6 +++++-
.../src/Graph/controlPanel.tsx | 4 ++++
.../src/MixedTimeseries/controlPanel.tsx | 22 +++++++++++++++++++++-
.../src/Radar/controlPanel.tsx | 5 +++++
.../src/Timeseries/Area/controlPanel.tsx | 5 +++++
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 5 +++++
.../Timeseries/Regular/Scatter/controlPanel.tsx | 5 +++++
.../src/Timeseries/Regular/controlPanel.tsx | 1 +
.../src/Timeseries/Step/controlPanel.tsx | 5 +++++
.../src/Timeseries/controlPanel.tsx | 5 +++++
.../plugin-chart-echarts/src/Tree/controlPanel.tsx | 4 ++++
.../src/Treemap/controlPanel.tsx | 5 +++++
18 files changed, 112 insertions(+), 4 deletions(-)
diff --git
a/superset-frontend/plugins/legacy-plugin-chart-world-map/src/controlPanel.ts
b/superset-frontend/plugins/legacy-plugin-chart-world-map/src/controlPanel.ts
index 93fc1ab1c9..f9f7dfb09d 100644
---
a/superset-frontend/plugins/legacy-plugin-chart-world-map/src/controlPanel.ts
+++
b/superset-frontend/plugins/legacy-plugin-chart-world-map/src/controlPanel.ts
@@ -152,6 +152,10 @@ const config: ControlPanelConfig = {
Boolean(controls?.color_by.value === ColorBy.country),
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bar/controlPanel.ts
b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bar/controlPanel.ts
index 61d3f14add..91af47f1f7 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bar/controlPanel.ts
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bar/controlPanel.ts
@@ -122,6 +122,11 @@ const config: ControlPanelConfig = {
timeSeriesSection[1],
sections.annotations,
],
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/DistBar/controlPanel.ts
b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/DistBar/controlPanel.ts
index 278743d472..5d526b43e3 100644
---
a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/DistBar/controlPanel.ts
+++
b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/DistBar/controlPanel.ts
@@ -106,7 +106,6 @@ const config: ControlPanelConfig = {
],
controlOverrides: {
groupby: {
- label: t('Dimensions'),
validators: [validateNonEmpty],
mapStateToProps: (state, controlState) => {
const groupbyProps =
@@ -134,6 +133,17 @@ const config: ControlPanelConfig = {
rerender: ['groupby'],
},
},
+ denormalizeFormData: formData => {
+ const columns =
+ formData.standardizedFormData.standardizedState.columns.filter(
+ col => !ensureIsArray(formData.groupby).includes(col),
+ );
+ return {
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ columns,
+ };
+ },
};
export default config;
diff --git
a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Line/controlPanel.ts
b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Line/controlPanel.ts
index 5b277cf671..fa4738ebfd 100644
---
a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Line/controlPanel.ts
+++
b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Line/controlPanel.ts
@@ -96,6 +96,11 @@ const config: ControlPanelConfig = {
default: 50000,
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
b/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
index f8e5cbb629..b92c289bb4 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t } from '@superset-ui/core';
+import { ensureIsArray, t } from '@superset-ui/core';
import {
D3_FORMAT_DOCS,
D3_FORMAT_OPTIONS,
@@ -136,5 +136,16 @@ const config: ControlPanelConfig = {
),
},
},
+ denormalizeFormData: formData => {
+ const groupby =
+ formData.standardizedFormData.standardizedState.columns.filter(
+ col => !ensureIsArray(formData.columns).includes(col),
+ );
+ return {
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby,
+ };
+ },
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
index fe2269cf89..39ce57d498 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
@@ -143,6 +143,11 @@ const config: ControlPanelConfig = {
},
};
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metric: formData.standardizedFormData.standardizedState.metrics[0],
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/controlPanel.tsx
index ff03da4153..d9dbb3025e 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/controlPanel.tsx
@@ -39,7 +39,6 @@ const config: ControlPanelConfig = {
name: 'groupby',
config: {
...sharedControls.groupby,
- label: t('Dimensions'),
description: t('Columns to group by'),
},
},
@@ -309,6 +308,11 @@ const config: ControlPanelConfig = {
],
},
],
+ denormalizeFormData: formData => ({
+ ...formData,
+ metric: formData.standardizedFormData.standardizedState.metrics[0],
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Graph/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Graph/controlPanel.tsx
index cb2f586110..39547f683a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Graph/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Graph/controlPanel.tsx
@@ -320,6 +320,10 @@ const controlPanel: ControlPanelConfig = {
],
},
],
+ denormalizeFormData: formData => ({
+ ...formData,
+ metric: formData.standardizedFormData.standardizedState.metrics[0],
+ }),
};
export default controlPanel;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
index 8566fa5999..74c0ac8890 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
@@ -17,7 +17,12 @@
* under the License.
*/
import React from 'react';
-import { FeatureFlag, isFeatureEnabled, t } from '@superset-ui/core';
+import {
+ ensureIsArray,
+ FeatureFlag,
+ isFeatureEnabled,
+ t,
+} from '@superset-ui/core';
import { cloneDeep } from 'lodash';
import {
ControlPanelConfig,
@@ -435,6 +440,21 @@ const config: ControlPanelConfig = {
],
},
],
+ denormalizeFormData: formData => {
+ const groupby =
+ formData.standardizedFormData.standardizedState.columns.filter(
+ col => !ensureIsArray(formData.groupby_b).includes(col),
+ );
+ const metrics =
+ formData.standardizedFormData.standardizedState.metrics.filter(
+ metric => !ensureIsArray(formData.metrics_b).includes(metric),
+ );
+ return {
+ ...formData,
+ metrics,
+ groupby,
+ };
+ },
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
index d24497280a..d78d935a79 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
@@ -210,6 +210,11 @@ const config: ControlPanelConfig = {
],
},
],
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
index e43dda8903..c2aeb2916b 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
@@ -312,6 +312,11 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
index 8716bffe2d..f0c8aa52ac 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
@@ -398,6 +398,11 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
index abc5e9a29e..52e7993098 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
@@ -223,6 +223,11 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/controlPanel.tsx
index eaf3cb2615..c56c4a2ab2 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/controlPanel.tsx
@@ -243,6 +243,7 @@ const config: ControlPanelConfig = {
denormalizeFormData: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
}),
};
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
index b8d3a31b2c..94d179c5a4 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
@@ -296,6 +296,11 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.tsx
index 8f22acadee..843affc3d0 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.tsx
@@ -299,6 +299,11 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
+ denormalizeFormData: formData => ({
+ ...formData,
+ metrics: formData.standardizedFormData.standardizedState.metrics,
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Tree/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Tree/controlPanel.tsx
index cd48e0f636..097a882fa3 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Tree/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Tree/controlPanel.tsx
@@ -285,6 +285,10 @@ const controlPanel: ControlPanelConfig = {
],
},
],
+ denormalizeFormData: formData => ({
+ ...formData,
+ metric: formData.standardizedFormData.standardizedState.metrics[0],
+ }),
};
export default controlPanel;
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
index 63ca40225f..8887377d2d 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
@@ -137,6 +137,11 @@ const config: ControlPanelConfig = {
],
},
],
+ denormalizeFormData: formData => ({
+ ...formData,
+ metric: formData.standardizedFormData.standardizedState.metrics[0],
+ groupby: formData.standardizedFormData.standardizedState.columns,
+ }),
};
export default config;