diff --git a/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx b/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx index e06778fc61..ec5a365322 100644 --- a/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx +++ b/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx @@ -2,6 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import Select from '../../../components/AsyncSelect'; +import ControlHeader from '../ControlHeader'; import { t } from '../../../locales'; const propTypes = { @@ -26,24 +27,27 @@ const defaultProps = { placeholder: t('Select ...'), }; -const SelectAsyncControl = ({ value, onChange, dataEndpoint, - multi, mutator, placeholder, onAsyncErrorMessage }) => { +const SelectAsyncControl = (props) => { + const { value, onChange, dataEndpoint, multi, mutator, placeholder, onAsyncErrorMessage } = props; const onSelectionChange = (options) => { const optionValues = options.map(option => option.value); onChange(optionValues); }; return ( - notify.error(onAsyncErrorMessage + ': ' + errorMsg)} + mutator={mutator} + multi={multi} + value={value} + placeholder={placeholder} + valueRenderer={v => (
{v.label}
)} + /> + ); }; diff --git a/superset/assets/javascripts/explore/stores/controls.jsx b/superset/assets/javascripts/explore/stores/controls.jsx index e4a37a20ed..72baf1ff35 100644 --- a/superset/assets/javascripts/explore/stores/controls.jsx +++ b/superset/assets/javascripts/explore/stores/controls.jsx @@ -1979,7 +1979,7 @@ export const controls = { validators: [v.nonEmpty], default: [], description: t('Pick a set of deck.gl charts to layer on top of one another'), - dataEndpoint: '/sliceasync/api/read?_flt_0_viz_type=deck_', + dataEndpoint: '/sliceasync/api/read?_flt_0_viz_type=deck_&_flt_7_viz_type=deck_multi', placeholder: t('Select charts'), onAsyncErrorMessage: t('Error while fetching charts'), mutator: (data) => { diff --git a/superset/assets/package.json b/superset/assets/package.json index 6b271b4f3a..6d39a6b289 100644 --- a/superset/assets/package.json +++ b/superset/assets/package.json @@ -58,7 +58,7 @@ "d3-tip": "^0.6.7", "datamaps": "^0.5.8", "datatables.net-bs": "^1.10.15", - "deck.gl": "^5.0.1", + "deck.gl": "^5.1.4", "deep-equal": "^1.0.1", "distributions": "^1.0.0", "dompurify": "^1.0.3", @@ -69,8 +69,8 @@ "jed": "^1.1.1", "jquery": "3.1.1", "lodash.throttle": "^4.1.1", - "luma.gl": "^5.0.1", - "mapbox-gl": "^0.43.0", + "luma.gl": "^5.1.4", + "mapbox-gl": "^0.44.2", "mathjs": "^3.20.2", "moment": "^2.20.1", "mousetrap": "^1.6.1", diff --git a/superset/assets/visualizations/deckgl/multi.jsx b/superset/assets/visualizations/deckgl/multi.jsx index aa712caa1c..4006b474cf 100644 --- a/superset/assets/visualizations/deckgl/multi.jsx +++ b/superset/assets/visualizations/deckgl/multi.jsx @@ -8,9 +8,7 @@ import layerGenerators from './layers'; function deckMulti(slice, payload, setControlValue) { - if (!slice.subSlicesLayers) { - slice.subSlicesLayers = {}; // eslint-disable-line no-param-reassign - } + const subSlicesLayers = {}; const fd = slice.formData; const render = () => { const viewport = { @@ -18,7 +16,7 @@ function deckMulti(slice, payload, setControlValue) { width: slice.width(), height: slice.height(), }; - const layers = Object.keys(slice.subSlicesLayers).map(k => slice.subSlicesLayers[k]); + const layers = Object.keys(subSlicesLayers).map(k => subSlicesLayers[k]); ReactDOM.render( { - // Late import to avoid circular deps const layer = layerGenerators[subsliceCopy.form_data.viz_type](subsliceCopy.form_data, data); - slice.subSlicesLayers[subsliceCopy.slice_id] = layer; // eslint-disable-line no-param-reassign + subSlicesLayers[subsliceCopy.slice_id] = layer; render(); }); }); diff --git a/superset/assets/yarn.lock b/superset/assets/yarn.lock index 935cf62f64..6ca7fe1e96 100644 --- a/superset/assets/yarn.lock +++ b/superset/assets/yarn.lock @@ -2726,18 +2726,18 @@ decimal.js@9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-9.0.1.tgz#1cc8b228177da7ab6498c1cc06eb130a290e6e1e" -deck.gl@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deck.gl/-/deck.gl-5.0.2.tgz#8f184a2007a7d448afa94c73bb80eba9bcec3413" +deck.gl@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/deck.gl/-/deck.gl-5.1.4.tgz#1adb33798ec91abb2a1d164adfff4cdb1a1a888d" dependencies: d3-hexbin "^0.2.1" earcut "^2.0.6" lodash.flattendeep "^4.4.0" - luma.gl "^5.0.0" + luma.gl "^5.1.4" math.gl "^1.0.0" mjolnir.js "^1.0.0" prop-types "^15.6.0" - seer "^0.2.3" + seer "^0.2.4" viewport-mercator-project "^5.0.0" deep-eql@^3.0.0: @@ -2968,7 +2968,7 @@ earcut@^2.0.3: version "2.1.1" resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.1.1.tgz#157634e5f3ebb42224e475016e86a5b6ce556b45" -earcut@^2.0.6: +earcut@^2.0.6, earcut@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.1.3.tgz#ca579545f351941af7c3d0df49c9f7d34af99b0c" @@ -5293,14 +5293,6 @@ lodash._basecreate@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" -lodash._baseisequal@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" - dependencies: - lodash.isarray "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -5308,10 +5300,6 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" @@ -5396,21 +5384,10 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isequal@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-3.0.4.tgz#1c35eb3b6ef0cd1ff51743e3ea3cf7fdffdacb64" - dependencies: - lodash._baseisequal "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash.isequal@^4.0.0, lodash.isequal@^4.1.1: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" -lodash.istypedarray@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" - lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -5525,18 +5502,13 @@ lru-cache@^4.0.1, lru-cache@^4.1.1: pseudomap "^1.0.2" yallist "^2.1.2" -luma.gl@^5.0.0, luma.gl@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/luma.gl/-/luma.gl-5.0.2.tgz#8c19601a55cd4f2095f85df340663970a005bbf0" +luma.gl@^5.1.4: + version "5.1.6" + resolved "https://registry.yarnpkg.com/luma.gl/-/luma.gl-5.1.6.tgz#36ce71dae2f25dd10a5e4ea72fbd1829d1d8da41" dependencies: - gl-mat4 "^1.1.4" - gl-quat "^1.0.0" - gl-vec2 "^1.0.0" - gl-vec3 "^1.0.3" - gl-vec4 "^1.0.1" - math.gl "1.0.0-alpha.8" - seer "^0.2.2" - webgl-debug "^1.0.2" + math.gl "^1.0.0" + seer "^0.2.4" + webgl-debug "^2.0.0" macaddress@^0.2.8: version "0.2.8" @@ -5586,9 +5558,9 @@ mapbox-gl@0.38.0: vt-pbf "^2.0.2" webworkify "^1.4.0" -mapbox-gl@^0.43.0: - version "0.43.0" - resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-0.43.0.tgz#c53978cdce0e3fa393a60bd5afc657842ce5b098" +mapbox-gl@^0.44.2: + version "0.44.2" + resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-0.44.2.tgz#8c118ba8c5c15b054272644f30877309db0f8ee2" dependencies: "@mapbox/gl-matrix" "^0.0.1" "@mapbox/mapbox-gl-supported" "^1.3.0" @@ -5601,13 +5573,12 @@ mapbox-gl@^0.43.0: brfs "^1.4.0" bubleify "^0.7.0" csscolorparser "~1.0.2" - earcut "^2.0.3" + earcut "^2.1.3" geojson-rewind "^0.3.0" geojson-vt "^3.0.0" gray-matter "^3.0.8" grid-index "^1.0.0" jsonlint-lines-primitives "~1.6.0" - lodash.isequal "^3.0.4" minimist "0.0.8" package-json-versionify "^1.0.2" pbf "^3.0.5" @@ -5621,7 +5592,7 @@ mapbox-gl@^0.43.0: unassertify "^2.0.0" unflowify "^1.0.0" vt-pbf "^3.0.1" - webworkify "^1.4.0" + webworkify "^1.5.0" material-colors@^1.2.1: version "1.2.5" @@ -5631,16 +5602,6 @@ math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" -math.gl@1.0.0-alpha.8: - version "1.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/math.gl/-/math.gl-1.0.0-alpha.8.tgz#51dd8d03e5c50096851e8a268d888c1eda766cd1" - dependencies: - gl-mat4 "^1.1.4" - gl-quat "^1.0.0" - gl-vec2 "^1.0.0" - gl-vec3 "^1.0.3" - gl-vec4 "^1.0.1" - math.gl@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/math.gl/-/math.gl-1.0.3.tgz#89e00cb4452b997a71e77c79bc4c26e732d1d4b8" @@ -8128,9 +8089,9 @@ seekout@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/seekout/-/seekout-1.0.2.tgz#09ba9f1bd5b46fbb134718eb19a68382cbb1b9c9" -seer@^0.2.2, seer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/seer/-/seer-0.2.3.tgz#e7ba529921330327dbbf30141fbf052296772fb7" +seer@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/seer/-/seer-0.2.4.tgz#6b8a81d09bfe6b3b3ad0268971a65e7f7405135c" semver-diff@^2.0.0: version "2.1.0" @@ -9341,9 +9302,9 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -webgl-debug@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/webgl-debug/-/webgl-debug-1.0.2.tgz#93bac5aed181343a136ad34f249920d3b9ccc69a" +webgl-debug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/webgl-debug/-/webgl-debug-2.0.1.tgz#dc11bea3d947764bce061fdb5a23109c13787c95" webidl-conversions@^3.0.0: version "3.0.1" @@ -9409,6 +9370,10 @@ webworkify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/webworkify/-/webworkify-1.4.0.tgz#71245d1e34cacf54e426bd955f8cc6ee12d024c2" +webworkify@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/webworkify/-/webworkify-1.5.0.tgz#734ad87a774de6ebdd546e1d3e027da5b8f4a42c" + wgs84@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/wgs84/-/wgs84-0.0.0.tgz#34fdc555917b6e57cf2a282ed043710c049cdc76"