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:
simcha90 2021-03-02 09:03:26 +02:00 committed by GitHub
parent 488da65986
commit f19a830d9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 776 additions and 600 deletions

View File

@ -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",

View File

@ -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",

View File

@ -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'],
},
},
},
},

View File

@ -53,6 +53,7 @@ describe('Dashboard', () => {
dashboardInfo,
charts: chartQueries,
activeFilters: {},
ownDataCharts: {},
slices: sliceEntities.slices,
datasources,
layout: dashboardLayout.present,

View File

@ -42,9 +42,13 @@ export const nativeFiltersInfo = {
},
},
filtersState: {
DefaultsID: {
id: 'DefaultId',
selectedValues: [],
nativeFilters: {
DefaultsID: {
id: 'DefaultId',
currentState: {
value: [],
},
},
},
},
};

View File

@ -62,10 +62,14 @@ describe('getFormDataWithExtraFilters', () => {
} as unknown) as Filter,
},
filtersState: {
[filterId]: {
id: filterId,
extraFormData: {},
currentState: {},
crossFilters: {},
ownFilters: {},
nativeFilters: {
[filterId]: {
id: filterId,
extraFormData: {},
currentState: {},
},
},
},
},

View File

@ -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,

View File

@ -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}

View File

@ -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;

View File

@ -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) {

View File

@ -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];

View File

@ -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}

View File

@ -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`

View File

@ -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[] => {

View File

@ -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,
},
},
}),
);
});
};

View File

@ -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>
);

View File

@ -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),
);
}

View File

@ -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 {

View File

@ -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();
},

View File

@ -249,6 +249,7 @@ export const FiltersConfigForm: React.FC<FiltersConfigFormProps> = ({
/>
</StyledFormItem>
<DefaultValue
forceUpdate={forceUpdate}
filterId={filterId}
hasFilledDatasource={hasFilledDatasource}
hasDatasource={hasDatasource}

View File

@ -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);
}

View File

@ -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,
};
}

View File

@ -62,6 +62,7 @@ function mapStateToProps(state) {
layout: dashboardLayout.present,
}),
},
ownDataCharts: nativeFilters.filtersState.ownFilters ?? {},
slices: sliceEntities.slices,
layout: dashboardLayout.present,
impressionId,

View File

@ -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:

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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 }),

View File

@ -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)];
};

View File

@ -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]) => {

View File

@ -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,
};
}

View File

@ -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>;
};

View File

@ -56,7 +56,7 @@ export const Select = ({
metrics: ['SUM(SP_POP_TOTL)'],
}}
hooks={{
setExtraFormData: action('setExtraFormData'),
setDataMask: action('setDataMask'),
}}
/>
);

View File

@ -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

View File

@ -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,
};
}

View File

@ -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;
};

View File

@ -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(() => {

View File

@ -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,
};
}

View File

@ -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;
};