From 9318fd6bd9dd66d0461adb2a65b8b77476125a1c Mon Sep 17 00:00:00 2001 From: erik_ritter Date: Fri, 12 Mar 2021 14:52:59 -0800 Subject: [PATCH] feat: add warning metadata to tables and metrics --- superset-frontend/package-lock.json | 669 +++++++++--------- superset-frontend/package.json | 54 +- .../components/DatasourcePanel_spec.jsx | 21 + .../components/CertifiedIconWithTooltip.tsx | 6 +- .../src/components/TableSelector/index.tsx | 7 + .../src/components/WarningIconWithTooltip.tsx | 48 ++ .../components/gridComponents/Markdown.jsx | 26 +- .../src/datasource/DatasourceEditor.jsx | 35 +- .../src/datasource/DatasourceModal.tsx | 20 +- .../components/controls/DatasourceControl.jsx | 14 + .../views/CRUD/data/dataset/DatasetList.tsx | 20 +- superset/connectors/sqla/models.py | 14 +- superset/connectors/sqla/views.py | 10 +- 13 files changed, 529 insertions(+), 415 deletions(-) create mode 100644 superset-frontend/src/components/WarningIconWithTooltip.tsx diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index 321665e0ce20e..af49ca4adebd8 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -13,34 +13,34 @@ "@babel/runtime-corejs3": "^7.12.5", "@data-ui/sparkline": "^0.0.84", "@emotion/core": "^10.0.35", - "@superset-ui/chart-controls": "^0.17.19", - "@superset-ui/core": "^0.17.18", - "@superset-ui/legacy-plugin-chart-calendar": "^0.17.19", - "@superset-ui/legacy-plugin-chart-chord": "^0.17.19", - "@superset-ui/legacy-plugin-chart-country-map": "^0.17.19", - "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.19", - "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.19", - "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.19", - "@superset-ui/legacy-plugin-chart-histogram": "^0.17.19", - "@superset-ui/legacy-plugin-chart-horizon": "^0.17.19", - "@superset-ui/legacy-plugin-chart-map-box": "^0.17.19", - "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.19", - "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.19", - "@superset-ui/legacy-plugin-chart-partition": "^0.17.19", - "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.19", - "@superset-ui/legacy-plugin-chart-rose": "^0.17.19", - "@superset-ui/legacy-plugin-chart-sankey": "^0.17.19", - "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.19", - "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.19", - "@superset-ui/legacy-plugin-chart-treemap": "^0.17.19", - "@superset-ui/legacy-plugin-chart-world-map": "^0.17.19", - "@superset-ui/legacy-preset-chart-big-number": "^0.17.19", + "@superset-ui/chart-controls": "^0.17.21", + "@superset-ui/core": "^0.17.21", + "@superset-ui/legacy-plugin-chart-calendar": "^0.17.21", + "@superset-ui/legacy-plugin-chart-chord": "^0.17.21", + "@superset-ui/legacy-plugin-chart-country-map": "^0.17.21", + "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.21", + "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.21", + "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.21", + "@superset-ui/legacy-plugin-chart-histogram": "^0.17.21", + "@superset-ui/legacy-plugin-chart-horizon": "^0.17.21", + "@superset-ui/legacy-plugin-chart-map-box": "^0.17.21", + "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.21", + "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.21", + "@superset-ui/legacy-plugin-chart-partition": "^0.17.21", + "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.21", + "@superset-ui/legacy-plugin-chart-rose": "^0.17.21", + "@superset-ui/legacy-plugin-chart-sankey": "^0.17.21", + "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.21", + "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.21", + "@superset-ui/legacy-plugin-chart-treemap": "^0.17.21", + "@superset-ui/legacy-plugin-chart-world-map": "^0.17.21", + "@superset-ui/legacy-preset-chart-big-number": "^0.17.21", "@superset-ui/legacy-preset-chart-deckgl": "^0.4.6", - "@superset-ui/legacy-preset-chart-nvd3": "^0.17.19", - "@superset-ui/plugin-chart-echarts": "^0.17.19", - "@superset-ui/plugin-chart-table": "^0.17.20", - "@superset-ui/plugin-chart-word-cloud": "^0.17.19", - "@superset-ui/preset-chart-xy": "^0.17.19", + "@superset-ui/legacy-preset-chart-nvd3": "^0.17.21", + "@superset-ui/plugin-chart-echarts": "^0.17.21", + "@superset-ui/plugin-chart-table": "^0.17.21", + "@superset-ui/plugin-chart-word-cloud": "^0.17.21", + "@superset-ui/preset-chart-xy": "^0.17.21", "@vx/responsive": "^0.0.195", "abortcontroller-polyfill": "^1.1.9", "antd": "^4.9.4", @@ -15957,11 +15957,11 @@ } }, "node_modules/@superset-ui/chart-controls": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.19.tgz", - "integrity": "sha512-27nR2BKm+Eskk/IQJ461MTkZQ0kLUhMTl94yZ4qKS7heh36MrEhCT/eJugCnimiUaUkWsyTW254KySEJty75vg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.21.tgz", + "integrity": "sha512-wLVa9H4kHGZWxnJ5lXXU/1DH/4nnAy7ZjYrVPoY16elWPbP2SnxuQwrQKG1CEUBIciODbT8IXHkHj4/+o4bStQ==", "dependencies": { - "@superset-ui/core": "0.17.18", + "@superset-ui/core": "0.17.21", "lodash": "^4.17.15", "prop-types": "^15.7.2" }, @@ -15974,9 +15974,9 @@ } }, "node_modules/@superset-ui/core": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.18.tgz", - "integrity": "sha512-7k06rxn9SxIg6H8HUZAoXtVGxhCiQtQ9hkycBpekTDX+UtjGlXi641abo+8A13Lx4uM8d86/fgmu6nhwEm/ZfA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.21.tgz", + "integrity": "sha512-NhWBwMJZU3xcaoTpZe4ePQWhMFUW/w5dAuuzRxKQVuXdvxAPlw1ejWaHxOKQplgPp/6DSs4FESxXfTeovaIqxg==", "dependencies": { "@babel/runtime": "^7.1.2", "@emotion/core": "^10.0.28", @@ -16002,6 +16002,7 @@ "lodash": "^4.17.11", "pretty-ms": "^7.0.0", "react-error-boundary": "^1.2.5", + "react-markdown": "^4.3.1", "reselect": "^4.0.0", "rison": "^0.1.1", "seedrandom": "^3.0.5", @@ -16052,12 +16053,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-calendar": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.19.tgz", - "integrity": "sha512-TYYoT+QrLTsNnUWAp08XplWuOrMdZ2i3B4zjTogImEdiUKQ/af68HxYGw+9o6RLbrsh1TCB+Aw5Mws8GTUvU7Q==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.21.tgz", + "integrity": "sha512-bgTaiQrDx3qEGkPfXQtdDuujlq8TVL7n0358DAuaJkz9BoysaiL/gc5nEOe14OAc5mZ0s9AsnsK6Dfwer277mg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3-array": "^2.0.3", "d3-selection": "^1.4.0", "d3-tip": "^0.9.1", @@ -16068,53 +16069,54 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-calendar/node_modules/d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "dependencies": { "internmap": "^1.0.0" } }, "node_modules/@superset-ui/legacy-plugin-chart-chord": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.19.tgz", - "integrity": "sha512-GnQGqEXVjHwzFQHKyJMDnhILGOV7YBzQV6+k90ezD4m+Pceopo+p5cqGkznggOCAADawXIJAercRhOMoM3j90A==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.21.tgz", + "integrity": "sha512-8iEtkq5LVadGjEkKI/KqimzPQE5b3XRwlMADEyLs4yRmYIlYKrkP53RrIbDiSSTC0qv+ApyTAame4eSNEKS1tg==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "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.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.19.tgz", - "integrity": "sha512-nmZ+r1UlI4c24D6ILVJPZvWNSpqwUFzhCVsGXvUn6bZWkfNQNO+fSaqmImafY0yABBdsljGu4QxF1MBct/8sdw==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.21.tgz", + "integrity": "sha512-BNgFzxoFCJ4dAwmN0frPWmKKN9SmpAvC26Ba9rUktbIaZK6q56fNFFCl++z4d9LVxAosHCAlo7JnkTgl5cjIBg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-array": "^2.0.3", "prop-types": "^15.6.2" } }, "node_modules/@superset-ui/legacy-plugin-chart-country-map/node_modules/d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "dependencies": { "internmap": "^1.0.0" } }, "node_modules/@superset-ui/legacy-plugin-chart-event-flow": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.19.tgz", - "integrity": "sha512-rqYVwCE6EKisM7Bfm+Li0jfji/zy5I8/IacaMnsL+9p4eqvMxKGg1HGy7XH82v3mYqqNtlXzS1hOtHykK8JemQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.21.tgz", + "integrity": "sha512-T8Tc4f1mOlUvKjG28Mhu88qdcI+ZPovQJNi7KiwEh9CaKL6uW+atshF/B6AkofZbJGzCpSB20/xyVmADzctczg==", "dependencies": { "@data-ui/event-flow": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "prop-types": "^15.6.2" }, "peerDependencies": { @@ -16122,12 +16124,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-force-directed": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.19.tgz", - "integrity": "sha512-rk5J1oHzWrubrRZYpk5ZXWaDPr0MLILrumJTMTZo0NtimwvKoLHGhSgY33KzA/ixuXNM5KrvR10GmMx4Hg9JbA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.21.tgz", + "integrity": "sha512-Ol8QzT1q8hsVu/9Cscsg5Vk4ATDXzgfpGMXAySFAxC02isfzrTQffKUnZ42lhMAXG+6fBk0iSFfovhSZlK+49A==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.7.2" }, @@ -16136,12 +16138,13 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-heatmap": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.19.tgz", - "integrity": "sha512-NN+9sJeYaw0x0arva+CynDidorNpwsj//u8F6+V3FnHaGgJfVUfAbk9mlU5FA+j0eTaeTipF4InqeTOiiaYRSQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.21.tgz", + "integrity": "sha512-ok4vIwbkpfHbjjU2bME8Ov6P/UdNTTCemo3vU30qNCTv+N6mMzliNvr1FwqZeKxEFFp9A2JDGURrnU9w2t+G5w==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-svg-legend": "^1.x", "d3-tip": "^0.9.1", @@ -16149,14 +16152,15 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-histogram": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.19.tgz", - "integrity": "sha512-EU5GQqyRlcL2hMyBlHU005Ak+gKkthJJ85cZrRSfS4mdhwPsdjfOc6qbEjFEaqyYub32VcD8dNPMV65kIVdtww==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.21.tgz", + "integrity": "sha512-ZyP0SYpzMXnvTce4nc8aui283G8xk+slOfjqoIJHj9tTqi67KwqHsuxoaETAClSZNLtS/H1ZOo7Mass/3r5t3Q==", + "license": "Apache-2.0", "dependencies": { "@data-ui/histogram": "^0.0.84", "@data-ui/theme": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@vx/legend": "^0.0.198", "@vx/responsive": "^0.0.199", "@vx/scale": "^0.0.197", @@ -16200,6 +16204,9 @@ "lodash": "^4.17.10", "prop-types": "^15.6.1", "resize-observer-polyfill": "1.5.1" + }, + "peerDependencies": { + "react": "^15.0.0-0 || ^16.0.0-0" } }, "node_modules/@superset-ui/legacy-plugin-chart-histogram/node_modules/@vx/scale": { @@ -16225,12 +16232,13 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-horizon": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.19.tgz", - "integrity": "sha512-T7X2KsxmWGZ0jXQ3Q6lFc5hwocZJnGFasgmqW052uzE49YrLyK26FXCiqUc3gI81Nxtb4VtnQF/VSaNVGaNMTQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.21.tgz", + "integrity": "sha512-LR4rZDff/C15ea7ap49J5w3tH3Uftw3JafjbPWPPgS5SujaNeG/rkjyZ2nS1+54Gw+MHpcYhysp4PqPVdyip5A==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3-array": "^2.0.3", "d3-scale": "^3.0.1", "prop-types": "^15.6.2" @@ -16240,9 +16248,9 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-horizon/node_modules/d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "dependencies": { "internmap": "^1.0.0" } @@ -16260,12 +16268,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-map-box": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.19.tgz", - "integrity": "sha512-Aeb7BkeUTa0l1Qvoe+mLcKSg48oVfFRuvsJCX0lJKn6rJcqTelI6R1xflKX/wm4f3Btgb7MlCnInYAWyA+n8PA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.21.tgz", + "integrity": "sha512-jfAtR3sOw1yvI8kkbj+hVKAvqIEyRPegRxHQogPQM0Sy2Cyl2ApVtI+xi1uVML+lEiGL6DHD2GhrNg52uBskKw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "immutable": "^3.8.2", "mapbox-gl": "^0.53.0", "prop-types": "^15.6.2", @@ -16286,12 +16294,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-paired-t-test": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.19.tgz", - "integrity": "sha512-q8htwyjnMwlhwsHrDBcZ1+K4Cxj+Ijb6G4gILHn6OOXhMQgMFKQpbxJxugysRIMHCjaJK0/buvNu9yjeXn/i2g==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.21.tgz", + "integrity": "sha512-xsFYLkOb3S+V79y7m7VKjlziVvBUEfJGDHeh0HIRgUcXh2E7PRrzA+SZdVSk/MQzPQ2HJ6qR+zrQ3ITHJYqUEg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "distributions": "^1.0.0", "prop-types": "^15.6.2", "reactable": "^1.1.0" @@ -16301,12 +16309,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-parallel-coordinates": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.19.tgz", - "integrity": "sha512-3IdilVo3of0DyeCmHFktzaVamamOuolZPMS3u/TuQcC3qB6e7XmCL5tzKV6PHY4rzrsaPNMpMtvqQkz9Aq93cQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.21.tgz", + "integrity": "sha512-LtuaQ0hMw5xq85G73aOYEOPIhnHcK9pLnyNYWFXytabwBbf700iUIXlc1JN9EoZYfC8AIoj1RNNgTpz12K56Ug==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.7.2" }, @@ -16315,12 +16323,13 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-partition": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.19.tgz", - "integrity": "sha512-JPSUS03hjIezDaAmUD/TZDSAJ1tBnoK4eMwySO/eczzfPFpF8BI4WZ1jHg4Sip1GUSzvoLm/nbNVDOYFf5GW/w==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.21.tgz", + "integrity": "sha512-d49KNThMWUJ8NCJECufKlOjdFo/HcZdu39rHywPR9bqhrnPzuMCJygbAsrlr/D43q0ta7PzN45VQGNT5G3iE4w==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-hierarchy": "^1.1.8", "prop-types": "^15.6.2" @@ -16330,24 +16339,25 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-pivot-table": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.19.tgz", - "integrity": "sha512-YqLJCP07R3rzIE4LkmwAbxYHgVz/+TmJOPpU/mNgu8CpXoC8HqKY7At/11AvEO3rxGSxtkSzRDcCyR+1shvurQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.21.tgz", + "integrity": "sha512-wwdn7QYnfzdFn75LiVoHKrHEEe+y5Uif3YmspksFF+PYTFkBtyWuQ6TDrpIzXMAlPfVCIO/eczYj/zr26lEtAg==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "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.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.19.tgz", - "integrity": "sha512-/n1vll6pTvLIUYtHYmw6wfjpUbPEPolv0cBXdr6k77NtJspVokljhfeCNdQZ5b5IWXyMNbXMxj/HbQkUW1gFjA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.21.tgz", + "integrity": "sha512-d/6a4TlfJfYEU52BHJQr5xzVbaHsq2XxlHWrn10R2eVyENH5ZPBFL4U9h1+ZRAIqcGzyrBqHh8pcCIzWDNKSXw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "nvd3": "1.8.6", "prop-types": "^15.6.2" @@ -16357,12 +16367,12 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-sankey": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.19.tgz", - "integrity": "sha512-JRvBFTxQsY93X9vD2aUGK/NCUwERW7YnUROFPcQc/+r00qD7lSBI6dP4Q2n3T9lnQ1Tc2bKwxCJaT1cP8TV9LA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.21.tgz", + "integrity": "sha512-6mPZYkH/WAMlibw/qhZu29TjNToH/7IuBxr0gRRN2GaV0I3oK/ajr5Sfl+x9LfeZWKf0Z2HJlxlfQIpwKFZEtw==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-sankey": "^0.4.2", "prop-types": "^15.6.2" @@ -16372,47 +16382,49 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-sankey-loop": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.19.tgz", - "integrity": "sha512-UaYIJq3ZbrucnZqoGuF9omG8jE9K0nRY1E+pwPgc5jfuFtaxL9sxlqdEGhvQJR9mHKyk6QGO+xmMtFCWnWmmeA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.21.tgz", + "integrity": "sha512-XOI8p4Rp5WcxUSbEkRbJfM8GxKG3mJfQRkTbB6V0JuCnlNYv9kNYKDb3zgX3DwLttKbgFrDzPXDdcqMIHP44Ow==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "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.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.19.tgz", - "integrity": "sha512-sZTlD9BDkWrY7r7DAhHBNwfdPDwiUkon2rDkGoeonfJQhsivje7ugAqVFrieoCy/ycEDvhyOaM8hr3zw5IucJQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.21.tgz", + "integrity": "sha512-UOqmBqAIHL+kcIOzZGxE8H7DfMRnMFlPcr33mlVTYWIZ9JABFx+vymdWbZpdVIKRq0VwAMSsEL72c/Nsn9T9sg==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.6.2" } }, "node_modules/@superset-ui/legacy-plugin-chart-treemap": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.19.tgz", - "integrity": "sha512-KA0nn1+tk4q3UDGVa6Z0QPhKRAcV83NmHWmW/ae65nLfYNFDZqsxsfacQHGOqp5NAg3NiZfyQOu2VdbXXpOZXA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.21.tgz", + "integrity": "sha512-Qmk9lL8EhhqDE09XMbzT7+HUjzYeEiGcl1RAgmw9oMNR7gUO6U+cEDcZ25Pi8iZJHvW1eQwMXPwWzW1FBvEpFg==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "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.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.19.tgz", - "integrity": "sha512-UTu/qOr5zMGFUsJjoC2+MEGXbMhWtrtLogX/rQ5rbS9N3CnGwg2h84BqnoNf6E6enHSi/S7qXXSlFS2VKUOjEw==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.21.tgz", + "integrity": "sha512-dxW/Iq8A7vCpzoEEf0hi8cXShfETcDltxnku9YDr3pajEV5HLAVkOnUzO9emAExX4Mc/u5cYDVscW+XKRzkOlQ==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-array": "^2.4.0", "d3-color": "^1.4.1", @@ -16424,9 +16436,9 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-world-map/node_modules/d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "dependencies": { "internmap": "^1.0.0" } @@ -16437,13 +16449,13 @@ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "node_modules/@superset-ui/legacy-preset-chart-big-number": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.19.tgz", - "integrity": "sha512-ct1Udvrdv0Q26PcLAHFXwtpEEbsj2Yb2WvIWUWgBzL2WGd89vXWWwdwo2dP5Vo46y2HqsfU3g0DjfTLKIdOw9Q==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.21.tgz", + "integrity": "sha512-XitJjvItoPUUk5VwH5ONh4JV12ED4W7v0nli/hLVfqVzo7FppRVVqI1UXrBYrccBaacwdWPUMD5Kt5Ajm3+M1A==", "dependencies": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/d3-color": "^1.2.2", "@types/shortid": "^0.0.29", "d3-color": "^1.2.3", @@ -16479,13 +16491,13 @@ } }, "node_modules/@superset-ui/legacy-preset-chart-nvd3": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.19.tgz", - "integrity": "sha512-y9ymZOYQ21yh1j+sIHSUucF4BcmwqAysqnjnCBiwv1n9Kd0IL2rok5Yzd5mIbIdwK3tUOjXbBwQL2QlD/s+RwA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.21.tgz", + "integrity": "sha512-0HKLb8yfjIcNZ/hvqa4a3BTDcb4piysoQvLJbmT6tJs3d0SkVcho7VoJf7qR1agMuXxYIx0uOd+XKX13SiMK/g==", "dependencies": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-tip": "^0.9.1", "dompurify": "^2.0.6", @@ -16502,12 +16514,12 @@ } }, "node_modules/@superset-ui/plugin-chart-echarts": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.19.tgz", - "integrity": "sha512-gufkBJkg+AO3j5slgTTMZulCGG/6/EQtxNd5Xu6erOnzCXvBkHyEHfU/5Lv+p7DyyBQbWorf5TBLCkO8to1ksg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.21.tgz", + "integrity": "sha512-cWNBQnnfP0UJyLDbhOtpK9OosPAv97ls3YK7CF36/BjhhH3NHBgMd61DUyHzGKPLZZGnjwK6fAfw5tWjdQ8h+A==", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/mathjs": "^6.0.7", "d3-array": "^1.2.0", "echarts": "^5.0.2", @@ -16518,13 +16530,14 @@ } }, "node_modules/@superset-ui/plugin-chart-table": { - "version": "0.17.20", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.20.tgz", - "integrity": "sha512-gWcHbt36FTvFPc0MZzX+EHgZDiB8jwdAvMQX2AFeb9BEiba45b9ZdkuLyslqa4LQM84KCuVD+V+I29VplacTAg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.21.tgz", + "integrity": "sha512-s3pMfC2mreN4M7H0fnlDA2gwHAjY/5LvtJIOIyGJxumyrsed+KeHr8Y945uEzdgtGsg+ymBYSBbbPh3vlwulhQ==", + "license": "Apache-2.0", "dependencies": { "@emotion/core": "^10.0.28", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/d3-array": "^2.0.0", "@types/react-table": "^7.0.19", "d3-array": "^2.4.0", @@ -16542,20 +16555,21 @@ } }, "node_modules/@superset-ui/plugin-chart-table/node_modules/d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "dependencies": { "internmap": "^1.0.0" } }, "node_modules/@superset-ui/plugin-chart-word-cloud": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.19.tgz", - "integrity": "sha512-TDBJUn8U4mcQsiApGuRBT/Ddd744W9Pcn6nNC2psWvwsKqnOBgB/TMDLVxSFc+yD+gR+yQw6nhBHxl6Z1dXfyg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.21.tgz", + "integrity": "sha512-KLwaYJw/qB12L2KSShGqQOXpilTQxD+8iznJ5kuwQBGSsYuJc6mQ/2kd3QrAMjvJ39t1jECYztid6eFGW2lvdA==", + "license": "Apache-2.0", "dependencies": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/d3-cloud": "^1.2.1", "@types/d3-scale": "^2.0.2", "d3-cloud": "^1.2.5", @@ -16569,9 +16583,9 @@ } }, "node_modules/@superset-ui/plugin-chart-word-cloud/node_modules/d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "dependencies": { "internmap": "^1.0.0" } @@ -16589,14 +16603,14 @@ } }, "node_modules/@superset-ui/preset-chart-xy": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.19.tgz", - "integrity": "sha512-o4nnpNGniM+7BxToQ4UvGl6oGuHr0ftrNU2nRRbeaRLcdwBqApRSI+IJCL+UujIvCom3rn1pGadPPUJ4pyyHzQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.21.tgz", + "integrity": "sha512-mwCnfdg0Kpc2ULXZKwdF1vXEoIDdvtu1sTyKUqyXADqn+fQ233cVRUwYaKgh/FniPGkhIqY5mi62AyBRXUU12Q==", "dependencies": { "@data-ui/theme": "^0.0.84", "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@vx/axis": "^0.0.198", "@vx/legend": "^0.0.198", "@vx/scale": "^0.0.197", @@ -71941,19 +71955,19 @@ } }, "@superset-ui/chart-controls": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.19.tgz", - "integrity": "sha512-27nR2BKm+Eskk/IQJ461MTkZQ0kLUhMTl94yZ4qKS7heh36MrEhCT/eJugCnimiUaUkWsyTW254KySEJty75vg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.21.tgz", + "integrity": "sha512-wLVa9H4kHGZWxnJ5lXXU/1DH/4nnAy7ZjYrVPoY16elWPbP2SnxuQwrQKG1CEUBIciODbT8IXHkHj4/+o4bStQ==", "requires": { - "@superset-ui/core": "0.17.18", + "@superset-ui/core": "0.17.21", "lodash": "^4.17.15", "prop-types": "^15.7.2" } }, "@superset-ui/core": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.18.tgz", - "integrity": "sha512-7k06rxn9SxIg6H8HUZAoXtVGxhCiQtQ9hkycBpekTDX+UtjGlXi641abo+8A13Lx4uM8d86/fgmu6nhwEm/ZfA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.21.tgz", + "integrity": "sha512-NhWBwMJZU3xcaoTpZe4ePQWhMFUW/w5dAuuzRxKQVuXdvxAPlw1ejWaHxOKQplgPp/6DSs4FESxXfTeovaIqxg==", "requires": { "@babel/runtime": "^7.1.2", "@emotion/core": "^10.0.28", @@ -71979,6 +71993,7 @@ "lodash": "^4.17.11", "pretty-ms": "^7.0.0", "react-error-boundary": "^1.2.5", + "react-markdown": "^4.3.1", "reselect": "^4.0.0", "rison": "^0.1.1", "seedrandom": "^3.0.5", @@ -72020,12 +72035,12 @@ } }, "@superset-ui/legacy-plugin-chart-calendar": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.19.tgz", - "integrity": "sha512-TYYoT+QrLTsNnUWAp08XplWuOrMdZ2i3B4zjTogImEdiUKQ/af68HxYGw+9o6RLbrsh1TCB+Aw5Mws8GTUvU7Q==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.21.tgz", + "integrity": "sha512-bgTaiQrDx3qEGkPfXQtdDuujlq8TVL7n0358DAuaJkz9BoysaiL/gc5nEOe14OAc5mZ0s9AsnsK6Dfwer277mg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3-array": "^2.0.3", "d3-selection": "^1.4.0", "d3-tip": "^0.9.1", @@ -72033,9 +72048,9 @@ }, "dependencies": { "d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "requires": { "internmap": "^1.0.0" } @@ -72043,33 +72058,33 @@ } }, "@superset-ui/legacy-plugin-chart-chord": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.19.tgz", - "integrity": "sha512-GnQGqEXVjHwzFQHKyJMDnhILGOV7YBzQV6+k90ezD4m+Pceopo+p5cqGkznggOCAADawXIJAercRhOMoM3j90A==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.21.tgz", + "integrity": "sha512-8iEtkq5LVadGjEkKI/KqimzPQE5b3XRwlMADEyLs4yRmYIlYKrkP53RrIbDiSSTC0qv+ApyTAame4eSNEKS1tg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.6.2", "react": "^16.13.1" } }, "@superset-ui/legacy-plugin-chart-country-map": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.19.tgz", - "integrity": "sha512-nmZ+r1UlI4c24D6ILVJPZvWNSpqwUFzhCVsGXvUn6bZWkfNQNO+fSaqmImafY0yABBdsljGu4QxF1MBct/8sdw==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.21.tgz", + "integrity": "sha512-BNgFzxoFCJ4dAwmN0frPWmKKN9SmpAvC26Ba9rUktbIaZK6q56fNFFCl++z4d9LVxAosHCAlo7JnkTgl5cjIBg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-array": "^2.0.3", "prop-types": "^15.6.2" }, "dependencies": { "d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "requires": { "internmap": "^1.0.0" } @@ -72077,34 +72092,34 @@ } }, "@superset-ui/legacy-plugin-chart-event-flow": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.19.tgz", - "integrity": "sha512-rqYVwCE6EKisM7Bfm+Li0jfji/zy5I8/IacaMnsL+9p4eqvMxKGg1HGy7XH82v3mYqqNtlXzS1hOtHykK8JemQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.21.tgz", + "integrity": "sha512-T8Tc4f1mOlUvKjG28Mhu88qdcI+ZPovQJNi7KiwEh9CaKL6uW+atshF/B6AkofZbJGzCpSB20/xyVmADzctczg==", "requires": { "@data-ui/event-flow": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-force-directed": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.19.tgz", - "integrity": "sha512-rk5J1oHzWrubrRZYpk5ZXWaDPr0MLILrumJTMTZo0NtimwvKoLHGhSgY33KzA/ixuXNM5KrvR10GmMx4Hg9JbA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.21.tgz", + "integrity": "sha512-Ol8QzT1q8hsVu/9Cscsg5Vk4ATDXzgfpGMXAySFAxC02isfzrTQffKUnZ42lhMAXG+6fBk0iSFfovhSZlK+49A==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.7.2" } }, "@superset-ui/legacy-plugin-chart-heatmap": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.19.tgz", - "integrity": "sha512-NN+9sJeYaw0x0arva+CynDidorNpwsj//u8F6+V3FnHaGgJfVUfAbk9mlU5FA+j0eTaeTipF4InqeTOiiaYRSQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.21.tgz", + "integrity": "sha512-ok4vIwbkpfHbjjU2bME8Ov6P/UdNTTCemo3vU30qNCTv+N6mMzliNvr1FwqZeKxEFFp9A2JDGURrnU9w2t+G5w==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-svg-legend": "^1.x", "d3-tip": "^0.9.1", @@ -72112,14 +72127,14 @@ } }, "@superset-ui/legacy-plugin-chart-histogram": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.19.tgz", - "integrity": "sha512-EU5GQqyRlcL2hMyBlHU005Ak+gKkthJJ85cZrRSfS4mdhwPsdjfOc6qbEjFEaqyYub32VcD8dNPMV65kIVdtww==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.21.tgz", + "integrity": "sha512-ZyP0SYpzMXnvTce4nc8aui283G8xk+slOfjqoIJHj9tTqi67KwqHsuxoaETAClSZNLtS/H1ZOo7Mass/3r5t3Q==", "requires": { "@data-ui/histogram": "^0.0.84", "@data-ui/theme": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@vx/legend": "^0.0.198", "@vx/responsive": "^0.0.199", "@vx/scale": "^0.0.197", @@ -72187,21 +72202,21 @@ } }, "@superset-ui/legacy-plugin-chart-horizon": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.19.tgz", - "integrity": "sha512-T7X2KsxmWGZ0jXQ3Q6lFc5hwocZJnGFasgmqW052uzE49YrLyK26FXCiqUc3gI81Nxtb4VtnQF/VSaNVGaNMTQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.21.tgz", + "integrity": "sha512-LR4rZDff/C15ea7ap49J5w3tH3Uftw3JafjbPWPPgS5SujaNeG/rkjyZ2nS1+54Gw+MHpcYhysp4PqPVdyip5A==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3-array": "^2.0.3", "d3-scale": "^3.0.1", "prop-types": "^15.6.2" }, "dependencies": { "d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "requires": { "internmap": "^1.0.0" } @@ -72221,12 +72236,12 @@ } }, "@superset-ui/legacy-plugin-chart-map-box": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.19.tgz", - "integrity": "sha512-Aeb7BkeUTa0l1Qvoe+mLcKSg48oVfFRuvsJCX0lJKn6rJcqTelI6R1xflKX/wm4f3Btgb7MlCnInYAWyA+n8PA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.21.tgz", + "integrity": "sha512-jfAtR3sOw1yvI8kkbj+hVKAvqIEyRPegRxHQogPQM0Sy2Cyl2ApVtI+xi1uVML+lEiGL6DHD2GhrNg52uBskKw==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "immutable": "^3.8.2", "mapbox-gl": "^0.53.0", "prop-types": "^15.6.2", @@ -72243,118 +72258,118 @@ } }, "@superset-ui/legacy-plugin-chart-paired-t-test": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.19.tgz", - "integrity": "sha512-q8htwyjnMwlhwsHrDBcZ1+K4Cxj+Ijb6G4gILHn6OOXhMQgMFKQpbxJxugysRIMHCjaJK0/buvNu9yjeXn/i2g==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.21.tgz", + "integrity": "sha512-xsFYLkOb3S+V79y7m7VKjlziVvBUEfJGDHeh0HIRgUcXh2E7PRrzA+SZdVSk/MQzPQ2HJ6qR+zrQ3ITHJYqUEg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "distributions": "^1.0.0", "prop-types": "^15.6.2", "reactable": "^1.1.0" } }, "@superset-ui/legacy-plugin-chart-parallel-coordinates": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.19.tgz", - "integrity": "sha512-3IdilVo3of0DyeCmHFktzaVamamOuolZPMS3u/TuQcC3qB6e7XmCL5tzKV6PHY4rzrsaPNMpMtvqQkz9Aq93cQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.21.tgz", + "integrity": "sha512-LtuaQ0hMw5xq85G73aOYEOPIhnHcK9pLnyNYWFXytabwBbf700iUIXlc1JN9EoZYfC8AIoj1RNNgTpz12K56Ug==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.7.2" } }, "@superset-ui/legacy-plugin-chart-partition": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.19.tgz", - "integrity": "sha512-JPSUS03hjIezDaAmUD/TZDSAJ1tBnoK4eMwySO/eczzfPFpF8BI4WZ1jHg4Sip1GUSzvoLm/nbNVDOYFf5GW/w==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.21.tgz", + "integrity": "sha512-d49KNThMWUJ8NCJECufKlOjdFo/HcZdu39rHywPR9bqhrnPzuMCJygbAsrlr/D43q0ta7PzN45VQGNT5G3iE4w==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-hierarchy": "^1.1.8", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-pivot-table": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.19.tgz", - "integrity": "sha512-YqLJCP07R3rzIE4LkmwAbxYHgVz/+TmJOPpU/mNgu8CpXoC8HqKY7At/11AvEO3rxGSxtkSzRDcCyR+1shvurQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.21.tgz", + "integrity": "sha512-wwdn7QYnfzdFn75LiVoHKrHEEe+y5Uif3YmspksFF+PYTFkBtyWuQ6TDrpIzXMAlPfVCIO/eczYj/zr26lEtAg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "datatables.net-bs": "^1.10.15", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-rose": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.19.tgz", - "integrity": "sha512-/n1vll6pTvLIUYtHYmw6wfjpUbPEPolv0cBXdr6k77NtJspVokljhfeCNdQZ5b5IWXyMNbXMxj/HbQkUW1gFjA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.21.tgz", + "integrity": "sha512-d/6a4TlfJfYEU52BHJQr5xzVbaHsq2XxlHWrn10R2eVyENH5ZPBFL4U9h1+ZRAIqcGzyrBqHh8pcCIzWDNKSXw==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "nvd3": "1.8.6", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-sankey": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.19.tgz", - "integrity": "sha512-JRvBFTxQsY93X9vD2aUGK/NCUwERW7YnUROFPcQc/+r00qD7lSBI6dP4Q2n3T9lnQ1Tc2bKwxCJaT1cP8TV9LA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.21.tgz", + "integrity": "sha512-6mPZYkH/WAMlibw/qhZu29TjNToH/7IuBxr0gRRN2GaV0I3oK/ajr5Sfl+x9LfeZWKf0Z2HJlxlfQIpwKFZEtw==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-sankey": "^0.4.2", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-sankey-loop": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.19.tgz", - "integrity": "sha512-UaYIJq3ZbrucnZqoGuF9omG8jE9K0nRY1E+pwPgc5jfuFtaxL9sxlqdEGhvQJR9mHKyk6QGO+xmMtFCWnWmmeA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.21.tgz", + "integrity": "sha512-XOI8p4Rp5WcxUSbEkRbJfM8GxKG3mJfQRkTbB6V0JuCnlNYv9kNYKDb3zgX3DwLttKbgFrDzPXDdcqMIHP44Ow==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "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.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.19.tgz", - "integrity": "sha512-sZTlD9BDkWrY7r7DAhHBNwfdPDwiUkon2rDkGoeonfJQhsivje7ugAqVFrieoCy/ycEDvhyOaM8hr3zw5IucJQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.21.tgz", + "integrity": "sha512-UOqmBqAIHL+kcIOzZGxE8H7DfMRnMFlPcr33mlVTYWIZ9JABFx+vymdWbZpdVIKRq0VwAMSsEL72c/Nsn9T9sg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "prop-types": "^15.6.2" } }, "@superset-ui/legacy-plugin-chart-treemap": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.19.tgz", - "integrity": "sha512-KA0nn1+tk4q3UDGVa6Z0QPhKRAcV83NmHWmW/ae65nLfYNFDZqsxsfacQHGOqp5NAg3NiZfyQOu2VdbXXpOZXA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.21.tgz", + "integrity": "sha512-Qmk9lL8EhhqDE09XMbzT7+HUjzYeEiGcl1RAgmw9oMNR7gUO6U+cEDcZ25Pi8iZJHvW1eQwMXPwWzW1FBvEpFg==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "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.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.19.tgz", - "integrity": "sha512-UTu/qOr5zMGFUsJjoC2+MEGXbMhWtrtLogX/rQ5rbS9N3CnGwg2h84BqnoNf6E6enHSi/S7qXXSlFS2VKUOjEw==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.21.tgz", + "integrity": "sha512-dxW/Iq8A7vCpzoEEf0hi8cXShfETcDltxnku9YDr3pajEV5HLAVkOnUzO9emAExX4Mc/u5cYDVscW+XKRzkOlQ==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-array": "^2.4.0", "d3-color": "^1.4.1", @@ -72363,9 +72378,9 @@ }, "dependencies": { "d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "requires": { "internmap": "^1.0.0" } @@ -72378,13 +72393,13 @@ } }, "@superset-ui/legacy-preset-chart-big-number": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.19.tgz", - "integrity": "sha512-ct1Udvrdv0Q26PcLAHFXwtpEEbsj2Yb2WvIWUWgBzL2WGd89vXWWwdwo2dP5Vo46y2HqsfU3g0DjfTLKIdOw9Q==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.21.tgz", + "integrity": "sha512-XitJjvItoPUUk5VwH5ONh4JV12ED4W7v0nli/hLVfqVzo7FppRVVqI1UXrBYrccBaacwdWPUMD5Kt5Ajm3+M1A==", "requires": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/d3-color": "^1.2.2", "@types/shortid": "^0.0.29", "d3-color": "^1.2.3", @@ -72417,13 +72432,13 @@ } }, "@superset-ui/legacy-preset-chart-nvd3": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.19.tgz", - "integrity": "sha512-y9ymZOYQ21yh1j+sIHSUucF4BcmwqAysqnjnCBiwv1n9Kd0IL2rok5Yzd5mIbIdwK3tUOjXbBwQL2QlD/s+RwA==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.21.tgz", + "integrity": "sha512-0HKLb8yfjIcNZ/hvqa4a3BTDcb4piysoQvLJbmT6tJs3d0SkVcho7VoJf7qR1agMuXxYIx0uOd+XKX13SiMK/g==", "requires": { "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "d3": "^3.5.17", "d3-tip": "^0.9.1", "dompurify": "^2.0.6", @@ -72437,12 +72452,12 @@ } }, "@superset-ui/plugin-chart-echarts": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.19.tgz", - "integrity": "sha512-gufkBJkg+AO3j5slgTTMZulCGG/6/EQtxNd5Xu6erOnzCXvBkHyEHfU/5Lv+p7DyyBQbWorf5TBLCkO8to1ksg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.21.tgz", + "integrity": "sha512-cWNBQnnfP0UJyLDbhOtpK9OosPAv97ls3YK7CF36/BjhhH3NHBgMd61DUyHzGKPLZZGnjwK6fAfw5tWjdQ8h+A==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/mathjs": "^6.0.7", "d3-array": "^1.2.0", "echarts": "^5.0.2", @@ -72450,13 +72465,13 @@ } }, "@superset-ui/plugin-chart-table": { - "version": "0.17.20", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.20.tgz", - "integrity": "sha512-gWcHbt36FTvFPc0MZzX+EHgZDiB8jwdAvMQX2AFeb9BEiba45b9ZdkuLyslqa4LQM84KCuVD+V+I29VplacTAg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.21.tgz", + "integrity": "sha512-s3pMfC2mreN4M7H0fnlDA2gwHAjY/5LvtJIOIyGJxumyrsed+KeHr8Y945uEzdgtGsg+ymBYSBbbPh3vlwulhQ==", "requires": { "@emotion/core": "^10.0.28", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/d3-array": "^2.0.0", "@types/react-table": "^7.0.19", "d3-array": "^2.4.0", @@ -72469,9 +72484,9 @@ }, "dependencies": { "d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "requires": { "internmap": "^1.0.0" } @@ -72479,12 +72494,12 @@ } }, "@superset-ui/plugin-chart-word-cloud": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.19.tgz", - "integrity": "sha512-TDBJUn8U4mcQsiApGuRBT/Ddd744W9Pcn6nNC2psWvwsKqnOBgB/TMDLVxSFc+yD+gR+yQw6nhBHxl6Z1dXfyg==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.21.tgz", + "integrity": "sha512-KLwaYJw/qB12L2KSShGqQOXpilTQxD+8iznJ5kuwQBGSsYuJc6mQ/2kd3QrAMjvJ39t1jECYztid6eFGW2lvdA==", "requires": { - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@types/d3-cloud": "^1.2.1", "@types/d3-scale": "^2.0.2", "d3-cloud": "^1.2.5", @@ -72494,9 +72509,9 @@ }, "dependencies": { "d3-array": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.11.0.tgz", - "integrity": "sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", "requires": { "internmap": "^1.0.0" } @@ -72516,14 +72531,14 @@ } }, "@superset-ui/preset-chart-xy": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.19.tgz", - "integrity": "sha512-o4nnpNGniM+7BxToQ4UvGl6oGuHr0ftrNU2nRRbeaRLcdwBqApRSI+IJCL+UujIvCom3rn1pGadPPUJ4pyyHzQ==", + "version": "0.17.21", + "resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.21.tgz", + "integrity": "sha512-mwCnfdg0Kpc2ULXZKwdF1vXEoIDdvtu1sTyKUqyXADqn+fQ233cVRUwYaKgh/FniPGkhIqY5mi62AyBRXUU12Q==", "requires": { "@data-ui/theme": "^0.0.84", "@data-ui/xy-chart": "^0.0.84", - "@superset-ui/chart-controls": "0.17.19", - "@superset-ui/core": "0.17.18", + "@superset-ui/chart-controls": "0.17.21", + "@superset-ui/core": "0.17.21", "@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 d78002dbec134..9a3ccfb23312c 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -65,34 +65,34 @@ "@babel/runtime-corejs3": "^7.12.5", "@data-ui/sparkline": "^0.0.84", "@emotion/core": "^10.0.35", - "@superset-ui/chart-controls": "^0.17.19", - "@superset-ui/core": "^0.17.18", - "@superset-ui/legacy-plugin-chart-calendar": "^0.17.19", - "@superset-ui/legacy-plugin-chart-chord": "^0.17.19", - "@superset-ui/legacy-plugin-chart-country-map": "^0.17.19", - "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.19", - "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.19", - "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.19", - "@superset-ui/legacy-plugin-chart-histogram": "^0.17.19", - "@superset-ui/legacy-plugin-chart-horizon": "^0.17.19", - "@superset-ui/legacy-plugin-chart-map-box": "^0.17.19", - "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.19", - "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.19", - "@superset-ui/legacy-plugin-chart-partition": "^0.17.19", - "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.19", - "@superset-ui/legacy-plugin-chart-rose": "^0.17.19", - "@superset-ui/legacy-plugin-chart-sankey": "^0.17.19", - "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.19", - "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.19", - "@superset-ui/legacy-plugin-chart-treemap": "^0.17.19", - "@superset-ui/legacy-plugin-chart-world-map": "^0.17.19", - "@superset-ui/legacy-preset-chart-big-number": "^0.17.19", + "@superset-ui/chart-controls": "^0.17.21", + "@superset-ui/core": "^0.17.21", + "@superset-ui/legacy-plugin-chart-calendar": "^0.17.21", + "@superset-ui/legacy-plugin-chart-chord": "^0.17.21", + "@superset-ui/legacy-plugin-chart-country-map": "^0.17.21", + "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.21", + "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.21", + "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.21", + "@superset-ui/legacy-plugin-chart-histogram": "^0.17.21", + "@superset-ui/legacy-plugin-chart-horizon": "^0.17.21", + "@superset-ui/legacy-plugin-chart-map-box": "^0.17.21", + "@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.21", + "@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.21", + "@superset-ui/legacy-plugin-chart-partition": "^0.17.21", + "@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.21", + "@superset-ui/legacy-plugin-chart-rose": "^0.17.21", + "@superset-ui/legacy-plugin-chart-sankey": "^0.17.21", + "@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.21", + "@superset-ui/legacy-plugin-chart-sunburst": "^0.17.21", + "@superset-ui/legacy-plugin-chart-treemap": "^0.17.21", + "@superset-ui/legacy-plugin-chart-world-map": "^0.17.21", + "@superset-ui/legacy-preset-chart-big-number": "^0.17.21", "@superset-ui/legacy-preset-chart-deckgl": "^0.4.6", - "@superset-ui/legacy-preset-chart-nvd3": "^0.17.19", - "@superset-ui/plugin-chart-echarts": "^0.17.19", - "@superset-ui/plugin-chart-table": "^0.17.20", - "@superset-ui/plugin-chart-word-cloud": "^0.17.19", - "@superset-ui/preset-chart-xy": "^0.17.19", + "@superset-ui/legacy-preset-chart-nvd3": "^0.17.21", + "@superset-ui/plugin-chart-echarts": "^0.17.21", + "@superset-ui/plugin-chart-table": "^0.17.21", + "@superset-ui/plugin-chart-word-cloud": "^0.17.21", + "@superset-ui/preset-chart-xy": "^0.17.21", "@vx/responsive": "^0.0.195", "abortcontroller-polyfill": "^1.1.9", "antd": "^4.9.4", diff --git a/superset-frontend/spec/javascripts/explore/components/DatasourcePanel_spec.jsx b/superset-frontend/spec/javascripts/explore/components/DatasourcePanel_spec.jsx index df57ee1df3b5d..c0ddb5b3db848 100644 --- a/superset-frontend/spec/javascripts/explore/components/DatasourcePanel_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/components/DatasourcePanel_spec.jsx @@ -72,6 +72,7 @@ describe('datasourcepanel', () => { expect(screen.getByText('birth_names')).toBeTruthy(); expect(screen.getByText('Columns')).toBeTruthy(); expect(screen.getByText('Metrics')).toBeTruthy(); + expect(screen.queryByTestId('warning')).not.toBeInTheDocument(); }); it('should render search results', () => { @@ -103,4 +104,24 @@ describe('datasourcepanel', () => { expect(c[0].value).toBe('metric_end_certified'); }, 201); }); + + it('should render a warning', () => { + const deprecatedDatasource = { + ...datasource, + extra: JSON.stringify({ warning_markdown: 'This is a warning.' }), + }; + render( + setup({ + ...props, + datasource: deprecatedDatasource, + controls: { + datasource: { + ...props.controls.datasource, + datasource: deprecatedDatasource, + }, + }, + }), + ); + expect(screen.getByTestId('alert-solid')).toBeTruthy(); + }); }); diff --git a/superset-frontend/src/components/CertifiedIconWithTooltip.tsx b/superset-frontend/src/components/CertifiedIconWithTooltip.tsx index dc4d5ed72c84f..2a542511653da 100644 --- a/superset-frontend/src/components/CertifiedIconWithTooltip.tsx +++ b/superset-frontend/src/components/CertifiedIconWithTooltip.tsx @@ -37,7 +37,11 @@ function CertifiedIconWithTooltip({ id="certified-details-tooltip" title={ <> - {certifiedBy &&
{t('Certified by %s', certifiedBy)}
} + {certifiedBy && ( +
+ {t('Certified by %s', certifiedBy)} +
+ )}
{details}
} diff --git a/superset-frontend/src/components/TableSelector/index.tsx b/superset-frontend/src/components/TableSelector/index.tsx index f66b9b2115c0f..3be0167c8c1e6 100644 --- a/superset-frontend/src/components/TableSelector/index.tsx +++ b/superset-frontend/src/components/TableSelector/index.tsx @@ -30,6 +30,7 @@ import FormLabel from 'src/components/FormLabel'; import DatabaseSelector from 'src/components/DatabaseSelector'; import RefreshLabel from 'src/components/RefreshLabel'; import CertifiedIconWithTooltip from 'src/components/CertifiedIconWithTooltip'; +import WarningIconWithTooltip from 'src/components/WarningIconWithTooltip'; const FieldTitle = styled.p` color: ${({ theme }) => theme.colors.secondary.light2}; @@ -266,6 +267,12 @@ const TableSelector: FunctionComponent = ({ size={20} /> )} + {option.extra?.warning_markdown && ( + + )} {option.label} ); diff --git a/superset-frontend/src/components/WarningIconWithTooltip.tsx b/superset-frontend/src/components/WarningIconWithTooltip.tsx new file mode 100644 index 0000000000000..fdd4a0fd4f691 --- /dev/null +++ b/superset-frontend/src/components/WarningIconWithTooltip.tsx @@ -0,0 +1,48 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import { supersetTheme, SafeMarkdown } from '@superset-ui/core'; +import Icon from 'src/components/Icon'; +import { Tooltip } from 'src/common/components/Tooltip'; + +interface WarningIconWithTooltipProps { + warningMarkdown: string; + size?: number; +} + +function WarningIconWithTooltip({ + warningMarkdown, + size = 24, +}: WarningIconWithTooltipProps) { + return ( + } + > + + + ); +} + +export default WarningIconWithTooltip; diff --git a/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx b/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx index b071a9982dfeb..1170bf25f57cf 100644 --- a/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx +++ b/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx @@ -18,14 +18,11 @@ */ import React from 'react'; import PropTypes from 'prop-types'; -import ReactMarkdown from 'react-markdown'; -import htmlParser from 'react-markdown/plugins/html-parser'; import cx from 'classnames'; -import { t } from '@superset-ui/core'; +import { t, SafeMarkdown } from '@superset-ui/core'; import { Logger, LOG_ACTIONS_RENDER_CHART } from 'src/logger/LogUtils'; import { MarkdownEditor } from 'src/components/AsyncAceEditor'; -import { isFeatureEnabled, FeatureFlag } from 'src/featureFlags'; import DeleteComponentButton from 'src/dashboard/components/DeleteComponentButton'; import DragDroppable from 'src/dashboard/components/dnd/DragDroppable'; @@ -80,14 +77,6 @@ Click here to edit [markdown](https://bit.ly/1dQOfRK)`; const MARKDOWN_ERROR_MESSAGE = t('This markdown component has an error.'); -function isSafeMarkup(node) { - if (node.type === 'html') { - return /href="(javascript|vbscript|file):.*"/gim.test(node.value) === false; - } - - return true; -} - class Markdown extends React.PureComponent { constructor(props) { super(props); @@ -257,7 +246,7 @@ class Markdown extends React.PureComponent { showGutter={false} editorProps={{ $blockScrolling: true }} value={ - // thisl allows "select all => delete" to give an empty editor + // this allows "select all => delete" to give an empty editor typeof this.state.markdownSource === 'string' ? this.state.markdownSource : MARKDOWN_PLACE_HOLDER @@ -271,21 +260,14 @@ class Markdown extends React.PureComponent { renderPreviewMode() { const { hasError } = this.state; + return ( - node.type !== 'script', - }), - ]} /> ); } diff --git a/superset-frontend/src/datasource/DatasourceEditor.jsx b/superset-frontend/src/datasource/DatasourceEditor.jsx index 315d5d6555d97..0704314c25d1e 100644 --- a/superset-frontend/src/datasource/DatasourceEditor.jsx +++ b/superset-frontend/src/datasource/DatasourceEditor.jsx @@ -27,6 +27,7 @@ import { styled, SupersetClient, t, supersetTheme } from '@superset-ui/core'; import Button from 'src/components/Button'; import Tabs from 'src/common/components/Tabs'; import CertifiedIconWithTooltip from 'src/components/CertifiedIconWithTooltip'; +import WarningIconWithTooltip from 'src/components/WarningIconWithTooltip'; import DatabaseSelector from 'src/components/DatabaseSelector'; import Icon from 'src/components/Icon'; import Label from 'src/components/Label'; @@ -564,9 +565,9 @@ class DatasourceEditor extends React.PureComponent { label={t('Extra')} description={t( 'Extra data to specify table metadata. Currently supports ' + - 'certification data of the format: `{ "certification": { "certified_by": ' + + 'metadata of the format: `{ "certification": { "certified_by": ' + '"Data Platform Team", "details": "This table is the source of truth." ' + - '} }`.', + '}, "warning_markdown": "This is a warning." }`.', )} control={ } /> - - } - /> } /> + + } + /> } @@ -938,6 +938,11 @@ class DatasourceEditor extends React.PureComponent { details={record.certification_details} /> )} + {record.warning_markdown && ( + + )} ), diff --git a/superset-frontend/src/datasource/DatasourceModal.tsx b/superset-frontend/src/datasource/DatasourceModal.tsx index 1f4a1781461c2..1174e7913fbc8 100644 --- a/superset-frontend/src/datasource/DatasourceModal.tsx +++ b/superset-frontend/src/datasource/DatasourceModal.tsx @@ -61,15 +61,17 @@ interface DatasourceModalProps { } function buildMetricExtraJsonObject(metric: Record) { - if (metric?.certified_by || metric?.certification_details) { - return JSON.stringify({ - certification: { - certified_by: metric?.certified_by ?? null, - details: metric?.certification_details ?? null, - }, - }); - } - return null; + const certification = + metric?.certified_by || metric?.certification_details + ? { + certified_by: metric?.certified_by, + details: metric?.certification_details, + } + : undefined; + return JSON.stringify({ + certification, + warning_markdown: metric?.warning_markdown, + }); } const DatasourceModal: FunctionComponent = ({ diff --git a/superset-frontend/src/explore/components/controls/DatasourceControl.jsx b/superset-frontend/src/explore/components/controls/DatasourceControl.jsx index 89d293f4925ca..042a0de53456e 100644 --- a/superset-frontend/src/explore/components/controls/DatasourceControl.jsx +++ b/superset-frontend/src/explore/components/controls/DatasourceControl.jsx @@ -28,6 +28,7 @@ import DatasourceModal from 'src/datasource/DatasourceModal'; import { postForm } from 'src/explore/exploreUtils'; import Button from 'src/components/Button'; import ErrorAlert from 'src/components/ErrorMessage/ErrorAlert'; +import WarningIconWithTooltip from 'src/components/WarningIconWithTooltip'; const propTypes = { actions: PropTypes.object.isRequired, @@ -178,6 +179,13 @@ class DatasourceControl extends React.PureComponent { const { health_check_message: healthCheckMessage } = datasource; + let extra = {}; + if (datasource?.extra) { + try { + extra = JSON.parse(datasource?.extra); + } catch {} // eslint-disable-line no-empty + } + return (
@@ -200,6 +208,12 @@ class DatasourceControl extends React.PureComponent { /> )} + {extra?.warning_markdown && ( // eslint-disable-line camelcase + + )} = ({ const titleLink = {datasetTitle}; try { const parsedExtra = JSON.parse(extra); - return parsedExtra?.certification ? ( + return ( - + {parsedExtra?.certification && ( + + )} + {parsedExtra?.warning_markdown && ( + + )} {titleLink} - ) : ( - titleLink ); } catch { return titleLink; diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index c1eb02127ec25..d0ac420861f8e 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -415,9 +415,18 @@ def certified_by(self) -> Optional[str]: def certification_details(self) -> Optional[str]: return self.get_extra_dict().get("certification", {}).get("details") + @property + def warning_markdown(self) -> Optional[str]: + return self.get_extra_dict().get("warning_markdown") + @property def data(self) -> Dict[str, Any]: - attrs = ("is_certified", "certified_by", "certification_details") + attrs = ( + "is_certified", + "certified_by", + "certification_details", + "warning_markdown", + ) attr_dict = {s: getattr(self, s) for s in attrs} attr_dict.update(super().data) @@ -485,7 +494,7 @@ class SqlaTable( # pylint: disable=too-many-public-methods,too-many-instance-at "fetch_values_predicate", "extra", ] - update_from_object_fields = [f for f in export_fields if not f == "database_id"] + update_from_object_fields = [f for f in export_fields if f != "database_id"] export_parent = "database" export_children = ["metrics", "columns"] @@ -715,6 +724,7 @@ def data(self) -> Dict[str, Any]: if config.get("DATASET_HEALTH_CHECK") else None ) + data_["extra"] = self.extra return data_ @property diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py index 423fc4e649331..8f2681dd2aeab 100644 --- a/superset/connectors/sqla/views.py +++ b/superset/connectors/sqla/views.py @@ -235,10 +235,10 @@ class SqlMetricInlineView( # pylint: disable=too-many-ancestors ), "extra": utils.markdown( "Extra data to specify metric metadata. Currently supports " - 'certification data of the format: `{ "certification": "certified_by": ' + 'metadata of the format: `{ "certification": { "certified_by": ' '"Data Platform Team", "details": "This metric is the source of truth." ' - "} }`. This should be modified from the edit datasource model in " - "Explore to ensure correct formatting.", + '}, "warning_markdown": "This is a warning." }`. This should be modified ' + "from the edit datasource model in Explore to ensure correct formatting.", True, ), } @@ -463,9 +463,9 @@ class TableModelView( # pylint: disable=too-many-ancestors ), "extra": utils.markdown( "Extra data to specify table metadata. Currently supports " - 'certification data of the format: `{ "certification": { "certified_by": ' + 'metadata of the format: `{ "certification": { "certified_by": ' '"Data Platform Team", "details": "This table is the source of truth." ' - "} }`.", + '}, "warning_markdown": "This is a warning." }`.', True, ), }