diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index a8bcfc7f3..cd8dbb82e 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -15,35 +15,35 @@ "@emotion/babel-preset-css-prop": "^11.2.0", "@emotion/cache": "^11.1.3", "@emotion/react": "^11.1.5", - "@superset-ui/chart-controls": "^0.17.55", - "@superset-ui/core": "^0.17.55", - "@superset-ui/legacy-plugin-chart-calendar": "^0.17.55", - "@superset-ui/legacy-plugin-chart-chord": "^0.17.55", - "@superset-ui/legacy-plugin-chart-country-map": "^0.17.55", - "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.55", - "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.55", - "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.55", - "@superset-ui/legacy-plugin-chart-histogram": "^0.17.55", - "@superset-ui/legacy-plugin-chart-horizon": "^0.17.55", - "@superset-ui/legacy-plugin-chart-map-box": "^0.17.55", - "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.55", - "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.55", - "@superset-ui/legacy-plugin-chart-partition": "^0.17.55", - "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.55", - "@superset-ui/legacy-plugin-chart-rose": "^0.17.55", - "@superset-ui/legacy-plugin-chart-sankey": "^0.17.55", - "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.55", - "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.55", - "@superset-ui/legacy-plugin-chart-treemap": "^0.17.55", - "@superset-ui/legacy-plugin-chart-world-map": "^0.17.55", - "@superset-ui/legacy-preset-chart-big-number": "^0.17.55", + "@superset-ui/chart-controls": "^0.17.56", + "@superset-ui/core": "^0.17.56", + "@superset-ui/legacy-plugin-chart-calendar": "^0.17.56", + "@superset-ui/legacy-plugin-chart-chord": "^0.17.56", + "@superset-ui/legacy-plugin-chart-country-map": "^0.17.56", + "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.56", + "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.56", + "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.56", + "@superset-ui/legacy-plugin-chart-histogram": "^0.17.56", + "@superset-ui/legacy-plugin-chart-horizon": "^0.17.56", + "@superset-ui/legacy-plugin-chart-map-box": "^0.17.56", + "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.56", + "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.56", + "@superset-ui/legacy-plugin-chart-partition": "^0.17.56", + "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.56", + "@superset-ui/legacy-plugin-chart-rose": "^0.17.56", + "@superset-ui/legacy-plugin-chart-sankey": "^0.17.56", + "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.56", + "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.56", + "@superset-ui/legacy-plugin-chart-treemap": "^0.17.56", + "@superset-ui/legacy-plugin-chart-world-map": "^0.17.56", + "@superset-ui/legacy-preset-chart-big-number": "^0.17.56", "@superset-ui/legacy-preset-chart-deckgl": "^0.4.7", - "@superset-ui/legacy-preset-chart-nvd3": "^0.17.55", - "@superset-ui/plugin-chart-echarts": "^0.17.55", - "@superset-ui/plugin-chart-pivot-table": "^0.17.55", - "@superset-ui/plugin-chart-table": "^0.17.55", - "@superset-ui/plugin-chart-word-cloud": "^0.17.55", - "@superset-ui/preset-chart-xy": "^0.17.55", + "@superset-ui/legacy-preset-chart-nvd3": "^0.17.56", + "@superset-ui/plugin-chart-echarts": "^0.17.56", + "@superset-ui/plugin-chart-pivot-table": "^0.17.56", + "@superset-ui/plugin-chart-table": "^0.17.56", + "@superset-ui/plugin-chart-word-cloud": "^0.17.56", + "@superset-ui/preset-chart-xy": "^0.17.56", "@vx/responsive": "^0.0.195", "abortcontroller-polyfill": "^1.1.9", "antd": "^4.9.4", @@ -14103,11 +14103,11 @@ } }, "node_modules/@superset-ui/chart-controls": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.55.tgz", - "integrity": "sha512-pfw4Uzzr+OvLx/tczyvjpGjZBIBAEK1/dzH66KknDYdhCP60cRN5++OEc23/r9e4Ten/n8YL90NnrDVW/+GtBw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.56.tgz", + "integrity": "sha512-hAD2sYAm4pSGOlA+ZJgQXLnzPlY1fzOeC+nDjxV303H/al+oIxAvisK6E+qcHvzmIpJ3sg7q1fKPdz4FpB6SRw==", "dependencies": { - "@superset-ui/core": "0.17.55", + "@superset-ui/core": "0.17.56", "lodash": "^4.17.15", "prop-types": "^15.7.2" }, @@ -14119,9 +14119,9 @@ } }, "node_modules/@superset-ui/core": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.55.tgz", - "integrity": "sha512-z78NBeR9cMpM2os+nDA6+eh9n/gY0HWteg39ZiOxWoxwz4zc+XHY8itGrWLr+VlweuwEAcs5DTUwrCAQ6ZD6gw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.56.tgz", + "integrity": "sha512-V2i8NeLBO5Cri+SfiwxwLV6Wor/yueQK41//sZobQW8VQldcSBHQqRLBPKHX1Ccy8EHijzIIBuQDgX8HqUooVg==", "dependencies": { "@babel/runtime": "^7.1.2", "@emotion/cache": "^11.1.3", @@ -14248,12 +14248,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-calendar": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.55.tgz", - "integrity": "sha512-zwKD6Q+zrIAoHTff7XoAjeI9IlB2I7TubCyCi+ibV43nQjct773wbM0AtU9Xa7eXQR1fInQR7mksF2BiLGSCNw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.56.tgz", + "integrity": "sha512-2uVQsnbhWKmbqoXT6w7d30AV1D7kbnoFhZ2zglLqSgohGJpzURexfvMhmyFL/5YHKc1+p8qlAPH3FjMjvTddzg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-array": "^2.0.3", "d3-selection": "^1.4.0", "d3-tip": "^0.9.1", @@ -14272,24 +14272,24 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-chord": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.55.tgz", - "integrity": "sha512-19Mv8nP4t/jLJYQYr4tSXvmekTQId2nxr7vMSJMejcejWdPaXXBOH985imTcGd/EzBF7s+SbR/waA5ypXnk1PQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.56.tgz", + "integrity": "sha512-w0VD9wEw0qA4FQC0LHw/N0js8EUjU6oex/Lz6dSTmbXUpNgXgz1og8qwAwR1E+BgpssYtN5jRVBjM1Q0xEda+Q==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.6.2", "react": "^16.13.1" } }, "node_modules/@superset-ui/legacy-plugin-chart-country-map": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.55.tgz", - "integrity": "sha512-1uEw7eidN5NDZXprcbzGxLChhkN9TUkZrSXPnaIpLQ0gQ4Wd8NSHViy0Oh5D9qHxX40bE6nXIUH2VtmVpycEOA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.56.tgz", + "integrity": "sha512-22/E22V4AAgRaOmNQV9X9EvvJGot1A2VX9nyETOPHOPUsTLSf14rdPp23GuE7pQOuKVqYGrSqgmlX20t8wZFag==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-array": "^2.0.3", "prop-types": "^15.6.2" @@ -14304,13 +14304,13 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-event-flow": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.55.tgz", - "integrity": "sha512-7BcWITPc6piX6GHQ7V9YWamSoyJzcLL7S0MPR9zUW41kGb2YMTV6QYj67UZn8zrHF56X5Cb2xX/XKW+MvdNe/A==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.56.tgz", + "integrity": "sha512-r4xXyyz0dtA5Bn8p7rNMUeYkghyCvThIrtvD11cp/+HFcsB2IHcKuL1ATNMzoAM8VCv8D/0TChSycprqvfncog==", "dependencies": { "@data-ui/event-flow": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "prop-types": "^15.6.2" }, "peerDependencies": { @@ -14318,12 +14318,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-force-directed": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.55.tgz", - "integrity": "sha512-8jTDis27tuyOlspuIdMuAhoYRlzovURNi+tkt/N/T1DS54HXlutmK70rhL+6nVGVXGYNT1nzZuMgYbyinKWBbw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.56.tgz", + "integrity": "sha512-pneiWdOCBgHJzvliqK8WN3ThRmoboUIxm+Rz4MqwJTz0hK4Yihcy41FlJZeZ5Ix1sP1eLOXtQDkH26OgbDlD+g==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.7.2" }, @@ -14332,12 +14332,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-heatmap": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.55.tgz", - "integrity": "sha512-MUKzENLBnpBs0umUxAeWEqmb5snX71EH2+uxElH3kClf7meqv7eAyMpR49O7R7wzPXsChQ9fiAYD9azA6gDW/g==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.56.tgz", + "integrity": "sha512-+p5SVJO+j+xI8ZOYZpwQkQy4MXXRa03ro0GLyHQIgFSK8DmqnTSEAqrrhaYpcN2wYThZxtkO4axqr7VJZIV3Nw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-svg-legend": "^1.x", "d3-tip": "^0.9.1", @@ -14345,14 +14345,14 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-histogram": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.55.tgz", - "integrity": "sha512-/g57p3Ux0GzmFSd6qPNmC5msifag1ex+UmHscfH9y0O00YU2TK/boAC1fB9uNH7XhA/E+7GEeeRo8t7ExE70yA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.56.tgz", + "integrity": "sha512-jdmMc+GRnTf5EJE7le7FAcPRVTJ5qdbVA/QG7PYqFVQlVh2eVeMtuGbiyZgnMQy87NRF2TIJST5xi+wqcFqBjQ==", "dependencies": { "@data-ui/histogram": "^0.0.84", "@data-ui/theme": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@vx/legend": "^0.0.198", "@vx/responsive": "^0.0.199", "@vx/scale": "^0.0.197", @@ -14421,12 +14421,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-horizon": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.55.tgz", - "integrity": "sha512-ngXI77ILZivz99mbcZsUcKfdMJEvyQe58+8EkM93IBAPdyCzIHay8UOooicCZzhLizGIoQ42SkApBsAhzJ+TXg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.56.tgz", + "integrity": "sha512-0NCLGjNDROkatWuUKt1YK3nQvN196kTTibqidIAfZ3SpKUmu/WfuDnWYsCR8KbbpKBpd30ATOYe7tnB3YsSeEA==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-array": "^2.0.3", "d3-scale": "^3.0.1", "prop-types": "^15.6.2" @@ -14456,12 +14456,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-map-box": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.55.tgz", - "integrity": "sha512-Nzi6AhYNbJA/7m/VMa4Cs3qLnO+Eay/dKzaWR4mD5hg7LqajMF5OJXbHA1rp2YmYsUZkC3e19pXzEFsmyQ64dA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.56.tgz", + "integrity": "sha512-NmsgSnD2vNntW7GQTPFT6TloW0dgPmJTlelC7krnODxNEZY3awkW65gA6ScoQFWwW+k4TQQPtLrpQlTTEsy4Bw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "immutable": "^3.8.2", "mapbox-gl": "^0.53.0", "prop-types": "^15.6.2", @@ -14482,12 +14482,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-paired-t-test": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.55.tgz", - "integrity": "sha512-r96LZqVTKncE5F43D+Ze2Ylqu3Sgz95z95STXEthARJ8XBvCCbobTG4QgVN5Eg2CUCkZTprsyUQZqfwuclxugQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.56.tgz", + "integrity": "sha512-HELDx6JqvKuSBZ+a9D8oAW1a5+L6xKXfXbFIOZWqGgzOJGWW1Ilx1MJoHNLtPNF6EsQJBx23qvdgt61Dc5mtEw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "distributions": "^1.0.0", "prop-types": "^15.6.2", "reactable": "^1.1.0" @@ -14497,12 +14497,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-parallel-coordinates": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.55.tgz", - "integrity": "sha512-X6PEW3Y1k/gDFBuatAC7ns8AAWR/y1PyXtPBReByF7mBOwFxXldbu6WreIqcoj2275VgAtz0/557b/IUo4zwcg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.56.tgz", + "integrity": "sha512-ja5PoyPpevdXA8CiICi6U9IfY6ZYKXL4Wcz7NL0dAMCX3NY6sAMT3LiqrPcECbY6iJbKI4WY2Fjzz9eBldv+1w==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.7.2" }, @@ -14511,12 +14511,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-partition": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.55.tgz", - "integrity": "sha512-cJKSumvjxHOYe9JtmsesdE0aKaDYqp5vDbBQgn+kycCVaQRqbddwbP2zmPe/I4/z3MUrJjab3d+OtObqV78O4w==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.56.tgz", + "integrity": "sha512-gCeR/WUdBqg6hlk5SmjW2ofFZmOatatPYdoqOI1XpCKwZHaBREk7PHu6mje57PDwoXl5RYKnkNe8CQZ5tRqf0Q==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-hierarchy": "^1.1.8", "prop-types": "^15.6.2" @@ -14526,24 +14526,24 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-pivot-table": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.55.tgz", - "integrity": "sha512-dXVVTulMpFAjRtckwbCKadWLtpaWN5W1jO0mKYJF9TktjdzcHyEs9B8x++EFPdVOVzk5dTPAjiQ9qjWg4B8/Gg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.56.tgz", + "integrity": "sha512-6D4WD958W7i9mz8ltdP2GCc2dEcpHsomXr46bwFOjO5uY9e/1sZlWHTeOL06c8HhW971w0gXPTT1wi2K2Ik+6w==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "datatables.net-bs": "^1.10.15", "prop-types": "^15.6.2" } }, "node_modules/@superset-ui/legacy-plugin-chart-rose": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.55.tgz", - "integrity": "sha512-NnL7BAXdevk758JJDXB0PqnYr67cynxVUuGQn9BI5KOGwd1YfMaRiQWE+iVhTjUI4QObP43pzqlXiq2LdpWjIQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.56.tgz", + "integrity": "sha512-oWsc4FG9ud/ZqGrwJ7TvvK5Kkpt6Akhuw3RjOA8pbRgYliVGaDHTMQEaLzruXHx1gYFKsfUiYxBXCJsb3qHGvQ==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "nvd3": "1.8.6", "prop-types": "^15.6.2" @@ -14553,12 +14553,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-sankey": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.55.tgz", - "integrity": "sha512-GbkunzrGCNVEiZ+yz1claWIsPMFXlooxaAl6JgZGRvKW8hGRzNALBbRLLJZ1o2pSlbmaj/+ZdGcnuhgMLvn8LQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.56.tgz", + "integrity": "sha512-W0r4ZSnJjMsLTTITcKnMzIgU/N4rzowB80HL89bUYQ/yPbvxWHizyRGMV1yJZ5r23r/t0urU+oI37N7TZ6ayhg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-sankey": "^0.4.2", "prop-types": "^15.6.2" @@ -14568,47 +14568,47 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-sankey-loop": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.55.tgz", - "integrity": "sha512-5K2XntaMLHpKNs8txfgX7Mvy7Q8+NPSpW4WD6VZxMVEndJ73dfRpn1R7xxXiHPmwoAvrZvXIglPyo1WzIhS0Rw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.56.tgz", + "integrity": "sha512-6itsM8eOEjHyB8qyOOblaunZgvzzh5fe7205H0dZwaRpLd2bPWg1FnqBYXfeP0z1VqrI/cbkqwyMhawBmrcbfQ==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-sankey-diagram": "^0.7.3", "d3-selection": "^1.4.0", "prop-types": "^15.6.2" } }, "node_modules/@superset-ui/legacy-plugin-chart-sunburst": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.55.tgz", - "integrity": "sha512-EWT/oldmjLPmO8rkJPMCFr3P2LE1gK7SlO8acvy1JJ/bbBOovTlbtQmLDAlybtzU2oSBk2CRbjXnZlML11pMqg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.56.tgz", + "integrity": "sha512-+uJ/KxZJ4lzBP3sjzstobMxtcAwbcIhOLng9B6NfAbw7jVYvhGRnh1JIJ+rZQJ8h4yZl1hN5TOIh9cNQnVz2HQ==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.6.2" } }, "node_modules/@superset-ui/legacy-plugin-chart-treemap": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.55.tgz", - "integrity": "sha512-ZDkBFfDzJKTE6zDnD30DWbuFKe3vTordo13zYPTCpOUqaoClcvAL72FAcsMWifvq+M5Fv9w8b3nrPfAtc8VbtQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.56.tgz", + "integrity": "sha512-sYzF9lPvRBHJxwc7pv3d+FDI5abg2WzUi1Xz+uWDVvwAbj20I3k+/FZa8I43fljf8FDC3kC8FUOP/h3bcLmPpw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-hierarchy": "^1.1.8", "d3-selection": "^1.4.0", "prop-types": "^15.6.2" } }, "node_modules/@superset-ui/legacy-plugin-chart-world-map": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.55.tgz", - "integrity": "sha512-qQuc93ePtoERqpPEeDJIxbWIEY+4WwW6nl3ETJTC7nuoePcITZeJ0AVqwZh85YbJWttvQJxFOTMPRqQDBau37w==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.56.tgz", + "integrity": "sha512-Lh8RN4i1B9ThbTn6VqJ3T3Mjs6whslHf0ONk19RWfhaKfiSGTGVc5NtR8ChSJXQgjN6it4ieHkmwKPDg49ICKw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-array": "^2.4.0", "d3-color": "^1.4.1", @@ -14633,13 +14633,13 @@ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "node_modules/@superset-ui/legacy-preset-chart-big-number": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.55.tgz", - "integrity": "sha512-TY5/s8J56yF4Fs7tj9uD5l20R7hXU/+QxvBIRXq5bJqQxXqEH0+skmPhSd3wkRc/fd79IC61vY5AVWDisAcZdQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.56.tgz", + "integrity": "sha512-aFxWTyUGjAbXlWrzGIwuqW3+ieVqxWS0oqOYIuDs9tQUMz9fjC/g3+MBCKUEF8yAvB3s4K+tO21apVUn0buzbw==", "dependencies": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/d3-color": "^1.2.2", "@types/shortid": "^0.0.29", "d3-color": "^1.2.3", @@ -14680,13 +14680,13 @@ } }, "node_modules/@superset-ui/legacy-preset-chart-nvd3": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.55.tgz", - "integrity": "sha512-oJs/n8ZUS3in5XrJa4wd2mR1tw9IB3f5We7Hur3twnDlGB/7aDedyd0A4jJ9JTTBm5O6uYDytvAPxzI1CPXiFg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.56.tgz", + "integrity": "sha512-ZHONHj/5d9qi0iN5+CcLAcoOCmMpfDOaNsTge0v7Utc2Ya/pRK1/sLarZy55Oc1kw70aGFU/OU0fTNDj6Su/Fw==", "dependencies": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-tip": "^0.9.1", "dompurify": "^2.0.6", @@ -14703,12 +14703,12 @@ } }, "node_modules/@superset-ui/plugin-chart-echarts": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.55.tgz", - "integrity": "sha512-dKLLYCey/ODrJBoTTvoFQxbJMIx2rq5jirHh+0vyu3qMXwo1a+GGO+QKBA2y4n6M95mhNMb/SSk1sd8uh+NuNw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.56.tgz", + "integrity": "sha512-OrCpJV0v8HaZU537Ru2HWVAqd4xlzFsEcKDOAbaZIkwFjoujD6cMOJOTzF7bZj9kDbSgMHl1UL4kYwCdw3n7aQ==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/mathjs": "^6.0.7", "d3-array": "^1.2.0", "echarts": "^5.1.1", @@ -14720,12 +14720,12 @@ } }, "node_modules/@superset-ui/plugin-chart-pivot-table": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-pivot-table/-/plugin-chart-pivot-table-0.17.55.tgz", - "integrity": "sha512-oVdFjQNxMT4X9lq8ztFt0zBKGqerDYHpZYfyVH8gxk6hZeMFjPEYioJcJFwUn+Y4Z0yWSxWuj0ZHbwSccfV0/Q==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-pivot-table/-/plugin-chart-pivot-table-0.17.56.tgz", + "integrity": "sha512-2xgjgNWhMPXzS43e6rB5lbznRui6BsCHh+Xl6VZtP/YyKkDImvvPvX5zdvu6wg8+YM6ytgs8GSSe5qt4M1Rohg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@superset-ui/react-pivottable": "^0.12.8" }, "peerDependencies": { @@ -14733,12 +14733,12 @@ } }, "node_modules/@superset-ui/plugin-chart-table": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.55.tgz", - "integrity": "sha512-rDEtzDd7qEtZi/iYQ5kI+N6lU39+Rn19Dm9Gtoq3H0f5UZ0UC5mTaoN5/WtRk+e16pGgGJ4mgB0aRzS1C8psSA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.56.tgz", + "integrity": "sha512-RT98Rw0CrozurN7o17VrY0AwVqAhJeiZJJFCud7vXVxXvS4Rn72RMJH/4VFwfhZXMqRh8bhf1zD8DuyXxYpK2g==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/d3-array": "^2.9.0", "@types/react-table": "^7.0.29", "d3-array": "^2.4.0", @@ -14764,12 +14764,12 @@ } }, "node_modules/@superset-ui/plugin-chart-word-cloud": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.55.tgz", - "integrity": "sha512-tJDmL1ahNr8ukRkjKRaAhryjLCkOKubqRSiWhKjmndGqT6nxoxheAyMu7gW/heLV6GGYHD4MHpy3tMVuodtlQw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.56.tgz", + "integrity": "sha512-PIxek+poOUu77+EpgYREVVdUIMuKIYlH58+6Gg8Zg60GZ4835xMsEHKM0atoOytxxspTP388qBr4gYSyRUWSng==", "dependencies": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/d3-cloud": "^1.2.1", "@types/d3-scale": "^2.0.2", "d3-cloud": "^1.2.5", @@ -14802,14 +14802,14 @@ } }, "node_modules/@superset-ui/preset-chart-xy": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.55.tgz", - "integrity": "sha512-neJFrZXIj3EOXapyrYLWvz3q1gwKphrx5UAAjBYWBG0wRXBqSVlud0SaROj7XRNpxMEkak4ZCVcYinrVSDvkfA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.56.tgz", + "integrity": "sha512-TFL9DQ66bQN7mgJ8WEH2dykXHZlqH4OSvwsIgAmt1WDUWsQaNYCXNRxgZKeTT33fjtTRb3d6WwsAXqPJoBdrXA==", "dependencies": { "@data-ui/theme": "^0.0.84", "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@vx/axis": "^0.0.198", "@vx/legend": "^0.0.198", "@vx/scale": "^0.0.197", @@ -66285,19 +66285,19 @@ } }, "@superset-ui/chart-controls": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.55.tgz", - "integrity": "sha512-pfw4Uzzr+OvLx/tczyvjpGjZBIBAEK1/dzH66KknDYdhCP60cRN5++OEc23/r9e4Ten/n8YL90NnrDVW/+GtBw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.56.tgz", + "integrity": "sha512-hAD2sYAm4pSGOlA+ZJgQXLnzPlY1fzOeC+nDjxV303H/al+oIxAvisK6E+qcHvzmIpJ3sg7q1fKPdz4FpB6SRw==", "requires": { - "@superset-ui/core": "0.17.55", + "@superset-ui/core": "0.17.56", "lodash": "^4.17.15", "prop-types": "^15.7.2" } }, "@superset-ui/core": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.55.tgz", - "integrity": "sha512-z78NBeR9cMpM2os+nDA6+eh9n/gY0HWteg39ZiOxWoxwz4zc+XHY8itGrWLr+VlweuwEAcs5DTUwrCAQ6ZD6gw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.56.tgz", + "integrity": "sha512-V2i8NeLBO5Cri+SfiwxwLV6Wor/yueQK41//sZobQW8VQldcSBHQqRLBPKHX1Ccy8EHijzIIBuQDgX8HqUooVg==", "requires": { "@babel/runtime": "^7.1.2", "@emotion/cache": "^11.1.3", @@ -66409,12 +66409,12 @@ } }, "@superset-ui/legacy-plugin-chart-calendar": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.55.tgz", - "integrity": "sha512-zwKD6Q+zrIAoHTff7XoAjeI9IlB2I7TubCyCi+ibV43nQjct773wbM0AtU9Xa7eXQR1fInQR7mksF2BiLGSCNw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.56.tgz", + "integrity": "sha512-2uVQsnbhWKmbqoXT6w7d30AV1D7kbnoFhZ2zglLqSgohGJpzURexfvMhmyFL/5YHKc1+p8qlAPH3FjMjvTddzg==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-array": "^2.0.3", "d3-selection": "^1.4.0", "d3-tip": "^0.9.1", @@ -66432,24 +66432,24 @@ } }, "@superset-ui/legacy-plugin-chart-chord": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.55.tgz", - "integrity": "sha512-19Mv8nP4t/jLJYQYr4tSXvmekTQId2nxr7vMSJMejcejWdPaXXBOH985imTcGd/EzBF7s+SbR/waA5ypXnk1PQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.56.tgz", + "integrity": "sha512-w0VD9wEw0qA4FQC0LHw/N0js8EUjU6oex/Lz6dSTmbXUpNgXgz1og8qwAwR1E+BgpssYtN5jRVBjM1Q0xEda+Q==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.6.2", "react": "^16.13.1" } }, "@superset-ui/legacy-plugin-chart-country-map": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.55.tgz", - "integrity": "sha512-1uEw7eidN5NDZXprcbzGxLChhkN9TUkZrSXPnaIpLQ0gQ4Wd8NSHViy0Oh5D9qHxX40bE6nXIUH2VtmVpycEOA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.56.tgz", + "integrity": "sha512-22/E22V4AAgRaOmNQV9X9EvvJGot1A2VX9nyETOPHOPUsTLSf14rdPp23GuE7pQOuKVqYGrSqgmlX20t8wZFag==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-array": "^2.0.3", "prop-types": "^15.6.2" @@ -66466,34 +66466,34 @@ } }, "@superset-ui/legacy-plugin-chart-event-flow": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.55.tgz", - "integrity": "sha512-7BcWITPc6piX6GHQ7V9YWamSoyJzcLL7S0MPR9zUW41kGb2YMTV6QYj67UZn8zrHF56X5Cb2xX/XKW+MvdNe/A==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.56.tgz", + "integrity": "sha512-r4xXyyz0dtA5Bn8p7rNMUeYkghyCvThIrtvD11cp/+HFcsB2IHcKuL1ATNMzoAM8VCv8D/0TChSycprqvfncog==", "requires": { "@data-ui/event-flow": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-force-directed": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.55.tgz", - "integrity": "sha512-8jTDis27tuyOlspuIdMuAhoYRlzovURNi+tkt/N/T1DS54HXlutmK70rhL+6nVGVXGYNT1nzZuMgYbyinKWBbw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.56.tgz", + "integrity": "sha512-pneiWdOCBgHJzvliqK8WN3ThRmoboUIxm+Rz4MqwJTz0hK4Yihcy41FlJZeZ5Ix1sP1eLOXtQDkH26OgbDlD+g==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.7.2" } }, "@superset-ui/legacy-plugin-chart-heatmap": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.55.tgz", - "integrity": "sha512-MUKzENLBnpBs0umUxAeWEqmb5snX71EH2+uxElH3kClf7meqv7eAyMpR49O7R7wzPXsChQ9fiAYD9azA6gDW/g==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.56.tgz", + "integrity": "sha512-+p5SVJO+j+xI8ZOYZpwQkQy4MXXRa03ro0GLyHQIgFSK8DmqnTSEAqrrhaYpcN2wYThZxtkO4axqr7VJZIV3Nw==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-svg-legend": "^1.x", "d3-tip": "^0.9.1", @@ -66501,14 +66501,14 @@ } }, "@superset-ui/legacy-plugin-chart-histogram": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.55.tgz", - "integrity": "sha512-/g57p3Ux0GzmFSd6qPNmC5msifag1ex+UmHscfH9y0O00YU2TK/boAC1fB9uNH7XhA/E+7GEeeRo8t7ExE70yA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.56.tgz", + "integrity": "sha512-jdmMc+GRnTf5EJE7le7FAcPRVTJ5qdbVA/QG7PYqFVQlVh2eVeMtuGbiyZgnMQy87NRF2TIJST5xi+wqcFqBjQ==", "requires": { "@data-ui/histogram": "^0.0.84", "@data-ui/theme": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@vx/legend": "^0.0.198", "@vx/responsive": "^0.0.199", "@vx/scale": "^0.0.197", @@ -66576,12 +66576,12 @@ } }, "@superset-ui/legacy-plugin-chart-horizon": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.55.tgz", - "integrity": "sha512-ngXI77ILZivz99mbcZsUcKfdMJEvyQe58+8EkM93IBAPdyCzIHay8UOooicCZzhLizGIoQ42SkApBsAhzJ+TXg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.56.tgz", + "integrity": "sha512-0NCLGjNDROkatWuUKt1YK3nQvN196kTTibqidIAfZ3SpKUmu/WfuDnWYsCR8KbbpKBpd30ATOYe7tnB3YsSeEA==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-array": "^2.0.3", "d3-scale": "^3.0.1", "prop-types": "^15.6.2" @@ -66610,12 +66610,12 @@ } }, "@superset-ui/legacy-plugin-chart-map-box": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.55.tgz", - "integrity": "sha512-Nzi6AhYNbJA/7m/VMa4Cs3qLnO+Eay/dKzaWR4mD5hg7LqajMF5OJXbHA1rp2YmYsUZkC3e19pXzEFsmyQ64dA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.56.tgz", + "integrity": "sha512-NmsgSnD2vNntW7GQTPFT6TloW0dgPmJTlelC7krnODxNEZY3awkW65gA6ScoQFWwW+k4TQQPtLrpQlTTEsy4Bw==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "immutable": "^3.8.2", "mapbox-gl": "^0.53.0", "prop-types": "^15.6.2", @@ -66632,118 +66632,118 @@ } }, "@superset-ui/legacy-plugin-chart-paired-t-test": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.55.tgz", - "integrity": "sha512-r96LZqVTKncE5F43D+Ze2Ylqu3Sgz95z95STXEthARJ8XBvCCbobTG4QgVN5Eg2CUCkZTprsyUQZqfwuclxugQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.56.tgz", + "integrity": "sha512-HELDx6JqvKuSBZ+a9D8oAW1a5+L6xKXfXbFIOZWqGgzOJGWW1Ilx1MJoHNLtPNF6EsQJBx23qvdgt61Dc5mtEw==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "distributions": "^1.0.0", "prop-types": "^15.6.2", "reactable": "^1.1.0" } }, "@superset-ui/legacy-plugin-chart-parallel-coordinates": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.55.tgz", - "integrity": "sha512-X6PEW3Y1k/gDFBuatAC7ns8AAWR/y1PyXtPBReByF7mBOwFxXldbu6WreIqcoj2275VgAtz0/557b/IUo4zwcg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.56.tgz", + "integrity": "sha512-ja5PoyPpevdXA8CiICi6U9IfY6ZYKXL4Wcz7NL0dAMCX3NY6sAMT3LiqrPcECbY6iJbKI4WY2Fjzz9eBldv+1w==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.7.2" } }, "@superset-ui/legacy-plugin-chart-partition": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.55.tgz", - "integrity": "sha512-cJKSumvjxHOYe9JtmsesdE0aKaDYqp5vDbBQgn+kycCVaQRqbddwbP2zmPe/I4/z3MUrJjab3d+OtObqV78O4w==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.56.tgz", + "integrity": "sha512-gCeR/WUdBqg6hlk5SmjW2ofFZmOatatPYdoqOI1XpCKwZHaBREk7PHu6mje57PDwoXl5RYKnkNe8CQZ5tRqf0Q==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-hierarchy": "^1.1.8", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-pivot-table": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.55.tgz", - "integrity": "sha512-dXVVTulMpFAjRtckwbCKadWLtpaWN5W1jO0mKYJF9TktjdzcHyEs9B8x++EFPdVOVzk5dTPAjiQ9qjWg4B8/Gg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.56.tgz", + "integrity": "sha512-6D4WD958W7i9mz8ltdP2GCc2dEcpHsomXr46bwFOjO5uY9e/1sZlWHTeOL06c8HhW971w0gXPTT1wi2K2Ik+6w==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "datatables.net-bs": "^1.10.15", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-rose": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.55.tgz", - "integrity": "sha512-NnL7BAXdevk758JJDXB0PqnYr67cynxVUuGQn9BI5KOGwd1YfMaRiQWE+iVhTjUI4QObP43pzqlXiq2LdpWjIQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.56.tgz", + "integrity": "sha512-oWsc4FG9ud/ZqGrwJ7TvvK5Kkpt6Akhuw3RjOA8pbRgYliVGaDHTMQEaLzruXHx1gYFKsfUiYxBXCJsb3qHGvQ==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "nvd3": "1.8.6", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-sankey": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.55.tgz", - "integrity": "sha512-GbkunzrGCNVEiZ+yz1claWIsPMFXlooxaAl6JgZGRvKW8hGRzNALBbRLLJZ1o2pSlbmaj/+ZdGcnuhgMLvn8LQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.56.tgz", + "integrity": "sha512-W0r4ZSnJjMsLTTITcKnMzIgU/N4rzowB80HL89bUYQ/yPbvxWHizyRGMV1yJZ5r23r/t0urU+oI37N7TZ6ayhg==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-sankey": "^0.4.2", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-sankey-loop": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.55.tgz", - "integrity": "sha512-5K2XntaMLHpKNs8txfgX7Mvy7Q8+NPSpW4WD6VZxMVEndJ73dfRpn1R7xxXiHPmwoAvrZvXIglPyo1WzIhS0Rw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.56.tgz", + "integrity": "sha512-6itsM8eOEjHyB8qyOOblaunZgvzzh5fe7205H0dZwaRpLd2bPWg1FnqBYXfeP0z1VqrI/cbkqwyMhawBmrcbfQ==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-sankey-diagram": "^0.7.3", "d3-selection": "^1.4.0", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-sunburst": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.55.tgz", - "integrity": "sha512-EWT/oldmjLPmO8rkJPMCFr3P2LE1gK7SlO8acvy1JJ/bbBOovTlbtQmLDAlybtzU2oSBk2CRbjXnZlML11pMqg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.56.tgz", + "integrity": "sha512-+uJ/KxZJ4lzBP3sjzstobMxtcAwbcIhOLng9B6NfAbw7jVYvhGRnh1JIJ+rZQJ8h4yZl1hN5TOIh9cNQnVz2HQ==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-treemap": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.55.tgz", - "integrity": "sha512-ZDkBFfDzJKTE6zDnD30DWbuFKe3vTordo13zYPTCpOUqaoClcvAL72FAcsMWifvq+M5Fv9w8b3nrPfAtc8VbtQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.56.tgz", + "integrity": "sha512-sYzF9lPvRBHJxwc7pv3d+FDI5abg2WzUi1Xz+uWDVvwAbj20I3k+/FZa8I43fljf8FDC3kC8FUOP/h3bcLmPpw==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3-hierarchy": "^1.1.8", "d3-selection": "^1.4.0", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-world-map": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.55.tgz", - "integrity": "sha512-qQuc93ePtoERqpPEeDJIxbWIEY+4WwW6nl3ETJTC7nuoePcITZeJ0AVqwZh85YbJWttvQJxFOTMPRqQDBau37w==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.56.tgz", + "integrity": "sha512-Lh8RN4i1B9ThbTn6VqJ3T3Mjs6whslHf0ONk19RWfhaKfiSGTGVc5NtR8ChSJXQgjN6it4ieHkmwKPDg49ICKw==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-array": "^2.4.0", "d3-color": "^1.4.1", @@ -66767,13 +66767,13 @@ } }, "@superset-ui/legacy-preset-chart-big-number": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.55.tgz", - "integrity": "sha512-TY5/s8J56yF4Fs7tj9uD5l20R7hXU/+QxvBIRXq5bJqQxXqEH0+skmPhSd3wkRc/fd79IC61vY5AVWDisAcZdQ==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.56.tgz", + "integrity": "sha512-aFxWTyUGjAbXlWrzGIwuqW3+ieVqxWS0oqOYIuDs9tQUMz9fjC/g3+MBCKUEF8yAvB3s4K+tO21apVUn0buzbw==", "requires": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/d3-color": "^1.2.2", "@types/shortid": "^0.0.29", "d3-color": "^1.2.3", @@ -66806,13 +66806,13 @@ } }, "@superset-ui/legacy-preset-chart-nvd3": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.55.tgz", - "integrity": "sha512-oJs/n8ZUS3in5XrJa4wd2mR1tw9IB3f5We7Hur3twnDlGB/7aDedyd0A4jJ9JTTBm5O6uYDytvAPxzI1CPXiFg==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.56.tgz", + "integrity": "sha512-ZHONHj/5d9qi0iN5+CcLAcoOCmMpfDOaNsTge0v7Utc2Ya/pRK1/sLarZy55Oc1kw70aGFU/OU0fTNDj6Su/Fw==", "requires": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "d3": "^3.5.17", "d3-tip": "^0.9.1", "dompurify": "^2.0.6", @@ -66826,12 +66826,12 @@ } }, "@superset-ui/plugin-chart-echarts": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.55.tgz", - "integrity": "sha512-dKLLYCey/ODrJBoTTvoFQxbJMIx2rq5jirHh+0vyu3qMXwo1a+GGO+QKBA2y4n6M95mhNMb/SSk1sd8uh+NuNw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.56.tgz", + "integrity": "sha512-OrCpJV0v8HaZU537Ru2HWVAqd4xlzFsEcKDOAbaZIkwFjoujD6cMOJOTzF7bZj9kDbSgMHl1UL4kYwCdw3n7aQ==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/mathjs": "^6.0.7", "d3-array": "^1.2.0", "echarts": "^5.1.1", @@ -66840,22 +66840,22 @@ } }, "@superset-ui/plugin-chart-pivot-table": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-pivot-table/-/plugin-chart-pivot-table-0.17.55.tgz", - "integrity": "sha512-oVdFjQNxMT4X9lq8ztFt0zBKGqerDYHpZYfyVH8gxk6hZeMFjPEYioJcJFwUn+Y4Z0yWSxWuj0ZHbwSccfV0/Q==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-pivot-table/-/plugin-chart-pivot-table-0.17.56.tgz", + "integrity": "sha512-2xgjgNWhMPXzS43e6rB5lbznRui6BsCHh+Xl6VZtP/YyKkDImvvPvX5zdvu6wg8+YM6ytgs8GSSe5qt4M1Rohg==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@superset-ui/react-pivottable": "^0.12.8" } }, "@superset-ui/plugin-chart-table": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.55.tgz", - "integrity": "sha512-rDEtzDd7qEtZi/iYQ5kI+N6lU39+Rn19Dm9Gtoq3H0f5UZ0UC5mTaoN5/WtRk+e16pGgGJ4mgB0aRzS1C8psSA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.56.tgz", + "integrity": "sha512-RT98Rw0CrozurN7o17VrY0AwVqAhJeiZJJFCud7vXVxXvS4Rn72RMJH/4VFwfhZXMqRh8bhf1zD8DuyXxYpK2g==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/d3-array": "^2.9.0", "@types/react-table": "^7.0.29", "d3-array": "^2.4.0", @@ -66877,12 +66877,12 @@ } }, "@superset-ui/plugin-chart-word-cloud": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.55.tgz", - "integrity": "sha512-tJDmL1ahNr8ukRkjKRaAhryjLCkOKubqRSiWhKjmndGqT6nxoxheAyMu7gW/heLV6GGYHD4MHpy3tMVuodtlQw==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.56.tgz", + "integrity": "sha512-PIxek+poOUu77+EpgYREVVdUIMuKIYlH58+6Gg8Zg60GZ4835xMsEHKM0atoOytxxspTP388qBr4gYSyRUWSng==", "requires": { - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@types/d3-cloud": "^1.2.1", "@types/d3-scale": "^2.0.2", "d3-cloud": "^1.2.5", @@ -66913,14 +66913,14 @@ } }, "@superset-ui/preset-chart-xy": { - "version": "0.17.55", - "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.55.tgz", - "integrity": "sha512-neJFrZXIj3EOXapyrYLWvz3q1gwKphrx5UAAjBYWBG0wRXBqSVlud0SaROj7XRNpxMEkak4ZCVcYinrVSDvkfA==", + "version": "0.17.56", + "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.56.tgz", + "integrity": "sha512-TFL9DQ66bQN7mgJ8WEH2dykXHZlqH4OSvwsIgAmt1WDUWsQaNYCXNRxgZKeTT33fjtTRb3d6WwsAXqPJoBdrXA==", "requires": { "@data-ui/theme": "^0.0.84", "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.55", - "@superset-ui/core": "0.17.55", + "@superset-ui/chart-controls": "0.17.56", + "@superset-ui/core": "0.17.56", "@vx/axis": "^0.0.198", "@vx/legend": "^0.0.198", "@vx/scale": "^0.0.197", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index b1f860dc0..7dad024c0 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -67,35 +67,35 @@ "@emotion/babel-preset-css-prop": "^11.2.0", "@emotion/cache": "^11.1.3", "@emotion/react": "^11.1.5", - "@superset-ui/chart-controls": "^0.17.55", - "@superset-ui/core": "^0.17.55", - "@superset-ui/legacy-plugin-chart-calendar": "^0.17.55", - "@superset-ui/legacy-plugin-chart-chord": "^0.17.55", - "@superset-ui/legacy-plugin-chart-country-map": "^0.17.55", - "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.55", - "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.55", - "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.55", - "@superset-ui/legacy-plugin-chart-histogram": "^0.17.55", - "@superset-ui/legacy-plugin-chart-horizon": "^0.17.55", - "@superset-ui/legacy-plugin-chart-map-box": "^0.17.55", - "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.55", - "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.55", - "@superset-ui/legacy-plugin-chart-partition": "^0.17.55", - "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.55", - "@superset-ui/legacy-plugin-chart-rose": "^0.17.55", - "@superset-ui/legacy-plugin-chart-sankey": "^0.17.55", - "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.55", - "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.55", - "@superset-ui/legacy-plugin-chart-treemap": "^0.17.55", - "@superset-ui/legacy-plugin-chart-world-map": "^0.17.55", - "@superset-ui/legacy-preset-chart-big-number": "^0.17.55", + "@superset-ui/chart-controls": "^0.17.56", + "@superset-ui/core": "^0.17.56", + "@superset-ui/legacy-plugin-chart-calendar": "^0.17.56", + "@superset-ui/legacy-plugin-chart-chord": "^0.17.56", + "@superset-ui/legacy-plugin-chart-country-map": "^0.17.56", + "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.56", + "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.56", + "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.56", + "@superset-ui/legacy-plugin-chart-histogram": "^0.17.56", + "@superset-ui/legacy-plugin-chart-horizon": "^0.17.56", + "@superset-ui/legacy-plugin-chart-map-box": "^0.17.56", + "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.56", + "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.56", + "@superset-ui/legacy-plugin-chart-partition": "^0.17.56", + "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.56", + "@superset-ui/legacy-plugin-chart-rose": "^0.17.56", + "@superset-ui/legacy-plugin-chart-sankey": "^0.17.56", + "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.56", + "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.56", + "@superset-ui/legacy-plugin-chart-treemap": "^0.17.56", + "@superset-ui/legacy-plugin-chart-world-map": "^0.17.56", + "@superset-ui/legacy-preset-chart-big-number": "^0.17.56", "@superset-ui/legacy-preset-chart-deckgl": "^0.4.7", - "@superset-ui/legacy-preset-chart-nvd3": "^0.17.55", - "@superset-ui/plugin-chart-echarts": "^0.17.55", - "@superset-ui/plugin-chart-pivot-table": "^0.17.55", - "@superset-ui/plugin-chart-table": "^0.17.55", - "@superset-ui/plugin-chart-word-cloud": "^0.17.55", - "@superset-ui/preset-chart-xy": "^0.17.55", + "@superset-ui/legacy-preset-chart-nvd3": "^0.17.56", + "@superset-ui/plugin-chart-echarts": "^0.17.56", + "@superset-ui/plugin-chart-pivot-table": "^0.17.56", + "@superset-ui/plugin-chart-table": "^0.17.56", + "@superset-ui/plugin-chart-word-cloud": "^0.17.56", + "@superset-ui/preset-chart-xy": "^0.17.56", "@vx/responsive": "^0.0.195", "abortcontroller-polyfill": "^1.1.9", "antd": "^4.9.4", diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx index 2a1d0bc98..3f7d0bfaa 100644 --- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx +++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx @@ -36,6 +36,7 @@ import { sliceId } from 'spec/fixtures/mockChartQueries'; import dashboardInfo from 'spec/fixtures/mockDashboardInfo'; import { dashboardLayout as mockLayout } from 'spec/fixtures/mockDashboardLayout'; import { sliceEntitiesForChart } from 'spec/fixtures/mockSliceEntities'; +import { initialState } from 'spec/javascripts/sqllab/fixtures'; import { nativeFiltersInfo } from '../../fixtures/mockNativeFilters'; describe('ChartHolder', () => { @@ -61,6 +62,7 @@ describe('ChartHolder', () => { function setup(overrideProps) { const mockStore = getMockStore({ + ...initialState, sliceEntities: sliceEntitiesForChart, }); diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx index 513fe4923..fdbd766f7 100644 --- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx +++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx @@ -23,7 +23,7 @@ import sinon from 'sinon'; import Chart from 'src/dashboard/components/gridComponents/Chart'; import SliceHeader from 'src/dashboard/components/SliceHeader'; import ChartContainer from 'src/chart/ChartContainer'; - +import * as exploreUtils from 'src/explore/exploreUtils'; import { sliceEntitiesForChart as sliceEntities } from 'spec/fixtures/mockSliceEntities'; import mockDatasource from 'spec/fixtures/mockDatasource'; import chartQueries, { @@ -38,6 +38,7 @@ describe('Chart', () => { updateSliceName() {}, // from redux + maxRows: 666, chart: chartQueries[queryId], formData: chartQueries[queryId].formData, datasource: mockDatasource[sliceEntities.slices[queryId].datasource], @@ -59,6 +60,8 @@ describe('Chart', () => { unsetFocusedFilterField() {}, addSuccessToast() {}, addDangerToast() {}, + exportCSV() {}, + exportFullCSV() {}, componentId: 'test', dashboardId: 111, editMode: false, @@ -86,7 +89,6 @@ describe('Chart', () => { it('should render a description if it has one and isExpanded=true', () => { const wrapper = setup(); expect(wrapper.find('.slice_description')).not.toExist(); - wrapper.setProps({ ...props, isExpanded: true }); expect(wrapper.find('.slice_description')).toExist(); }); @@ -104,4 +106,30 @@ describe('Chart', () => { wrapper.instance().changeFilter(); expect(changeFilter.callCount).toBe(1); }); + it('should call exportChart when exportCSV is clicked', () => { + const stubbedExportCSV = sinon + .stub(exploreUtils, 'exportChart') + .returns(() => {}); + const wrapper = setup(); + wrapper.instance().exportCSV(props.slice.sliceId); + expect(stubbedExportCSV.calledOnce).toBe(true); + expect(stubbedExportCSV.lastCall.args[0]).toEqual( + expect.objectContaining({ + formData: expect.anything(), + resultType: 'results', + resultFormat: 'csv', + }), + ); + exploreUtils.exportChart.restore(); + }); + it('should call exportChart with row_limit props.maxRows when exportFullCSV is clicked', () => { + const stubbedExportCSV = sinon + .stub(exploreUtils, 'exportChart') + .returns(() => {}); + const wrapper = setup(); + wrapper.instance().exportFullCSV(props.slice.sliceId); + expect(stubbedExportCSV.calledOnce).toBe(true); + expect(stubbedExportCSV.lastCall.args[0].formData.row_limit).toEqual(666); + exploreUtils.exportChart.restore(); + }); }); diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx index 7ce170ae4..2e05c4c70 100644 --- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx +++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx @@ -34,8 +34,9 @@ import IconButton from 'src/dashboard/components/IconButton'; import ResizableContainer from 'src/dashboard/components/resizable/ResizableContainer'; import WithPopoverMenu from 'src/dashboard/components/menu/WithPopoverMenu'; -import { mockStore } from 'spec/fixtures/mockStore'; +import { getMockStore } from 'spec/fixtures/mockStore'; import { dashboardLayout as mockLayout } from 'spec/fixtures/mockDashboardLayout'; +import { initialState } from 'spec/javascripts/sqllab/fixtures'; describe('Column', () => { const columnWithoutChildren = { @@ -65,6 +66,9 @@ describe('Column', () => { function setup(overrideProps) { // We have to wrap provide DragDropContext for the underlying DragDroppable // otherwise we cannot assert on DragDroppable children + const mockStore = getMockStore({ + ...initialState, + }); const wrapper = mount( diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx index 9ece06e18..c9bb21ba1 100644 --- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx +++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx @@ -34,8 +34,9 @@ import WithPopoverMenu from 'src/dashboard/components/menu/WithPopoverMenu'; import { DASHBOARD_GRID_ID } from 'src/dashboard/util/constants'; import { supersetTheme, ThemeProvider } from '@superset-ui/core'; -import { mockStore } from 'spec/fixtures/mockStore'; +import { getMockStore } from 'spec/fixtures/mockStore'; import { dashboardLayout as mockLayout } from 'spec/fixtures/mockDashboardLayout'; +import { initialState } from 'spec/javascripts/sqllab/fixtures'; describe('Row', () => { const rowWithoutChildren = { ...mockLayout.present.ROW_ID, children: [] }; @@ -61,6 +62,9 @@ describe('Row', () => { function setup(overrideProps) { // We have to wrap provide DragDropContext for the underlying DragDroppable // otherwise we cannot assert on DragDroppable children + const mockStore = getMockStore({ + ...initialState, + }); const wrapper = mount( diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx index 6fb564337..c0f15c35d 100644 --- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx +++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx @@ -31,7 +31,8 @@ import Tab, { RENDER_TAB_CONTENT, } from 'src/dashboard/components/gridComponents/Tab'; import { dashboardLayoutWithTabs } from 'spec/fixtures/mockDashboardLayout'; -import { mockStoreWithTabs } from 'spec/fixtures/mockStore'; +import { getMockStore } from 'spec/fixtures/mockStore'; +import { initialState } from 'spec/javascripts/sqllab/fixtures'; describe('Tabs', () => { const props = { @@ -62,8 +63,13 @@ describe('Tabs', () => { function setup(overrideProps) { // We have to wrap provide DragDropContext for the underlying DragDroppable // otherwise we cannot assert on DragDroppable children + const mockStore = getMockStore({ + ...initialState, + dashboardLayout: dashboardLayoutWithTabs, + dashboardFilters: {}, + }); const wrapper = mount( - + diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx index 2f15359c7..517ac305a 100644 --- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx +++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx @@ -35,8 +35,9 @@ import Tabs from 'src/dashboard/components/gridComponents/Tabs'; import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants'; import emptyDashboardLayout from 'src/dashboard/fixtures/emptyDashboardLayout'; import { dashboardLayoutWithTabs } from 'spec/fixtures/mockDashboardLayout'; -import { mockStoreWithTabs } from 'spec/fixtures/mockStore'; +import { getMockStore } from 'spec/fixtures/mockStore'; import { nativeFilters } from 'spec/fixtures/mockNativeFilters'; +import { initialState } from 'spec/javascripts/sqllab/fixtures'; describe('Tabs', () => { fetchMock.post('glob:*/r/shortner/', {}); @@ -68,8 +69,13 @@ describe('Tabs', () => { function setup(overrideProps) { // We have to wrap provide DragDropContext for the underlying DragDroppable // otherwise we cannot assert on DragDroppable children + const mockStore = getMockStore({ + ...initialState, + dashboardLayout: dashboardLayoutWithTabs, + dashboardFilters: {}, + }); const wrapper = mount( - + diff --git a/superset-frontend/src/common/components/index.tsx b/superset-frontend/src/common/components/index.tsx index 230a9e183..1b460eea3 100644 --- a/superset-frontend/src/common/components/index.tsx +++ b/superset-frontend/src/common/components/index.tsx @@ -229,7 +229,9 @@ export const TextArea = styled(AntdInput.TextArea)` border-radius: ${({ theme }) => theme.borderRadius}px; `; -export const NoAnimationDropdown = (props: DropDownProps) => ( +export const NoAnimationDropdown = ( + props: DropDownProps & { children?: React.ReactNode }, +) => ( ({ supersetCanExplore: true, supersetCanCSV: true, sliceCanEdit: false, - slice: ({ + slice: { slice_id: 312, slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20312%7D', slice_name: 'Vaccine Candidates per Phase', @@ -139,12 +138,13 @@ const createProps = () => ({ }, viz_type: 'dist_bar', datasource: '58__table', - description: null, + description: '', description_markeddown: '', owners: [], modified: '20 hours ago', changed_on: 1617143411366, - } as unknown) as Slice, + slice_description: '', + }, componentId: 'CHART-aGfmWtliqA', dashboardId: 26, isFullSize: false, diff --git a/superset-frontend/src/dashboard/components/SliceHeader/index.tsx b/superset-frontend/src/dashboard/components/SliceHeader/index.tsx index 27d9e8000..d6f41100d 100644 --- a/superset-frontend/src/dashboard/components/SliceHeader/index.tsx +++ b/superset-frontend/src/dashboard/components/SliceHeader/index.tsx @@ -25,21 +25,27 @@ import SliceHeaderControls from 'src/dashboard/components/SliceHeaderControls'; import FiltersBadge from 'src/dashboard/containers/FiltersBadge'; import Icon from 'src/components/Icon'; import { RootState } from 'src/dashboard/types'; -import { Slice } from 'src/types/Chart'; import FilterIndicator from 'src/dashboard/components/FiltersBadge/FilterIndicator'; type SliceHeaderProps = { innerRef?: string; - slice: Slice; + slice: { + description: string; + viz_type: string; + slice_name: string; + slice_id: number; + slice_description: string; + }; isExpanded?: boolean; isCached?: boolean[]; cachedDttm?: string[]; updatedDttm?: number; updateSliceName?: (arg0: string) => void; - toggleExpandSlice?: Function; - forceRefresh?: Function; - exploreChart?: Function; - exportCSV?: Function; + toggleExpandSlice?: () => void; + forceRefresh?: () => void; + exploreChart?: () => void; + exportCSV?: () => void; + exportFullCSV?: () => void; editMode?: boolean; isFullSize?: boolean; annotationQuery?: object; @@ -52,9 +58,9 @@ type SliceHeaderProps = { componentId: string; dashboardId: number; filters: object; - addSuccessToast: Function; - addDangerToast: Function; - handleToggleFullSize: Function; + addSuccessToast: () => void; + addDangerToast: () => void; + handleToggleFullSize: () => void; chartStatus: string; formData: object; }; @@ -82,12 +88,13 @@ const SliceHeader: FC = ({ cachedDttm = null, updatedDttm = null, isCached = [], - isExpanded = [], + isExpanded = false, sliceName = '', supersetCanExplore = false, supersetCanShare = false, supersetCanCSV = false, sliceCanEdit = false, + exportFullCSV, slice, componentId, dashboardId, @@ -174,6 +181,7 @@ const SliceHeader: FC = ({ forceRefresh={forceRefresh} exploreChart={exploreChart} exportCSV={exportCSV} + exportFullCSV={exportFullCSV} supersetCanExplore={supersetCanExplore} supersetCanShare={supersetCanShare} supersetCanCSV={supersetCanCSV} diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/SliceHeaderControls.test.tsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/SliceHeaderControls.test.tsx index b89ce7bdd..d3a57d511 100644 --- a/superset-frontend/src/dashboard/components/SliceHeaderControls/SliceHeaderControls.test.tsx +++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/SliceHeaderControls.test.tsx @@ -20,6 +20,7 @@ import userEvent from '@testing-library/user-event'; import React from 'react'; import { render, screen } from 'spec/helpers/testing-library'; +import { FeatureFlag } from 'src/featureFlags'; import SliceHeaderControls from '.'; jest.mock('src/common/components', () => { @@ -40,6 +41,7 @@ const createProps = () => ({ addSuccessToast: jest.fn(), exploreChart: jest.fn(), exportCSV: jest.fn(), + exportFullCSV: jest.fn(), forceRefresh: jest.fn(), handleToggleFullSize: jest.fn(), toggleExpandSlice: jest.fn(), @@ -47,6 +49,7 @@ const createProps = () => ({ slice_id: 371, slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20371%7D', slice_name: 'Vaccine Candidates per Country & Stage', + slice_description: 'Table of vaccine candidates for 100 countries', form_data: { adhoc_filters: [], color_scheme: 'supersetColors', @@ -76,7 +79,7 @@ const createProps = () => ({ }, isCached: [false], isExpanded: false, - cachedDttm: [null], + cachedDttm: [''], updatedDttm: 1617213803803, supersetCanExplore: true, supersetCanCSV: true, @@ -85,6 +88,9 @@ const createProps = () => ({ dashboardId: 26, isFullSize: false, chartStatus: 'rendered', + showControls: true, + supersetCanShare: true, + formData: {}, }); test('Should render', () => { @@ -119,7 +125,6 @@ test('Should render default props', () => { delete props.sliceCanEdit; render(, { useRedux: true }); - userEvent.click(screen.getByRole('menuitem', { name: 'Maximize chart' })); userEvent.click(screen.getByRole('menuitem', { name: /Force refresh/ })); userEvent.click( @@ -147,6 +152,47 @@ test('Should "export to CSV"', () => { expect(props.exportCSV).toBeCalledWith(371); }); +test('Export full CSV is under featureflag', () => { + // @ts-ignore + global.featureFlags = { + [FeatureFlag.ALLOW_FULL_CSV_EXPORT]: false, + }; + const props = createProps(); + props.slice.viz_type = 'table'; + render(, { useRedux: true }); + expect(screen.queryByRole('menuitem', { name: 'Export full CSV' })).toBe( + null, + ); +}); +test('Should "export full CSV"', () => { + // @ts-ignore + global.featureFlags = { + [FeatureFlag.ALLOW_FULL_CSV_EXPORT]: true, + }; + const props = createProps(); + props.slice.viz_type = 'table'; + render(, { useRedux: true }); + expect(screen.queryByRole('menuitem', { name: 'Export full CSV' })).not.toBe( + null, + ); + expect(props.exportFullCSV).toBeCalledTimes(0); + userEvent.click(screen.getByRole('menuitem', { name: 'Export full CSV' })); + expect(props.exportFullCSV).toBeCalledTimes(1); + expect(props.exportFullCSV).toBeCalledWith(371); +}); + +test('Should not show export full CSV if report is not table', () => { + // @ts-ignore + global.featureFlags = { + [FeatureFlag.ALLOW_FULL_CSV_EXPORT]: true, + }; + const props = createProps(); + render(, { useRedux: true }); + expect(screen.queryByRole('menuitem', { name: 'Export full CSV' })).toBe( + null, + ); +}); + test('Should "View chart in Explore"', () => { const props = createProps(); render(, { useRedux: true }); diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.jsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx similarity index 76% rename from superset-frontend/src/dashboard/components/SliceHeaderControls/index.jsx rename to superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx index 9c3d02586..08e35b28e 100644 --- a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.jsx +++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx @@ -17,7 +17,6 @@ * under the License. */ import React from 'react'; -import PropTypes from 'prop-types'; import moment from 'moment'; import { Behavior, @@ -36,48 +35,15 @@ import Icons from 'src/components/Icons'; import ModalTrigger from 'src/components/ModalTrigger'; import ViewQueryModal from 'src/explore/components/controls/ViewQueryModal'; -const propTypes = { - slice: PropTypes.object.isRequired, - componentId: PropTypes.string.isRequired, - dashboardId: PropTypes.number.isRequired, - addDangerToast: PropTypes.func.isRequired, - isCached: PropTypes.arrayOf(PropTypes.bool), - cachedDttm: PropTypes.arrayOf(PropTypes.string), - isExpanded: PropTypes.bool, - updatedDttm: PropTypes.number, - supersetCanExplore: PropTypes.bool, - supersetCanShare: PropTypes.bool, - supersetCanCSV: PropTypes.bool, - sliceCanEdit: PropTypes.bool, - toggleExpandSlice: PropTypes.func, - forceRefresh: PropTypes.func, - exploreChart: PropTypes.func, - exportCSV: PropTypes.func, -}; - -const defaultProps = { - forceRefresh: () => ({}), - toggleExpandSlice: () => ({}), - exploreChart: () => ({}), - exportCSV: () => ({}), - cachedDttm: [], - updatedDttm: null, - isCached: [], - isExpanded: false, - supersetCanExplore: false, - supersetCanShare: false, - supersetCanCSV: false, - sliceCanEdit: false, -}; - const MENU_KEYS = { CROSS_FILTER_SCOPING: 'cross_filter_scoping', - FORCE_REFRESH: 'force_refresh', - TOGGLE_CHART_DESCRIPTION: 'toggle_chart_description', + DOWNLOAD_AS_IMAGE: 'download_as_image', EXPLORE_CHART: 'explore_chart', EXPORT_CSV: 'export_csv', + EXPORT_FULL_CSV: 'export_full_csv', + FORCE_REFRESH: 'force_refresh', RESIZE_LABEL: 'resize_label', - DOWNLOAD_AS_IMAGE: 'download_as_image', + TOGGLE_CHART_DESCRIPTION: 'toggle_chart_description', VIEW_QUERY: 'view_query', }; @@ -114,9 +80,43 @@ const VerticalDotsTrigger = () => ( ); +interface Props { + slice: { + description: string; + viz_type: string; + slice_name: string; + slice_id: number; + slice_description: string; + }; + componentId: string; + chartStatus: string; + dashboardId: number; + addDangerToast: () => void; + isCached: boolean[]; + cachedDttm: string[] | null; + isExpanded?: boolean; + updatedDttm: number | null; + supersetCanExplore: boolean; + supersetCanShare: boolean; + supersetCanCSV: boolean; + sliceCanEdit: boolean; + isFullSize?: boolean; + formData: object; + toggleExpandSlice?: (sliceId: number) => void; + forceRefresh: (sliceId: number, dashboardId: number) => void; + exploreChart?: (sliceId: number) => void; + exportCSV?: (sliceId: number) => void; + exportFullCSV?: (sliceId: number) => void; + addSuccessToast: (message: string) => void; + handleToggleFullSize: () => void; +} +interface State { + showControls: boolean; + showCrossFilterScopingModal: boolean; +} -class SliceHeaderControls extends React.PureComponent { - constructor(props) { +class SliceHeaderControls extends React.PureComponent { + constructor(props: Props) { super(props); this.toggleControls = this.toggleControls.bind(this); this.refreshChart = this.refreshChart.bind(this); @@ -143,7 +143,13 @@ class SliceHeaderControls extends React.PureComponent { })); } - handleMenuClick({ key, domEvent }) { + handleMenuClick({ + key, + domEvent, + }: { + key: React.Key; + domEvent: React.MouseEvent; + }) { switch (key) { case MENU_KEYS.FORCE_REFRESH: this.refreshChart(); @@ -152,27 +158,38 @@ class SliceHeaderControls extends React.PureComponent { this.setState({ showCrossFilterScopingModal: true }); break; case MENU_KEYS.TOGGLE_CHART_DESCRIPTION: - this.props.toggleExpandSlice(this.props.slice.slice_id); + // eslint-disable-next-line no-unused-expressions + this.props.toggleExpandSlice && + this.props.toggleExpandSlice(this.props.slice.slice_id); break; case MENU_KEYS.EXPLORE_CHART: - this.props.exploreChart(this.props.slice.slice_id); + // eslint-disable-next-line no-unused-expressions + this.props.exploreChart && + this.props.exploreChart(this.props.slice.slice_id); break; case MENU_KEYS.EXPORT_CSV: - this.props.exportCSV(this.props.slice.slice_id); + // eslint-disable-next-line no-unused-expressions + this.props.exportCSV && this.props.exportCSV(this.props.slice.slice_id); break; case MENU_KEYS.RESIZE_LABEL: this.props.handleToggleFullSize(); break; + case MENU_KEYS.EXPORT_FULL_CSV: + // eslint-disable-next-line no-unused-expressions + this.props.exportFullCSV && + this.props.exportFullCSV(this.props.slice.slice_id); + break; case MENU_KEYS.DOWNLOAD_AS_IMAGE: { // menu closes with a delay, we need to hide it manually, // so that we don't capture it on the screenshot const menu = document.querySelector( '.ant-dropdown:not(.ant-dropdown-hidden)', - ); + ) as HTMLElement; menu.style.visibility = 'hidden'; downloadAsImage( SCREENSHOT_NODE_SELECTOR, this.props.slice.slice_name, + // @ts-ignore )(domEvent).then(() => { menu.style.visibility = 'visible'; }); @@ -186,16 +203,17 @@ class SliceHeaderControls extends React.PureComponent { render() { const { slice, - isCached, - cachedDttm, - updatedDttm, - componentId, - addSuccessToast, - addDangerToast, isFullSize, - supersetCanShare, + componentId, + cachedDttm = [], + updatedDttm = null, + addSuccessToast = () => {}, + addDangerToast = () => {}, + supersetCanShare = false, + isCached = [], } = this.props; const crossFilterItems = getChartMetadataRegistry().items; + const isTable = slice.viz_type === 'table'; const isCrossFilter = Object.entries(crossFilterItems) // @ts-ignore .filter(([, { value }]) => @@ -203,11 +221,11 @@ class SliceHeaderControls extends React.PureComponent { ) .find(([key]) => key === slice.viz_type); - const cachedWhen = cachedDttm.map(itemCachedDttm => + const cachedWhen = (cachedDttm || []).map(itemCachedDttm => moment.utc(itemCachedDttm).fromNow(), ); const updatedWhen = updatedDttm ? moment.utc(updatedDttm).fromNow() : ''; - const getCachedTitle = itemCached => { + const getCachedTitle = (itemCached: boolean) => { if (itemCached) { return t('Cached %s', cachedWhen); } @@ -216,12 +234,11 @@ class SliceHeaderControls extends React.PureComponent { } return ''; }; - const refreshTooltipData = isCached.map(getCachedTitle) || ''; + const refreshTooltipData = [...new Set(isCached.map(getCachedTitle) || '')]; // If all queries have same cache time we can unit them to one - let refreshTooltip = [...new Set(refreshTooltipData)]; - refreshTooltip = refreshTooltip.map((item, index) => ( + const refreshTooltip = refreshTooltipData.map((item, index) => (
- {refreshTooltip.length > 1 + {refreshTooltipData.length > 1 ? `${t('Query')} ${index + 1}: ${item}` : item}
@@ -299,6 +316,13 @@ class SliceHeaderControls extends React.PureComponent { {this.props.supersetCanCSV && ( {t('Export CSV')} )} + {isFeatureEnabled(FeatureFlag.ALLOW_FULL_CSV_EXPORT) && + this.props.supersetCanCSV && + isTable && ( + + {t('Export full CSV')} + + )} {isFeatureEnabled(FeatureFlag.DASHBOARD_CROSS_FILTERS) && isCrossFilter && ( @@ -327,11 +351,8 @@ class SliceHeaderControls extends React.PureComponent { overlay={menu} trigger={['click']} placement="bottomRight" - dropdownAlign={{ - offset: [-40, 4], - }} getPopupContainer={triggerNode => - triggerNode.closest(SCREENSHOT_NODE_SELECTOR) + triggerNode.closest(SCREENSHOT_NODE_SELECTOR) as HTMLElement } > { const defaultProps = { @@ -63,13 +67,17 @@ describe('ChartHolder', () => { dashboardId: 123, nativeFilters: nativeFiltersInfo.filters, }; - - const renderWrapper = (props = defaultProps, state = mockState) => - render(, { - useRedux: true, - initialState: state, - useDnd: true, - }); + const mockStore = getMockStore({ + ...initialState, + }); + const renderWrapper = () => + render( + + + {' '} + + , + ); it('toggle full size', async () => { renderWrapper(); diff --git a/superset-frontend/src/dashboard/containers/Chart.jsx b/superset-frontend/src/dashboard/containers/Chart.jsx index 6ef9e4e71..4bb7f3503 100644 --- a/superset-frontend/src/dashboard/containers/Chart.jsx +++ b/superset-frontend/src/dashboard/containers/Chart.jsx @@ -48,6 +48,7 @@ function mapStateToProps( datasources, sliceEntities, nativeFilters, + common, }, ownProps, ) { @@ -89,6 +90,7 @@ function mapStateToProps( sliceCanEdit: !!dashboardInfo.slice_can_edit, ownState: dataMask[id]?.ownState, filterState: dataMask[id]?.filterState, + maxRows: common.conf.SQL_MAX_ROW, }; } diff --git a/superset/config.py b/superset/config.py index 2d43fc18f..883f0bc41 100644 --- a/superset/config.py +++ b/superset/config.py @@ -386,6 +386,9 @@ DEFAULT_FEATURE_FLAGS: Dict[str, bool] = { # Enabling FORCE_DATABASE_CONNECTIONS_SSL forces all database connections to be # encrypted before being saved into superset metastore. "FORCE_DATABASE_CONNECTIONS_SSL": False, + # Allow users to export full CSV of table viz type. + # This could cause the server to run out of memory or compute. + "ALLOW_FULL_CSV_EXPORT": False, } # Feature flags may also be set via 'SUPERSET_FEATURE_' prefixed environment vars.