mirror of
https://github.com/apache/superset.git
synced 2024-09-06 22:07:34 -04:00
feat: list view filters for Query History (#11702)
This commit is contained in:
parent
3cd94d6da9
commit
011724750f
422
superset-frontend/package-lock.json
generated
422
superset-frontend/package-lock.json
generated
@ -58,9 +58,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -19527,9 +19527,9 @@
|
|||||||
"integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8="
|
"integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8="
|
||||||
},
|
},
|
||||||
"antd": {
|
"antd": {
|
||||||
"version": "4.6.6",
|
"version": "4.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/antd/-/antd-4.6.6.tgz",
|
"resolved": "https://registry.npmjs.org/antd/-/antd-4.8.2.tgz",
|
||||||
"integrity": "sha512-ruqzFFyohjEEp+Qg5VzBzFgDjqdj0FoPt3V/bGtLjeuQXPqFrPs+y4WWWmqi3ydGmN4VPIGBwd3CybQDrZAN3g==",
|
"integrity": "sha512-qxagKsiPVO+2rcAdX8WA3TPqiv5TS4FDGoaETVgCCln3x7ap1nqHkBC+Fr3CSNg8MxwQ+6m5BSBLcs5uDQg0Qw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@ant-design/colors": "^4.0.5",
|
"@ant-design/colors": "^4.0.5",
|
||||||
"@ant-design/css-animation": "^1.7.2",
|
"@ant-design/css-animation": "^1.7.2",
|
||||||
@ -19547,30 +19547,30 @@
|
|||||||
"rc-cascader": "~1.4.0",
|
"rc-cascader": "~1.4.0",
|
||||||
"rc-checkbox": "~2.3.0",
|
"rc-checkbox": "~2.3.0",
|
||||||
"rc-collapse": "~2.0.0",
|
"rc-collapse": "~2.0.0",
|
||||||
"rc-dialog": "~8.2.1",
|
"rc-dialog": "~8.4.0",
|
||||||
"rc-drawer": "~4.1.0",
|
"rc-drawer": "~4.1.0",
|
||||||
"rc-dropdown": "~3.2.0",
|
"rc-dropdown": "~3.2.0",
|
||||||
"rc-field-form": "~1.10.0",
|
"rc-field-form": "~1.13.0",
|
||||||
"rc-image": "~3.0.6",
|
"rc-image": "~4.0.0",
|
||||||
"rc-input-number": "~6.0.0",
|
"rc-input-number": "~6.1.0",
|
||||||
"rc-mentions": "~1.5.0",
|
"rc-mentions": "~1.5.0",
|
||||||
"rc-menu": "~8.7.1",
|
"rc-menu": "~8.8.2",
|
||||||
"rc-motion": "^2.0.0",
|
"rc-motion": "^2.2.0",
|
||||||
"rc-notification": "~4.4.0",
|
"rc-notification": "~4.5.2",
|
||||||
"rc-pagination": "~3.0.3",
|
"rc-pagination": "~3.1.0",
|
||||||
"rc-picker": "~2.1.0",
|
"rc-picker": "~2.3.0",
|
||||||
"rc-progress": "~3.1.0",
|
"rc-progress": "~3.1.0",
|
||||||
"rc-rate": "~2.8.2",
|
"rc-rate": "~2.9.0",
|
||||||
"rc-resize-observer": "^0.2.3",
|
"rc-resize-observer": "^0.2.3",
|
||||||
"rc-select": "~11.3.2",
|
"rc-select": "~11.4.0",
|
||||||
"rc-slider": "~9.5.1",
|
"rc-slider": "~9.6.1",
|
||||||
"rc-steps": "~4.1.0",
|
"rc-steps": "~4.1.0",
|
||||||
"rc-switch": "~3.2.0",
|
"rc-switch": "~3.2.0",
|
||||||
"rc-table": "~7.9.2",
|
"rc-table": "~7.11.0",
|
||||||
"rc-tabs": "~11.6.0",
|
"rc-tabs": "~11.7.0",
|
||||||
"rc-textarea": "~0.3.0",
|
"rc-textarea": "~0.3.0",
|
||||||
"rc-tooltip": "~5.0.0",
|
"rc-tooltip": "~5.0.0",
|
||||||
"rc-tree": "~3.10.0",
|
"rc-tree": "~3.11.0",
|
||||||
"rc-tree-select": "~4.1.1",
|
"rc-tree-select": "~4.1.1",
|
||||||
"rc-trigger": "~5.0.3",
|
"rc-trigger": "~5.0.3",
|
||||||
"rc-upload": "~3.3.1",
|
"rc-upload": "~3.3.1",
|
||||||
@ -19588,22 +19588,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"moment": {
|
|
||||||
"version": "2.29.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
|
||||||
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
|
||||||
},
|
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
@ -20098,9 +20093,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"async-validator": {
|
"async-validator": {
|
||||||
"version": "3.4.0",
|
"version": "3.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.0.tgz",
|
||||||
"integrity": "sha512-VrFk4eYiJAWKskEz115iiuCf9O0ftnMMPXrOFMqyzGH2KxO7YwncKyn/FgOOP+0MDHMfXL7gLExagCutaZGigA=="
|
"integrity": "sha512-jMDcDHrH618eznoO4/3afJG5+I4HE/ipQd7y4mhPJmCaoHCSPOJfjpWgjFoxma2h8irL+zGe+qwyptDrR37Vhg=="
|
||||||
},
|
},
|
||||||
"asynckit": {
|
"asynckit": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
@ -24388,9 +24383,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"dayjs": {
|
"dayjs": {
|
||||||
"version": "1.9.4",
|
"version": "1.9.6",
|
||||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.4.tgz",
|
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.6.tgz",
|
||||||
"integrity": "sha512-ABSF3alrldf7nM9sQ2U+Ln67NRwmzlLOqG7kK03kck0mw3wlSSEKv/XhKGGxUjQcS57QeiCyNdrFgtj9nWlrng=="
|
"integrity": "sha512-HngNLtPEBWRo8EFVmHFmSXAjtCX8rGNqeXQI0Gh7wCTSqwaKgPIDqu9m07wABVopNwzvOeCb+2711vQhDlcIXw=="
|
||||||
},
|
},
|
||||||
"de-indent": {
|
"de-indent": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@ -35168,9 +35163,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"moment": {
|
"moment": {
|
||||||
"version": "2.23.0",
|
"version": "2.29.1",
|
||||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.23.0.tgz",
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
||||||
"integrity": "sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA=="
|
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
||||||
},
|
},
|
||||||
"moo": {
|
"moo": {
|
||||||
"version": "0.4.3",
|
"version": "0.4.3",
|
||||||
@ -39360,9 +39355,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-align": {
|
"rc-align": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.9.tgz",
|
||||||
"integrity": "sha512-2sRUkmB8z4UEXzaS+lDHzXMoR8HrtKH9nn2yHlHVNyUTnaucjMFbdEoCk+hO1g7cpIgW0MphG8i0EH2scSesfw==",
|
"integrity": "sha512-myAM2R4qoB6LqBul0leaqY8gFaiECDJ3MtQDmzDo9xM9NRT/04TvWOYd2YHU9zvGzqk9QXF6S9/MifzSKDZeMw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
@ -39372,17 +39367,17 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
@ -39456,9 +39451,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39478,9 +39473,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
@ -39494,19 +39489,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-dialog": {
|
"rc-dialog": {
|
||||||
"version": "8.2.2",
|
"version": "8.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.4.3.tgz",
|
||||||
"integrity": "sha512-U4jR5bE7XpIbMC20JAIv91254b+vQ8LODd8Kxco0XvkL+eJ1aCYkOfRqevJ1ipOIzF3s6F08jSH8YvJqxvpAvA==",
|
"integrity": "sha512-LHsWXb+2Cy4vEOeJcPvk9M0WSr80Gi438ov5rXt3E6XB4j+53Z+vMFRr+TagnVuOVQRCLmmzT4qutfm2U1OK6w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"rc-animate": "3.x",
|
"classnames": "^2.2.6",
|
||||||
|
"rc-motion": "^2.3.0",
|
||||||
"rc-util": "^5.0.1"
|
"rc-util": "^5.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39524,9 +39520,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39544,9 +39540,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39554,9 +39550,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-field-form": {
|
"rc-field-form": {
|
||||||
"version": "1.10.1",
|
"version": "1.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.13.2.tgz",
|
||||||
"integrity": "sha512-aosTtNTqLYX2jsG5GyCv7axe+b57XH73T7TmmrX/cmhemhtFjvNE6RkRkmtP9VOJnZg5YGC5HfK172cnJ1Ij7Q==",
|
"integrity": "sha512-sskFsJkEmK6wUXNVxVaXRq4jYhKFKQyVrKxHQkvCI0l2ENg8ujjT8oOV2X4aa7+tLV0FNJLKdD+LuHlnTxEeSg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.8.4",
|
"@babel/runtime": "^7.8.4",
|
||||||
"async-validator": "^3.0.3",
|
"async-validator": "^3.0.3",
|
||||||
@ -39564,9 +39560,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39574,21 +39570,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-image": {
|
"rc-image": {
|
||||||
"version": "3.0.6",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-image/-/rc-image-3.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/rc-image/-/rc-image-4.0.1.tgz",
|
||||||
"integrity": "sha512-Dn8mTSlcgKJko417OX8+6yyNIL9+DEa81aexBfT78qWlEpcxtR4GgdsU0+zJLNqa2rnGZyjaBLFtaPw9tUuxYA==",
|
"integrity": "sha512-1GxjwgtONtJjlvd7sM9VSLTAlDQhkqHI0wl72YSDpdm24w5zmDsTYLgTNh/vToFa9qAml10Gaidy03qpkTAQ+A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@ant-design/icons": "^4.2.2",
|
"@ant-design/icons": "^4.2.2",
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"rc-dialog": "~8.2.2",
|
"rc-dialog": "~8.4.0",
|
||||||
"rc-util": "^5.0.6"
|
"rc-util": "^5.0.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39596,9 +39592,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-input-number": {
|
"rc-input-number": {
|
||||||
"version": "6.0.1",
|
"version": "6.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-6.1.1.tgz",
|
||||||
"integrity": "sha512-cS1k6IB/V84VUQd5qWzGFrLHvZjWGHGmYbrvR0QP/C1Ju1SlBqlhqhOBTc6w+dpPs84PCH5caZtNzsHeWZ1zYA==",
|
"integrity": "sha512-9t2xf1G0YEism7FAXAvF1huBk7ZNABPBf6NL+3/aDL123WiT/vhhod4cldiDWTM1Yb2EDKR//ZIa546ScdsUaA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
@ -39606,9 +39602,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39629,9 +39625,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39639,9 +39635,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-menu": {
|
"rc-menu": {
|
||||||
"version": "8.7.1",
|
"version": "8.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.8.3.tgz",
|
||||||
"integrity": "sha512-CuuJ9oS1oPAfenqAMa3CZZE7RrPcPTHV3310cf6RO2uJgE9ztqasRFMEBwtruH16OexTr0igTCXySm+e2/TBQg==",
|
"integrity": "sha512-C9sT0SBXmUbVWRUseXASousacRVPnOm5aXdyJR569WIvZwbs2IncpGNmAcft1R5ZuFE3Y+SZZ5FYvtGtbCzkIQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
@ -39655,9 +39651,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39675,17 +39671,17 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
@ -39699,20 +39695,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-notification": {
|
"rc-notification": {
|
||||||
"version": "4.4.0",
|
"version": "4.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.5.4.tgz",
|
||||||
"integrity": "sha512-IDeNAFGVeOsy1tv4zNVqMAXB9tianR80ewQbtObaAQfjwAjWfONdqdyjFkEU6nc6UQhSUYA5OcTGb7kwwbnh0g==",
|
"integrity": "sha512-VsN0ouF4uglE5g3C9oDsXLNYX0Sz++ZNUFYCswkxhpImYJ9u6nJOpyA71uOYDVCu6bAF54Y5Hi/b+EcnMzkepg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
"rc-animate": "3.x",
|
"rc-motion": "^2.2.0",
|
||||||
"rc-util": "^5.0.1"
|
"rc-util": "^5.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39720,18 +39716,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-pagination": {
|
"rc-pagination": {
|
||||||
"version": "3.0.4",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.2.tgz",
|
||||||
"integrity": "sha512-9v9mmB7FTWS4kWRLFfWafm6LtvB+xdNi+pTIwUODSevzImrlrmMOIhDrOB3u2tEXiy8LyqvCnoyPYt5jQBapxA==",
|
"integrity": "sha512-KbJvkTvRiD51vTIAi0oTARPUHNb0iV6njbDBe8yLkc3PWYDJaszASfuss6YJ98EIxEeGzuEk6xsUAEKWRJgz2g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.1"
|
"classnames": "^2.2.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39739,9 +39735,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-picker": {
|
"rc-picker": {
|
||||||
"version": "2.1.0",
|
"version": "2.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.3.4.tgz",
|
||||||
"integrity": "sha512-Tu8+yR0qnBVND4v+eta8GRkLu4OvTUaxlk7ZHDAkVFm1RHLAl1GzA6Foni9vcpkMnFMFD6EzpaOlkArI0ryuDA==",
|
"integrity": "sha512-UdeqTzR9E5KHOGMjWfsMpE3VU+3VR3J5/wMrwuIRmL8orv9Tm+Gew3NPfs7djcuTrfnu+hL+lwCWp7VftZcSng==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.1",
|
"classnames": "^2.2.1",
|
||||||
@ -39749,22 +39745,31 @@
|
|||||||
"dayjs": "^1.8.30",
|
"dayjs": "^1.8.30",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"rc-trigger": "^5.0.4",
|
"rc-trigger": "^5.0.4",
|
||||||
"rc-util": "^5.0.1",
|
"rc-util": "^5.4.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"moment": {
|
"rc-util": {
|
||||||
"version": "2.29.1",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
|
"requires": {
|
||||||
|
"react-is": "^16.12.0",
|
||||||
|
"shallowequal": "^1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"react-is": {
|
||||||
|
"version": "16.13.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||||
|
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -39778,9 +39783,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39788,9 +39793,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-rate": {
|
"rc-rate": {
|
||||||
"version": "2.8.2",
|
"version": "2.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.0.tgz",
|
||||||
"integrity": "sha512-f9T/D+ZwWQrWHkpidpQbnXpnVMGMC4eSRAkwuu88a8Qv1C/9LNc4AErazoh8tpnZBFqq19F3j0Glv+sDgkfEig==",
|
"integrity": "sha512-DqXWWpA3+oQfHVBYfk5Myhl1YoNYYX9roYYIF7mLiDBI5SCErOYpLaCV8PdZ3IUN+F0AtejXxy4fuHgp1cDtwQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
@ -39798,9 +39803,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39819,9 +39824,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39829,23 +39834,23 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-select": {
|
"rc-select": {
|
||||||
"version": "11.3.3",
|
"version": "11.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-11.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-11.4.2.tgz",
|
||||||
"integrity": "sha512-YMsGVEZxXctj15nIZKlFCkiOxMe0PNBeACN6nHqDozDYKR/aqP8J3XZqZ5Gw/fcgS4bI50zPVMieJKlY8/6Wfw==",
|
"integrity": "sha512-DQHYwMcvAajnnlahKkYIW47AVTXgxpGj9CWbe+juXgvxawQRFUdd8T8L2Q05aOkMy02UTG0Qrs7EZfHmn5QHbA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
"rc-motion": "^2.0.1",
|
"rc-motion": "^2.0.1",
|
||||||
"rc-trigger": "^5.0.4",
|
"rc-trigger": "^5.0.4",
|
||||||
"rc-util": "^5.0.1",
|
"rc-util": "^5.0.1",
|
||||||
"rc-virtual-list": "^3.0.3",
|
"rc-virtual-list": "^3.2.0",
|
||||||
"warning": "^4.0.3"
|
"warning": "^4.0.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39861,9 +39866,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-slider": {
|
"rc-slider": {
|
||||||
"version": "9.5.4",
|
"version": "9.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-9.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-9.6.2.tgz",
|
||||||
"integrity": "sha512-24goJnWhmWi0ojNZMoPSMni2wh73IPqEK0TJh7rWn10hPLLKgG8x3KRR0g4uUdCS9APHyosqxGXUIJKGydJXVg==",
|
"integrity": "sha512-uctdE1768ZmSjCcRmx6ffm/uoW/zl/SOvanvoilWyZ1NRlwkZCa1R20AIJlU9VDJo/FswWnqXqt6iDp2CnDVig==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
@ -39873,9 +39878,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39893,9 +39898,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39913,9 +39918,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39923,32 +39928,45 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-table": {
|
"rc-table": {
|
||||||
"version": "7.9.10",
|
"version": "7.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.9.10.tgz",
|
"resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.11.1.tgz",
|
||||||
"integrity": "sha512-WtPBxYsBU/a5MIglilbMlVkiXkPKXpUM/CPCFaqA2veh1b7J40mbTGQmU8VT6S0FClkI5jm0QBtSp6LstPkOMQ==",
|
"integrity": "sha512-Xq7ibC/a2kj8ywLeKhGcv689JZaldjPxxe15h89qGho6/sR9YkIUD07KjLCGFaJ0LkhGBNY1XYv2VOUFGOQuYg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
"raf": "^3.4.1",
|
|
||||||
"rc-resize-observer": "^0.2.0",
|
"rc-resize-observer": "^0.2.0",
|
||||||
"rc-util": "^5.0.4",
|
"rc-util": "^5.4.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"rc-util": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
|
"requires": {
|
||||||
|
"react-is": "^16.12.0",
|
||||||
|
"shallowequal": "^1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"react-is": {
|
||||||
|
"version": "16.13.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||||
|
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-tabs": {
|
"rc-tabs": {
|
||||||
"version": "11.6.2",
|
"version": "11.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.7.0.tgz",
|
||||||
"integrity": "sha512-7Z5Lg+nP/H4V7dIlewrOC0+aogRVH3ASjTy4VIletYOeStGPWYSfwBnUTBdcCXcUuWuyyKnNkYrUD0yaRqUCIA==",
|
"integrity": "sha512-nYwQcgML2drM0iau4aa6HI4qyyZSW0WpspCAtO5KGjXwHzUJcvv3qgLVuoQOWQaDDHXkI9Jj8U7Y/Hcrdyj1Kw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.11.2",
|
"@babel/runtime": "^7.11.2",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
@ -39960,9 +39978,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -39981,9 +39999,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -40000,9 +40018,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -40010,9 +40028,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-tree": {
|
"rc-tree": {
|
||||||
"version": "3.10.0",
|
"version": "3.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-3.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-3.11.0.tgz",
|
||||||
"integrity": "sha512-kf7J/f2E2T8Kfta3/1BIg65AzTmXOgOjn0KOpvD3KI/gqkfKMRKUS1ybkxW39JUPpKwdeOHFnYH+nFFMq7tkfg==",
|
"integrity": "sha512-3RxA6fckbzX7WOk7g4gvO6AOad0znc8QW2nsv1IXSiljQaIMiyx1AK0zhzIEtABgWKbIs9QkhnBvIAHS4Rn9LA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.10.1",
|
"@babel/runtime": "^7.10.1",
|
||||||
"classnames": "2.x",
|
"classnames": "2.x",
|
||||||
@ -40022,9 +40040,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -40044,9 +40062,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
@ -40066,17 +40084,17 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
@ -40100,17 +40118,17 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.12.1",
|
"version": "7.12.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||||
"integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
|
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
@ -40150,9 +40168,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"rc-util": {
|
"rc-util": {
|
||||||
"version": "5.4.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.0.tgz",
|
||||||
"integrity": "sha512-kXDn1JyLJTAWLBFt+fjkTcUtXhxKkipQCobQmxIEVrX62iXgo24z8YKoWehWfMxPZFPE+RXqrmEu9j5kHz/Lrg==",
|
"integrity": "sha512-YJB+zZGvCll/bhxXRVLAekr7lOvTgqMlRIhgINoINfUek7wQvi5sft46NOi3yYUYhocpuW4k8+5okW46sBsZAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react-is": "^16.12.0",
|
"react-is": "^16.12.0",
|
||||||
"shallowequal": "^1.1.0"
|
"shallowequal": "^1.1.0"
|
||||||
|
@ -95,7 +95,7 @@
|
|||||||
"@superset-ui/preset-chart-xy": "^0.15.13",
|
"@superset-ui/preset-chart-xy": "^0.15.13",
|
||||||
"@vx/responsive": "^0.0.195",
|
"@vx/responsive": "^0.0.195",
|
||||||
"abortcontroller-polyfill": "^1.1.9",
|
"abortcontroller-polyfill": "^1.1.9",
|
||||||
"antd": "^4.6.6",
|
"antd": "^4.8.2",
|
||||||
"array-move": "^2.2.1",
|
"array-move": "^2.2.1",
|
||||||
"bootstrap": "^3.4.1",
|
"bootstrap": "^3.4.1",
|
||||||
"bootstrap-slider": "^10.0.0",
|
"bootstrap-slider": "^10.0.0",
|
||||||
@ -121,7 +121,7 @@
|
|||||||
"lodash-es": "^4.17.14",
|
"lodash-es": "^4.17.14",
|
||||||
"mathjs": "^8.0.1",
|
"mathjs": "^8.0.1",
|
||||||
"memoize-one": "^5.1.1",
|
"memoize-one": "^5.1.1",
|
||||||
"moment": "^2.20.1",
|
"moment": "^2.26.0",
|
||||||
"mousetrap": "^1.6.1",
|
"mousetrap": "^1.6.1",
|
||||||
"mustache": "^2.2.1",
|
"mustache": "^2.2.1",
|
||||||
"omnibar": "^2.1.1",
|
"omnibar": "^2.1.1",
|
||||||
|
@ -46,6 +46,19 @@ const g = global as any;
|
|||||||
g.window = g.window || {};
|
g.window = g.window || {};
|
||||||
g.window.location = { href: 'about:blank' };
|
g.window.location = { href: 'about:blank' };
|
||||||
g.window.performance = { now: () => new Date().getTime() };
|
g.window.performance = { now: () => new Date().getTime() };
|
||||||
|
Object.defineProperty(window, 'matchMedia', {
|
||||||
|
writable: true,
|
||||||
|
value: jest.fn().mockImplementation(query => ({
|
||||||
|
matches: false,
|
||||||
|
media: query,
|
||||||
|
onchange: null,
|
||||||
|
addListener: jest.fn(), // Deprecated
|
||||||
|
removeListener: jest.fn(), // Deprecated
|
||||||
|
addEventListener: jest.fn(),
|
||||||
|
removeEventListener: jest.fn(),
|
||||||
|
dispatchEvent: jest.fn(),
|
||||||
|
})),
|
||||||
|
});
|
||||||
|
|
||||||
g.$ = jQuery(g.window);
|
g.$ = jQuery(g.window);
|
||||||
|
|
||||||
|
@ -62,6 +62,10 @@ const mockedProps = {
|
|||||||
accessor: 'name',
|
accessor: 'name',
|
||||||
Header: 'Name',
|
Header: 'Name',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
accessor: 'time',
|
||||||
|
Header: 'Time',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
@ -85,10 +89,16 @@ const mockedProps = {
|
|||||||
paginate: true,
|
paginate: true,
|
||||||
operator: 'eq',
|
operator: 'eq',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Header: 'Time',
|
||||||
|
id: 'time',
|
||||||
|
input: 'datetime_range',
|
||||||
|
operator: 'between',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
data: [
|
data: [
|
||||||
{ id: 1, name: 'data 1' },
|
{ id: 1, name: 'data 1', age: 10, time: '2020-11-18T07:53:45.354Z' },
|
||||||
{ id: 2, name: 'data 2' },
|
{ id: 2, name: 'data 2', age: 1, time: '2020-11-18T07:53:45.354Z' },
|
||||||
],
|
],
|
||||||
count: 2,
|
count: 2,
|
||||||
pageSize: 1,
|
pageSize: 1,
|
||||||
@ -224,8 +234,10 @@ describe('ListView', () => {
|
|||||||
Array [
|
Array [
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
"age": 10,
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"name": "data 1",
|
"name": "data 1",
|
||||||
|
"time": "2020-11-18T07:53:45.354Z",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
@ -253,12 +265,16 @@ describe('ListView', () => {
|
|||||||
Array [
|
Array [
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
"age": 10,
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"name": "data 1",
|
"name": "data 1",
|
||||||
|
"time": "2020-11-18T07:53:45.354Z",
|
||||||
},
|
},
|
||||||
Object {
|
Object {
|
||||||
|
"age": 1,
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"name": "data 2",
|
"name": "data 2",
|
||||||
|
"time": "2020-11-18T07:53:45.354Z",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
|
37
superset-frontend/src/components/ListView/Filters/Base.ts
Normal file
37
superset-frontend/src/components/ListView/Filters/Base.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/**
|
||||||
|
* 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 { ReactNode } from 'react';
|
||||||
|
import { styled } from '@superset-ui/core';
|
||||||
|
|
||||||
|
export interface BaseFilter {
|
||||||
|
Header: ReactNode;
|
||||||
|
initialValue: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const FilterContainer = styled.div`
|
||||||
|
display: inline-flex;
|
||||||
|
margin-right: 2em;
|
||||||
|
font-size: ${({ theme }) => theme.typography.sizes.s}px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
export const FilterTitle = styled.label`
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 27px;
|
||||||
|
margin: 0 0.4em 0 0;
|
||||||
|
`;
|
@ -0,0 +1,75 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
import React, { useState, useMemo } from 'react';
|
||||||
|
import moment, { Moment } from 'moment';
|
||||||
|
import { styled } from '@superset-ui/core';
|
||||||
|
import { RangePicker as AntRangePicker } from 'src/common/components/DatePicker';
|
||||||
|
import { FilterContainer, BaseFilter, FilterTitle } from './Base';
|
||||||
|
|
||||||
|
interface DateRangeFilterProps extends BaseFilter {
|
||||||
|
onSubmit: (val: number[]) => void;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ValueState = [number, number];
|
||||||
|
|
||||||
|
const RangePicker = styled(AntRangePicker)`
|
||||||
|
padding: 0 11px;
|
||||||
|
transform: translateX(-7px);
|
||||||
|
`;
|
||||||
|
|
||||||
|
const RangeFilterContainer = styled(FilterContainer)`
|
||||||
|
margin-right: 1em;
|
||||||
|
`;
|
||||||
|
|
||||||
|
export default function DateRangeFilter({
|
||||||
|
Header,
|
||||||
|
initialValue,
|
||||||
|
onSubmit,
|
||||||
|
}: DateRangeFilterProps) {
|
||||||
|
const [value, setValue] = useState<ValueState | null>(initialValue ?? null);
|
||||||
|
const momentValue = useMemo((): [Moment, Moment] | null => {
|
||||||
|
if (!value || (Array.isArray(value) && !value.length)) return null;
|
||||||
|
return [moment(value[0]), moment(value[1])];
|
||||||
|
}, [value]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<RangeFilterContainer>
|
||||||
|
<FilterTitle>{Header}:</FilterTitle>
|
||||||
|
<RangePicker
|
||||||
|
showTime
|
||||||
|
bordered={false}
|
||||||
|
value={momentValue}
|
||||||
|
onChange={momentRange => {
|
||||||
|
if (!momentRange) {
|
||||||
|
setValue(null);
|
||||||
|
onSubmit([]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const changeValue = [
|
||||||
|
momentRange[0]?.valueOf() ?? 0,
|
||||||
|
momentRange[1]?.valueOf() ?? 0,
|
||||||
|
] as ValueState;
|
||||||
|
setValue(changeValue);
|
||||||
|
onSubmit(changeValue);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</RangeFilterContainer>
|
||||||
|
);
|
||||||
|
}
|
61
superset-frontend/src/components/ListView/Filters/Search.tsx
Normal file
61
superset-frontend/src/components/ListView/Filters/Search.tsx
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
import React, { useState } from 'react';
|
||||||
|
import SearchInput from 'src/components/SearchInput';
|
||||||
|
import { FilterContainer, BaseFilter } from './Base';
|
||||||
|
|
||||||
|
interface SearchHeaderProps extends BaseFilter {
|
||||||
|
Header: string;
|
||||||
|
onSubmit: (val: string) => void;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function SearchFilter({
|
||||||
|
Header,
|
||||||
|
name,
|
||||||
|
initialValue,
|
||||||
|
onSubmit,
|
||||||
|
}: SearchHeaderProps) {
|
||||||
|
const [value, setValue] = useState(initialValue || '');
|
||||||
|
const handleSubmit = () => {
|
||||||
|
if (value) {
|
||||||
|
onSubmit(value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const onClear = () => {
|
||||||
|
setValue('');
|
||||||
|
onSubmit('');
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<FilterContainer>
|
||||||
|
<SearchInput
|
||||||
|
data-test="filters-search"
|
||||||
|
placeholder={Header}
|
||||||
|
name={name}
|
||||||
|
value={value}
|
||||||
|
onChange={e => {
|
||||||
|
setValue(e.currentTarget.value);
|
||||||
|
}}
|
||||||
|
onSubmit={handleSubmit}
|
||||||
|
onClear={onClear}
|
||||||
|
/>
|
||||||
|
</FilterContainer>
|
||||||
|
);
|
||||||
|
}
|
@ -16,29 +16,17 @@
|
|||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
import React, { useState, ReactNode } from 'react';
|
import React, { useState } from 'react';
|
||||||
import { styled, withTheme, SupersetThemeProps } from '@superset-ui/core';
|
import { withTheme, SupersetThemeProps } from '@superset-ui/core';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
PaginatedSelect,
|
PaginatedSelect,
|
||||||
PartialThemeConfig,
|
PartialThemeConfig,
|
||||||
} from 'src/components/Select';
|
} from 'src/components/Select';
|
||||||
|
import { Filter, SelectOption } from 'src/components/ListView/types';
|
||||||
|
import { filterSelectStyles } from 'src/components/ListView/utils';
|
||||||
|
import { FilterContainer, BaseFilter, FilterTitle } from './Base';
|
||||||
|
|
||||||
import SearchInput from 'src/components/SearchInput';
|
|
||||||
import {
|
|
||||||
Filter,
|
|
||||||
FilterValue,
|
|
||||||
Filters,
|
|
||||||
InternalFilter,
|
|
||||||
SelectOption,
|
|
||||||
} from './types';
|
|
||||||
import { filterSelectStyles } from './utils';
|
|
||||||
|
|
||||||
interface BaseFilter {
|
|
||||||
Header: ReactNode;
|
|
||||||
initialValue: any;
|
|
||||||
}
|
|
||||||
interface SelectFilterProps extends BaseFilter {
|
interface SelectFilterProps extends BaseFilter {
|
||||||
emptyLabel?: string;
|
emptyLabel?: string;
|
||||||
fetchSelects?: Filter['fetchSelects'];
|
fetchSelects?: Filter['fetchSelects'];
|
||||||
@ -49,18 +37,6 @@ interface SelectFilterProps extends BaseFilter {
|
|||||||
theme: SupersetThemeProps['theme'];
|
theme: SupersetThemeProps['theme'];
|
||||||
}
|
}
|
||||||
|
|
||||||
const FilterContainer = styled.div`
|
|
||||||
display: inline-flex;
|
|
||||||
margin-right: 2em;
|
|
||||||
font-size: ${({ theme }) => theme.typography.sizes.s}px;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const FilterTitle = styled.label`
|
|
||||||
font-weight: bold;
|
|
||||||
line-height: 27px;
|
|
||||||
margin: 0 0.4em 0 0;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const CLEAR_SELECT_FILTER_VALUE = 'CLEAR_SELECT_FILTER_VALUE';
|
const CLEAR_SELECT_FILTER_VALUE = 'CLEAR_SELECT_FILTER_VALUE';
|
||||||
|
|
||||||
function SelectFilter({
|
function SelectFilter({
|
||||||
@ -174,108 +150,4 @@ function SelectFilter({
|
|||||||
</FilterContainer>
|
</FilterContainer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const StyledSelectFilter = withTheme(SelectFilter);
|
export default withTheme(SelectFilter);
|
||||||
|
|
||||||
interface SearchHeaderProps extends BaseFilter {
|
|
||||||
Header: string;
|
|
||||||
onSubmit: (val: string) => void;
|
|
||||||
name: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
function SearchFilter({
|
|
||||||
Header,
|
|
||||||
name,
|
|
||||||
initialValue,
|
|
||||||
onSubmit,
|
|
||||||
}: SearchHeaderProps) {
|
|
||||||
const [value, setValue] = useState(initialValue || '');
|
|
||||||
const handleSubmit = () => onSubmit(value);
|
|
||||||
const onClear = () => {
|
|
||||||
setValue('');
|
|
||||||
onSubmit('');
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<FilterContainer>
|
|
||||||
<SearchInput
|
|
||||||
data-test="filters-search"
|
|
||||||
placeholder={Header}
|
|
||||||
name={name}
|
|
||||||
value={value}
|
|
||||||
onChange={e => {
|
|
||||||
setValue(e.currentTarget.value);
|
|
||||||
}}
|
|
||||||
onSubmit={handleSubmit}
|
|
||||||
onClear={onClear}
|
|
||||||
/>
|
|
||||||
</FilterContainer>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
interface UIFiltersProps {
|
|
||||||
filters: Filters;
|
|
||||||
internalFilters: InternalFilter[];
|
|
||||||
updateFilterValue: (id: number, value: FilterValue['value']) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
const FilterWrapper = styled.div`
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0 0 ${({ theme }) => theme.gridUnit * 8}px;
|
|
||||||
`;
|
|
||||||
|
|
||||||
function UIFilters({
|
|
||||||
filters,
|
|
||||||
internalFilters = [],
|
|
||||||
updateFilterValue,
|
|
||||||
}: UIFiltersProps) {
|
|
||||||
return (
|
|
||||||
<FilterWrapper>
|
|
||||||
{filters.map(
|
|
||||||
(
|
|
||||||
{
|
|
||||||
Header,
|
|
||||||
fetchSelects,
|
|
||||||
id,
|
|
||||||
input,
|
|
||||||
paginate,
|
|
||||||
selects,
|
|
||||||
unfilteredLabel,
|
|
||||||
},
|
|
||||||
index,
|
|
||||||
) => {
|
|
||||||
const initialValue =
|
|
||||||
internalFilters[index] && internalFilters[index].value;
|
|
||||||
if (input === 'select') {
|
|
||||||
return (
|
|
||||||
<StyledSelectFilter
|
|
||||||
Header={Header}
|
|
||||||
emptyLabel={unfilteredLabel}
|
|
||||||
fetchSelects={fetchSelects}
|
|
||||||
initialValue={initialValue}
|
|
||||||
key={id}
|
|
||||||
name={id}
|
|
||||||
onSelect={(value: any) => updateFilterValue(index, value)}
|
|
||||||
paginate={paginate}
|
|
||||||
selects={selects}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (input === 'search' && typeof Header === 'string') {
|
|
||||||
return (
|
|
||||||
<SearchFilter
|
|
||||||
Header={Header}
|
|
||||||
initialValue={initialValue}
|
|
||||||
key={id}
|
|
||||||
name={id}
|
|
||||||
onSubmit={(value: string) => updateFilterValue(index, value)}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
)}
|
|
||||||
</FilterWrapper>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default withTheme(UIFilters);
|
|
108
superset-frontend/src/components/ListView/Filters/index.tsx
Normal file
108
superset-frontend/src/components/ListView/Filters/index.tsx
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
import React from 'react';
|
||||||
|
import { styled, withTheme } from '@superset-ui/core';
|
||||||
|
|
||||||
|
import {
|
||||||
|
FilterValue,
|
||||||
|
Filters,
|
||||||
|
InternalFilter,
|
||||||
|
} from 'src/components/ListView/types';
|
||||||
|
import SearchFilter from './Search';
|
||||||
|
import SelectFilter from './Select';
|
||||||
|
import DateRangeFilter from './DateRange';
|
||||||
|
|
||||||
|
interface UIFiltersProps {
|
||||||
|
filters: Filters;
|
||||||
|
internalFilters: InternalFilter[];
|
||||||
|
updateFilterValue: (id: number, value: FilterValue['value']) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const FilterWrapper = styled.div`
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 0 ${({ theme }) => theme.gridUnit * 8}px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
function UIFilters({
|
||||||
|
filters,
|
||||||
|
internalFilters = [],
|
||||||
|
updateFilterValue,
|
||||||
|
}: UIFiltersProps) {
|
||||||
|
return (
|
||||||
|
<FilterWrapper>
|
||||||
|
{filters.map(
|
||||||
|
(
|
||||||
|
{
|
||||||
|
Header,
|
||||||
|
fetchSelects,
|
||||||
|
id,
|
||||||
|
input,
|
||||||
|
paginate,
|
||||||
|
selects,
|
||||||
|
unfilteredLabel,
|
||||||
|
},
|
||||||
|
index,
|
||||||
|
) => {
|
||||||
|
const initialValue =
|
||||||
|
internalFilters[index] && internalFilters[index].value;
|
||||||
|
if (input === 'select') {
|
||||||
|
return (
|
||||||
|
<SelectFilter
|
||||||
|
Header={Header}
|
||||||
|
emptyLabel={unfilteredLabel}
|
||||||
|
fetchSelects={fetchSelects}
|
||||||
|
initialValue={initialValue}
|
||||||
|
key={id}
|
||||||
|
name={id}
|
||||||
|
onSelect={(value: any) => updateFilterValue(index, value)}
|
||||||
|
paginate={paginate}
|
||||||
|
selects={selects}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (input === 'search' && typeof Header === 'string') {
|
||||||
|
return (
|
||||||
|
<SearchFilter
|
||||||
|
Header={Header}
|
||||||
|
initialValue={initialValue}
|
||||||
|
key={id}
|
||||||
|
name={id}
|
||||||
|
onSubmit={(value: string) => updateFilterValue(index, value)}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (input === 'datetime_range') {
|
||||||
|
return (
|
||||||
|
<DateRangeFilter
|
||||||
|
Header={Header}
|
||||||
|
initialValue={initialValue}
|
||||||
|
key={id}
|
||||||
|
name={id}
|
||||||
|
onSubmit={value => updateFilterValue(index, value)}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</FilterWrapper>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default withTheme(UIFilters);
|
@ -37,11 +37,7 @@ export interface CardSortSelectOption {
|
|||||||
value: any;
|
value: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Filter {
|
type FilterOperator =
|
||||||
Header: ReactNode;
|
|
||||||
id: string;
|
|
||||||
operators?: SelectOption[];
|
|
||||||
operator?:
|
|
||||||
| 'sw'
|
| 'sw'
|
||||||
| 'ew'
|
| 'ew'
|
||||||
| 'ct'
|
| 'ct'
|
||||||
@ -50,14 +46,28 @@ export interface Filter {
|
|||||||
| 'new'
|
| 'new'
|
||||||
| 'nct'
|
| 'nct'
|
||||||
| 'neq'
|
| 'neq'
|
||||||
|
| 'gt'
|
||||||
|
| 'lt'
|
||||||
| 'rel_m_m'
|
| 'rel_m_m'
|
||||||
| 'rel_o_m'
|
| 'rel_o_m'
|
||||||
| 'title_or_slug'
|
| 'title_or_slug'
|
||||||
| 'name_or_description'
|
| 'name_or_description'
|
||||||
| 'all_text'
|
| 'all_text'
|
||||||
| 'chart_all_text'
|
| 'chart_all_text'
|
||||||
| 'dataset_is_null_or_empty';
|
| 'dataset_is_null_or_empty'
|
||||||
input?: 'text' | 'textarea' | 'select' | 'checkbox' | 'search';
|
| 'between';
|
||||||
|
|
||||||
|
export interface Filter {
|
||||||
|
Header: ReactNode;
|
||||||
|
id: string;
|
||||||
|
operator?: FilterOperator;
|
||||||
|
input?:
|
||||||
|
| 'text'
|
||||||
|
| 'textarea'
|
||||||
|
| 'select'
|
||||||
|
| 'checkbox'
|
||||||
|
| 'search'
|
||||||
|
| 'datetime_range';
|
||||||
unfilteredLabel?: string;
|
unfilteredLabel?: string;
|
||||||
selects?: SelectOption[];
|
selects?: SelectOption[];
|
||||||
onFilterOpen?: () => void;
|
onFilterOpen?: () => void;
|
||||||
@ -76,7 +86,7 @@ export type ViewModeType = 'card' | 'table';
|
|||||||
export interface FilterValue {
|
export interface FilterValue {
|
||||||
id: string;
|
id: string;
|
||||||
operator?: string;
|
operator?: string;
|
||||||
value: string | boolean | number | null | undefined;
|
value: string | boolean | number | null | undefined | string[] | number[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FetchDataConfig {
|
export interface FetchDataConfig {
|
||||||
@ -89,3 +99,24 @@ export interface FetchDataConfig {
|
|||||||
export interface InternalFilter extends FilterValue {
|
export interface InternalFilter extends FilterValue {
|
||||||
Header?: string;
|
Header?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum FilterOperators {
|
||||||
|
startsWith = 'sw',
|
||||||
|
endsWith = 'ew',
|
||||||
|
contains = 'ct',
|
||||||
|
equals = 'eq',
|
||||||
|
notStartsWith = 'nsw',
|
||||||
|
notEndsWith = 'new',
|
||||||
|
notContains = 'nct',
|
||||||
|
notEquals = 'neq',
|
||||||
|
greaterThan = 'gt',
|
||||||
|
lessThan = 'lt',
|
||||||
|
relationManyMany = 'rel_m_m',
|
||||||
|
relationOneMany = 'rel_o_m',
|
||||||
|
titleOrSlug = 'title_or_slug',
|
||||||
|
nameOrDescription = 'name_or_description',
|
||||||
|
allText = 'all_text',
|
||||||
|
chartAllText = 'chart_all_text',
|
||||||
|
datasetIsNullOrEmpty = 'dataset_is_null_or_empty',
|
||||||
|
between = 'between',
|
||||||
|
}
|
||||||
|
@ -26,7 +26,12 @@ import {
|
|||||||
useTable,
|
useTable,
|
||||||
} from 'react-table';
|
} from 'react-table';
|
||||||
|
|
||||||
import { NumberParam, StringParam, useQueryParams } from 'use-query-params';
|
import {
|
||||||
|
NumberParam,
|
||||||
|
StringParam,
|
||||||
|
useQueryParams,
|
||||||
|
QueryParamConfig,
|
||||||
|
} from 'use-query-params';
|
||||||
|
|
||||||
import rison from 'rison';
|
import rison from 'rison';
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
@ -41,11 +46,13 @@ import {
|
|||||||
} from './types';
|
} from './types';
|
||||||
|
|
||||||
// Define custom RisonParam for proper encoding/decoding
|
// Define custom RisonParam for proper encoding/decoding
|
||||||
const RisonParam = {
|
const RisonParam: QueryParamConfig<string, any> = {
|
||||||
encode: (data: any | null | undefined) =>
|
encode: (data?: any | null) =>
|
||||||
data === undefined ? undefined : rison.encode(data),
|
data === undefined ? undefined : rison.encode(data),
|
||||||
decode: (dataStr: string | undefined) =>
|
decode: (dataStr?: string | string[]) =>
|
||||||
dataStr === undefined ? undefined : rison.decode(dataStr),
|
dataStr === undefined || Array.isArray(dataStr)
|
||||||
|
? undefined
|
||||||
|
: rison.decode(dataStr),
|
||||||
};
|
};
|
||||||
|
|
||||||
export class ListViewError extends Error {
|
export class ListViewError extends Error {
|
||||||
@ -68,7 +75,11 @@ function updateInList(list: any[], index: number, update: any): any[] {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
function mergeCreateFilterValues(list: Filter[], updateObj: any) {
|
type QueryFilterState = {
|
||||||
|
[id: string]: FilterValue['value'];
|
||||||
|
};
|
||||||
|
|
||||||
|
function mergeCreateFilterValues(list: Filter[], updateObj: QueryFilterState) {
|
||||||
return list.map(({ id, operator }) => {
|
return list.map(({ id, operator }) => {
|
||||||
const update = updateObj[id];
|
const update = updateObj[id];
|
||||||
|
|
||||||
@ -79,8 +90,36 @@ function mergeCreateFilterValues(list: Filter[], updateObj: any) {
|
|||||||
// convert filters from UI objects to data objects
|
// convert filters from UI objects to data objects
|
||||||
export function convertFilters(fts: InternalFilter[]): FilterValue[] {
|
export function convertFilters(fts: InternalFilter[]): FilterValue[] {
|
||||||
return fts
|
return fts
|
||||||
.filter(f => typeof f.value !== 'undefined')
|
.filter(
|
||||||
.map(({ value, operator, id }) => ({ value, operator, id }));
|
f =>
|
||||||
|
!(
|
||||||
|
typeof f.value === 'undefined' ||
|
||||||
|
(Array.isArray(f.value) && !f.value.length)
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.map(({ value, operator, id }) => {
|
||||||
|
// handle between filter using 2 api filters
|
||||||
|
if (operator === 'between' && Array.isArray(value)) {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
value: value[0],
|
||||||
|
operator: 'gt',
|
||||||
|
id,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: value[1],
|
||||||
|
operator: 'lt',
|
||||||
|
id,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
value,
|
||||||
|
operator,
|
||||||
|
id,
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.flat();
|
||||||
}
|
}
|
||||||
|
|
||||||
// convertFilters but to handle new decoded rison format
|
// convertFilters but to handle new decoded rison format
|
||||||
@ -125,13 +164,6 @@ export function extractInputValue(inputType: Filter['input'], event: any) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getDefaultFilterOperator(filter: Filter): string {
|
|
||||||
if (filter?.operator) return filter.operator;
|
|
||||||
if (filter?.operators?.length) {
|
|
||||||
return filter.operators[0].value;
|
|
||||||
}
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
interface UseListViewConfig {
|
interface UseListViewConfig {
|
||||||
fetchData: (conf: FetchDataConfig) => any;
|
fetchData: (conf: FetchDataConfig) => any;
|
||||||
columns: any[];
|
columns: any[];
|
||||||
|
@ -291,7 +291,6 @@ const AnnotationModal: FunctionComponent<AnnotationModalProps> = ({
|
|||||||
onChange={onDateChange}
|
onChange={onDateChange}
|
||||||
showTime={{ format: 'hh:mm a' }}
|
showTime={{ format: 'hh:mm a' }}
|
||||||
use12Hours
|
use12Hours
|
||||||
// @ts-ignore
|
|
||||||
value={
|
value={
|
||||||
currentAnnotation &&
|
currentAnnotation &&
|
||||||
(currentAnnotation?.start_dttm.length ||
|
(currentAnnotation?.start_dttm.length ||
|
||||||
|
@ -29,6 +29,7 @@ import QueryList from 'src/views/CRUD/data/query/QueryList';
|
|||||||
import QueryPreviewModal from 'src/views/CRUD/data/query/QueryPreviewModal';
|
import QueryPreviewModal from 'src/views/CRUD/data/query/QueryPreviewModal';
|
||||||
import { QueryObject } from 'src/views/CRUD/types';
|
import { QueryObject } from 'src/views/CRUD/types';
|
||||||
import ListView from 'src/components/ListView';
|
import ListView from 'src/components/ListView';
|
||||||
|
import Filters from 'src/components/ListView/Filters';
|
||||||
import SyntaxHighlighter from 'react-syntax-highlighter/dist/cjs/light';
|
import SyntaxHighlighter from 'react-syntax-highlighter/dist/cjs/light';
|
||||||
|
|
||||||
// store needed for withToasts
|
// store needed for withToasts
|
||||||
@ -71,6 +72,19 @@ fetchMock.get(queriesEndpoint, {
|
|||||||
chart_count: 3,
|
chart_count: 3,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
fetchMock.get('glob:*/api/v1/query/related/user*', {
|
||||||
|
result: [],
|
||||||
|
count: 0,
|
||||||
|
});
|
||||||
|
fetchMock.get('glob:*/api/v1/query/related/database*', {
|
||||||
|
result: [],
|
||||||
|
count: 0,
|
||||||
|
});
|
||||||
|
fetchMock.get('glob:*/api/v1/query/disting/status*', {
|
||||||
|
result: [],
|
||||||
|
count: 0,
|
||||||
|
});
|
||||||
|
|
||||||
describe('QueryList', () => {
|
describe('QueryList', () => {
|
||||||
const mockedProps = {};
|
const mockedProps = {};
|
||||||
const wrapper = mount(<QueryList {...mockedProps} />, {
|
const wrapper = mount(<QueryList {...mockedProps} />, {
|
||||||
@ -94,7 +108,7 @@ describe('QueryList', () => {
|
|||||||
const callsD = fetchMock.calls(/query\/\?q/);
|
const callsD = fetchMock.calls(/query\/\?q/);
|
||||||
expect(callsD).toHaveLength(1);
|
expect(callsD).toHaveLength(1);
|
||||||
expect(callsD[0][0]).toMatchInlineSnapshot(
|
expect(callsD[0][0]).toMatchInlineSnapshot(
|
||||||
`"http://localhost/api/v1/query/?q=(order_column:changed_on,order_direction:desc,page:0,page_size:25)"`,
|
`"http://localhost/api/v1/query/?q=(order_column:start_time,order_direction:desc,page:0,page_size:25)"`,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -114,4 +128,17 @@ describe('QueryList', () => {
|
|||||||
|
|
||||||
expect(wrapper.find(QueryPreviewModal)).toExist();
|
expect(wrapper.find(QueryPreviewModal)).toExist();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('searches', async () => {
|
||||||
|
const filtersWrapper = wrapper.find(Filters);
|
||||||
|
act(() => {
|
||||||
|
const props = filtersWrapper.find('[name="sql"]').first().props();
|
||||||
|
// @ts-ignore
|
||||||
|
if (props.onSubmit) props.onSubmit('fooo');
|
||||||
|
});
|
||||||
|
await waitForComponentToPaint(wrapper);
|
||||||
|
expect((fetchMock.lastCall() ?? [])[0]).toMatchInlineSnapshot(
|
||||||
|
`"http://localhost/api/v1/query/?q=(filters:!((col:sql,opr:ct,value:fooo)),order_column:start_time,order_direction:desc,page:0,page_size:25)"`,
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -19,21 +19,29 @@
|
|||||||
import React, { useMemo, useState, useCallback } from 'react';
|
import React, { useMemo, useState, useCallback } from 'react';
|
||||||
import { SupersetClient, t, styled } from '@superset-ui/core';
|
import { SupersetClient, t, styled } from '@superset-ui/core';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
import {
|
||||||
import { createErrorHandler, shortenSQL } from 'src/views/CRUD/utils';
|
createFetchRelated,
|
||||||
|
createFetchDistinct,
|
||||||
|
createErrorHandler,
|
||||||
|
shortenSQL,
|
||||||
|
} from 'src/views/CRUD/utils';
|
||||||
import withToasts from 'src/messageToasts/enhancers/withToasts';
|
import withToasts from 'src/messageToasts/enhancers/withToasts';
|
||||||
import { useListViewResource } from 'src/views/CRUD/hooks';
|
import { useListViewResource } from 'src/views/CRUD/hooks';
|
||||||
import SubMenu, { SubMenuProps } from 'src/components/Menu/SubMenu';
|
import SubMenu, { SubMenuProps } from 'src/components/Menu/SubMenu';
|
||||||
import { Popover } from 'src/common/components';
|
import { Popover } from 'src/common/components';
|
||||||
import { commonMenuData } from 'src/views/CRUD/data/common';
|
import { commonMenuData } from 'src/views/CRUD/data/common';
|
||||||
import ListView, { Filters, ListViewProps } from 'src/components/ListView';
|
import ListView, {
|
||||||
|
Filters,
|
||||||
|
FilterOperators,
|
||||||
|
ListViewProps,
|
||||||
|
} from 'src/components/ListView';
|
||||||
import Icon, { IconName } from 'src/components/Icon';
|
import Icon, { IconName } from 'src/components/Icon';
|
||||||
import { Tooltip } from 'src/common/components/Tooltip';
|
import { Tooltip } from 'src/common/components/Tooltip';
|
||||||
import SyntaxHighlighter from 'react-syntax-highlighter/dist/cjs/light';
|
import SyntaxHighlighter from 'react-syntax-highlighter/dist/cjs/light';
|
||||||
import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql';
|
import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql';
|
||||||
import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github';
|
import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github';
|
||||||
import { DATETIME_WITH_TIME_ZONE, TIME_WITH_MS } from 'src/constants';
|
import { DATETIME_WITH_TIME_ZONE, TIME_WITH_MS } from 'src/constants';
|
||||||
import { QueryObject } from 'src/views/CRUD/types';
|
import { QueryObject, QueryObjectColumns } from 'src/views/CRUD/types';
|
||||||
|
|
||||||
import QueryPreviewModal from './QueryPreviewModal';
|
import QueryPreviewModal from './QueryPreviewModal';
|
||||||
|
|
||||||
@ -49,7 +57,7 @@ const TopAlignedListView = styled(ListView)<ListViewProps<QueryObject>>`
|
|||||||
SyntaxHighlighter.registerLanguage('sql', sql);
|
SyntaxHighlighter.registerLanguage('sql', sql);
|
||||||
const StyledSyntaxHighlighter = styled(SyntaxHighlighter)`
|
const StyledSyntaxHighlighter = styled(SyntaxHighlighter)`
|
||||||
height: ${({ theme }) => theme.gridUnit * 26}px;
|
height: ${({ theme }) => theme.gridUnit * 26}px;
|
||||||
overflow-x: hidden !important; /* needed to override inline styles */
|
overflow: hidden !important; /* needed to override inline styles */
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
`;
|
`;
|
||||||
@ -121,7 +129,7 @@ function QueryList({ addDangerToast, addSuccessToast }: QueryListProps) {
|
|||||||
...commonMenuData,
|
...commonMenuData,
|
||||||
};
|
};
|
||||||
|
|
||||||
const initialSort = [{ id: 'changed_on', desc: true }];
|
const initialSort = [{ id: QueryObjectColumns.start_time, desc: true }];
|
||||||
const columns = useMemo(
|
const columns = useMemo(
|
||||||
() => [
|
() => [
|
||||||
{
|
{
|
||||||
@ -171,12 +179,12 @@ function QueryList({ addDangerToast, addSuccessToast }: QueryListProps) {
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
accessor: 'status',
|
accessor: QueryObjectColumns.status,
|
||||||
size: 'xs',
|
size: 'xs',
|
||||||
disableSortBy: true,
|
disableSortBy: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'start_time',
|
accessor: QueryObjectColumns.start_time,
|
||||||
Header: t('Time'),
|
Header: t('Time'),
|
||||||
size: 'lg',
|
size: 'lg',
|
||||||
Cell: ({
|
Cell: ({
|
||||||
@ -212,17 +220,21 @@ function QueryList({ addDangerToast, addSuccessToast }: QueryListProps) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'tab_name',
|
accessor: QueryObjectColumns.tab_name,
|
||||||
Header: t('Tab Name'),
|
Header: t('Tab Name'),
|
||||||
size: 'lg',
|
size: 'lg',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'database.database_name',
|
accessor: QueryObjectColumns.database_name,
|
||||||
Header: t('Database'),
|
Header: t('Database'),
|
||||||
size: 'lg',
|
size: 'lg',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'schema',
|
accessor: QueryObjectColumns.database,
|
||||||
|
hidden: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessor: QueryObjectColumns.schema,
|
||||||
Header: t('Schema'),
|
Header: t('Schema'),
|
||||||
size: 'lg',
|
size: 'lg',
|
||||||
},
|
},
|
||||||
@ -259,13 +271,13 @@ function QueryList({ addDangerToast, addSuccessToast }: QueryListProps) {
|
|||||||
|
|
||||||
return main;
|
return main;
|
||||||
},
|
},
|
||||||
accessor: 'sql_tables',
|
accessor: QueryObjectColumns.sql_tables,
|
||||||
Header: t('Tables'),
|
Header: t('Tables'),
|
||||||
size: 'lg',
|
size: 'lg',
|
||||||
disableSortBy: true,
|
disableSortBy: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'user.first_name',
|
accessor: QueryObjectColumns.user,
|
||||||
Header: t('User'),
|
Header: t('User'),
|
||||||
size: 'lg',
|
size: 'lg',
|
||||||
Cell: ({
|
Cell: ({
|
||||||
@ -275,12 +287,12 @@ function QueryList({ addDangerToast, addSuccessToast }: QueryListProps) {
|
|||||||
}: any) => `${user.first_name} ${user.last_name}`,
|
}: any) => `${user.first_name} ${user.last_name}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'rows',
|
accessor: QueryObjectColumns.rows,
|
||||||
Header: t('Rows'),
|
Header: t('Rows'),
|
||||||
size: 'md',
|
size: 'md',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessor: 'sql',
|
accessor: QueryObjectColumns.sql,
|
||||||
Header: t('SQL'),
|
Header: t('SQL'),
|
||||||
Cell: ({ row: { original, id } }: any) => {
|
Cell: ({ row: { original, id } }: any) => {
|
||||||
return (
|
return (
|
||||||
@ -319,7 +331,74 @@ function QueryList({ addDangerToast, addSuccessToast }: QueryListProps) {
|
|||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
const filters: Filters = useMemo(() => [], []);
|
const filters: Filters = useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
Header: t('Database'),
|
||||||
|
id: 'database',
|
||||||
|
input: 'select',
|
||||||
|
operator: FilterOperators.relationOneMany,
|
||||||
|
unfilteredLabel: 'All',
|
||||||
|
fetchSelects: createFetchRelated(
|
||||||
|
'query',
|
||||||
|
'database',
|
||||||
|
createErrorHandler(errMsg =>
|
||||||
|
addDangerToast(
|
||||||
|
t('An error occurred while fetching database values: %s', errMsg),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
paginate: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: t('State'),
|
||||||
|
id: 'status',
|
||||||
|
input: 'select',
|
||||||
|
operator: FilterOperators.equals,
|
||||||
|
unfilteredLabel: 'All',
|
||||||
|
fetchSelects: createFetchDistinct(
|
||||||
|
'query',
|
||||||
|
'status',
|
||||||
|
createErrorHandler(errMsg =>
|
||||||
|
addDangerToast(
|
||||||
|
t('An error occurred while fetching schema values: %s', errMsg),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
paginate: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: t('User'),
|
||||||
|
id: 'user',
|
||||||
|
input: 'select',
|
||||||
|
operator: FilterOperators.relationOneMany,
|
||||||
|
unfilteredLabel: 'All',
|
||||||
|
fetchSelects: createFetchRelated(
|
||||||
|
'query',
|
||||||
|
'user',
|
||||||
|
createErrorHandler(errMsg =>
|
||||||
|
addDangerToast(
|
||||||
|
t('An error occurred while fetching database values: %s', errMsg),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
paginate: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: t('Time Range'),
|
||||||
|
id: 'start_time',
|
||||||
|
input: 'datetime_range',
|
||||||
|
operator: FilterOperators.between,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: t('Search by query text'),
|
||||||
|
id: 'sql',
|
||||||
|
input: 'search',
|
||||||
|
operator: FilterOperators.contains,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[addDangerToast],
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
@ -91,3 +91,22 @@ export interface QueryObject {
|
|||||||
tmp_table_name: string;
|
tmp_table_name: string;
|
||||||
tracking_url: string;
|
tracking_url: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum QueryObjectColumns {
|
||||||
|
id = 'id',
|
||||||
|
changed_on = 'changed_on',
|
||||||
|
database = 'database',
|
||||||
|
database_name = 'database.database_name',
|
||||||
|
schema = 'schema',
|
||||||
|
sql = 'sql',
|
||||||
|
executed_sql = 'exceuted_sql',
|
||||||
|
sql_tables = 'sql_tables',
|
||||||
|
status = 'status',
|
||||||
|
tab_name = 'tab_name',
|
||||||
|
user = 'user',
|
||||||
|
start_time = 'start_time',
|
||||||
|
end_time = 'end_time',
|
||||||
|
rows = 'rows',
|
||||||
|
tmp_table_name = 'tmp_table_name',
|
||||||
|
tracking_url = 'tracking_url',
|
||||||
|
}
|
||||||
|
@ -34,7 +34,12 @@ class QueryRestApi(BaseSupersetModelRestApi):
|
|||||||
|
|
||||||
resource_name = "query"
|
resource_name = "query"
|
||||||
allow_browser_login = True
|
allow_browser_login = True
|
||||||
include_route_methods = {RouteMethod.GET, RouteMethod.GET_LIST, RouteMethod.RELATED}
|
include_route_methods = {
|
||||||
|
RouteMethod.GET,
|
||||||
|
RouteMethod.GET_LIST,
|
||||||
|
RouteMethod.RELATED,
|
||||||
|
RouteMethod.DISTINCT,
|
||||||
|
}
|
||||||
|
|
||||||
class_permission_name = "QueryView"
|
class_permission_name = "QueryView"
|
||||||
list_columns = [
|
list_columns = [
|
||||||
@ -105,7 +110,8 @@ class QueryRestApi(BaseSupersetModelRestApi):
|
|||||||
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
"created_by": RelatedFieldFilter("first_name", FilterRelatedOwners),
|
||||||
}
|
}
|
||||||
|
|
||||||
search_columns = ["changed_on", "database", "sql", "status", "user"]
|
search_columns = ["changed_on", "database", "sql", "status", "user", "start_time"]
|
||||||
|
|
||||||
filter_rel_fields = {"database": [["id", DatabaseFilter, lambda: []]]}
|
filter_rel_fields = {"database": [["id", DatabaseFilter, lambda: []]]}
|
||||||
allowed_rel_fields = {"database", "user"}
|
allowed_rel_fields = {"database", "user"}
|
||||||
|
allowed_distinct_fields = {"status"}
|
||||||
|
Loading…
Reference in New Issue
Block a user