kristw closed pull request #5949: [SIP-6] Move Chord, Calendar, CountryMap to
new directory structure.
URL: https://github.com/apache/incubator-superset/pull/5949
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/superset/assets/src/visualizations/cal_heatmap.css
b/superset/assets/src/visualizations/Calendar/Calendar.css
similarity index 100%
rename from superset/assets/src/visualizations/cal_heatmap.css
rename to superset/assets/src/visualizations/Calendar/Calendar.css
diff --git a/superset/assets/src/visualizations/cal_heatmap.js
b/superset/assets/src/visualizations/Calendar/Calendar.js
similarity index 73%
rename from superset/assets/src/visualizations/cal_heatmap.js
rename to superset/assets/src/visualizations/Calendar/Calendar.js
index af91dcee68..bcecb3c6d6 100644
--- a/superset/assets/src/visualizations/cal_heatmap.js
+++ b/superset/assets/src/visualizations/Calendar/Calendar.js
@@ -1,11 +1,11 @@
import d3 from 'd3';
import PropTypes from 'prop-types';
-import { colorScalerFactory } from '../modules/colors';
-import CalHeatMap from '../../vendor/cal-heatmap/cal-heatmap';
-import { d3TimeFormatPreset, d3FormatPreset } from '../modules/utils';
-import { UTC } from '../modules/dates';
-import '../../vendor/cal-heatmap/cal-heatmap.css';
-import './cal_heatmap.css';
+import { colorScalerFactory } from '../../modules/colors';
+import CalHeatMap from '../../../vendor/cal-heatmap/cal-heatmap';
+import { d3TimeFormatPreset, d3FormatPreset } from '../../modules/utils';
+import { UTC } from '../../modules/dates';
+import '../../../vendor/cal-heatmap/cal-heatmap.css';
+import './Calendar.css';
const UTCTS = uts => UTC(new Date(uts)).getTime();
@@ -37,8 +37,6 @@ const propTypes = {
};
function Calendar(element, props) {
- PropTypes.checkPropTypes(propTypes, props, 'prop', 'Calendar');
-
const {
data,
height,
@@ -124,40 +122,7 @@ function Calendar(element, props) {
});
}
+Calendar.displayName = 'Calendar';
Calendar.propTypes = propTypes;
-function adaptor(slice, payload) {
- const { selector, formData, datasource } = slice;
- const {
- cell_padding: cellPadding,
- cell_radius: cellRadius,
- cell_size: cellSize,
- linear_color_scheme: linearColorScheme,
- show_legend: showLegend,
- show_metric_name: showMetricName,
- show_values: showValues,
- steps,
- x_axis_time_format: timeFormat,
- y_axis_format: valueFormat,
- } = formData;
- const { verbose_map: verboseMap } = datasource;
- const element = document.querySelector(selector);
-
- return Calendar(element, {
- data: payload.data,
- height: slice.height(),
- cellPadding,
- cellRadius,
- cellSize,
- linearColorScheme,
- showLegend,
- showMetricName,
- showValues,
- steps,
- timeFormat,
- valueFormat,
- verboseMap,
- });
-}
-
-export default adaptor;
+export default Calendar;
diff --git a/superset/assets/src/visualizations/Calendar/ReactCalendar.js
b/superset/assets/src/visualizations/Calendar/ReactCalendar.js
new file mode 100644
index 0000000000..349930b3ad
--- /dev/null
+++ b/superset/assets/src/visualizations/Calendar/ReactCalendar.js
@@ -0,0 +1,4 @@
+import reactify from '../../utils/reactify';
+import Component from './Calendar';
+
+export default reactify(Component);
diff --git a/superset/assets/src/visualizations/Calendar/adaptor.jsx
b/superset/assets/src/visualizations/Calendar/adaptor.jsx
new file mode 100644
index 0000000000..6df23615e3
--- /dev/null
+++ b/superset/assets/src/visualizations/Calendar/adaptor.jsx
@@ -0,0 +1,5 @@
+import createAdaptor from '../../utils/createAdaptor';
+import Component from './ReactCalendar';
+import transformProps from './transformProps';
+
+export default createAdaptor(Component, transformProps);
diff --git a/superset/assets/src/visualizations/Calendar/transformProps.js
b/superset/assets/src/visualizations/Calendar/transformProps.js
new file mode 100644
index 0000000000..91390947c7
--- /dev/null
+++ b/superset/assets/src/visualizations/Calendar/transformProps.js
@@ -0,0 +1,32 @@
+export default function transformProps(basicChartInput) {
+ const { formData, payload, datasource } = basicChartInput;
+ const {
+ cellPadding,
+ cellRadius,
+ cellSize,
+ linearColorScheme,
+ showLegend,
+ showMetricName,
+ showValues,
+ steps,
+ xAxisTimeFormat: timeFormat,
+ yAxisFormat: valueFormat,
+ } = formData;
+
+ const { verboseMap } = datasource;
+
+ return {
+ data: payload.data,
+ cellPadding,
+ cellRadius,
+ cellSize,
+ linearColorScheme,
+ showLegend,
+ showMetricName,
+ showValues,
+ steps,
+ timeFormat,
+ valueFormat,
+ verboseMap,
+ };
+}
diff --git a/superset/assets/src/visualizations/chord.css
b/superset/assets/src/visualizations/Chord/Chord.css
similarity index 100%
rename from superset/assets/src/visualizations/chord.css
rename to superset/assets/src/visualizations/Chord/Chord.css
diff --git a/superset/assets/src/visualizations/chord.jsx
b/superset/assets/src/visualizations/Chord/Chord.js
similarity index 82%
rename from superset/assets/src/visualizations/chord.jsx
rename to superset/assets/src/visualizations/Chord/Chord.js
index 672a31e549..cb5ae6dc2c 100644
--- a/superset/assets/src/visualizations/chord.jsx
+++ b/superset/assets/src/visualizations/Chord/Chord.js
@@ -1,8 +1,8 @@
/* eslint-disable no-param-reassign */
import d3 from 'd3';
import PropTypes from 'prop-types';
-import { getScale } from '../modules/CategoricalColorNamespace';
-import './chord.css';
+import { getScale } from '../../modules/CategoricalColorNamespace';
+import './Chord.css';
const propTypes = {
data: PropTypes.shape({
@@ -15,9 +15,7 @@ const propTypes = {
colorScheme: PropTypes.string,
};
-function chordVis(element, props) {
- PropTypes.checkPropTypes(propTypes, props, 'prop', 'ChordVis');
-
+function Chord(element, props) {
const {
data,
width,
@@ -117,20 +115,7 @@ function chordVis(element, props) {
});
}
-chordVis.propTypes = propTypes;
-
-function adaptor(slice, payload) {
- const { selector, formData } = slice;
- const { y_axis_format: numberFormat, color_scheme: colorScheme } = formData;
- const element = document.querySelector(selector);
-
- return chordVis(element, {
- data: payload.data,
- width: slice.width(),
- height: slice.height(),
- numberFormat,
- colorScheme,
- });
-}
+Chord.displayName = 'Chord';
+Chord.propTypes = propTypes;
-export default adaptor;
+export default Chord;
diff --git a/superset/assets/src/visualizations/Chord/ReactChord.js
b/superset/assets/src/visualizations/Chord/ReactChord.js
new file mode 100644
index 0000000000..dcb8118944
--- /dev/null
+++ b/superset/assets/src/visualizations/Chord/ReactChord.js
@@ -0,0 +1,4 @@
+import reactify from '../../utils/reactify';
+import Chord from './Chord';
+
+export default reactify(Chord);
diff --git a/superset/assets/src/visualizations/Chord/adaptor.jsx
b/superset/assets/src/visualizations/Chord/adaptor.jsx
new file mode 100644
index 0000000000..ced5895770
--- /dev/null
+++ b/superset/assets/src/visualizations/Chord/adaptor.jsx
@@ -0,0 +1,5 @@
+import createAdaptor from '../../utils/createAdaptor';
+import Component from './ReactChord';
+import transformProps from './transformProps';
+
+export default createAdaptor(Component, transformProps);
diff --git a/superset/assets/src/visualizations/Chord/transformProps.js
b/superset/assets/src/visualizations/Chord/transformProps.js
new file mode 100644
index 0000000000..505b8f3128
--- /dev/null
+++ b/superset/assets/src/visualizations/Chord/transformProps.js
@@ -0,0 +1,10 @@
+export default function transformProps(basicChartInput) {
+ const { formData, payload } = basicChartInput;
+ const { yAxisFormat: numberFormat, colorScheme } = formData;
+
+ return {
+ data: payload.data,
+ numberFormat,
+ colorScheme,
+ };
+}
diff --git a/superset/assets/src/visualizations/country_map.css
b/superset/assets/src/visualizations/CountryMap/CountryMap.css
similarity index 100%
rename from superset/assets/src/visualizations/country_map.css
rename to superset/assets/src/visualizations/CountryMap/CountryMap.css
diff --git a/superset/assets/src/visualizations/country_map.js
b/superset/assets/src/visualizations/CountryMap/CountryMap.js
similarity index 89%
rename from superset/assets/src/visualizations/country_map.js
rename to superset/assets/src/visualizations/CountryMap/CountryMap.js
index 92c799bff3..52e961d4e3 100644
--- a/superset/assets/src/visualizations/country_map.js
+++ b/superset/assets/src/visualizations/CountryMap/CountryMap.js
@@ -1,7 +1,7 @@
import d3 from 'd3';
import PropTypes from 'prop-types';
-import { colorScalerFactory } from '../modules/colors';
-import './country_map.css';
+import { colorScalerFactory } from '../../modules/colors';
+import './CountryMap.css';
const propTypes = {
data: PropTypes.arrayOf(PropTypes.shape({
@@ -19,8 +19,6 @@ const propTypes = {
const maps = {};
function CountryMap(element, props) {
- PropTypes.checkPropTypes(propTypes, props, 'prop', 'CountryMap');
-
const {
data,
width,
@@ -196,25 +194,7 @@ function CountryMap(element, props) {
}
+CountryMap.displayName = 'CountryMap';
CountryMap.propTypes = propTypes;
-function adaptor(slice, payload) {
- const { selector, formData } = slice;
- const {
- linear_color_scheme: linearColorScheme,
- number_format: numberFormat,
- select_country: country,
- } = formData;
- const element = document.querySelector(selector);
-
- return CountryMap(element, {
- data: payload.data,
- width: slice.width(),
- height: slice.height(),
- country,
- linearColorScheme,
- numberFormat,
- });
-}
-
-export default adaptor;
+export default CountryMap;
diff --git a/superset/assets/src/visualizations/CountryMap/ReactCountryMap.js
b/superset/assets/src/visualizations/CountryMap/ReactCountryMap.js
new file mode 100644
index 0000000000..dce4a8410b
--- /dev/null
+++ b/superset/assets/src/visualizations/CountryMap/ReactCountryMap.js
@@ -0,0 +1,4 @@
+import reactify from '../../utils/reactify';
+import CountryMap from './CountryMap';
+
+export default reactify(CountryMap);
diff --git a/superset/assets/src/visualizations/CountryMap/adaptor.jsx
b/superset/assets/src/visualizations/CountryMap/adaptor.jsx
new file mode 100644
index 0000000000..8553cb4798
--- /dev/null
+++ b/superset/assets/src/visualizations/CountryMap/adaptor.jsx
@@ -0,0 +1,5 @@
+import createAdaptor from '../../utils/createAdaptor';
+import Component from './ReactCountryMap';
+import transformProps from './transformProps';
+
+export default createAdaptor(Component, transformProps);
diff --git a/superset/assets/src/visualizations/CountryMap/transformProps.js
b/superset/assets/src/visualizations/CountryMap/transformProps.js
new file mode 100644
index 0000000000..9f83163a06
--- /dev/null
+++ b/superset/assets/src/visualizations/CountryMap/transformProps.js
@@ -0,0 +1,15 @@
+export default function transformProps(basicChartInput) {
+ const { formData, payload } = basicChartInput;
+ const {
+ linearColorScheme,
+ numberFormat,
+ selectCountry: country,
+ } = formData;
+
+ return {
+ data: payload.data,
+ country,
+ linearColorScheme,
+ numberFormat,
+ };
+}
diff --git a/superset/assets/src/visualizations/WorldMap/WorldMap.js
b/superset/assets/src/visualizations/WorldMap/WorldMap.js
index d83d79411b..924c5149f4 100644
--- a/superset/assets/src/visualizations/WorldMap/WorldMap.js
+++ b/superset/assets/src/visualizations/WorldMap/WorldMap.js
@@ -20,8 +20,6 @@ const propTypes = {
const formatter = d3.format('.3s');
function WorldMap(element, props) {
- PropTypes.checkPropTypes(propTypes, props, 'prop', 'WorldMap');
-
const {
data,
height,
@@ -107,6 +105,7 @@ function WorldMap(element, props) {
}
}
+WorldMap.displayName = 'WorldMap';
WorldMap.propTypes = propTypes;
export default WorldMap;
diff --git a/superset/assets/src/visualizations/WorldMap/adaptor.jsx
b/superset/assets/src/visualizations/WorldMap/adaptor.jsx
index 30d0400f35..faa1a2cebf 100644
--- a/superset/assets/src/visualizations/WorldMap/adaptor.jsx
+++ b/superset/assets/src/visualizations/WorldMap/adaptor.jsx
@@ -1,5 +1,5 @@
import createAdaptor from '../../utils/createAdaptor';
-import WorldMap from './ReactWorldMap';
+import Component from './ReactWorldMap';
import transformProps from './transformProps';
-export default createAdaptor(WorldMap, transformProps);
+export default createAdaptor(Component, transformProps);
diff --git a/superset/assets/src/visualizations/index.js
b/superset/assets/src/visualizations/index.js
index e924dd4d12..e421fb3fe2 100644
--- a/superset/assets/src/visualizations/index.js
+++ b/superset/assets/src/visualizations/index.js
@@ -72,11 +72,11 @@ const vizMap = {
[VIZ_TYPES.bubble]: loadNvd3,
[VIZ_TYPES.bullet]: loadNvd3,
[VIZ_TYPES.cal_heatmap]: () =>
- loadVis(import(/* webpackChunkName: "cal_heatmap" */ './cal_heatmap.js')),
+ loadVis(import(/* webpackChunkName: "cal_heatmap" */
'./Calendar/adaptor.jsx')),
[VIZ_TYPES.compare]: loadNvd3,
[VIZ_TYPES.directed_force]: () =>
loadVis(import(/* webpackChunkName: "directed_force" */
'./directed_force.js')),
- [VIZ_TYPES.chord]: () => loadVis(import(/* webpackChunkName: "chord" */
'./chord.jsx')),
+ [VIZ_TYPES.chord]: () => loadVis(import(/* webpackChunkName: "chord" */
'./Chord/adaptor.jsx')),
[VIZ_TYPES.dist_bar]: loadNvd3,
[VIZ_TYPES.filter_box]: () =>
loadVis(import(/* webpackChunkName: "filter_box" */ './filter_box.jsx')),
@@ -104,7 +104,7 @@ const vizMap = {
loadVis(import(/* webpackChunkName: "time_table" */
'./TimeTable/TimeTable.jsx')),
[VIZ_TYPES.treemap]: () => loadVis(import(/* webpackChunkName: "treemap" */
'./treemap.js')),
[VIZ_TYPES.country_map]: () =>
- loadVis(import(/* webpackChunkName: "country_map" */ './country_map.js')),
+ loadVis(import(/* webpackChunkName: "country_map" */
'./CountryMap/adaptor.jsx')),
[VIZ_TYPES.word_cloud]: () =>
loadVis(import(/* webpackChunkName: "word_cloud" */
'./wordcloud/WordCloud.js')),
[VIZ_TYPES.world_map]: () =>
diff --git a/superset/assets/src/visualizations/models/BasicChartInput.js
b/superset/assets/src/visualizations/models/BasicChartInput.js
index de4add5336..c7b5aaa196 100644
--- a/superset/assets/src/visualizations/models/BasicChartInput.js
+++ b/superset/assets/src/visualizations/models/BasicChartInput.js
@@ -3,6 +3,7 @@ import convertKeysToCamelCase from
'../../utils/convertKeysToCamelCase';
export default class BasicChartInput {
constructor(slice, payload, setControlValue) {
this.annotationData = slice.annotationData;
+ this.datasource = convertKeysToCamelCase(slice.datasource);
this.formData = convertKeysToCamelCase(slice.formData);
this.payload = payload;
this.setControlValue = setControlValue;
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]