mirror of https://github.com/apache/superset.git
refactor(self-trigger): Split native filters state (#13137)
* feat: add cross filters * refactor: fix CR notes * lint: fix lint * lint: fix lint * feat: POC adding filters set feature * chore: pre-commit * refactor: under chage * lint: fix TS * fix: fix FF name * refactor: move to behaviors * lint: fix lint * refactor: update state of native filters * refactor: finish refactor nativeFilter state * feat: split native filters state * refactor: refactor Time filter to use new API * refactor: refactor Time filter to use new API * refactor: fix CR notes * fix: fix update values in filter bar * refactor: save filter sets in meta * feat(filter-sets): save filters sets in metadata * refactor: partially fix ts * refactor: merge conflicts * refactor: add behaviors property * refactor: add behaviors property * fix: undo py changes * fix: under some changes * refactor: synx with master * fix: undo FF * fix: undo FF * lint: ts-ignore * chore: update lock file * refactor: update enum * refactor: naming of enum * test: fix test * test: update mocks Co-authored-by: amitmiran137 <amit.miran@nielsen.com>
This commit is contained in:
parent
488da65986
commit
f19a830d9b
|
@ -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.12",
|
||||
"@superset-ui/core": "^0.17.11",
|
||||
"@superset-ui/legacy-plugin-chart-calendar": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-chord": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-country-map": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-event-flow": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-force-directed": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-heatmap": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-histogram": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-horizon": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-map-box": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-partition": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-rose": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-sankey": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-sunburst": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-treemap": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-world-map": "^0.17.12",
|
||||
"@superset-ui/legacy-preset-chart-big-number": "^0.17.12",
|
||||
"@superset-ui/chart-controls": "^0.17.13",
|
||||
"@superset-ui/core": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-calendar": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-chord": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-country-map": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-event-flow": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-force-directed": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-heatmap": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-histogram": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-horizon": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-map-box": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-partition": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-rose": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-sankey": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-sunburst": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-treemap": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-world-map": "^0.17.13",
|
||||
"@superset-ui/legacy-preset-chart-big-number": "^0.17.13",
|
||||
"@superset-ui/legacy-preset-chart-deckgl": "^0.4.6",
|
||||
"@superset-ui/legacy-preset-chart-nvd3": "^0.17.12",
|
||||
"@superset-ui/plugin-chart-echarts": "^0.17.12",
|
||||
"@superset-ui/plugin-chart-table": "^0.17.12",
|
||||
"@superset-ui/plugin-chart-word-cloud": "^0.17.12",
|
||||
"@superset-ui/preset-chart-xy": "^0.17.12",
|
||||
"@superset-ui/legacy-preset-chart-nvd3": "^0.17.13",
|
||||
"@superset-ui/plugin-chart-echarts": "^0.17.13",
|
||||
"@superset-ui/plugin-chart-table": "^0.17.13",
|
||||
"@superset-ui/plugin-chart-word-cloud": "^0.17.13",
|
||||
"@superset-ui/preset-chart-xy": "^0.17.13",
|
||||
"@vx/responsive": "^0.0.195",
|
||||
"abortcontroller-polyfill": "^1.1.9",
|
||||
"antd": "^4.9.4",
|
||||
|
@ -15954,19 +15954,19 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/chart-controls": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.12.tgz",
|
||||
"integrity": "sha512-2IMaFR6sU8IM8TyGb3km8RMkkVp3zhqIMA11OI0pb8lyBJIxdbz8wpGoASpHCCBRhLyt7U0TV7yOePotFGklbw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.13.tgz",
|
||||
"integrity": "sha512-FwIPvkDSm/Qewx3IRQId4+8JdO/UcsfznSntzOZ3Syb+awyZbfNdF7OjqZOv501bMcXOrbMqiTqH6Kxoy4Y+8g==",
|
||||
"dependencies": {
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"lodash": "^4.17.15",
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/core": {
|
||||
"version": "0.17.11",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.11.tgz",
|
||||
"integrity": "sha512-PNJAHjQMELyn8MADB5lp9jDx9SwgxMwR5e2SZDq0vBrcg+LNZCgvkptwXZ7bOTbTwavPVEWgwXa1A9v2TKvFRA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.13.tgz",
|
||||
"integrity": "sha512-kY9wR2WKCHfbab7gVWFNpZrsYELSWPUZZUBUIduEvfmxWYVTkl98nv926Hle5bQk64OfuDbM0QzrxOApVJ3Sdg==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.1.2",
|
||||
"@emotion/core": "^10.0.28",
|
||||
|
@ -16047,12 +16047,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-calendar": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.12.tgz",
|
||||
"integrity": "sha512-NYf5x3e4AIPeqmyq1Cog66zn3KgmpGXtwIp4RS2J2CIEWVZmvWaR8Xyjy1HifQWsFpmN+MjGr8L9lag6ejZZeQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.13.tgz",
|
||||
"integrity": "sha512-98JTVEZ08xA6PPte1GrOvtTICk3Q0U1zQNrJZPwwXtPyet0/J9vQwOE8g399KaHb6+mND2ECUfKR++NOtXaC3w==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3-array": "^2.0.3",
|
||||
"d3-selection": "^1.4.0",
|
||||
"d3-tip": "^0.9.1",
|
||||
|
@ -16068,24 +16068,24 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-chord": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.12.tgz",
|
||||
"integrity": "sha512-O7hjn02qPhD6qE21B6/EwvGVtcGDBJHlrcoJRjDhn8G0xNude7bwb0YlEHCZwlmvTinZD12rJv4l994V8/e5fg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.13.tgz",
|
||||
"integrity": "sha512-jdSY6uTIpsO5G6DE0sFOYfiWw+uVyzhNsM68L5QsW1DgbbGbZtr9+Uig0Ec4niQqzntjpCctNFEaeOPhs5QBmw==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"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.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.12.tgz",
|
||||
"integrity": "sha512-92wIkd1ve5sVz3wEZ1YBGoeUj2dupcpVyIsazT9t3YuEOwa4fuhm8w7FLJ2mS3U791j9KI63RsPM08mssl38sA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.13.tgz",
|
||||
"integrity": "sha512-2wwoVNZtxH7UXOdRjhqCj0BLBQ8GQTt0V8v1+VphqV6jlDCEQaJmSdSnfB0kbwjZ7bR5rmO4XmFxEHJnNUb/IA==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-array": "^2.0.3",
|
||||
"prop-types": "^15.6.2"
|
||||
|
@ -16100,34 +16100,34 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-event-flow": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.12.tgz",
|
||||
"integrity": "sha512-zm6udN2qJirAQZhtLnwjOe+xJfKmpYoGRz7zejLOYHTbkqlv7D+GoB0M/GXiEo6vUbV289Cms9KsrsUh7gYvSw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.13.tgz",
|
||||
"integrity": "sha512-4cUAueJw/Te3pw73fNObkHeEeXNRwxNObkE6Z4M/9Z7qXAXNvIdhakgelnO9wcM19vcMXhS1cr0rdu37q4IgwA==",
|
||||
"dependencies": {
|
||||
"@data-ui/event-flow": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-force-directed": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.12.tgz",
|
||||
"integrity": "sha512-+2aljLZ6wO7D90l/EhgzsK+CKxOX+ldArovKXyUlBkWozaXBw27cA8I5Rj3tdbwbDMlN/bYxw44hnExVjKTYMQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.13.tgz",
|
||||
"integrity": "sha512-A3UWjqzWxYBI7aS2c11452kn50K4L4wc5/moKJo6jJgcxZtn/qBb4hjJ5CybYrvS+b4KKrbgTJY5850iVgg3Kg==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-heatmap": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.12.tgz",
|
||||
"integrity": "sha512-5K+dZ0688mn5KNza/b3SZ6h2d2VxY8gAXKaFBwyPjeabfexg5Sj1Squb5l4p7oTh1FSmLcAty0fXCwZALEh45g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.13.tgz",
|
||||
"integrity": "sha512-9Er9FmnUIyKuHPn8FmJsLBiXHpJaqjPH5utLQM+zCeGm3PLkJuM8PI5bHF/mNMnJRtqdMx4uWTmwoM+A4LLsag==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-svg-legend": "^1.x",
|
||||
"d3-tip": "^0.9.1",
|
||||
|
@ -16135,14 +16135,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-histogram": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.12.tgz",
|
||||
"integrity": "sha512-GNI0fmutspJvdNIDSeiOgXvpFwkqEB48ZiN/lf2/Vpjp1RY5fZDs+I3HlFo0XOveB5SkE2LMwIysO1ex7+ql+g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.13.tgz",
|
||||
"integrity": "sha512-pQFZuotoPvLuA93sfm+23/hIQL/CcawIEUaR4p+mkGvNpsFOf+FVjfI3wjk5Is9O7FJdD+zTSaZC73av1OjmkA==",
|
||||
"dependencies": {
|
||||
"@data-ui/histogram": "^0.0.84",
|
||||
"@data-ui/theme": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@vx/legend": "^0.0.198",
|
||||
"@vx/responsive": "^0.0.199",
|
||||
"@vx/scale": "^0.0.197",
|
||||
|
@ -16208,12 +16208,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-horizon": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.12.tgz",
|
||||
"integrity": "sha512-YQUMV494vP0Lu4pTdELsdR5CbXzQ78BRX0nxnyBXdXVb5UTxCVgXAhU7Q/eQQv2zJ3OXqUpQian2vCeTxqyvfA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.13.tgz",
|
||||
"integrity": "sha512-9bVKRikN6zDd2UcgJTo5dtk2LkAyFrGX7/RVAxC0/GmUyhKwPL7XgoK278myB9c5DL1K2lPhHTz7s1/nQatbcA==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3-array": "^2.0.3",
|
||||
"d3-scale": "^3.0.1",
|
||||
"prop-types": "^15.6.2"
|
||||
|
@ -16240,12 +16240,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-map-box": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.12.tgz",
|
||||
"integrity": "sha512-G0RznxH5LH6dj9mdgLV2Z0MObjruOWCgGqsbItDbo1wi4iR8SuNGHDQgAnv24MlGiMSrp5mOYcUSlzSRFl96KA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.13.tgz",
|
||||
"integrity": "sha512-o+oR7FSH7Ep+jTxTOQb445RB8sNPBqs0o8BEOf8loEUlgSZUClQx8dQYSoxRpw6YjtWVD0J+4HtUzX2HQt++Ng==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"immutable": "^3.8.2",
|
||||
"mapbox-gl": "^0.53.0",
|
||||
"prop-types": "^15.6.2",
|
||||
|
@ -16263,118 +16263,118 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-paired-t-test": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.12.tgz",
|
||||
"integrity": "sha512-e5FWzHzKpbB2tf5PabVIw1e7VXiBm+A6G9XvhmqNTLtFSlrQeehtje7pumjo6xYBeYwGcXJTLpgaQmplWaJ72w==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.13.tgz",
|
||||
"integrity": "sha512-5evYJLS7/yVlA7OI8n3ioQEpsIz+8lSUaZo8n2wWbvRlqvApVNAx+ofppf5O9RqRgLfheYPT6FESUqTOAdRv+Q==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"distributions": "^1.0.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"reactable": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-parallel-coordinates": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.12.tgz",
|
||||
"integrity": "sha512-34vtDU3bMwNQk6dst6uC+4R5MwZ6VoUs6y+I5ZdqcLZj1uiu4TPvcOyPKzvXvtOBXkWmb6CKMagWXeg0Lei/Sg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.13.tgz",
|
||||
"integrity": "sha512-alRR+psEv0chVuwLGemlhBM8+UwnO9nWQsFvV8IblL0rSGKMsuofeutljp5BOXiJu/rpumWXn3HpriMri0ABDg==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-partition": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.12.tgz",
|
||||
"integrity": "sha512-4qSUzL5z3UwWjRpCIdSgwrjaHmj29rDzaPm77Aq0DVqNBTqk9dvQcwPeQPYjR/TrfuMB9jJ3rJYZqPI5F42lnw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.13.tgz",
|
||||
"integrity": "sha512-lkcWo2d47GPgmSxOyVGKRcNd5rm1EhNnbTN/vLVrRCkBJ1u3aOcWdm3xbAQBZNXk2LPFnZM5l9px3Q301znPew==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-hierarchy": "^1.1.8",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-pivot-table": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.12.tgz",
|
||||
"integrity": "sha512-DgMVuUd/G1gUOg2mzqp+0GB0V9ri6o+bGijW37rISjqyDHpwbYUMaWp/64/thjNfYa/D0x6OgGqai6/kdzPutA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.13.tgz",
|
||||
"integrity": "sha512-tsL+98WeQCeAbTkm6IdA0f/XlBX6pNnFH4MIrb4cw0GNSsJ/Yz5PiA+NUptnTMSX3k+DV10vtV/T2HtuhpDK4g==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"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.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.12.tgz",
|
||||
"integrity": "sha512-ZIxSf153T4MW6Nbsld41TIk04sxwqA7d9EhL7NutAkN7yGgz8/dtlNvt2JfAQCVLbJnrH2b7xR+4FDYd+/ks2g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.13.tgz",
|
||||
"integrity": "sha512-Hz2nq14TzbUg8ynMi7zfbK5blgx4XBB25dRMvpv1jyQeTYw/IAPdMb3y0/61ouQItpCImjGWJt7ixCSYoIMJIg==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"nvd3": "1.8.6",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-sankey": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.12.tgz",
|
||||
"integrity": "sha512-Wj3qLsN9Chfe6mvjRK7c9OfAeQij+JL0qDz01fa9FNKxMjNNi7eZkRb4mH6CkfYxJlLWjpVx1anInz+aCaoj4Q==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.13.tgz",
|
||||
"integrity": "sha512-DDqS5zMKNtssZemaqetSc1Wm/Ymg7TayK34SmHAXzFJ0ZbzlWsUs6gSwY38MtTwfT/Yy/g+Cp6HfJjBsu//gdw==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-sankey": "^0.4.2",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-sankey-loop": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.12.tgz",
|
||||
"integrity": "sha512-iqV3phKISwD5o+NniWXa4J5eFmGt03twmFZLAtNXR39AnG4HKHQxB7rwcQPYJA9U4A4TkgxCxQCxyndTb3VmOA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.13.tgz",
|
||||
"integrity": "sha512-cfTrYKWu02TV31a4N3g7i8+JlpvTQUD8SQWV8bWfGqenCfaYXnEtLcT7a06AZD84c7xPVIJ3ri+e1levxyCi/Q==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"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.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.12.tgz",
|
||||
"integrity": "sha512-Ml7uxXqpaMiTEzXFzM1hLOo5z8yQn3HUiXhV77W9OSjg05Y6uCai+d9TeAKiwLEU0OKCzku8jkOj35Cv5ZMPLg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.13.tgz",
|
||||
"integrity": "sha512-rpc91+qtAZAjxmJyuK39GJBnzyVPVVSA8XZ3iYHFPTYooiIM0QuRbYY8RVIsDqwIJ2gNCaCxD8ymA9OhIQjAEw==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-plugin-chart-treemap": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.12.tgz",
|
||||
"integrity": "sha512-kHoslysbX070nuI1zhYGFKWxS6sldpX0TRuGyDLM4anUApuw7y/+jZeOAu6Ws+T6akkVmJpis0fkKrkbeFFrNQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.13.tgz",
|
||||
"integrity": "sha512-60zgDGCbj0o6x8vJeRNyPp1jpHFOBmpza2xrHshaAWef6tyI7btaiWyDAk1+1sm+f5gHuVWI4uP8J6rE7xeuBQ==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"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.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.12.tgz",
|
||||
"integrity": "sha512-9nHlbcdpoUe0vEi7t/QtOcXDxTqz0W3zl2+s4hUNtEsHGdKNrVeir4f3sq1zF+OOLReKHBoL7MFv6cF8JUNMNA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.13.tgz",
|
||||
"integrity": "sha512-xxN0roJlvSqVYJpXAMkCbNgscCN5skazLlxRa+M4LYT7C3XAigcUwR8SwhP6FN9lrDaupiGaxiygrCZ2JTZhKg==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-array": "^2.4.0",
|
||||
"d3-color": "^1.4.1",
|
||||
|
@ -16396,13 +16396,13 @@
|
|||
"integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q=="
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-preset-chart-big-number": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.12.tgz",
|
||||
"integrity": "sha512-GQNXqSA827Fch3eNaCaPMYERvWNRdaUqH00Suqq6BG+aYW+rKhIHaYBsY0eF/w1GRfZ+YjAh/yYyY21P+N/hqg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.13.tgz",
|
||||
"integrity": "sha512-GqFG/BS2370GgxOm5mjXqjUMYW3eZGkj9jNxZgeKLPzftXIZ1CglLO6jZw6xU6jpgEhzKpQomOjGBbD+Kdc/Mg==",
|
||||
"dependencies": {
|
||||
"@data-ui/xy-chart": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/d3-color": "^1.2.2",
|
||||
"@types/shortid": "^0.0.29",
|
||||
"d3-color": "^1.2.3",
|
||||
|
@ -16435,13 +16435,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/legacy-preset-chart-nvd3": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.12.tgz",
|
||||
"integrity": "sha512-e55scJz7FKnn82vtYSxQIbtNFiN7Ftx5guw76Rcm2hkx2bu2TWTgSq7J/4BuTgaSCZsDEt48PNWIeJsfiu+HFQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.13.tgz",
|
||||
"integrity": "sha512-TQyMdtP34pXG9wO5LtfNhg1ZWOD4HIfhLzED+/jvkf2GTl5DY4hUHPlO1h3h4PRKz62tsSOMMSI3+RepiEHjsA==",
|
||||
"dependencies": {
|
||||
"@data-ui/xy-chart": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-tip": "^0.9.1",
|
||||
"dompurify": "^2.0.6",
|
||||
|
@ -16455,12 +16455,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/plugin-chart-echarts": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.12.tgz",
|
||||
"integrity": "sha512-qMyfxv7XPUc+6k5QzJbhooCv2Jqjq/lS9B3VThU4sMZNuqiPmUPBykl7pdw+1TTX7QOJV73C35jm+YU0FAoL1A==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.13.tgz",
|
||||
"integrity": "sha512-QVxbvsNjlT+L2T1WFmoTWM5aryZ++sHFNUIUX3i4hTAV/Di7obt2k6ps0vVdPBVpwmjjWzMuTCJX5Ppqs9n3Pg==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/mathjs": "^6.0.7",
|
||||
"d3-array": "^1.2.0",
|
||||
"echarts": "^5.0.2",
|
||||
|
@ -16468,13 +16468,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/plugin-chart-table": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.12.tgz",
|
||||
"integrity": "sha512-izJkv2rFUAg1aDgLD/nRbgmVw04b6wx5GrbqGjMFv1Y4fR13ZlSgz/QuVVFM7vj9UgQVcz3PA+DNEkiABGKRgA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.13.tgz",
|
||||
"integrity": "sha512-ofh+g2ozHmlvd42BZvlRrcfU4i9FstMGrDCecSP4WKzMmrgbJbfW1zwpLE8CPGGV+6NaET/fIVWw2p+sj1CEig==",
|
||||
"dependencies": {
|
||||
"@emotion/core": "^10.0.28",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/d3-array": "^2.0.0",
|
||||
"@types/react-table": "^7.0.19",
|
||||
"d3-array": "^2.4.0",
|
||||
|
@ -16495,12 +16495,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/plugin-chart-word-cloud": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.12.tgz",
|
||||
"integrity": "sha512-QIJmig3nC/cdx1Ch06OqOnypYvHnkKzpd+YSj3WMXhEn5p2SRS0mqgM1n56/QvNbJegHi+xEuaZKZ4Cek3409g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.13.tgz",
|
||||
"integrity": "sha512-TVD5emY7sEljAuhk4da4uAEBlNPyjabzlMapP4Jjrulwy9rnYPXiyf6L6Z8BxoSY8RD09jdl7TRxQ/jTzCp+bg==",
|
||||
"dependencies": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/d3-cloud": "^1.2.1",
|
||||
"@types/d3-scale": "^2.0.2",
|
||||
"d3-cloud": "^1.2.5",
|
||||
|
@ -16530,14 +16530,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@superset-ui/preset-chart-xy": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.12.tgz",
|
||||
"integrity": "sha512-UwXjsNKzAhYyjV+NJksr7nQ8YN3RUwzemxkHjpHX7tvIIquci3jqcCVbP8Ml19YxAs9o5gf+i6uUvn4Vtag+qw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.13.tgz",
|
||||
"integrity": "sha512-NJ5ACYe1AlZ9hb24NdntNx1CFVRyOAQtpvWWfKfEnQc26t0A8Bl68WL05pMazwHQ6fkthseRXlpUEzdVVyB7Lw==",
|
||||
"dependencies": {
|
||||
"@data-ui/theme": "^0.0.84",
|
||||
"@data-ui/xy-chart": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@vx/axis": "^0.0.198",
|
||||
"@vx/legend": "^0.0.198",
|
||||
"@vx/scale": "^0.0.197",
|
||||
|
@ -71932,19 +71932,19 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/chart-controls": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.12.tgz",
|
||||
"integrity": "sha512-2IMaFR6sU8IM8TyGb3km8RMkkVp3zhqIMA11OI0pb8lyBJIxdbz8wpGoASpHCCBRhLyt7U0TV7yOePotFGklbw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/chart-controls/-/chart-controls-0.17.13.tgz",
|
||||
"integrity": "sha512-FwIPvkDSm/Qewx3IRQId4+8JdO/UcsfznSntzOZ3Syb+awyZbfNdF7OjqZOv501bMcXOrbMqiTqH6Kxoy4Y+8g==",
|
||||
"requires": {
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"lodash": "^4.17.15",
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/core": {
|
||||
"version": "0.17.11",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.11.tgz",
|
||||
"integrity": "sha512-PNJAHjQMELyn8MADB5lp9jDx9SwgxMwR5e2SZDq0vBrcg+LNZCgvkptwXZ7bOTbTwavPVEWgwXa1A9v2TKvFRA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/core/-/core-0.17.13.tgz",
|
||||
"integrity": "sha512-kY9wR2WKCHfbab7gVWFNpZrsYELSWPUZZUBUIduEvfmxWYVTkl98nv926Hle5bQk64OfuDbM0QzrxOApVJ3Sdg==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.1.2",
|
||||
"@emotion/core": "^10.0.28",
|
||||
|
@ -72027,12 +72027,12 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-calendar": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.12.tgz",
|
||||
"integrity": "sha512-NYf5x3e4AIPeqmyq1Cog66zn3KgmpGXtwIp4RS2J2CIEWVZmvWaR8Xyjy1HifQWsFpmN+MjGr8L9lag6ejZZeQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-calendar/-/legacy-plugin-chart-calendar-0.17.13.tgz",
|
||||
"integrity": "sha512-98JTVEZ08xA6PPte1GrOvtTICk3Q0U1zQNrJZPwwXtPyet0/J9vQwOE8g399KaHb6+mND2ECUfKR++NOtXaC3w==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3-array": "^2.0.3",
|
||||
"d3-selection": "^1.4.0",
|
||||
"d3-tip": "^0.9.1",
|
||||
|
@ -72050,24 +72050,24 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-chord": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.12.tgz",
|
||||
"integrity": "sha512-O7hjn02qPhD6qE21B6/EwvGVtcGDBJHlrcoJRjDhn8G0xNude7bwb0YlEHCZwlmvTinZD12rJv4l994V8/e5fg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-chord/-/legacy-plugin-chart-chord-0.17.13.tgz",
|
||||
"integrity": "sha512-jdSY6uTIpsO5G6DE0sFOYfiWw+uVyzhNsM68L5QsW1DgbbGbZtr9+Uig0Ec4niQqzntjpCctNFEaeOPhs5QBmw==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "^16.13.1"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-country-map": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.12.tgz",
|
||||
"integrity": "sha512-92wIkd1ve5sVz3wEZ1YBGoeUj2dupcpVyIsazT9t3YuEOwa4fuhm8w7FLJ2mS3U791j9KI63RsPM08mssl38sA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.13.tgz",
|
||||
"integrity": "sha512-2wwoVNZtxH7UXOdRjhqCj0BLBQ8GQTt0V8v1+VphqV6jlDCEQaJmSdSnfB0kbwjZ7bR5rmO4XmFxEHJnNUb/IA==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-array": "^2.0.3",
|
||||
"prop-types": "^15.6.2"
|
||||
|
@ -72084,34 +72084,34 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-event-flow": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.12.tgz",
|
||||
"integrity": "sha512-zm6udN2qJirAQZhtLnwjOe+xJfKmpYoGRz7zejLOYHTbkqlv7D+GoB0M/GXiEo6vUbV289Cms9KsrsUh7gYvSw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-event-flow/-/legacy-plugin-chart-event-flow-0.17.13.tgz",
|
||||
"integrity": "sha512-4cUAueJw/Te3pw73fNObkHeEeXNRwxNObkE6Z4M/9Z7qXAXNvIdhakgelnO9wcM19vcMXhS1cr0rdu37q4IgwA==",
|
||||
"requires": {
|
||||
"@data-ui/event-flow": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-force-directed": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.12.tgz",
|
||||
"integrity": "sha512-+2aljLZ6wO7D90l/EhgzsK+CKxOX+ldArovKXyUlBkWozaXBw27cA8I5Rj3tdbwbDMlN/bYxw44hnExVjKTYMQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-force-directed/-/legacy-plugin-chart-force-directed-0.17.13.tgz",
|
||||
"integrity": "sha512-A3UWjqzWxYBI7aS2c11452kn50K4L4wc5/moKJo6jJgcxZtn/qBb4hjJ5CybYrvS+b4KKrbgTJY5850iVgg3Kg==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-heatmap": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.12.tgz",
|
||||
"integrity": "sha512-5K+dZ0688mn5KNza/b3SZ6h2d2VxY8gAXKaFBwyPjeabfexg5Sj1Squb5l4p7oTh1FSmLcAty0fXCwZALEh45g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-heatmap/-/legacy-plugin-chart-heatmap-0.17.13.tgz",
|
||||
"integrity": "sha512-9Er9FmnUIyKuHPn8FmJsLBiXHpJaqjPH5utLQM+zCeGm3PLkJuM8PI5bHF/mNMnJRtqdMx4uWTmwoM+A4LLsag==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-svg-legend": "^1.x",
|
||||
"d3-tip": "^0.9.1",
|
||||
|
@ -72119,14 +72119,14 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-histogram": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.12.tgz",
|
||||
"integrity": "sha512-GNI0fmutspJvdNIDSeiOgXvpFwkqEB48ZiN/lf2/Vpjp1RY5fZDs+I3HlFo0XOveB5SkE2LMwIysO1ex7+ql+g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-histogram/-/legacy-plugin-chart-histogram-0.17.13.tgz",
|
||||
"integrity": "sha512-pQFZuotoPvLuA93sfm+23/hIQL/CcawIEUaR4p+mkGvNpsFOf+FVjfI3wjk5Is9O7FJdD+zTSaZC73av1OjmkA==",
|
||||
"requires": {
|
||||
"@data-ui/histogram": "^0.0.84",
|
||||
"@data-ui/theme": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@vx/legend": "^0.0.198",
|
||||
"@vx/responsive": "^0.0.199",
|
||||
"@vx/scale": "^0.0.197",
|
||||
|
@ -72194,12 +72194,12 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-horizon": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.12.tgz",
|
||||
"integrity": "sha512-YQUMV494vP0Lu4pTdELsdR5CbXzQ78BRX0nxnyBXdXVb5UTxCVgXAhU7Q/eQQv2zJ3OXqUpQian2vCeTxqyvfA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-horizon/-/legacy-plugin-chart-horizon-0.17.13.tgz",
|
||||
"integrity": "sha512-9bVKRikN6zDd2UcgJTo5dtk2LkAyFrGX7/RVAxC0/GmUyhKwPL7XgoK278myB9c5DL1K2lPhHTz7s1/nQatbcA==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3-array": "^2.0.3",
|
||||
"d3-scale": "^3.0.1",
|
||||
"prop-types": "^15.6.2"
|
||||
|
@ -72228,12 +72228,12 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-map-box": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.12.tgz",
|
||||
"integrity": "sha512-G0RznxH5LH6dj9mdgLV2Z0MObjruOWCgGqsbItDbo1wi4iR8SuNGHDQgAnv24MlGiMSrp5mOYcUSlzSRFl96KA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-map-box/-/legacy-plugin-chart-map-box-0.17.13.tgz",
|
||||
"integrity": "sha512-o+oR7FSH7Ep+jTxTOQb445RB8sNPBqs0o8BEOf8loEUlgSZUClQx8dQYSoxRpw6YjtWVD0J+4HtUzX2HQt++Ng==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"immutable": "^3.8.2",
|
||||
"mapbox-gl": "^0.53.0",
|
||||
"prop-types": "^15.6.2",
|
||||
|
@ -72250,118 +72250,118 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-paired-t-test": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.12.tgz",
|
||||
"integrity": "sha512-e5FWzHzKpbB2tf5PabVIw1e7VXiBm+A6G9XvhmqNTLtFSlrQeehtje7pumjo6xYBeYwGcXJTLpgaQmplWaJ72w==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-paired-t-test/-/legacy-plugin-chart-paired-t-test-0.17.13.tgz",
|
||||
"integrity": "sha512-5evYJLS7/yVlA7OI8n3ioQEpsIz+8lSUaZo8n2wWbvRlqvApVNAx+ofppf5O9RqRgLfheYPT6FESUqTOAdRv+Q==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"distributions": "^1.0.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"reactable": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-parallel-coordinates": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.12.tgz",
|
||||
"integrity": "sha512-34vtDU3bMwNQk6dst6uC+4R5MwZ6VoUs6y+I5ZdqcLZj1uiu4TPvcOyPKzvXvtOBXkWmb6CKMagWXeg0Lei/Sg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-parallel-coordinates/-/legacy-plugin-chart-parallel-coordinates-0.17.13.tgz",
|
||||
"integrity": "sha512-alRR+psEv0chVuwLGemlhBM8+UwnO9nWQsFvV8IblL0rSGKMsuofeutljp5BOXiJu/rpumWXn3HpriMri0ABDg==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-partition": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.12.tgz",
|
||||
"integrity": "sha512-4qSUzL5z3UwWjRpCIdSgwrjaHmj29rDzaPm77Aq0DVqNBTqk9dvQcwPeQPYjR/TrfuMB9jJ3rJYZqPI5F42lnw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-partition/-/legacy-plugin-chart-partition-0.17.13.tgz",
|
||||
"integrity": "sha512-lkcWo2d47GPgmSxOyVGKRcNd5rm1EhNnbTN/vLVrRCkBJ1u3aOcWdm3xbAQBZNXk2LPFnZM5l9px3Q301znPew==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-hierarchy": "^1.1.8",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-pivot-table": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.12.tgz",
|
||||
"integrity": "sha512-DgMVuUd/G1gUOg2mzqp+0GB0V9ri6o+bGijW37rISjqyDHpwbYUMaWp/64/thjNfYa/D0x6OgGqai6/kdzPutA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-pivot-table/-/legacy-plugin-chart-pivot-table-0.17.13.tgz",
|
||||
"integrity": "sha512-tsL+98WeQCeAbTkm6IdA0f/XlBX6pNnFH4MIrb4cw0GNSsJ/Yz5PiA+NUptnTMSX3k+DV10vtV/T2HtuhpDK4g==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"datatables.net-bs": "^1.10.15",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-rose": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.12.tgz",
|
||||
"integrity": "sha512-ZIxSf153T4MW6Nbsld41TIk04sxwqA7d9EhL7NutAkN7yGgz8/dtlNvt2JfAQCVLbJnrH2b7xR+4FDYd+/ks2g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-rose/-/legacy-plugin-chart-rose-0.17.13.tgz",
|
||||
"integrity": "sha512-Hz2nq14TzbUg8ynMi7zfbK5blgx4XBB25dRMvpv1jyQeTYw/IAPdMb3y0/61ouQItpCImjGWJt7ixCSYoIMJIg==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"nvd3": "1.8.6",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-sankey": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.12.tgz",
|
||||
"integrity": "sha512-Wj3qLsN9Chfe6mvjRK7c9OfAeQij+JL0qDz01fa9FNKxMjNNi7eZkRb4mH6CkfYxJlLWjpVx1anInz+aCaoj4Q==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey/-/legacy-plugin-chart-sankey-0.17.13.tgz",
|
||||
"integrity": "sha512-DDqS5zMKNtssZemaqetSc1Wm/Ymg7TayK34SmHAXzFJ0ZbzlWsUs6gSwY38MtTwfT/Yy/g+Cp6HfJjBsu//gdw==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-sankey": "^0.4.2",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-sankey-loop": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.12.tgz",
|
||||
"integrity": "sha512-iqV3phKISwD5o+NniWXa4J5eFmGt03twmFZLAtNXR39AnG4HKHQxB7rwcQPYJA9U4A4TkgxCxQCxyndTb3VmOA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sankey-loop/-/legacy-plugin-chart-sankey-loop-0.17.13.tgz",
|
||||
"integrity": "sha512-cfTrYKWu02TV31a4N3g7i8+JlpvTQUD8SQWV8bWfGqenCfaYXnEtLcT7a06AZD84c7xPVIJ3ri+e1levxyCi/Q==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"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.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.12.tgz",
|
||||
"integrity": "sha512-Ml7uxXqpaMiTEzXFzM1hLOo5z8yQn3HUiXhV77W9OSjg05Y6uCai+d9TeAKiwLEU0OKCzku8jkOj35Cv5ZMPLg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-sunburst/-/legacy-plugin-chart-sunburst-0.17.13.tgz",
|
||||
"integrity": "sha512-rpc91+qtAZAjxmJyuK39GJBnzyVPVVSA8XZ3iYHFPTYooiIM0QuRbYY8RVIsDqwIJ2gNCaCxD8ymA9OhIQjAEw==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"@superset-ui/legacy-plugin-chart-treemap": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.12.tgz",
|
||||
"integrity": "sha512-kHoslysbX070nuI1zhYGFKWxS6sldpX0TRuGyDLM4anUApuw7y/+jZeOAu6Ws+T6akkVmJpis0fkKrkbeFFrNQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-treemap/-/legacy-plugin-chart-treemap-0.17.13.tgz",
|
||||
"integrity": "sha512-60zgDGCbj0o6x8vJeRNyPp1jpHFOBmpza2xrHshaAWef6tyI7btaiWyDAk1+1sm+f5gHuVWI4uP8J6rE7xeuBQ==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"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.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.12.tgz",
|
||||
"integrity": "sha512-9nHlbcdpoUe0vEi7t/QtOcXDxTqz0W3zl2+s4hUNtEsHGdKNrVeir4f3sq1zF+OOLReKHBoL7MFv6cF8JUNMNA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-world-map/-/legacy-plugin-chart-world-map-0.17.13.tgz",
|
||||
"integrity": "sha512-xxN0roJlvSqVYJpXAMkCbNgscCN5skazLlxRa+M4LYT7C3XAigcUwR8SwhP6FN9lrDaupiGaxiygrCZ2JTZhKg==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-array": "^2.4.0",
|
||||
"d3-color": "^1.4.1",
|
||||
|
@ -72385,13 +72385,13 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-preset-chart-big-number": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.12.tgz",
|
||||
"integrity": "sha512-GQNXqSA827Fch3eNaCaPMYERvWNRdaUqH00Suqq6BG+aYW+rKhIHaYBsY0eF/w1GRfZ+YjAh/yYyY21P+N/hqg==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-big-number/-/legacy-preset-chart-big-number-0.17.13.tgz",
|
||||
"integrity": "sha512-GqFG/BS2370GgxOm5mjXqjUMYW3eZGkj9jNxZgeKLPzftXIZ1CglLO6jZw6xU6jpgEhzKpQomOjGBbD+Kdc/Mg==",
|
||||
"requires": {
|
||||
"@data-ui/xy-chart": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/d3-color": "^1.2.2",
|
||||
"@types/shortid": "^0.0.29",
|
||||
"d3-color": "^1.2.3",
|
||||
|
@ -72424,13 +72424,13 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/legacy-preset-chart-nvd3": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.12.tgz",
|
||||
"integrity": "sha512-e55scJz7FKnn82vtYSxQIbtNFiN7Ftx5guw76Rcm2hkx2bu2TWTgSq7J/4BuTgaSCZsDEt48PNWIeJsfiu+HFQ==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/legacy-preset-chart-nvd3/-/legacy-preset-chart-nvd3-0.17.13.tgz",
|
||||
"integrity": "sha512-TQyMdtP34pXG9wO5LtfNhg1ZWOD4HIfhLzED+/jvkf2GTl5DY4hUHPlO1h3h4PRKz62tsSOMMSI3+RepiEHjsA==",
|
||||
"requires": {
|
||||
"@data-ui/xy-chart": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"d3": "^3.5.17",
|
||||
"d3-tip": "^0.9.1",
|
||||
"dompurify": "^2.0.6",
|
||||
|
@ -72444,12 +72444,12 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/plugin-chart-echarts": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.12.tgz",
|
||||
"integrity": "sha512-qMyfxv7XPUc+6k5QzJbhooCv2Jqjq/lS9B3VThU4sMZNuqiPmUPBykl7pdw+1TTX7QOJV73C35jm+YU0FAoL1A==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-echarts/-/plugin-chart-echarts-0.17.13.tgz",
|
||||
"integrity": "sha512-QVxbvsNjlT+L2T1WFmoTWM5aryZ++sHFNUIUX3i4hTAV/Di7obt2k6ps0vVdPBVpwmjjWzMuTCJX5Ppqs9n3Pg==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/mathjs": "^6.0.7",
|
||||
"d3-array": "^1.2.0",
|
||||
"echarts": "^5.0.2",
|
||||
|
@ -72457,13 +72457,13 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/plugin-chart-table": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.12.tgz",
|
||||
"integrity": "sha512-izJkv2rFUAg1aDgLD/nRbgmVw04b6wx5GrbqGjMFv1Y4fR13ZlSgz/QuVVFM7vj9UgQVcz3PA+DNEkiABGKRgA==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-table/-/plugin-chart-table-0.17.13.tgz",
|
||||
"integrity": "sha512-ofh+g2ozHmlvd42BZvlRrcfU4i9FstMGrDCecSP4WKzMmrgbJbfW1zwpLE8CPGGV+6NaET/fIVWw2p+sj1CEig==",
|
||||
"requires": {
|
||||
"@emotion/core": "^10.0.28",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/d3-array": "^2.0.0",
|
||||
"@types/react-table": "^7.0.19",
|
||||
"d3-array": "^2.4.0",
|
||||
|
@ -72486,12 +72486,12 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/plugin-chart-word-cloud": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.12.tgz",
|
||||
"integrity": "sha512-QIJmig3nC/cdx1Ch06OqOnypYvHnkKzpd+YSj3WMXhEn5p2SRS0mqgM1n56/QvNbJegHi+xEuaZKZ4Cek3409g==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/plugin-chart-word-cloud/-/plugin-chart-word-cloud-0.17.13.tgz",
|
||||
"integrity": "sha512-TVD5emY7sEljAuhk4da4uAEBlNPyjabzlMapP4Jjrulwy9rnYPXiyf6L6Z8BxoSY8RD09jdl7TRxQ/jTzCp+bg==",
|
||||
"requires": {
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@types/d3-cloud": "^1.2.1",
|
||||
"@types/d3-scale": "^2.0.2",
|
||||
"d3-cloud": "^1.2.5",
|
||||
|
@ -72523,14 +72523,14 @@
|
|||
}
|
||||
},
|
||||
"@superset-ui/preset-chart-xy": {
|
||||
"version": "0.17.12",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.12.tgz",
|
||||
"integrity": "sha512-UwXjsNKzAhYyjV+NJksr7nQ8YN3RUwzemxkHjpHX7tvIIquci3jqcCVbP8Ml19YxAs9o5gf+i6uUvn4Vtag+qw==",
|
||||
"version": "0.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@superset-ui/preset-chart-xy/-/preset-chart-xy-0.17.13.tgz",
|
||||
"integrity": "sha512-NJ5ACYe1AlZ9hb24NdntNx1CFVRyOAQtpvWWfKfEnQc26t0A8Bl68WL05pMazwHQ6fkthseRXlpUEzdVVyB7Lw==",
|
||||
"requires": {
|
||||
"@data-ui/theme": "^0.0.84",
|
||||
"@data-ui/xy-chart": "^0.0.84",
|
||||
"@superset-ui/chart-controls": "0.17.12",
|
||||
"@superset-ui/core": "0.17.11",
|
||||
"@superset-ui/chart-controls": "0.17.13",
|
||||
"@superset-ui/core": "0.17.13",
|
||||
"@vx/axis": "^0.0.198",
|
||||
"@vx/legend": "^0.0.198",
|
||||
"@vx/scale": "^0.0.197",
|
||||
|
|
|
@ -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.12",
|
||||
"@superset-ui/core": "^0.17.11",
|
||||
"@superset-ui/legacy-plugin-chart-calendar": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-chord": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-country-map": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-event-flow": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-force-directed": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-heatmap": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-histogram": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-horizon": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-map-box": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-partition": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-rose": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-sankey": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-sunburst": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-treemap": "^0.17.12",
|
||||
"@superset-ui/legacy-plugin-chart-world-map": "^0.17.12",
|
||||
"@superset-ui/legacy-preset-chart-big-number": "^0.17.12",
|
||||
"@superset-ui/chart-controls": "^0.17.13",
|
||||
"@superset-ui/core": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-calendar": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-chord": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-country-map": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-event-flow": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-force-directed": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-heatmap": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-histogram": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-horizon": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-map-box": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-partition": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-rose": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-sankey": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-sunburst": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-treemap": "^0.17.13",
|
||||
"@superset-ui/legacy-plugin-chart-world-map": "^0.17.13",
|
||||
"@superset-ui/legacy-preset-chart-big-number": "^0.17.13",
|
||||
"@superset-ui/legacy-preset-chart-deckgl": "^0.4.6",
|
||||
"@superset-ui/legacy-preset-chart-nvd3": "^0.17.12",
|
||||
"@superset-ui/plugin-chart-echarts": "^0.17.12",
|
||||
"@superset-ui/plugin-chart-table": "^0.17.12",
|
||||
"@superset-ui/plugin-chart-word-cloud": "^0.17.12",
|
||||
"@superset-ui/preset-chart-xy": "^0.17.12",
|
||||
"@superset-ui/legacy-preset-chart-nvd3": "^0.17.13",
|
||||
"@superset-ui/plugin-chart-echarts": "^0.17.13",
|
||||
"@superset-ui/plugin-chart-table": "^0.17.13",
|
||||
"@superset-ui/plugin-chart-word-cloud": "^0.17.13",
|
||||
"@superset-ui/preset-chart-xy": "^0.17.13",
|
||||
"@vx/responsive": "^0.0.195",
|
||||
"abortcontroller-polyfill": "^1.1.9",
|
||||
"antd": "^4.9.4",
|
||||
|
|
|
@ -73,27 +73,31 @@ export const nativeFilters: NativeFiltersState = {
|
|||
},
|
||||
},
|
||||
filtersState: {
|
||||
'NATIVE_FILTER-e7Q8zKixx': {
|
||||
id: 'NATIVE_FILTER-e7Q8zKixx',
|
||||
currentState: {
|
||||
value: ['East Asia & Pacific'],
|
||||
},
|
||||
extraFormData: {
|
||||
append_form_data: {
|
||||
filters: [
|
||||
{
|
||||
col: 'region',
|
||||
op: 'IN',
|
||||
val: ['East Asia & Pacific'],
|
||||
},
|
||||
],
|
||||
crossFilters: {},
|
||||
ownFilters: {},
|
||||
nativeFilters: {
|
||||
'NATIVE_FILTER-e7Q8zKixx': {
|
||||
id: 'NATIVE_FILTER-e7Q8zKixx',
|
||||
extraFormData: {
|
||||
append_form_data: {
|
||||
filters: [
|
||||
{
|
||||
col: 'region',
|
||||
op: 'IN',
|
||||
val: ['East Asia & Pacific'],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
currentState: {
|
||||
value: ['East Asia & Pacific'],
|
||||
},
|
||||
},
|
||||
},
|
||||
'NATIVE_FILTER-x9QPw0so1': {
|
||||
id: 'NATIVE_FILTER-x9QPw0so1',
|
||||
extraFormData: {},
|
||||
currentState: {},
|
||||
'NATIVE_FILTER-x9QPw0so1': {
|
||||
id: 'NATIVE_FILTER-x9QPw0so1',
|
||||
extraFormData: {},
|
||||
currentState: {},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -129,11 +133,13 @@ export const singleNativeFiltersState = {
|
|||
},
|
||||
},
|
||||
filtersState: {
|
||||
[NATIVE_FILTER_ID]: {
|
||||
id: NATIVE_FILTER_ID,
|
||||
extraFormData,
|
||||
currentState: {
|
||||
value: ['No, not an ethnic minority'],
|
||||
nativeFilters: {
|
||||
[NATIVE_FILTER_ID]: {
|
||||
id: NATIVE_FILTER_ID,
|
||||
extraFormData,
|
||||
currentState: {
|
||||
value: ['No, not an ethnic minority'],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -53,6 +53,7 @@ describe('Dashboard', () => {
|
|||
dashboardInfo,
|
||||
charts: chartQueries,
|
||||
activeFilters: {},
|
||||
ownDataCharts: {},
|
||||
slices: sliceEntities.slices,
|
||||
datasources,
|
||||
layout: dashboardLayout.present,
|
||||
|
|
|
@ -42,9 +42,13 @@ export const nativeFiltersInfo = {
|
|||
},
|
||||
},
|
||||
filtersState: {
|
||||
DefaultsID: {
|
||||
id: 'DefaultId',
|
||||
selectedValues: [],
|
||||
nativeFilters: {
|
||||
DefaultsID: {
|
||||
id: 'DefaultId',
|
||||
currentState: {
|
||||
value: [],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
@ -62,10 +62,14 @@ describe('getFormDataWithExtraFilters', () => {
|
|||
} as unknown) as Filter,
|
||||
},
|
||||
filtersState: {
|
||||
[filterId]: {
|
||||
id: filterId,
|
||||
extraFormData: {},
|
||||
currentState: {},
|
||||
crossFilters: {},
|
||||
ownFilters: {},
|
||||
nativeFilters: {
|
||||
[filterId]: {
|
||||
id: filterId,
|
||||
extraFormData: {},
|
||||
currentState: {},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -22,14 +22,14 @@ import { bindActionCreators } from 'redux';
|
|||
import * as actions from './chartAction';
|
||||
import { logEvent } from '../logger/actions';
|
||||
import Chart from './Chart';
|
||||
import { setExtraFormData } from '../dashboard/actions/nativeFilters';
|
||||
import { updateExtraFormData } from '../dashboard/actions/nativeFilters';
|
||||
|
||||
function mapDispatchToProps(dispatch) {
|
||||
return {
|
||||
actions: bindActionCreators(
|
||||
{
|
||||
...actions,
|
||||
setExtraFormData,
|
||||
updateExtraFormData,
|
||||
logEvent,
|
||||
},
|
||||
dispatch,
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
import { snakeCase } from 'lodash';
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import { SuperChart, logging } from '@superset-ui/core';
|
||||
import { SuperChart, logging, Behavior } from '@superset-ui/core';
|
||||
import { Logger, LOG_ACTIONS_RENDER_CHART } from '../logger/LogUtils';
|
||||
|
||||
const propTypes = {
|
||||
|
@ -42,9 +42,10 @@ const propTypes = {
|
|||
refreshOverlayVisible: PropTypes.bool,
|
||||
// dashboard callbacks
|
||||
addFilter: PropTypes.func,
|
||||
setExtraFormData: PropTypes.func,
|
||||
setDataMask: PropTypes.func,
|
||||
onFilterMenuOpen: PropTypes.func,
|
||||
onFilterMenuClose: PropTypes.func,
|
||||
ownCurrentState: PropTypes.object,
|
||||
};
|
||||
|
||||
const BLANK = {};
|
||||
|
@ -74,12 +75,12 @@ class ChartRenderer extends React.Component {
|
|||
setControlValue: this.handleSetControlValue,
|
||||
onFilterMenuOpen: this.props.onFilterMenuOpen,
|
||||
onFilterMenuClose: this.props.onFilterMenuClose,
|
||||
setExtraFormData: ({ extraFormData, currentState }) =>
|
||||
this.props.actions?.setExtraFormData(
|
||||
setDataMask: filtersState => {
|
||||
this.props.actions?.updateExtraFormData(
|
||||
this.props.chartId,
|
||||
extraFormData,
|
||||
currentState,
|
||||
),
|
||||
filtersState,
|
||||
);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -185,6 +186,7 @@ class ChartRenderer extends React.Component {
|
|||
annotationData,
|
||||
datasource,
|
||||
initialValues,
|
||||
ownCurrentState,
|
||||
formData,
|
||||
queriesResponse,
|
||||
} = this.props;
|
||||
|
@ -224,7 +226,9 @@ class ChartRenderer extends React.Component {
|
|||
datasource={datasource}
|
||||
initialValues={initialValues}
|
||||
formData={formData}
|
||||
ownCurrentState={ownCurrentState}
|
||||
hooks={this.hooks}
|
||||
behaviors={[Behavior.CROSS_FILTER]}
|
||||
queriesData={queriesResponse}
|
||||
onRenderSuccess={this.handleRenderSuccess}
|
||||
onRenderFailure={this.handleRenderFailure}
|
||||
|
|
|
@ -17,14 +17,15 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { ExtraFormData, makeApi } from '@superset-ui/core';
|
||||
import { makeApi, DataMask } from '@superset-ui/core';
|
||||
import { Dispatch } from 'redux';
|
||||
import { FilterConfiguration } from 'src/dashboard/components/nativeFilters/types';
|
||||
import { dashboardInfoChanged } from './dashboardInfo';
|
||||
import {
|
||||
CurrentFilterState,
|
||||
FiltersState,
|
||||
FilterState,
|
||||
FiltersSet,
|
||||
NativeFilterState,
|
||||
FilterStateType,
|
||||
} from '../reducers/types';
|
||||
|
||||
export const SET_FILTER_CONFIG_BEGIN = 'SET_FILTER_CONFIG_BEGIN';
|
||||
|
@ -142,51 +143,49 @@ export const setFilterSetsConfiguration = (
|
|||
}
|
||||
};
|
||||
|
||||
export const SET_EXTRA_FORM_DATA = 'SET_EXTRA_FORM_DATA';
|
||||
export interface SetExtraFormData {
|
||||
type: typeof SET_EXTRA_FORM_DATA;
|
||||
export const UPDATE_EXTRA_FORM_DATA = 'UPDATE_EXTRA_FORM_DATA';
|
||||
export interface UpdateExtraFormData {
|
||||
type: typeof UPDATE_EXTRA_FORM_DATA;
|
||||
filterId: string;
|
||||
extraFormData: ExtraFormData;
|
||||
currentState: CurrentFilterState;
|
||||
nativeFilters?: Omit<FilterState, 'id'>;
|
||||
crossFilters?: Omit<FilterState, 'id'>;
|
||||
ownFilters?: Omit<FilterState, 'id'>;
|
||||
}
|
||||
|
||||
export const SAVE_FILTER_SETS = 'SAVE_FILTER_SETS';
|
||||
export interface SaveFilterSets {
|
||||
type: typeof SAVE_FILTER_SETS;
|
||||
name: string;
|
||||
filtersState: NativeFilterState;
|
||||
filtersState: Pick<FiltersState, FilterStateType.NativeFilters>;
|
||||
filtersSetId: string;
|
||||
}
|
||||
|
||||
export const SET_FILTERS_STATE = 'SET_FILTERS_STATE';
|
||||
export interface SetFiltersState {
|
||||
type: typeof SET_FILTERS_STATE;
|
||||
filtersState: NativeFilterState;
|
||||
filtersState: FiltersState;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the selected option(s) for a given filter
|
||||
* @param filterId the id of the native filter
|
||||
* @param extraFormData the selection translated into extra form data
|
||||
* @param currentState
|
||||
* @param filterId the id of the nativeFilters filter
|
||||
* @param filterState
|
||||
*/
|
||||
export function setExtraFormData(
|
||||
export function updateExtraFormData(
|
||||
filterId: string,
|
||||
extraFormData: ExtraFormData,
|
||||
currentState: CurrentFilterState,
|
||||
): SetExtraFormData {
|
||||
filterState: DataMask,
|
||||
): UpdateExtraFormData {
|
||||
return {
|
||||
type: SET_EXTRA_FORM_DATA,
|
||||
type: UPDATE_EXTRA_FORM_DATA,
|
||||
filterId,
|
||||
extraFormData,
|
||||
currentState,
|
||||
...filterState,
|
||||
};
|
||||
}
|
||||
|
||||
export function saveFilterSets(
|
||||
name: string,
|
||||
filtersSetId: string,
|
||||
filtersState: NativeFilterState,
|
||||
filtersState: Pick<FiltersState, FilterStateType.NativeFilters>,
|
||||
): SaveFilterSets {
|
||||
return {
|
||||
type: SAVE_FILTER_SETS,
|
||||
|
@ -196,9 +195,7 @@ export function saveFilterSets(
|
|||
};
|
||||
}
|
||||
|
||||
export function setFiltersState(
|
||||
filtersState: NativeFilterState,
|
||||
): SetFiltersState {
|
||||
export function setFiltersState(filtersState: FiltersState): SetFiltersState {
|
||||
return {
|
||||
type: SET_FILTERS_STATE,
|
||||
filtersState,
|
||||
|
@ -213,5 +210,5 @@ export type AnyFilterAction =
|
|||
| SetFilterSetsConfigComplete
|
||||
| SetFilterSetsConfigFail
|
||||
| SetFiltersState
|
||||
| SetExtraFormData
|
||||
| SaveFilterSets;
|
||||
| SaveFilterSets
|
||||
| UpdateExtraFormData;
|
||||
|
|
|
@ -42,6 +42,7 @@ import { areObjectsEqual } from '../../reduxUtils';
|
|||
import '../stylesheets/index.less';
|
||||
import getLocationHash from '../util/getLocationHash';
|
||||
import isDashboardEmpty from '../util/isDashboardEmpty';
|
||||
import { getAffectedOwnDataCharts } from '../util/charts/getOwnDataCharts';
|
||||
|
||||
const propTypes = {
|
||||
actions: PropTypes.shape({
|
||||
|
@ -56,6 +57,7 @@ const propTypes = {
|
|||
slices: PropTypes.objectOf(slicePropShape).isRequired,
|
||||
activeFilters: PropTypes.object.isRequired,
|
||||
datasources: PropTypes.object.isRequired,
|
||||
ownDataCharts: PropTypes.object.isRequired,
|
||||
layout: PropTypes.object.isRequired,
|
||||
impressionId: PropTypes.string.isRequired,
|
||||
initMessages: PropTypes.array,
|
||||
|
@ -88,7 +90,8 @@ class Dashboard extends React.PureComponent {
|
|||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.appliedFilters = props.activeFilters || {};
|
||||
this.appliedFilters = props.activeFilters ?? {};
|
||||
this.appliedOwnDataCharts = props.ownDataCharts ?? {};
|
||||
this.onVisibilityChange = this.onVisibilityChange.bind(this);
|
||||
}
|
||||
|
||||
|
@ -147,9 +150,13 @@ class Dashboard extends React.PureComponent {
|
|||
componentDidUpdate() {
|
||||
const { hasUnsavedChanges, editMode } = this.props.dashboardState;
|
||||
|
||||
const { appliedFilters } = this;
|
||||
const { activeFilters } = this.props;
|
||||
if (!editMode && !areObjectsEqual(appliedFilters, activeFilters)) {
|
||||
const { appliedFilters, appliedOwnDataCharts } = this;
|
||||
const { activeFilters, ownDataCharts } = this.props;
|
||||
if (
|
||||
!editMode &&
|
||||
(!areObjectsEqual(appliedOwnDataCharts, ownDataCharts) ||
|
||||
!areObjectsEqual(appliedFilters, activeFilters))
|
||||
) {
|
||||
this.applyFilters();
|
||||
}
|
||||
|
||||
|
@ -188,14 +195,17 @@ class Dashboard extends React.PureComponent {
|
|||
|
||||
applyFilters() {
|
||||
const { appliedFilters } = this;
|
||||
const { activeFilters } = this.props;
|
||||
const { activeFilters, ownDataCharts } = this.props;
|
||||
|
||||
// refresh charts if a filter was removed, added, or changed
|
||||
const currFilterKeys = Object.keys(activeFilters);
|
||||
const appliedFilterKeys = Object.keys(appliedFilters);
|
||||
|
||||
const allKeys = new Set(currFilterKeys.concat(appliedFilterKeys));
|
||||
const affectedChartIds = [];
|
||||
const affectedChartIds = getAffectedOwnDataCharts(
|
||||
ownDataCharts,
|
||||
this.appliedOwnDataCharts,
|
||||
);
|
||||
[...allKeys].forEach(filterKey => {
|
||||
if (!currFilterKeys.includes(filterKey)) {
|
||||
// filterKey is removed?
|
||||
|
@ -234,6 +244,7 @@ class Dashboard extends React.PureComponent {
|
|||
// remove dup in affectedChartIds
|
||||
this.refreshCharts([...new Set(affectedChartIds)]);
|
||||
this.appliedFilters = activeFilters;
|
||||
this.appliedOwnDataCharts = ownDataCharts;
|
||||
}
|
||||
|
||||
refreshCharts(ids) {
|
||||
|
|
|
@ -210,7 +210,8 @@ export const selectNativeIndicatorsForChart = (
|
|||
layoutItem => dashboardLayout[layoutItem]?.meta?.chartId === chartId,
|
||||
);
|
||||
const column = nativeFilter.targets[0]?.column?.name;
|
||||
const filterState = nativeFilters.filtersState[nativeFilter.id];
|
||||
const filterState =
|
||||
nativeFilters.filtersState.nativeFilters?.[nativeFilter.id];
|
||||
let value = filterState?.currentState?.value ?? [];
|
||||
if (!Array.isArray(value)) {
|
||||
value = [value];
|
||||
|
|
|
@ -69,6 +69,7 @@ const propTypes = {
|
|||
sliceCanEdit: PropTypes.bool.isRequired,
|
||||
addSuccessToast: PropTypes.func.isRequired,
|
||||
addDangerToast: PropTypes.func.isRequired,
|
||||
ownCurrentState: PropTypes.object,
|
||||
};
|
||||
|
||||
const defaultProps = {
|
||||
|
@ -259,6 +260,7 @@ export default class Chart extends React.Component {
|
|||
sliceCanEdit,
|
||||
addSuccessToast,
|
||||
addDangerToast,
|
||||
ownCurrentState,
|
||||
handleToggleFullSize,
|
||||
isFullSize,
|
||||
} = this.props;
|
||||
|
@ -360,6 +362,7 @@ export default class Chart extends React.Component {
|
|||
dashboardId={dashboardId}
|
||||
initialValues={initialValues}
|
||||
formData={formData}
|
||||
ownCurrentState={ownCurrentState}
|
||||
queriesResponse={chart.queriesResponse}
|
||||
timeout={timeout}
|
||||
triggerQuery={chart.triggerQuery}
|
||||
|
|
|
@ -17,9 +17,8 @@
|
|||
* under the License.
|
||||
*/
|
||||
import React from 'react';
|
||||
import { ExtraFormData, styled } from '@superset-ui/core';
|
||||
import { styled, DataMask } from '@superset-ui/core';
|
||||
import Icon from 'src/components/Icon';
|
||||
import { CurrentFilterState } from 'src/dashboard/reducers/types';
|
||||
import FilterControl from './FilterControl';
|
||||
import { Filter } from '../types';
|
||||
import { CascadeFilter } from './types';
|
||||
|
@ -27,11 +26,7 @@ import { CascadeFilter } from './types';
|
|||
interface CascadeFilterControlProps {
|
||||
filter: CascadeFilter;
|
||||
directPathToChild?: string[];
|
||||
onFilterSelectionChange: (
|
||||
filter: Filter,
|
||||
extraFormData: ExtraFormData,
|
||||
currentState: CurrentFilterState,
|
||||
) => void;
|
||||
onFilterSelectionChange: (filter: Filter, filterState: DataMask) => void;
|
||||
}
|
||||
|
||||
const StyledCascadeChildrenList = styled.ul`
|
||||
|
|
|
@ -17,12 +17,11 @@
|
|||
* under the License.
|
||||
*/
|
||||
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import { ExtraFormData, styled, t } from '@superset-ui/core';
|
||||
import { styled, t, DataMask } from '@superset-ui/core';
|
||||
import Popover from 'src/common/components/Popover';
|
||||
import Icon from 'src/components/Icon';
|
||||
import { Pill } from 'src/dashboard/components/FiltersBadge/Styles';
|
||||
import { CurrentFilterState } from 'src/dashboard/reducers/types';
|
||||
import { useFilterState } from './state';
|
||||
import { useFilterStateNative } from './state';
|
||||
import FilterControl from './FilterControl';
|
||||
import CascadeFilterControl from './CascadeFilterControl';
|
||||
import { CascadeFilter } from './types';
|
||||
|
@ -33,11 +32,7 @@ interface CascadePopoverProps {
|
|||
visible: boolean;
|
||||
directPathToChild?: string[];
|
||||
onVisibleChange: (visible: boolean) => void;
|
||||
onFilterSelectionChange: (
|
||||
filter: Filter,
|
||||
extraFormData: ExtraFormData,
|
||||
currentState: CurrentFilterState,
|
||||
) => void;
|
||||
onFilterSelectionChange: (filter: Filter, filterState: DataMask) => void;
|
||||
}
|
||||
|
||||
const StyledTitleBox = styled.div`
|
||||
|
@ -85,7 +80,7 @@ const CascadePopover: React.FC<CascadePopoverProps> = ({
|
|||
directPathToChild,
|
||||
}) => {
|
||||
const [currentPathToChild, setCurrentPathToChild] = useState<string[]>();
|
||||
const filterState = useFilterState(filter.id);
|
||||
const filterStateNative = useFilterStateNative(filter.id);
|
||||
|
||||
useEffect(() => {
|
||||
setCurrentPathToChild(directPathToChild);
|
||||
|
@ -98,7 +93,7 @@ const CascadePopover: React.FC<CascadePopoverProps> = ({
|
|||
const getActiveChildren = useCallback(
|
||||
(filter: CascadeFilter): CascadeFilter[] | null => {
|
||||
const children = filter.cascadeChildren || [];
|
||||
const currentValue = filterState.currentState?.value;
|
||||
const currentValue = filterStateNative.currentState?.value;
|
||||
|
||||
const activeChildren = children.flatMap(
|
||||
childFilter => getActiveChildren(childFilter) || [],
|
||||
|
@ -114,7 +109,7 @@ const CascadePopover: React.FC<CascadePopoverProps> = ({
|
|||
|
||||
return null;
|
||||
},
|
||||
[filterState],
|
||||
[filterStateNative],
|
||||
);
|
||||
|
||||
const getAllFilters = (filter: CascadeFilter): CascadeFilter[] => {
|
||||
|
|
|
@ -16,27 +16,21 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { styled, t, tn, ExtraFormData } from '@superset-ui/core';
|
||||
import { styled, t, tn, DataMask } from '@superset-ui/core';
|
||||
import React, { useState, useEffect, useMemo, ChangeEvent } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import cx from 'classnames';
|
||||
import Button from 'src/components/Button';
|
||||
import Icon from 'src/components/Icon';
|
||||
import {
|
||||
CurrentFilterState,
|
||||
FiltersSet,
|
||||
NativeFilterState,
|
||||
} from 'src/dashboard/reducers/types';
|
||||
import { FiltersSet, FilterState } from 'src/dashboard/reducers/types';
|
||||
import { Input, Select } from 'src/common/components';
|
||||
import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags';
|
||||
import { setFilterSetsConfiguration } from 'src/dashboard/actions/nativeFilters';
|
||||
import FilterConfigurationLink from './FilterConfigurationLink';
|
||||
import {
|
||||
useFilters,
|
||||
useFilterSets,
|
||||
useFiltersState,
|
||||
useSetExtraFormData,
|
||||
} from './state';
|
||||
setFilterSetsConfiguration,
|
||||
updateExtraFormData,
|
||||
} from 'src/dashboard/actions/nativeFilters';
|
||||
import FilterConfigurationLink from './FilterConfigurationLink';
|
||||
import { useFilters, useFilterSets, useFiltersStateNative } from './state';
|
||||
import { useFilterConfiguration } from '../state';
|
||||
import { Filter } from '../types';
|
||||
import {
|
||||
|
@ -183,14 +177,10 @@ const FilterBar: React.FC<FiltersBarProps> = ({
|
|||
directPathToChild,
|
||||
}) => {
|
||||
const [filterData, setFilterData] = useState<{
|
||||
[id: string]: {
|
||||
extraFormData: ExtraFormData;
|
||||
currentState: CurrentFilterState;
|
||||
};
|
||||
[filterId: string]: Omit<FilterState, 'id'>;
|
||||
}>({});
|
||||
const dispatch = useDispatch();
|
||||
const setExtraFormData = useSetExtraFormData();
|
||||
const filtersState = useFiltersState();
|
||||
const filtersStateNative = useFiltersStateNative();
|
||||
const filterSets = useFilterSets();
|
||||
const filterConfigs = useFilterConfiguration();
|
||||
const filterSetsConfigs = useSelector<any, FiltersSet[]>(
|
||||
|
@ -242,22 +232,21 @@ const FilterBar: React.FC<FiltersBarProps> = ({
|
|||
|
||||
const handleFilterSelectionChange = (
|
||||
filter: Pick<Filter, 'id'> & Partial<Filter>,
|
||||
extraFormData: ExtraFormData,
|
||||
currentState: CurrentFilterState,
|
||||
filtersState: DataMask,
|
||||
) => {
|
||||
setFilterData(prevFilterData => {
|
||||
const children = cascadeChildren[filter.id] || [];
|
||||
// force instant updating on initialization or for parent filters
|
||||
if (filter.isInstant || children.length > 0) {
|
||||
setExtraFormData(filter.id, extraFormData, currentState);
|
||||
dispatch(updateExtraFormData(filter.id, filtersState));
|
||||
}
|
||||
|
||||
if (!filtersState.nativeFilters) {
|
||||
return { ...prevFilterData };
|
||||
}
|
||||
return {
|
||||
...prevFilterData,
|
||||
[filter.id]: {
|
||||
extraFormData,
|
||||
currentState,
|
||||
},
|
||||
[filter.id]: filtersState.nativeFilters,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
@ -268,24 +257,25 @@ const FilterBar: React.FC<FiltersBarProps> = ({
|
|||
return;
|
||||
}
|
||||
const filtersSet = filterSets[value];
|
||||
Object.values(filtersSet.filtersState).forEach(filterState => {
|
||||
const {
|
||||
extraFormData,
|
||||
currentState,
|
||||
id,
|
||||
} = filterState as NativeFilterState;
|
||||
handleFilterSelectionChange({ id }, extraFormData, currentState);
|
||||
});
|
||||
Object.values(filtersSet.filtersState?.nativeFilters ?? []).forEach(
|
||||
filterState => {
|
||||
const { extraFormData, currentState, id } = filterState as FilterState;
|
||||
handleFilterSelectionChange(
|
||||
{ id },
|
||||
{ nativeFilters: { extraFormData, currentState } },
|
||||
);
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
const handleApply = () => {
|
||||
const filterIds = Object.keys(filterData);
|
||||
filterIds.forEach(filterId => {
|
||||
if (filterData[filterId]) {
|
||||
setExtraFormData(
|
||||
filterId,
|
||||
filterData[filterId]?.extraFormData,
|
||||
filterData[filterId]?.currentState,
|
||||
dispatch(
|
||||
updateExtraFormData(filterId, {
|
||||
nativeFilters: filterData[filterId],
|
||||
}),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
@ -304,8 +294,9 @@ const FilterBar: React.FC<FiltersBarProps> = ({
|
|||
{
|
||||
name: filtersSetName.trim(),
|
||||
id: generateFiltersSetId(),
|
||||
// TODO: After merge https://github.com/apache/superset/pull/13137, compare if data changed (meantime save only clicking `apply`)
|
||||
filtersState,
|
||||
filtersState: {
|
||||
nativeFilters: filtersStateNative,
|
||||
},
|
||||
},
|
||||
]),
|
||||
),
|
||||
|
@ -327,10 +318,16 @@ const FilterBar: React.FC<FiltersBarProps> = ({
|
|||
|
||||
const handleResetAll = () => {
|
||||
filterConfigs.forEach(filter => {
|
||||
setExtraFormData(filter.id, filterData[filter.id]?.extraFormData, {
|
||||
...filterData[filter.id]?.currentState,
|
||||
value: filters[filter.id]?.defaultValue,
|
||||
});
|
||||
dispatch(
|
||||
updateExtraFormData(filter.id, {
|
||||
nativeFilters: {
|
||||
currentState: {
|
||||
...filterData[filter.id]?.currentState,
|
||||
value: filters[filter.id]?.defaultValue,
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -18,17 +18,17 @@
|
|||
*/
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import {
|
||||
ExtraFormData,
|
||||
QueryFormData,
|
||||
styled,
|
||||
SuperChart,
|
||||
DataMask,
|
||||
t,
|
||||
Behavior,
|
||||
} from '@superset-ui/core';
|
||||
import { areObjectsEqual } from 'src/reduxUtils';
|
||||
import { getChartDataRequest } from 'src/chart/chartAction';
|
||||
import Loading from 'src/components/Loading';
|
||||
import BasicErrorAlert from 'src/components/ErrorMessage/BasicErrorAlert';
|
||||
import { CurrentFilterState } from 'src/dashboard/reducers/types';
|
||||
import { FilterProps } from './types';
|
||||
import { getFormData } from '../utils';
|
||||
import { useCascadingFilters } from './state';
|
||||
|
@ -109,13 +109,8 @@ const FilterValue: React.FC<FilterProps> = ({
|
|||
return undefined;
|
||||
}, [inputRef, directPathToChild, filter.id]);
|
||||
|
||||
const setExtraFormData = ({
|
||||
extraFormData,
|
||||
currentState,
|
||||
}: {
|
||||
extraFormData: ExtraFormData;
|
||||
currentState: CurrentFilterState;
|
||||
}) => onFilterSelectionChange(filter, extraFormData, currentState);
|
||||
const setDataMask = (dataMask: DataMask) =>
|
||||
onFilterSelectionChange(filter, dataMask);
|
||||
|
||||
if (loading) {
|
||||
return (
|
||||
|
@ -144,8 +139,8 @@ const FilterValue: React.FC<FilterProps> = ({
|
|||
// For charts that don't have datasource we need workaround for empty placeholder
|
||||
queriesData={hasDataSource ? state : [{ data: [null] }]}
|
||||
chartType={filterType}
|
||||
// @ts-ignore (update superset-ui)
|
||||
hooks={{ setExtraFormData }}
|
||||
behaviors={[Behavior.NATIVE_FILTER]}
|
||||
hooks={{ setDataMask }}
|
||||
/>
|
||||
</FilterItem>
|
||||
);
|
||||
|
|
|
@ -16,16 +16,13 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useCallback } from 'react';
|
||||
import { ExtraFormData } from '@superset-ui/core';
|
||||
import { setExtraFormData } from 'src/dashboard/actions/nativeFilters';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { getInitialFilterState } from 'src/dashboard/reducers/nativeFilters';
|
||||
import {
|
||||
CurrentFilterState,
|
||||
NativeFilterState,
|
||||
NativeFiltersState,
|
||||
FilterState,
|
||||
FilterSets,
|
||||
FilterStates,
|
||||
} from 'src/dashboard/reducers/types';
|
||||
import { mergeExtraFormData } from '../utils';
|
||||
import { Filter } from '../types';
|
||||
|
@ -34,9 +31,9 @@ export function useFilters() {
|
|||
return useSelector<any, Filter>(state => state.nativeFilters.filters);
|
||||
}
|
||||
|
||||
export function useFiltersState() {
|
||||
return useSelector<any, NativeFilterState>(
|
||||
state => state.nativeFilters.filtersState,
|
||||
export function useFiltersStateNative() {
|
||||
return useSelector<any, FilterStates>(
|
||||
state => state.nativeFilters.filtersState.nativeFilters ?? {},
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -46,36 +43,28 @@ export function useFilterSets() {
|
|||
);
|
||||
}
|
||||
|
||||
export function useSetExtraFormData() {
|
||||
const dispatch = useDispatch();
|
||||
return useCallback(
|
||||
(
|
||||
id: string,
|
||||
extraFormData: ExtraFormData,
|
||||
currentState: CurrentFilterState,
|
||||
) => dispatch(setExtraFormData(id, extraFormData, currentState)),
|
||||
[dispatch],
|
||||
);
|
||||
}
|
||||
|
||||
export function useCascadingFilters(id: string) {
|
||||
const nativeFilters = useSelector<any, NativeFiltersState>(
|
||||
state => state.nativeFilters,
|
||||
);
|
||||
const { filters, filtersState } = nativeFilters;
|
||||
const {
|
||||
filters,
|
||||
filtersState: { nativeFilters },
|
||||
} = useSelector<any, NativeFiltersState>(state => state.nativeFilters);
|
||||
const filter = filters[id];
|
||||
const cascadeParentIds = filter?.cascadeParentIds ?? [];
|
||||
const cascadeParentIds: string[] = filter?.cascadeParentIds ?? [];
|
||||
let cascadedFilters = {};
|
||||
cascadeParentIds.forEach(parentId => {
|
||||
const parentState = filtersState[parentId] || {};
|
||||
const parentState = nativeFilters[parentId] || {};
|
||||
const { extraFormData: parentExtra = {} } = parentState;
|
||||
cascadedFilters = mergeExtraFormData(cascadedFilters, parentExtra);
|
||||
cascadedFilters = {
|
||||
nativeFilters: mergeExtraFormData(cascadedFilters, parentExtra),
|
||||
};
|
||||
});
|
||||
return cascadedFilters;
|
||||
}
|
||||
|
||||
export function useFilterState(id: string) {
|
||||
return useSelector<any, NativeFilterState>(
|
||||
state => state.nativeFilters.filtersState[id] || getInitialFilterState(id),
|
||||
export function useFilterStateNative(id: string) {
|
||||
return useSelector<any, FilterState>(
|
||||
state =>
|
||||
state.nativeFilters.filtersState.nativeFilters[id] ??
|
||||
getInitialFilterState(id),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -17,19 +17,14 @@
|
|||
* under the License.
|
||||
*/
|
||||
import React from 'react';
|
||||
import { ExtraFormData } from '@superset-ui/core';
|
||||
import { CurrentFilterState } from 'src/dashboard/reducers/types';
|
||||
import { DataMask } from '@superset-ui/core';
|
||||
import { Filter } from '../types';
|
||||
|
||||
export interface FilterProps {
|
||||
filter: Filter;
|
||||
icon?: React.ReactElement;
|
||||
directPathToChild?: string[];
|
||||
onFilterSelectionChange: (
|
||||
filter: Filter,
|
||||
extraFormData: ExtraFormData,
|
||||
currentState: CurrentFilterState,
|
||||
) => void;
|
||||
onFilterSelectionChange: (filter: Filter, filterState: DataMask) => void;
|
||||
}
|
||||
|
||||
export interface CascadeFilter extends Filter {
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
* under the License.
|
||||
*/
|
||||
import React, { FC } from 'react';
|
||||
import { t, SuperChart } from '@superset-ui/core';
|
||||
import { t, SuperChart, Behavior } from '@superset-ui/core';
|
||||
import { FormInstance } from 'antd/lib/form';
|
||||
import { setFilterFieldValues, useForceUpdate } from './utils';
|
||||
import { setFilterFieldValues } from './utils';
|
||||
import { StyledFormItem, StyledLabel } from './FiltersConfigForm';
|
||||
import { Filter } from '../../types';
|
||||
import { NativeFiltersForm } from '../types';
|
||||
|
@ -27,6 +27,7 @@ import { getFormData } from '../../utils';
|
|||
|
||||
type DefaultValueProps = {
|
||||
filterId: string;
|
||||
forceUpdate: Function;
|
||||
hasFilledDatasource: boolean;
|
||||
hasDatasource: boolean;
|
||||
filterToEdit?: Filter;
|
||||
|
@ -40,9 +41,9 @@ const DefaultValue: FC<DefaultValueProps> = ({
|
|||
hasDatasource,
|
||||
filterToEdit,
|
||||
form,
|
||||
forceUpdate,
|
||||
formData,
|
||||
}) => {
|
||||
const forceUpdate = useForceUpdate();
|
||||
const formFilter = (form.getFieldValue('filters') || {})[filterId];
|
||||
return (
|
||||
<StyledFormItem
|
||||
|
@ -56,6 +57,7 @@ const DefaultValue: FC<DefaultValueProps> = ({
|
|||
<SuperChart
|
||||
height={25}
|
||||
width={250}
|
||||
behaviors={[Behavior.NATIVE_FILTER]}
|
||||
formData={formData}
|
||||
// For charts that don't have datasource we need workaround for empty placeholder
|
||||
queriesData={
|
||||
|
@ -65,10 +67,9 @@ const DefaultValue: FC<DefaultValueProps> = ({
|
|||
}
|
||||
chartType={formFilter?.filterType}
|
||||
hooks={{
|
||||
// @ts-ignore (fixed in other PR)
|
||||
setExtraFormData: ({ currentState }) => {
|
||||
setDataMask: ({ nativeFilters }) => {
|
||||
setFilterFieldValues(form, filterId, {
|
||||
defaultValue: currentState?.value,
|
||||
defaultValue: nativeFilters?.currentState?.value,
|
||||
});
|
||||
forceUpdate();
|
||||
},
|
||||
|
|
|
@ -249,6 +249,7 @@ export const FiltersConfigForm: React.FC<FiltersConfigFormProps> = ({
|
|||
/>
|
||||
</StyledFormItem>
|
||||
<DefaultValue
|
||||
forceUpdate={forceUpdate}
|
||||
filterId={filterId}
|
||||
hasFilledDatasource={hasFilledDatasource}
|
||||
hasDatasource={hasDatasource}
|
||||
|
|
|
@ -72,7 +72,7 @@ export const getFormData = ({
|
|||
};
|
||||
|
||||
export function mergeExtraFormData(
|
||||
originalExtra: ExtraFormData,
|
||||
originalExtra: ExtraFormData = {},
|
||||
newExtra: ExtraFormData,
|
||||
): ExtraFormData {
|
||||
const {
|
||||
|
@ -82,6 +82,7 @@ export function mergeExtraFormData(
|
|||
const {
|
||||
override_form_data: newOverride = {},
|
||||
append_form_data: newAppend = {},
|
||||
custom_form_data: newCustom = {},
|
||||
} = newExtra;
|
||||
|
||||
const appendKeys = new Set([
|
||||
|
@ -99,6 +100,7 @@ export function mergeExtraFormData(
|
|||
});
|
||||
|
||||
return {
|
||||
custom_form_data: newCustom,
|
||||
override_form_data: {
|
||||
...originalOverride,
|
||||
...newOverride,
|
||||
|
@ -121,14 +123,14 @@ export function getExtraFormData(
|
|||
): ExtraFormData {
|
||||
let extraFormData: ExtraFormData = {};
|
||||
filterIdsAppliedOnChart.forEach(key => {
|
||||
const filterState = nativeFilters.filtersState[key] || {};
|
||||
const filterState = nativeFilters.filtersState.nativeFilters[key] || {};
|
||||
const { extraFormData: newExtra = {} } = filterState;
|
||||
extraFormData = mergeExtraFormData(extraFormData, newExtra);
|
||||
});
|
||||
if (isFeatureEnabled(FeatureFlag.DASHBOARD_CROSS_FILTERS)) {
|
||||
Object.entries(charts).forEach(([key, chart]) => {
|
||||
if (isCrossFilter(chart?.formData?.viz_type)) {
|
||||
const filterState = nativeFilters.filtersState[key] || {};
|
||||
const filterState = nativeFilters.filtersState.crossFilters[key] || {};
|
||||
const { extraFormData: newExtra = {} } = filterState;
|
||||
extraFormData = mergeExtraFormData(extraFormData, newExtra);
|
||||
}
|
||||
|
|
|
@ -82,6 +82,7 @@ function mapStateToProps(
|
|||
supersetCanExplore: !!dashboardInfo.superset_can_explore,
|
||||
supersetCanCSV: !!dashboardInfo.superset_can_csv,
|
||||
sliceCanEdit: !!dashboardInfo.slice_can_edit,
|
||||
ownCurrentState: nativeFilters.filtersState.ownFilters?.[id]?.currentState,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ function mapStateToProps(state) {
|
|||
layout: dashboardLayout.present,
|
||||
}),
|
||||
},
|
||||
ownDataCharts: nativeFilters.filtersState.ownFilters ?? {},
|
||||
slices: sliceEntities.slices,
|
||||
layout: dashboardLayout.present,
|
||||
impressionId,
|
||||
|
|
|
@ -19,15 +19,22 @@
|
|||
import {
|
||||
AnyFilterAction,
|
||||
SAVE_FILTER_SETS,
|
||||
SET_EXTRA_FORM_DATA,
|
||||
SET_FILTER_CONFIG_COMPLETE,
|
||||
SET_FILTER_SETS_CONFIG_COMPLETE,
|
||||
SET_FILTERS_STATE,
|
||||
UPDATE_EXTRA_FORM_DATA,
|
||||
UpdateExtraFormData,
|
||||
} from 'src/dashboard/actions/nativeFilters';
|
||||
import { FiltersSet, NativeFiltersState, NativeFilterState } from './types';
|
||||
import {
|
||||
FiltersSet,
|
||||
FiltersState,
|
||||
FilterState,
|
||||
FilterStateType,
|
||||
NativeFiltersState,
|
||||
} from './types';
|
||||
import { FilterConfiguration } from '../components/nativeFilters/types';
|
||||
|
||||
export function getInitialFilterState(id: string): NativeFilterState {
|
||||
export function getInitialFilterState(id: string): FilterState {
|
||||
return {
|
||||
id,
|
||||
extraFormData: {},
|
||||
|
@ -46,20 +53,30 @@ export function getInitialState({
|
|||
}): NativeFiltersState {
|
||||
const state: Partial<NativeFiltersState> = {};
|
||||
|
||||
const emptyFiltersState = {
|
||||
[FilterStateType.NativeFilters]: {},
|
||||
[FilterStateType.CrossFilters]: {},
|
||||
[FilterStateType.OwnFilters]: {},
|
||||
};
|
||||
|
||||
const filters = {};
|
||||
const filtersState = {};
|
||||
const filtersState = { ...emptyFiltersState };
|
||||
if (filterConfig) {
|
||||
filterConfig.forEach(filter => {
|
||||
const { id } = filter;
|
||||
filters[id] = filter;
|
||||
filtersState[id] =
|
||||
prevState?.filtersState?.[id] || getInitialFilterState(id);
|
||||
filtersState.nativeFilters[id] =
|
||||
prevState?.filtersState?.nativeFilters[id] || getInitialFilterState(id);
|
||||
});
|
||||
state.filters = filters;
|
||||
state.filtersState = filtersState;
|
||||
state.filtersState = {
|
||||
...emptyFiltersState,
|
||||
...prevState?.filtersState,
|
||||
nativeFilters: filtersState.nativeFilters,
|
||||
};
|
||||
} else {
|
||||
state.filters = prevState?.filters ?? {};
|
||||
state.filtersState = prevState?.filtersState ?? {};
|
||||
state.filtersState = prevState?.filtersState ?? { ...emptyFiltersState };
|
||||
}
|
||||
|
||||
if (filterSetsConfig) {
|
||||
|
@ -75,23 +92,57 @@ export function getInitialState({
|
|||
return state as NativeFiltersState;
|
||||
}
|
||||
|
||||
const getUnitState = (
|
||||
unitName: FilterStateType,
|
||||
action: UpdateExtraFormData,
|
||||
filtersState: FiltersState,
|
||||
) => {
|
||||
if (action[unitName])
|
||||
return {
|
||||
...filtersState[unitName],
|
||||
[action.filterId]: {
|
||||
...filtersState[unitName][action.filterId],
|
||||
...action[unitName],
|
||||
},
|
||||
};
|
||||
return { ...filtersState[unitName] };
|
||||
};
|
||||
|
||||
export default function nativeFilterReducer(
|
||||
state: NativeFiltersState = { filters: {}, filtersState: {}, filterSets: {} },
|
||||
state: NativeFiltersState = {
|
||||
filters: {},
|
||||
filterSets: {},
|
||||
filtersState: {
|
||||
[FilterStateType.NativeFilters]: {},
|
||||
[FilterStateType.CrossFilters]: {},
|
||||
[FilterStateType.OwnFilters]: {},
|
||||
},
|
||||
},
|
||||
action: AnyFilterAction,
|
||||
) {
|
||||
const { filters, filtersState, filterSets } = state;
|
||||
switch (action.type) {
|
||||
case SET_EXTRA_FORM_DATA:
|
||||
case UPDATE_EXTRA_FORM_DATA:
|
||||
return {
|
||||
...state,
|
||||
filters,
|
||||
filtersState: {
|
||||
...filtersState,
|
||||
[action.filterId]: {
|
||||
...filtersState[action.filterId],
|
||||
extraFormData: action.extraFormData,
|
||||
currentState: action.currentState,
|
||||
},
|
||||
[FilterStateType.NativeFilters]: getUnitState(
|
||||
FilterStateType.NativeFilters,
|
||||
action,
|
||||
filtersState,
|
||||
),
|
||||
[FilterStateType.CrossFilters]: getUnitState(
|
||||
FilterStateType.CrossFilters,
|
||||
action,
|
||||
filtersState,
|
||||
),
|
||||
[FilterStateType.OwnFilters]: getUnitState(
|
||||
FilterStateType.OwnFilters,
|
||||
action,
|
||||
filtersState,
|
||||
),
|
||||
},
|
||||
};
|
||||
case SAVE_FILTER_SETS:
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
*/
|
||||
|
||||
import componentTypes from 'src/dashboard/util/componentTypes';
|
||||
import { ExtraFormData, JsonObject } from '@superset-ui/core';
|
||||
import { ExtraFormData, DataMaskCurrentState } from '@superset-ui/core';
|
||||
import { Filter } from '../components/nativeFilters/types';
|
||||
|
||||
export enum Scoping {
|
||||
|
@ -45,11 +45,6 @@ export type RootState = {
|
|||
/** State of dashboardLayout in redux */
|
||||
export type Layout = { [key: string]: LayoutItem };
|
||||
|
||||
/** State of nativeFilters currentState */
|
||||
export type CurrentFilterState = JsonObject & {
|
||||
value?: any;
|
||||
};
|
||||
|
||||
/** State of charts in redux */
|
||||
export type Charts = { [key: number]: Chart };
|
||||
|
||||
|
@ -73,28 +68,42 @@ export type LayoutItem = {
|
|||
};
|
||||
|
||||
/** Current state of the filter, stored in `nativeFilters` in redux */
|
||||
export type NativeFilterState = {
|
||||
export type FilterState = {
|
||||
id: string; // ties this filter state to the config object
|
||||
extraFormData: ExtraFormData;
|
||||
currentState: CurrentFilterState;
|
||||
extraFormData?: ExtraFormData;
|
||||
currentState: DataMaskCurrentState;
|
||||
};
|
||||
|
||||
export type FiltersSet = {
|
||||
id: string;
|
||||
name: string;
|
||||
filtersState: NativeFilterState;
|
||||
filtersState: Partial<FiltersState>;
|
||||
};
|
||||
|
||||
export type FilterSets = {
|
||||
[filtersSetId: string]: FiltersSet;
|
||||
};
|
||||
|
||||
export type NativeFiltersState = {
|
||||
filters: {
|
||||
[filterId: string]: Filter;
|
||||
};
|
||||
filterSets: FilterSets;
|
||||
filtersState: {
|
||||
[filterId: string]: NativeFilterState;
|
||||
};
|
||||
export type FilterStates = { [filterId: string]: FilterState };
|
||||
|
||||
export enum FilterStateType {
|
||||
NativeFilters = 'nativeFilters',
|
||||
CrossFilters = 'crossFilters',
|
||||
OwnFilters = 'ownFilters',
|
||||
}
|
||||
|
||||
export type FiltersState = {
|
||||
[FilterStateType.NativeFilters]: FilterStates;
|
||||
[FilterStateType.CrossFilters]: FilterStates;
|
||||
[FilterStateType.OwnFilters]: FilterStates;
|
||||
};
|
||||
|
||||
export type Filters = {
|
||||
[filterId: string]: Filter;
|
||||
};
|
||||
|
||||
export type NativeFiltersState = {
|
||||
filters: Filters;
|
||||
filtersState: FiltersState;
|
||||
filterSets: FilterSets;
|
||||
};
|
||||
|
|
|
@ -78,31 +78,32 @@ export const getActiveNativeFilters = ({
|
|||
layout: { [key: string]: LayoutItem };
|
||||
}): ActiveFilters => {
|
||||
const activeNativeFilters = {};
|
||||
if (!nativeFilters?.filtersState) {
|
||||
if (!nativeFilters?.filtersState?.nativeFilters) {
|
||||
return activeNativeFilters;
|
||||
}
|
||||
Object.values(nativeFilters.filtersState).forEach(
|
||||
({ id: filterId, extraFormData }) => {
|
||||
// TODO: for a case of a cross filters (should be updated will be added scope there)
|
||||
const scope = nativeFilters?.filters?.[filterId]?.scope ?? {
|
||||
rootPath: [DASHBOARD_ROOT_ID],
|
||||
excluded: [],
|
||||
};
|
||||
// Iterate over all roots to find all affected charts
|
||||
scope.rootPath.forEach(layoutItemId => {
|
||||
layout[layoutItemId].children.forEach((child: string) => {
|
||||
// Need exclude from affected charts, charts that located in scope `excluded`
|
||||
findAffectedCharts({
|
||||
child,
|
||||
layout,
|
||||
scope,
|
||||
activeNativeFilters,
|
||||
filterId,
|
||||
extraFormData,
|
||||
});
|
||||
Object.values({
|
||||
...nativeFilters.filtersState.nativeFilters,
|
||||
...nativeFilters.filtersState.crossFilters,
|
||||
}).forEach(({ id: filterId, extraFormData }) => {
|
||||
// TODO: for a case of a cross filters (should be updated will be added scope there)
|
||||
const scope = nativeFilters?.filters?.[filterId]?.scope ?? {
|
||||
rootPath: [DASHBOARD_ROOT_ID],
|
||||
excluded: [],
|
||||
};
|
||||
// Iterate over all roots to find all affected charts
|
||||
scope.rootPath.forEach(layoutItemId => {
|
||||
layout[layoutItemId].children.forEach((child: string) => {
|
||||
// Need exclude from affected charts, charts that located in scope `excluded`
|
||||
findAffectedCharts({
|
||||
child,
|
||||
layout,
|
||||
scope,
|
||||
activeNativeFilters,
|
||||
filterId,
|
||||
extraFormData,
|
||||
});
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
return activeNativeFilters;
|
||||
};
|
||||
|
|
|
@ -20,9 +20,13 @@ import { isEqual } from 'lodash';
|
|||
import {
|
||||
CategoricalColorNamespace,
|
||||
DataRecordFilters,
|
||||
JsonObject,
|
||||
} from '@superset-ui/core';
|
||||
import { ChartQueryPayload, Charts, LayoutItem } from 'src/dashboard/types';
|
||||
import { getExtraFormData } from 'src/dashboard/components/nativeFilters/utils';
|
||||
import {
|
||||
getExtraFormData,
|
||||
mergeExtraFormData,
|
||||
} from 'src/dashboard/components/nativeFilters/utils';
|
||||
import getEffectiveExtraFilters from './getEffectiveExtraFilters';
|
||||
import { getActiveNativeFilters } from '../activeDashboardNativeFilters';
|
||||
import { NativeFiltersState } from '../../reducers/types';
|
||||
|
@ -73,7 +77,7 @@ export default function getFormDataWithExtraFilters({
|
|||
return cachedFormdataByChart[sliceId];
|
||||
}
|
||||
|
||||
let extraData = {};
|
||||
let extraData: { extra_form_data?: JsonObject } = {};
|
||||
const activeNativeFilters = getActiveNativeFilters({ nativeFilters, layout });
|
||||
const filterIdsAppliedOnChart = Object.entries(activeNativeFilters)
|
||||
.filter(([, { scope }]) => scope.includes(chart.id))
|
||||
|
@ -88,6 +92,13 @@ export default function getFormDataWithExtraFilters({
|
|||
};
|
||||
}
|
||||
|
||||
const { extraFormData: newExtra = {} } =
|
||||
nativeFilters.filtersState?.ownFilters?.[chart.id] ?? {};
|
||||
extraData.extra_form_data = mergeExtraFormData(
|
||||
extraData?.extra_form_data,
|
||||
newExtra,
|
||||
);
|
||||
|
||||
const formData = {
|
||||
...chart.formData,
|
||||
...(colorScheme && { color_scheme: colorScheme }),
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
/**
|
||||
* 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 { JsonObject } from '@superset-ui/core';
|
||||
import { areObjectsEqual } from '../../../reduxUtils';
|
||||
|
||||
export const arrayDiff = (a: string[], b: string[]) => [
|
||||
...a.filter(x => !b.includes(x)),
|
||||
...b.filter(x => !a.includes(x)),
|
||||
];
|
||||
|
||||
export const getAffectedOwnDataCharts = (
|
||||
ownDataCharts: JsonObject,
|
||||
appliedOwnDataCharts: JsonObject,
|
||||
) => {
|
||||
const chartIds = Object.keys(ownDataCharts);
|
||||
const appliedChartIds = Object.keys(appliedOwnDataCharts);
|
||||
const affectedIds: string[] = arrayDiff(chartIds, appliedChartIds).filter(
|
||||
id =>
|
||||
ownDataCharts[id]?.extraFormData ||
|
||||
appliedOwnDataCharts[id]?.extraFormData,
|
||||
);
|
||||
const checkForUpdateIds = new Set<string>([...chartIds, ...appliedChartIds]);
|
||||
checkForUpdateIds.forEach(chartId => {
|
||||
if (
|
||||
!areObjectsEqual(
|
||||
ownDataCharts[chartId]?.extraFormData,
|
||||
appliedOwnDataCharts[chartId]?.extraFormData,
|
||||
)
|
||||
) {
|
||||
affectedIds.push(chartId);
|
||||
}
|
||||
});
|
||||
return [...new Set(affectedIds)];
|
||||
};
|
|
@ -16,7 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { styled, t } from '@superset-ui/core';
|
||||
import { styled, t, DataMask, Behavior } from '@superset-ui/core';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Slider } from 'src/common/components';
|
||||
import { PluginFilterRangeProps } from './types';
|
||||
|
@ -29,7 +29,15 @@ const Styles = styled.div<PluginFilterStylesProps>`
|
|||
`;
|
||||
|
||||
export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
||||
const { data, formData, height, width, setExtraFormData, inputRef } = props;
|
||||
const {
|
||||
data,
|
||||
formData,
|
||||
height,
|
||||
width,
|
||||
setDataMask,
|
||||
inputRef,
|
||||
behaviors,
|
||||
} = props;
|
||||
const [row] = data;
|
||||
// @ts-ignore
|
||||
const { min, max }: { min: number; max: number } = row;
|
||||
|
@ -42,12 +50,23 @@ export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
|||
const handleAfterChange = (value: [number, number]) => {
|
||||
const [lower, upper] = value;
|
||||
setValue(value);
|
||||
setExtraFormData({
|
||||
const dataMask = {
|
||||
extraFormData: getRangeExtraFormData(col, lower, upper),
|
||||
currentState: {
|
||||
value,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const dataMaskObject: DataMask = {};
|
||||
if (behaviors.includes(Behavior.NATIVE_FILTER)) {
|
||||
dataMaskObject.nativeFilters = dataMask;
|
||||
}
|
||||
|
||||
if (behaviors.includes(Behavior.CROSS_FILTER)) {
|
||||
dataMaskObject.crossFilters = dataMask;
|
||||
}
|
||||
|
||||
setDataMask(dataMaskObject);
|
||||
};
|
||||
|
||||
const handleChange = (value: [number, number]) => {
|
||||
|
|
|
@ -19,15 +19,16 @@
|
|||
import { ChartProps } from '@superset-ui/core';
|
||||
|
||||
export default function transformProps(chartProps: ChartProps) {
|
||||
const { formData, height, hooks, queriesData, width } = chartProps;
|
||||
const { setExtraFormData } = hooks;
|
||||
const { formData, height, hooks, queriesData, width, behaviors } = chartProps;
|
||||
const { setDataMask } = hooks;
|
||||
const { data } = queriesData[0];
|
||||
|
||||
return {
|
||||
data,
|
||||
formData,
|
||||
behaviors,
|
||||
height,
|
||||
setExtraFormData,
|
||||
setDataMask,
|
||||
width,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
import {
|
||||
DataRecord,
|
||||
QueryFormData,
|
||||
SetExtraFormDataHook,
|
||||
SetDataMaskHook,
|
||||
Behavior,
|
||||
} from '@superset-ui/core';
|
||||
import { RefObject } from 'react';
|
||||
import { PluginFilterStylesProps } from '../types';
|
||||
|
@ -36,6 +37,7 @@ export type PluginFilterRangeQueryFormData = QueryFormData &
|
|||
export type PluginFilterRangeProps = PluginFilterStylesProps & {
|
||||
data: DataRecord[];
|
||||
formData: PluginFilterRangeQueryFormData;
|
||||
setExtraFormData: SetExtraFormDataHook;
|
||||
setDataMask: SetDataMaskHook;
|
||||
behaviors: Behavior[];
|
||||
inputRef: RefObject<any>;
|
||||
};
|
||||
|
|
|
@ -56,7 +56,7 @@ export const Select = ({
|
|||
metrics: ['SUM(SP_POP_TOTL)'],
|
||||
}}
|
||||
hooks={{
|
||||
setExtraFormData: action('setExtraFormData'),
|
||||
setDataMask: action('setDataMask'),
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { styled } from '@superset-ui/core';
|
||||
import { styled, Behavior, DataMask, t } from '@superset-ui/core';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Select } from 'src/common/components';
|
||||
import { PluginFilterSelectProps } from './types';
|
||||
|
@ -31,7 +31,7 @@ const Styles = styled.div<PluginFilterStylesProps>`
|
|||
const { Option } = Select;
|
||||
|
||||
export default function PluginFilterSelect(props: PluginFilterSelectProps) {
|
||||
const { data, formData, height, width, setExtraFormData } = props;
|
||||
const { data, formData, height, width, behaviors, setDataMask } = props;
|
||||
const {
|
||||
defaultValue,
|
||||
enableEmptyFilter,
|
||||
|
@ -58,10 +58,12 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
|
|||
resultValue = value;
|
||||
}
|
||||
setValues(resultValue);
|
||||
|
||||
const [col] = groupby;
|
||||
const emptyFilter =
|
||||
enableEmptyFilter && !inverseSelection && resultValue?.length === 0;
|
||||
setExtraFormData({
|
||||
|
||||
const dataMask = {
|
||||
extraFormData: getSelectExtraFormData(
|
||||
col,
|
||||
resultValue,
|
||||
|
@ -71,7 +73,18 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
|
|||
currentState: {
|
||||
value: resultValue.length ? resultValue : null,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const dataMaskObject: DataMask = {};
|
||||
if (behaviors.includes(Behavior.NATIVE_FILTER)) {
|
||||
dataMaskObject.nativeFilters = dataMask;
|
||||
}
|
||||
|
||||
if (behaviors.includes(Behavior.CROSS_FILTER)) {
|
||||
dataMaskObject.crossFilters = dataMask;
|
||||
}
|
||||
|
||||
setDataMask(dataMaskObject);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
@ -86,8 +99,8 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
|
|||
|
||||
const placeholderText =
|
||||
(data || []).length === 0
|
||||
? 'No data'
|
||||
: `${data.length} option${data.length > 1 ? 's' : 0}`;
|
||||
? t('No data')
|
||||
: t(`%d option%s`, data.length, data.length === 1 ? '' : 's');
|
||||
return (
|
||||
<Styles height={height} width={width}>
|
||||
<Select
|
||||
|
|
|
@ -20,17 +20,18 @@ import { ChartProps } from '@superset-ui/core';
|
|||
import { DEFAULT_FORM_DATA } from './types';
|
||||
|
||||
export default function transformProps(chartProps: ChartProps) {
|
||||
const { formData, height, hooks, queriesData, width } = chartProps;
|
||||
const { formData, height, hooks, queriesData, width, behaviors } = chartProps;
|
||||
const newFormData = { ...DEFAULT_FORM_DATA, ...formData };
|
||||
const { setExtraFormData = () => {} } = hooks;
|
||||
const { setDataMask = () => {} } = hooks;
|
||||
|
||||
const { data } = queriesData[0];
|
||||
|
||||
return {
|
||||
width,
|
||||
behaviors,
|
||||
height,
|
||||
data,
|
||||
formData: newFormData,
|
||||
setExtraFormData,
|
||||
setDataMask,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
import {
|
||||
QueryFormData,
|
||||
DataRecord,
|
||||
SetExtraFormDataHook,
|
||||
SetDataMaskHook,
|
||||
Behavior,
|
||||
} from '@superset-ui/core';
|
||||
import { RefObject } from 'react';
|
||||
import { PluginFilterStylesProps } from '../types';
|
||||
|
@ -40,7 +41,8 @@ export type PluginFilterSelectQueryFormData = QueryFormData &
|
|||
|
||||
export type PluginFilterSelectProps = PluginFilterStylesProps & {
|
||||
data: DataRecord[];
|
||||
setExtraFormData: SetExtraFormDataHook;
|
||||
setDataMask: SetDataMaskHook;
|
||||
behaviors: Behavior[];
|
||||
formData: PluginFilterSelectQueryFormData;
|
||||
};
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { styled } from '@superset-ui/core';
|
||||
import { styled, DataMask, Behavior } from '@superset-ui/core';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import DateFilterControl from 'src/explore/components/controls/DateFilterControl';
|
||||
import { PluginFilterStylesProps } from '../types';
|
||||
|
@ -31,22 +31,32 @@ const Styles = styled.div<PluginFilterStylesProps>`
|
|||
`;
|
||||
|
||||
export default function TimeFilterPlugin(props: PluginFilterTimeProps) {
|
||||
const { formData, setExtraFormData, width } = props;
|
||||
const { formData, setDataMask, width, behaviors } = props;
|
||||
const { defaultValue, currentValue } = formData;
|
||||
|
||||
const [value, setValue] = useState<string>(defaultValue ?? DEFAULT_VALUE);
|
||||
|
||||
const handleTimeRangeChange = (timeRange: string): void => {
|
||||
setExtraFormData({
|
||||
// @ts-ignore
|
||||
setValue(timeRange);
|
||||
const dataMask = {
|
||||
extraFormData: {
|
||||
override_form_data: {
|
||||
time_range: timeRange,
|
||||
},
|
||||
},
|
||||
currentState: { value: timeRange },
|
||||
});
|
||||
setValue(timeRange);
|
||||
};
|
||||
|
||||
const dataMaskObject: DataMask = {};
|
||||
if (behaviors.includes(Behavior.NATIVE_FILTER)) {
|
||||
dataMaskObject.nativeFilters = dataMask;
|
||||
}
|
||||
|
||||
if (behaviors.includes(Behavior.CROSS_FILTER)) {
|
||||
dataMaskObject.crossFilters = dataMask;
|
||||
}
|
||||
|
||||
setDataMask(dataMaskObject);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
|
|
@ -20,8 +20,8 @@ import { ChartProps } from '@superset-ui/core';
|
|||
import { DEFAULT_FORM_DATA } from './types';
|
||||
|
||||
export default function transformProps(chartProps: ChartProps) {
|
||||
const { formData, height, hooks, queriesData, width } = chartProps;
|
||||
const { setExtraFormData } = hooks;
|
||||
const { formData, height, hooks, queriesData, width, behaviors } = chartProps;
|
||||
const { setDataMask = () => {} } = hooks;
|
||||
const { data } = queriesData[0];
|
||||
|
||||
return {
|
||||
|
@ -31,7 +31,8 @@ export default function transformProps(chartProps: ChartProps) {
|
|||
...formData,
|
||||
},
|
||||
height,
|
||||
setExtraFormData,
|
||||
behaviors,
|
||||
setDataMask,
|
||||
width,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
import {
|
||||
QueryFormData,
|
||||
DataRecord,
|
||||
SetExtraFormDataHook,
|
||||
SetDataMaskHook,
|
||||
Behavior,
|
||||
} from '@superset-ui/core';
|
||||
import { PluginFilterStylesProps } from '../types';
|
||||
|
||||
|
@ -33,8 +34,9 @@ export type PluginFilterSelectQueryFormData = QueryFormData &
|
|||
PluginFilterTimeCustomizeProps;
|
||||
|
||||
export type PluginFilterTimeProps = PluginFilterStylesProps & {
|
||||
behaviors: Behavior[];
|
||||
data: DataRecord[];
|
||||
setExtraFormData: SetExtraFormDataHook;
|
||||
setDataMask: SetDataMaskHook;
|
||||
formData: PluginFilterSelectQueryFormData;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue