fix: dashboard re-render
This commit is contained in:
+1
-1
@@ -68,7 +68,7 @@ export default defineConfig({
|
|||||||
: {}),
|
: {}),
|
||||||
// esbuildMinifyIIFE: true,
|
// esbuildMinifyIIFE: true,
|
||||||
|
|
||||||
favicons: ['/static/favicon.ico'],
|
favicons: ['/static/favicon.png'],
|
||||||
jsMinifier: 'terser',
|
jsMinifier: 'terser',
|
||||||
cssMinifier: 'cssnano',
|
cssMinifier: 'cssnano',
|
||||||
presets: ['umi-presets-pro'],
|
presets: ['umi-presets-pro'],
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/icons": "^5.3.7",
|
"@ant-design/icons": "^5.3.7",
|
||||||
"@ant-design/plots": "^2.2.2",
|
|
||||||
"@ant-design/pro-components": "^2.7.1",
|
"@ant-design/pro-components": "^2.7.1",
|
||||||
"@huggingface/hub": "^0.15.1",
|
"@huggingface/hub": "^0.15.1",
|
||||||
"@monaco-editor/react": "^4.6.0",
|
"@monaco-editor/react": "^4.6.0",
|
||||||
|
|||||||
Generated
+2
-676
@@ -8,9 +8,6 @@ dependencies:
|
|||||||
'@ant-design/icons':
|
'@ant-design/icons':
|
||||||
specifier: ^5.3.7
|
specifier: ^5.3.7
|
||||||
version: 5.3.7(react-dom@18.3.1)(react@18.3.1)
|
version: 5.3.7(react-dom@18.3.1)(react@18.3.1)
|
||||||
'@ant-design/plots':
|
|
||||||
specifier: ^2.2.2
|
|
||||||
version: 2.2.2(lodash-es@4.17.21)(react-dom@18.3.1)(react@18.3.1)
|
|
||||||
'@ant-design/pro-components':
|
'@ant-design/pro-components':
|
||||||
specifier: ^2.7.1
|
specifier: ^2.7.1
|
||||||
version: 2.7.1(antd@5.18.3)(rc-field-form@1.44.0)(react-dom@18.3.1)(react@18.3.1)
|
version: 2.7.1(antd@5.18.3)(rc-field-form@1.44.0)(react-dom@18.3.1)(react@18.3.1)
|
||||||
@@ -226,16 +223,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-0vr5GCwM7xlAl6NxG1lPbABO+SYioNJL3HVy2FA8wTlsIMoZvQwcwsxTw6eLQCiN9V2UQ8kBtfz8DW8utVVE5w==}
|
resolution: {integrity: sha512-0vr5GCwM7xlAl6NxG1lPbABO+SYioNJL3HVy2FA8wTlsIMoZvQwcwsxTw6eLQCiN9V2UQ8kBtfz8DW8utVVE5w==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@ant-design/charts-util@0.0.1-alpha.5(react-dom@18.3.1)(react@18.3.1):
|
|
||||||
resolution: {integrity: sha512-EwTUjRPhU2CUyI2e11pAi9aOQg9oEWdFEWxv1f4j+Ta4doYXd1yTl94Zy9JvigiEj4qv8dPGl0PUd3r+qMVrAg==}
|
|
||||||
peerDependencies:
|
|
||||||
react: '>=16.8.4'
|
|
||||||
react-dom: '>=16.8.4'
|
|
||||||
dependencies:
|
|
||||||
react: 18.3.1
|
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@ant-design/colors@6.0.0:
|
/@ant-design/colors@6.0.0:
|
||||||
resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
|
resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -323,23 +310,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-MLm1FUpg02fP615ShQnCUN9la2E4RylDxKyolkGqAWTIHO4HyGM0A5x71AMALEyP/bC+UEEWBGSQ+D4/8hQ+ww==}
|
resolution: {integrity: sha512-MLm1FUpg02fP615ShQnCUN9la2E4RylDxKyolkGqAWTIHO4HyGM0A5x71AMALEyP/bC+UEEWBGSQ+D4/8hQ+ww==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@ant-design/plots@2.2.2(lodash-es@4.17.21)(react-dom@18.3.1)(react@18.3.1):
|
|
||||||
resolution: {integrity: sha512-yewzzVpFaAeeP0Twri7+YcKjNBnh3O5WfmGl6UxqeCVc2MWoazew0mN12+ToSceUi/0n6BbB+Lw5345l1EnKbw==}
|
|
||||||
peerDependencies:
|
|
||||||
lodash-es: ^4.17.21
|
|
||||||
react: '>=16.8.4'
|
|
||||||
react-dom: '>=16.8.4'
|
|
||||||
dependencies:
|
|
||||||
'@ant-design/charts-util': 0.0.1-alpha.5(react-dom@18.3.1)(react@18.3.1)
|
|
||||||
'@antv/event-emitter': 0.1.3
|
|
||||||
'@antv/g': 6.0.5
|
|
||||||
'@antv/g2': 5.1.20
|
|
||||||
'@antv/g2-extension-plot': 0.2.0
|
|
||||||
lodash-es: 4.17.21
|
|
||||||
react: 18.3.1
|
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@ant-design/pro-card@2.6.1(antd@4.24.16)(react-dom@18.3.1)(react@18.3.1):
|
/@ant-design/pro-card@2.6.1(antd@4.24.16)(react-dom@18.3.1)(react@18.3.1):
|
||||||
resolution: {integrity: sha512-LiZwTUFHNU8t7bJsp51DnSmuct2uY2WHxl+dMcWCpsW2V6KRPws4raGo96SDMPfGjwbF0YrMZhR9yO7qmI5nag==}
|
resolution: {integrity: sha512-LiZwTUFHNU8t7bJsp51DnSmuct2uY2WHxl+dMcWCpsW2V6KRPws4raGo96SDMPfGjwbF0YrMZhR9yO7qmI5nag==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -889,226 +859,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==}
|
resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@antv/component@2.0.1:
|
|
||||||
resolution: {integrity: sha512-VldsSv2O/JNjZYenFIzmtLeC+KD2RcpNARsCLKpi04Iz26joQ3uMtnwxM5W4bd/SCJYKp+eeQeMHMAbwaNR1pw==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g': 6.0.5
|
|
||||||
'@antv/scale': 0.4.16
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
svg-path-parser: 1.1.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/coord@0.4.7:
|
|
||||||
resolution: {integrity: sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/scale': 0.4.16
|
|
||||||
'@antv/util': 2.0.17
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/event-emitter@0.1.3:
|
|
||||||
resolution: {integrity: sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-camera-api@2.0.4:
|
|
||||||
resolution: {integrity: sha512-cYDfiluVwSbfXp6KTcBTpagVDenSloqZnWoIUv6sYkRyyf4hKZRSRE/oFyMQv6FyzdONiyowe8VU7sbmV8ePeQ==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-canvas@2.0.4:
|
|
||||||
resolution: {integrity: sha512-DA1Ru1sASV4eJIIL17+Thn6da6omPNcSZ4Lyl3ZgakRpXsXhIC6dzMT+loBgD5OUS6vqRNoRqqJI6htgGkI2ew==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/g-plugin-canvas-path-generator': 2.0.4
|
|
||||||
'@antv/g-plugin-canvas-picker': 2.0.4
|
|
||||||
'@antv/g-plugin-canvas-renderer': 2.0.4
|
|
||||||
'@antv/g-plugin-dom-interaction': 2.0.4
|
|
||||||
'@antv/g-plugin-html-renderer': 2.0.4
|
|
||||||
'@antv/g-plugin-image-loader': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-dom-mutation-observer-api@2.0.4:
|
|
||||||
resolution: {integrity: sha512-UuDA8jagEvjvSLfF6YdGt2YacAaz9N5XXcnaGyikfvvCcayga5J2BNB1WJwVDrMccrvvXEr7i6PmcZ7X9qXUzg==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-lite@2.0.4:
|
|
||||||
resolution: {integrity: sha512-2X8b0E5JtdoSk+ixdBp7scZ0rpkN4hbtlsQpAVn3O41O90mOAOkHQ0jD4arL66WVb0UqBo87kTBoMP1I9N+jzg==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-math': 3.0.0
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
d3-color: 1.4.1
|
|
||||||
eventemitter3: 5.0.1
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
rbush: 3.0.1
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-math@3.0.0:
|
|
||||||
resolution: {integrity: sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-canvas-path-generator@2.0.4:
|
|
||||||
resolution: {integrity: sha512-hiGQphLKnjyRC2tioS9txoDbm6m+JcKeQCZacucoX3Sw3gW1C921OoeUHQr9XznbxPU9/+k5lBNnEHrD0ZAoWg==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/g-math': 3.0.0
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-canvas-picker@2.0.4:
|
|
||||||
resolution: {integrity: sha512-uAfN2co/peMm6TSYccPDs2obw+hw9c93sPBFhHTlHO+qBqnXRnchTWHSJosepZNLo4eRbgIO5C/KNSQZQg+nBg==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/g-math': 3.0.0
|
|
||||||
'@antv/g-plugin-canvas-path-generator': 2.0.4
|
|
||||||
'@antv/g-plugin-canvas-renderer': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-canvas-renderer@2.0.4:
|
|
||||||
resolution: {integrity: sha512-2Hqwmmttp1HPV/VwuwaXMjvD2FPaHaVGqAQ6FJF7dLllTBJCpTZAgm8mpXfnP0USa394KILs3f5fY7K53kpfAw==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/g-math': 3.0.0
|
|
||||||
'@antv/g-plugin-canvas-path-generator': 2.0.4
|
|
||||||
'@antv/g-plugin-image-loader': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-dom-interaction@2.0.4:
|
|
||||||
resolution: {integrity: sha512-3FE8vYj5u6NCvt1N6QCLHXBQUwCiKSopZUZFlWjVA7wadOyUwPHZv70gmRY1cbpEnkOVVfyyrQ9wNOr5A0qmSA==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-dragndrop@2.0.4:
|
|
||||||
resolution: {integrity: sha512-iEvUtAXCb492wjIrOg6xI7dS9qWWeIXuFzkruRu1Q5UCfyC7p5JlBXCiaGpODwCAkSd19aPu7zQPBO4MiRYC4Q==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-html-renderer@2.0.4:
|
|
||||||
resolution: {integrity: sha512-KS1AT/TNOCMaNttWvfam8X5JC7LePYX5+OFp773Qpfo9tESEmZe+ooiXWhNaV8susaww3DwsW4kvETB1SBr5Rw==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-plugin-image-loader@2.0.4:
|
|
||||||
resolution: {integrity: sha512-maWyUhywmpPfcV2ra+iLSNUu82UEULQrRYoRAvrT4BF6XAV1VQ+Sow/uW2OS0GAtcntnXobkxyGhMylMBzfaog==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g-web-animations-api@2.0.5:
|
|
||||||
resolution: {integrity: sha512-J05EABt1kg1DxFU1eNDlkPX6HhQ1oauHVh8o5/xRqAyqmK2dGOzYJNftsaaY7vmyrRBxRALHheclDj8kaXKlhg==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g2-extension-plot@0.2.0:
|
|
||||||
resolution: {integrity: sha512-XeJquOmZw3dHTj2qRNZJZlkX5qDrGJDMhuknHHMgGsj1PoPc8sOWzACesWVHB9tmHJqwheySWmwf4KLxtUBZ9w==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g2': 5.1.20
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
d3-array: 3.2.4
|
|
||||||
d3-hierarchy: 3.1.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g2@5.1.20:
|
|
||||||
resolution: {integrity: sha512-MKenSYtxVd68q/i/lV4pz8vpUc/yhiCIJRZclWUrGyP01RD+jaO6BVQhASdTYwz34HwQACXjt2K8tBqpYHb1Ew==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/component': 2.0.1
|
|
||||||
'@antv/coord': 0.4.7
|
|
||||||
'@antv/event-emitter': 0.1.3
|
|
||||||
'@antv/g': 6.0.5
|
|
||||||
'@antv/g-canvas': 2.0.4
|
|
||||||
'@antv/g-plugin-dragndrop': 2.0.4
|
|
||||||
'@antv/path-util': 3.0.1
|
|
||||||
'@antv/scale': 0.4.16
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
d3-array: 3.2.4
|
|
||||||
d3-dsv: 3.0.1
|
|
||||||
d3-force: 3.0.0
|
|
||||||
d3-format: 3.1.0
|
|
||||||
d3-geo: 3.1.1
|
|
||||||
d3-hierarchy: 3.1.2
|
|
||||||
d3-path: 3.1.0
|
|
||||||
d3-scale-chromatic: 3.1.0
|
|
||||||
d3-shape: 3.2.0
|
|
||||||
d3-voronoi: 1.1.4
|
|
||||||
flru: 1.0.2
|
|
||||||
fmin: 0.0.2
|
|
||||||
pdfast: 0.2.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/g@6.0.5:
|
|
||||||
resolution: {integrity: sha512-qj9gszJH+or/sQvf6xCxwUAqJbaqKY1ZOm7OX1csyxGqRqmjn8uhMVCBJxoknOvlhWvMtqXBWDCcTdNs7IJBIQ==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/g-camera-api': 2.0.4
|
|
||||||
'@antv/g-dom-mutation-observer-api': 2.0.4
|
|
||||||
'@antv/g-lite': 2.0.4
|
|
||||||
'@antv/g-web-animations-api': 2.0.5
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/path-util@3.0.1:
|
|
||||||
resolution: {integrity: sha512-tpvAzMpF9Qm6ik2YSMqICNU5tco5POOW7S4XoxZAI/B0L26adU+Md/SmO0BBo2SpuywKvzPH3hPT3xmoyhr04Q==}
|
|
||||||
dependencies:
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
lodash-es: 4.17.21
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/scale@0.4.16:
|
|
||||||
resolution: {integrity: sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==}
|
|
||||||
dependencies:
|
|
||||||
'@antv/util': 3.3.7
|
|
||||||
color-string: 1.9.1
|
|
||||||
fecha: 4.2.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/util@2.0.17:
|
|
||||||
resolution: {integrity: sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==}
|
|
||||||
dependencies:
|
|
||||||
csstype: 3.1.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@antv/util@3.3.7:
|
|
||||||
resolution: {integrity: sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==}
|
|
||||||
dependencies:
|
|
||||||
fast-deep-equal: 3.1.3
|
|
||||||
gl-matrix: 3.4.3
|
|
||||||
tslib: 2.6.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@babel/code-frame@7.12.11:
|
/@babel/code-frame@7.12.11:
|
||||||
resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz}
|
resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4062,20 +3812,6 @@ packages:
|
|||||||
'@jridgewell/resolve-uri': 3.1.2
|
'@jridgewell/resolve-uri': 3.1.2
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
|
|
||||||
/@ljharb/resumer@0.0.1:
|
|
||||||
resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==}
|
|
||||||
engines: {node: '>= 0.4'}
|
|
||||||
dependencies:
|
|
||||||
'@ljharb/through': 2.3.13
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@ljharb/through@2.3.13:
|
|
||||||
resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==}
|
|
||||||
engines: {node: '>= 0.4'}
|
|
||||||
dependencies:
|
|
||||||
call-bind: 1.0.7
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@loadable/component@5.15.2(react@18.1.0):
|
/@loadable/component@5.15.2(react@18.1.0):
|
||||||
resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==}
|
resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -6207,20 +5943,6 @@ packages:
|
|||||||
require-from-string: 2.0.2
|
require-from-string: 2.0.2
|
||||||
uri-js: 4.4.1
|
uri-js: 4.4.1
|
||||||
|
|
||||||
/align-text@0.1.4:
|
|
||||||
resolution: {integrity: sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
kind-of: 3.2.2
|
|
||||||
longest: 1.0.1
|
|
||||||
repeat-string: 1.6.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/amdefine@1.0.1:
|
|
||||||
resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==}
|
|
||||||
engines: {node: '>=0.4.2'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/ansi-colors@4.1.3:
|
/ansi-colors@4.1.3:
|
||||||
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, tarball: https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz}
|
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, tarball: https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -6244,11 +5966,6 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/ansi-regex@2.1.1:
|
|
||||||
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/ansi-regex@5.0.1:
|
/ansi-regex@5.0.1:
|
||||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -6257,11 +5974,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz}
|
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
/ansi-styles@2.2.1:
|
|
||||||
resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/ansi-styles@3.2.1:
|
/ansi-styles@3.2.1:
|
||||||
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
|
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -7079,11 +6791,6 @@ packages:
|
|||||||
quick-lru: 4.0.1
|
quick-lru: 4.0.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/camelcase@1.2.1:
|
|
||||||
resolution: {integrity: sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/camelcase@5.3.1:
|
/camelcase@5.3.1:
|
||||||
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -7106,25 +6813,6 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/center-align@0.1.3:
|
|
||||||
resolution: {integrity: sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
align-text: 0.1.4
|
|
||||||
lazy-cache: 1.0.4
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/chalk@1.1.3:
|
|
||||||
resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
ansi-styles: 2.2.1
|
|
||||||
escape-string-regexp: 1.0.5
|
|
||||||
has-ansi: 2.0.0
|
|
||||||
strip-ansi: 3.0.1
|
|
||||||
supports-color: 2.0.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/chalk@2.4.2:
|
/chalk@2.4.2:
|
||||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -7258,14 +6946,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
|
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/cliui@2.1.0:
|
|
||||||
resolution: {integrity: sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==}
|
|
||||||
dependencies:
|
|
||||||
center-align: 0.1.3
|
|
||||||
right-align: 0.1.3
|
|
||||||
wordwrap: 0.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/cliui@8.0.1:
|
/cliui@8.0.1:
|
||||||
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
|
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -7299,13 +6979,6 @@ packages:
|
|||||||
/color-name@1.1.4:
|
/color-name@1.1.4:
|
||||||
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
||||||
|
|
||||||
/color-string@1.9.1:
|
|
||||||
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
|
|
||||||
dependencies:
|
|
||||||
color-name: 1.1.4
|
|
||||||
simple-swizzle: 0.2.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/colord@2.9.3:
|
/colord@2.9.3:
|
||||||
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
|
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -7426,10 +7099,6 @@ packages:
|
|||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/contour_plot@0.0.1:
|
|
||||||
resolution: {integrity: sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/convert-source-map@1.9.0:
|
/convert-source-map@1.9.0:
|
||||||
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
|
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -7720,104 +7389,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==}
|
resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/d3-array@3.2.4:
|
|
||||||
resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
|
||||||
internmap: 2.0.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-color@1.4.1:
|
|
||||||
resolution: {integrity: sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-color@3.1.0:
|
|
||||||
resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-dispatch@3.0.1:
|
|
||||||
resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-dsv@3.0.1:
|
|
||||||
resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
commander: 7.2.0
|
|
||||||
iconv-lite: 0.6.3
|
|
||||||
rw: 1.3.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-force@3.0.0:
|
|
||||||
resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
|
||||||
d3-dispatch: 3.0.1
|
|
||||||
d3-quadtree: 3.0.1
|
|
||||||
d3-timer: 3.0.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-format@3.1.0:
|
|
||||||
resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-geo@3.1.1:
|
|
||||||
resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
|
||||||
d3-array: 3.2.4
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-hierarchy@3.1.2:
|
|
||||||
resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-interpolate@3.0.1:
|
|
||||||
resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
|
||||||
d3-color: 3.1.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-path@3.1.0:
|
|
||||||
resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-quadtree@3.0.1:
|
|
||||||
resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-scale-chromatic@3.1.0:
|
|
||||||
resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
|
||||||
d3-color: 3.1.0
|
|
||||||
d3-interpolate: 3.0.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-shape@3.2.0:
|
|
||||||
resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
|
||||||
d3-path: 3.1.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-timer@3.0.1:
|
|
||||||
resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d3-voronoi@1.1.4:
|
|
||||||
resolution: {integrity: sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/d@1.0.2:
|
/d@1.0.2:
|
||||||
resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
|
resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
|
||||||
engines: {node: '>=0.12'}
|
engines: {node: '>=0.12'}
|
||||||
@@ -7914,18 +7485,6 @@ packages:
|
|||||||
engines: {node: '>=14.16'}
|
engines: {node: '>=14.16'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/deep-equal@1.1.2:
|
|
||||||
resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==}
|
|
||||||
engines: {node: '>= 0.4'}
|
|
||||||
dependencies:
|
|
||||||
is-arguments: 1.1.1
|
|
||||||
is-date-object: 1.0.5
|
|
||||||
is-regex: 1.1.4
|
|
||||||
object-is: 1.1.6
|
|
||||||
object-keys: 1.1.1
|
|
||||||
regexp.prototype.flags: 1.5.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/deep-is@0.1.4:
|
/deep-is@0.1.4:
|
||||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||||
|
|
||||||
@@ -7985,10 +7544,6 @@ packages:
|
|||||||
object-keys: 1.1.1
|
object-keys: 1.1.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/defined@1.0.1:
|
|
||||||
resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/delayed-stream@1.0.0:
|
/delayed-stream@1.0.0:
|
||||||
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, tarball: https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz}
|
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, tarball: https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
@@ -8143,13 +7698,6 @@ packages:
|
|||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/dotignore@0.1.2:
|
|
||||||
resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
minimatch: 3.1.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/duplexer2@0.1.4:
|
/duplexer2@0.1.4:
|
||||||
resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
|
resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -9182,6 +8730,7 @@ packages:
|
|||||||
|
|
||||||
/eventemitter3@5.0.1:
|
/eventemitter3@5.0.1:
|
||||||
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
|
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/events-okam@3.3.0:
|
/events-okam@3.3.0:
|
||||||
resolution: {integrity: sha512-6iR7z9hAJEwrT+D2Ywg6Fx62HSmN86OlcvPdrnq1JBeFr30dMF6l+j7M3VabjHfIi2KMtF8rO0J1rIZEfwMAwg==}
|
resolution: {integrity: sha512-6iR7z9hAJEwrT+D2Ywg6Fx62HSmN86OlcvPdrnq1JBeFr30dMF6l+j7M3VabjHfIi2KMtF8rO0J1rIZEfwMAwg==}
|
||||||
@@ -9390,10 +8939,6 @@ packages:
|
|||||||
ua-parser-js: 0.7.38
|
ua-parser-js: 0.7.38
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/fecha@4.2.3:
|
|
||||||
resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/fetch-blob@3.2.0:
|
/fetch-blob@3.2.0:
|
||||||
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
|
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
|
||||||
engines: {node: ^12.20 || >= 14.13}
|
engines: {node: ^12.20 || >= 14.13}
|
||||||
@@ -9485,21 +9030,6 @@ packages:
|
|||||||
deprecated: flatten is deprecated in favor of utility frameworks such as lodash.
|
deprecated: flatten is deprecated in favor of utility frameworks such as lodash.
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/flru@1.0.2:
|
|
||||||
resolution: {integrity: sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==}
|
|
||||||
engines: {node: '>=6'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/fmin@0.0.2:
|
|
||||||
resolution: {integrity: sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A==}
|
|
||||||
dependencies:
|
|
||||||
contour_plot: 0.0.1
|
|
||||||
json2module: 0.0.3
|
|
||||||
rollup: 0.25.8
|
|
||||||
tape: 4.17.0
|
|
||||||
uglify-js: 2.8.29
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/follow-redirects@1.15.6:
|
/follow-redirects@1.15.6:
|
||||||
resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz}
|
resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
@@ -9702,10 +9232,6 @@ packages:
|
|||||||
/git-hooks-list@3.1.0:
|
/git-hooks-list@3.1.0:
|
||||||
resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==}
|
resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==}
|
||||||
|
|
||||||
/gl-matrix@3.4.3:
|
|
||||||
resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/glob-parent@5.1.2:
|
/glob-parent@5.1.2:
|
||||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@@ -9871,13 +9397,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==}
|
resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/has-ansi@2.0.0:
|
|
||||||
resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, tarball: https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
ansi-regex: 2.1.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/has-ansi@5.0.1:
|
/has-ansi@5.0.1:
|
||||||
resolution: {integrity: sha512-Fp2IsZDnnyoJkKg22ZyQFvD7QRCcMTsLAtloKXyXWJ1joGLtItRU9Bv/k1o0tELL2NF3ZZBcycSKryZUM+Yl3g==, tarball: https://registry.npmjs.org/has-ansi/-/has-ansi-5.0.1.tgz}
|
resolution: {integrity: sha512-Fp2IsZDnnyoJkKg22ZyQFvD7QRCcMTsLAtloKXyXWJ1joGLtItRU9Bv/k1o0tELL2NF3ZZBcycSKryZUM+Yl3g==, tarball: https://registry.npmjs.org/has-ansi/-/has-ansi-5.0.1.tgz}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -9920,11 +9439,6 @@ packages:
|
|||||||
has-symbols: 1.0.3
|
has-symbols: 1.0.3
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/has@1.0.4:
|
|
||||||
resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
|
|
||||||
engines: {node: '>= 0.4.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/hash-base@3.0.4:
|
/hash-base@3.0.4:
|
||||||
resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==}
|
resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -10259,11 +9773,6 @@ packages:
|
|||||||
side-channel: 1.0.6
|
side-channel: 1.0.6
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/internmap@2.0.3:
|
|
||||||
resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/intersection-observer@0.12.2:
|
/intersection-observer@0.12.2:
|
||||||
resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==, tarball: https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz}
|
resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==, tarball: https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -10342,10 +9851,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
|
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/is-arrayish@0.3.2:
|
|
||||||
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/is-arrow-function@2.0.3:
|
/is-arrow-function@2.0.3:
|
||||||
resolution: {integrity: sha512-iDStzcT1FJMzx+TjCOK//uDugSe/Mif/8a+T0htydQ3qkJGvSweTZpVYz4hpJH0baloSPiAFQdA8WslAgJphvQ==}
|
resolution: {integrity: sha512-iDStzcT1FJMzx+TjCOK//uDugSe/Mif/8a+T0htydQ3qkJGvSweTZpVYz4hpJH0baloSPiAFQdA8WslAgJphvQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -10381,10 +9886,6 @@ packages:
|
|||||||
has-tostringtag: 1.0.2
|
has-tostringtag: 1.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/is-buffer@1.1.6:
|
|
||||||
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/is-buffer@2.0.5:
|
/is-buffer@2.0.5:
|
||||||
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, tarball: https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz}
|
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, tarball: https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -10874,13 +10375,6 @@ packages:
|
|||||||
/json-stable-stringify-without-jsonify@1.0.1:
|
/json-stable-stringify-without-jsonify@1.0.1:
|
||||||
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
||||||
|
|
||||||
/json2module@0.0.3:
|
|
||||||
resolution: {integrity: sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA==}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
rw: 1.3.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/json2mq@0.2.0:
|
/json2mq@0.2.0:
|
||||||
resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==}
|
resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -10915,13 +10409,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
json-buffer: 3.0.1
|
json-buffer: 3.0.1
|
||||||
|
|
||||||
/kind-of@3.2.2:
|
|
||||||
resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
is-buffer: 1.1.6
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/kind-of@6.0.3:
|
/kind-of@6.0.3:
|
||||||
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
|
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -10939,11 +10426,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
|
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lazy-cache@1.0.4:
|
|
||||||
resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/lcid@3.1.1:
|
/lcid@3.1.1:
|
||||||
resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==, tarball: https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz}
|
resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==, tarball: https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -11201,7 +10683,7 @@ packages:
|
|||||||
p-locate: 5.0.0
|
p-locate: 5.0.0
|
||||||
|
|
||||||
/lodash-es@4.17.21:
|
/lodash-es@4.17.21:
|
||||||
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
|
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, tarball: https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.debounce@4.0.8:
|
/lodash.debounce@4.0.8:
|
||||||
@@ -11257,11 +10739,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==, tarball: https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz}
|
resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==, tarball: https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/longest@1.0.1:
|
|
||||||
resolution: {integrity: sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/loose-envify@1.4.0:
|
/loose-envify@1.4.0:
|
||||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -11561,18 +11038,6 @@ packages:
|
|||||||
engines: {node: '>=16 || 14 >=14.17'}
|
engines: {node: '>=16 || 14 >=14.17'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/mock-property@1.0.3:
|
|
||||||
resolution: {integrity: sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==}
|
|
||||||
engines: {node: '>= 0.4'}
|
|
||||||
dependencies:
|
|
||||||
define-data-property: 1.1.4
|
|
||||||
functions-have-names: 1.2.3
|
|
||||||
gopd: 1.0.1
|
|
||||||
has-property-descriptors: 1.0.2
|
|
||||||
hasown: 2.0.2
|
|
||||||
isarray: 2.0.5
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/mock.js@0.2.0:
|
/mock.js@0.2.0:
|
||||||
resolution: {integrity: sha512-DKI8Rh/h7Mma+fg+6aD0uUvwn0QXAjKG6q3s+lTaCboCQ/kvQMBN9IXRBzgEaz4aPiYoRnKU9jVsfZp0mHpWrQ==, tarball: https://registry.npmjs.org/mock.js/-/mock.js-0.2.0.tgz}
|
resolution: {integrity: sha512-DKI8Rh/h7Mma+fg+6aD0uUvwn0QXAjKG6q3s+lTaCboCQ/kvQMBN9IXRBzgEaz4aPiYoRnKU9jVsfZp0mHpWrQ==, tarball: https://registry.npmjs.org/mock.js/-/mock.js-0.2.0.tgz}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -11894,22 +11359,10 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/object-inspect@1.12.3:
|
|
||||||
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/object-inspect@1.13.1:
|
/object-inspect@1.13.1:
|
||||||
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
|
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/object-is@1.1.6:
|
|
||||||
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
|
|
||||||
engines: {node: '>= 0.4'}
|
|
||||||
dependencies:
|
|
||||||
call-bind: 1.0.7
|
|
||||||
define-properties: 1.2.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/object-keys@0.4.0:
|
/object-keys@0.4.0:
|
||||||
resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==}
|
resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -12240,10 +11693,6 @@ packages:
|
|||||||
sha.js: 2.4.11
|
sha.js: 2.4.11
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/pdfast@0.2.0:
|
|
||||||
resolution: {integrity: sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/performance-now@2.1.0:
|
/performance-now@2.1.0:
|
||||||
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz}
|
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -13075,10 +12524,6 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/quickselect@2.0.0:
|
|
||||||
resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/raf@3.4.1:
|
/raf@3.4.1:
|
||||||
resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, tarball: https://registry.npmjs.org/raf/-/raf-3.4.1.tgz}
|
resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, tarball: https://registry.npmjs.org/raf/-/raf-3.4.1.tgz}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -13112,12 +12557,6 @@ packages:
|
|||||||
unpipe: 1.0.0
|
unpipe: 1.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/rbush@3.0.1:
|
|
||||||
resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==}
|
|
||||||
dependencies:
|
|
||||||
quickselect: 2.0.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/rc-align@2.4.5:
|
/rc-align@2.4.5:
|
||||||
resolution: {integrity: sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==, tarball: https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz}
|
resolution: {integrity: sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==, tarball: https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -14859,13 +14298,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==}
|
resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/right-align@0.1.3:
|
|
||||||
resolution: {integrity: sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
align-text: 0.1.4
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/rimraf@3.0.2:
|
/rimraf@3.0.2:
|
||||||
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
|
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -15071,15 +14503,6 @@ packages:
|
|||||||
yargs: 17.7.2
|
yargs: 17.7.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/rollup@0.25.8:
|
|
||||||
resolution: {integrity: sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA==}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
chalk: 1.1.3
|
|
||||||
minimist: 1.2.8
|
|
||||||
source-map-support: 0.3.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/rollup@3.29.4:
|
/rollup@3.29.4:
|
||||||
resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
|
resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
|
||||||
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
|
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
|
||||||
@@ -15100,10 +14523,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
queue-microtask: 1.2.3
|
queue-microtask: 1.2.3
|
||||||
|
|
||||||
/rw@1.3.3:
|
|
||||||
resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/safe-array-concat@1.1.2:
|
/safe-array-concat@1.1.2:
|
||||||
resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
|
resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
|
||||||
engines: {node: '>=0.4'}
|
engines: {node: '>=0.4'}
|
||||||
@@ -15370,12 +14789,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
/simple-swizzle@0.2.2:
|
|
||||||
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
|
|
||||||
dependencies:
|
|
||||||
is-arrayish: 0.3.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/single-spa@5.9.5:
|
/single-spa@5.9.5:
|
||||||
resolution: {integrity: sha512-9SQdmsyz4HSP+3gs6PJzhkaMEg+6zTlu9oxIghnwUX3eq+ajq4ft5egl0iyR55LAmO/UwvU8NgIWs/ZyQMa6dw==}
|
resolution: {integrity: sha512-9SQdmsyz4HSP+3gs6PJzhkaMEg+6zTlu9oxIghnwUX3eq+ajq4ft5egl0iyR55LAmO/UwvU8NgIWs/ZyQMa6dw==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -15465,25 +14878,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
/source-map-support@0.3.3:
|
|
||||||
resolution: {integrity: sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==}
|
|
||||||
dependencies:
|
|
||||||
source-map: 0.1.32
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/source-map-support@0.5.21:
|
/source-map-support@0.5.21:
|
||||||
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
|
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-from: 1.1.2
|
buffer-from: 1.1.2
|
||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
|
|
||||||
/source-map@0.1.32:
|
|
||||||
resolution: {integrity: sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==}
|
|
||||||
engines: {node: '>=0.8.0'}
|
|
||||||
dependencies:
|
|
||||||
amdefine: 1.0.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/source-map@0.5.7:
|
/source-map@0.5.7:
|
||||||
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
|
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -15724,13 +15124,6 @@ packages:
|
|||||||
safe-buffer: 5.2.1
|
safe-buffer: 5.2.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/strip-ansi@3.0.1:
|
|
||||||
resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
ansi-regex: 2.1.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/strip-ansi@6.0.1:
|
/strip-ansi@6.0.1:
|
||||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -15995,11 +15388,6 @@ packages:
|
|||||||
copy-anything: 3.0.5
|
copy-anything: 3.0.5
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/supports-color@2.0.0:
|
|
||||||
resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
|
|
||||||
engines: {node: '>=0.8.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/supports-color@5.5.0:
|
/supports-color@5.5.0:
|
||||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -16035,10 +15423,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
|
resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/svg-path-parser@1.1.0:
|
|
||||||
resolution: {integrity: sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/svg-tags@1.0.0:
|
/svg-tags@1.0.0:
|
||||||
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
|
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -16130,28 +15514,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz}
|
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
/tape@4.17.0:
|
|
||||||
resolution: {integrity: sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
'@ljharb/resumer': 0.0.1
|
|
||||||
'@ljharb/through': 2.3.13
|
|
||||||
call-bind: 1.0.7
|
|
||||||
deep-equal: 1.1.2
|
|
||||||
defined: 1.0.1
|
|
||||||
dotignore: 0.1.2
|
|
||||||
for-each: 0.3.3
|
|
||||||
glob: 7.2.3
|
|
||||||
has: 1.0.4
|
|
||||||
inherits: 2.0.4
|
|
||||||
is-regex: 1.1.4
|
|
||||||
minimist: 1.2.8
|
|
||||||
mock-property: 1.0.3
|
|
||||||
object-inspect: 1.12.3
|
|
||||||
resolve: 1.22.8
|
|
||||||
string.prototype.trim: 1.2.9
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/terser-webpack-plugin@5.3.10(webpack@5.91.0):
|
/terser-webpack-plugin@5.3.10(webpack@5.91.0):
|
||||||
resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==, tarball: https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz}
|
resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==, tarball: https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz}
|
||||||
engines: {node: '>= 10.13.0'}
|
engines: {node: '>= 10.13.0'}
|
||||||
@@ -16452,23 +15814,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==, tarball: https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz}
|
resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==, tarball: https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/uglify-js@2.8.29:
|
|
||||||
resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==}
|
|
||||||
engines: {node: '>=0.8.0'}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
source-map: 0.5.7
|
|
||||||
yargs: 3.10.0
|
|
||||||
optionalDependencies:
|
|
||||||
uglify-to-browserify: 1.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/uglify-to-browserify@1.0.2:
|
|
||||||
resolution: {integrity: sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==, tarball: https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz}
|
|
||||||
requiresBuild: true
|
|
||||||
dev: false
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/umi-presets-pro@2.0.3(@babel/core@7.24.5)(@types/react-dom@18.3.0)(@types/react@18.3.1)(antd@5.18.3)(dva@2.5.0-beta.2)(rc-field-form@1.44.0)(react-dom@18.3.1)(react@18.3.1)(umi@4.2.1):
|
/umi-presets-pro@2.0.3(@babel/core@7.24.5)(@types/react-dom@18.3.0)(@types/react@18.3.1)(antd@5.18.3)(dva@2.5.0-beta.2)(rc-field-form@1.44.0)(react-dom@18.3.1)(react@18.3.1)(umi@4.2.1):
|
||||||
resolution: {integrity: sha512-sHKynw/fi7UeUftzTRPRsrV5GHV4BWvWYhyvwkg8s+shmt0ROPW/52y4gxBziEvetxl8yWMKUCWk50OUDOcrww==, tarball: https://registry.npmjs.org/umi-presets-pro/-/umi-presets-pro-2.0.3.tgz}
|
resolution: {integrity: sha512-sHKynw/fi7UeUftzTRPRsrV5GHV4BWvWYhyvwkg8s+shmt0ROPW/52y4gxBziEvetxl8yWMKUCWk50OUDOcrww==, tarball: https://registry.npmjs.org/umi-presets-pro/-/umi-presets-pro-2.0.3.tgz}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -17066,20 +16411,10 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isexe: 2.0.0
|
isexe: 2.0.0
|
||||||
|
|
||||||
/window-size@0.1.0:
|
|
||||||
resolution: {integrity: sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==}
|
|
||||||
engines: {node: '>= 0.8.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/word-wrap@1.2.5:
|
/word-wrap@1.2.5:
|
||||||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
/wordwrap@0.0.2:
|
|
||||||
resolution: {integrity: sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==}
|
|
||||||
engines: {node: '>=0.4.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/workerpool@9.1.1:
|
/workerpool@9.1.1:
|
||||||
resolution: {integrity: sha512-EFoFTSEo9m4V4wNrwzVRjxnf/E/oBpOzcI/R5CIugJhl9RsCiq525rszo4AtqcjQQoqFdu2E3H82AnbtpaQHvg==}
|
resolution: {integrity: sha512-EFoFTSEo9m4V4wNrwzVRjxnf/E/oBpOzcI/R5CIugJhl9RsCiq525rszo4AtqcjQQoqFdu2E3H82AnbtpaQHvg==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -17188,15 +16523,6 @@ packages:
|
|||||||
yargs-parser: 21.1.1
|
yargs-parser: 21.1.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/yargs@3.10.0:
|
|
||||||
resolution: {integrity: sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==}
|
|
||||||
dependencies:
|
|
||||||
camelcase: 1.2.1
|
|
||||||
cliui: 2.1.0
|
|
||||||
decamelize: 1.2.0
|
|
||||||
window-size: 0.1.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/yocto-queue@0.1.0:
|
/yocto-queue@0.1.0:
|
||||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
@@ -1,94 +0,0 @@
|
|||||||
import { Area } from '@ant-design/plots';
|
|
||||||
import EmptyData from './empty-data';
|
|
||||||
|
|
||||||
interface LineChartProps {
|
|
||||||
title?: string;
|
|
||||||
height?: number;
|
|
||||||
data: any[];
|
|
||||||
color?: string;
|
|
||||||
xField?: string;
|
|
||||||
yField?: string;
|
|
||||||
locale?: string;
|
|
||||||
labelFormatter?: (v: any) => string;
|
|
||||||
slider?: any;
|
|
||||||
}
|
|
||||||
const LineChart: React.FC<LineChartProps> = (props) => {
|
|
||||||
const {
|
|
||||||
data,
|
|
||||||
title,
|
|
||||||
color,
|
|
||||||
xField,
|
|
||||||
locale,
|
|
||||||
yField,
|
|
||||||
slider,
|
|
||||||
height,
|
|
||||||
labelFormatter
|
|
||||||
} = props;
|
|
||||||
const config = {
|
|
||||||
height,
|
|
||||||
xField: xField || 'time',
|
|
||||||
yField: yField || 'value',
|
|
||||||
autoFit: true,
|
|
||||||
slider,
|
|
||||||
// shapeField: 'smooth',
|
|
||||||
axis: {
|
|
||||||
x: {
|
|
||||||
textStyle: {
|
|
||||||
autoRoate: true
|
|
||||||
},
|
|
||||||
labelFormatter
|
|
||||||
},
|
|
||||||
y: {
|
|
||||||
tick: false,
|
|
||||||
// size: 14,
|
|
||||||
// title: '%',
|
|
||||||
titlePosition: 'top',
|
|
||||||
titleFontSize: 12
|
|
||||||
}
|
|
||||||
},
|
|
||||||
style: {
|
|
||||||
fill: (params: any) => {
|
|
||||||
console.log('area param=========', params);
|
|
||||||
return color || 'rgba(84, 204, 152,0.8)';
|
|
||||||
},
|
|
||||||
stroke: (params: any) => {
|
|
||||||
console.log('area param========2=', params);
|
|
||||||
return color || 'rgba(84, 204, 152,0.8)';
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
title,
|
|
||||||
style: {
|
|
||||||
align: 'center',
|
|
||||||
titleFontSize: 14,
|
|
||||||
titleFill: 'rgba(0,0,0,0.88)',
|
|
||||||
titleFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
color: {
|
|
||||||
layout: { justifyContent: 'center' }
|
|
||||||
},
|
|
||||||
|
|
||||||
size: {
|
|
||||||
itemLabelFontSize: 14,
|
|
||||||
itemLabelFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
title: 'time',
|
|
||||||
items: [{ channel: 'y' }]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{data.length === 0 ? (
|
|
||||||
<EmptyData height={height} title={title} />
|
|
||||||
) : (
|
|
||||||
<Area data={data} {...config} />
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LineChart;
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
import { Column } from '@ant-design/plots';
|
|
||||||
|
|
||||||
import EmptyData from './empty-data';
|
|
||||||
|
|
||||||
interface BarChartProps {
|
|
||||||
data: any[];
|
|
||||||
xField: string;
|
|
||||||
yField: string;
|
|
||||||
title?: string;
|
|
||||||
height?: number;
|
|
||||||
group?: boolean;
|
|
||||||
colorField?: string;
|
|
||||||
seriesField?: string;
|
|
||||||
stack?: boolean;
|
|
||||||
legend?: any;
|
|
||||||
labelFormatter?: (v: any) => string;
|
|
||||||
}
|
|
||||||
const BarChart: React.FC<BarChartProps> = (props) => {
|
|
||||||
const {
|
|
||||||
data,
|
|
||||||
xField,
|
|
||||||
yField,
|
|
||||||
title,
|
|
||||||
height = 260,
|
|
||||||
group,
|
|
||||||
colorField,
|
|
||||||
seriesField,
|
|
||||||
stack,
|
|
||||||
legend = undefined,
|
|
||||||
labelFormatter
|
|
||||||
} = props;
|
|
||||||
const config = {
|
|
||||||
data,
|
|
||||||
xField,
|
|
||||||
yField,
|
|
||||||
colorField: colorField || 'name',
|
|
||||||
direction: 'vertical',
|
|
||||||
stack,
|
|
||||||
seriesField,
|
|
||||||
height,
|
|
||||||
group,
|
|
||||||
scale: {
|
|
||||||
x: {
|
|
||||||
type: 'band',
|
|
||||||
padding: 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
legend:
|
|
||||||
legend === 'undefined'
|
|
||||||
? {
|
|
||||||
color: {
|
|
||||||
position: 'top',
|
|
||||||
layout: {
|
|
||||||
justifyContent: 'center'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
: legend,
|
|
||||||
axis: {
|
|
||||||
x: {
|
|
||||||
xAxis: true,
|
|
||||||
tick: false,
|
|
||||||
labelFormatter
|
|
||||||
},
|
|
||||||
y: {
|
|
||||||
tick: false,
|
|
||||||
labelAutoWrap: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
title,
|
|
||||||
style: {
|
|
||||||
align: 'center',
|
|
||||||
titleFontSize: 14,
|
|
||||||
titleFill: 'rgba(0,0,0,0.88)',
|
|
||||||
titleFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
split: {
|
|
||||||
type: 'line',
|
|
||||||
line: {
|
|
||||||
color: 'red',
|
|
||||||
style: {
|
|
||||||
color: 'red',
|
|
||||||
lineDash: [4, 5]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
style: {
|
|
||||||
fill: (params: any) => {
|
|
||||||
console.log('colbar=====', params);
|
|
||||||
return params.color || 'rgba(84, 204, 152,0.8)';
|
|
||||||
},
|
|
||||||
// radiusTopLeft: 12,
|
|
||||||
// radiusTopRight: 12,
|
|
||||||
align: 'center',
|
|
||||||
width: 20
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{data.length > 0 ? (
|
|
||||||
<Column {...config} />
|
|
||||||
) : (
|
|
||||||
<EmptyData height={height} title={title} />
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default BarChart;
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
export const titleStyle = {
|
|
||||||
style: {
|
|
||||||
align: 'center',
|
|
||||||
titleFontSize: 14,
|
|
||||||
titleFill: 'rgba(0,0,0,0.88)',
|
|
||||||
titleFontWeight: 500
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
import { Gauge } from '@ant-design/plots';
|
|
||||||
import React from 'react';
|
|
||||||
|
|
||||||
interface GaugeChartProps {
|
|
||||||
target: number;
|
|
||||||
total: number;
|
|
||||||
width?: number;
|
|
||||||
height?: number;
|
|
||||||
title?: string;
|
|
||||||
thresholds: number[];
|
|
||||||
rangColor: string[];
|
|
||||||
}
|
|
||||||
|
|
||||||
const GaugeChart: React.FC<GaugeChartProps> = (props) => {
|
|
||||||
const { target, total, width, height, thresholds, rangColor, title } = props;
|
|
||||||
const config = {
|
|
||||||
width,
|
|
||||||
height,
|
|
||||||
box: {
|
|
||||||
padding: [0, 0, 0, 0],
|
|
||||||
style: {
|
|
||||||
padding: [0, 0, 0, 0]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
guide: {
|
|
||||||
arc: {
|
|
||||||
style: {
|
|
||||||
lineWidth: 30
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
autoFit: true,
|
|
||||||
data: {
|
|
||||||
target,
|
|
||||||
total,
|
|
||||||
name: 'score',
|
|
||||||
thresholds
|
|
||||||
},
|
|
||||||
legend: false,
|
|
||||||
scale: {
|
|
||||||
color: {
|
|
||||||
range: rangColor
|
|
||||||
}
|
|
||||||
},
|
|
||||||
startAngle: Math.PI,
|
|
||||||
endAngle: 0,
|
|
||||||
title: {
|
|
||||||
title,
|
|
||||||
size: 0,
|
|
||||||
style: {
|
|
||||||
align: 'center',
|
|
||||||
titleFontSize: 14,
|
|
||||||
titleFill: 'rgba(0,0,0,0.88)',
|
|
||||||
titleFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
style: {
|
|
||||||
arcShape: 'round',
|
|
||||||
textContent: (target: number, total: number) => {
|
|
||||||
return `${(target / total) * 100}%`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return <Gauge {...config} />;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default GaugeChart;
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
import { Bar } from '@ant-design/plots';
|
|
||||||
import EmptyData from './empty-data';
|
|
||||||
|
|
||||||
interface BarChartProps {
|
|
||||||
data: any[];
|
|
||||||
xField: string;
|
|
||||||
yField: string;
|
|
||||||
title?: string;
|
|
||||||
height?: number;
|
|
||||||
group?: boolean;
|
|
||||||
colorField?: string;
|
|
||||||
seriesField?: string;
|
|
||||||
stack?: boolean;
|
|
||||||
legend?: any;
|
|
||||||
showYAxis?: boolean;
|
|
||||||
}
|
|
||||||
const BarChart: React.FC<BarChartProps> = (props) => {
|
|
||||||
const {
|
|
||||||
data,
|
|
||||||
xField,
|
|
||||||
yField,
|
|
||||||
title,
|
|
||||||
height,
|
|
||||||
group,
|
|
||||||
colorField,
|
|
||||||
seriesField,
|
|
||||||
stack,
|
|
||||||
showYAxis = true,
|
|
||||||
legend = undefined
|
|
||||||
} = props;
|
|
||||||
const config = {
|
|
||||||
data,
|
|
||||||
xField,
|
|
||||||
yField,
|
|
||||||
colorField: colorField || 'name',
|
|
||||||
direction: 'vertical',
|
|
||||||
seriesField,
|
|
||||||
height,
|
|
||||||
group,
|
|
||||||
stack,
|
|
||||||
legend:
|
|
||||||
legend === 'undefined'
|
|
||||||
? {
|
|
||||||
color: {
|
|
||||||
position: 'top',
|
|
||||||
layout: {
|
|
||||||
justifyContent: 'center'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
: legend,
|
|
||||||
scale: {
|
|
||||||
x: {
|
|
||||||
type: 'band',
|
|
||||||
padding: 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
axis: {
|
|
||||||
x: {
|
|
||||||
xAxis: true,
|
|
||||||
tick: false
|
|
||||||
},
|
|
||||||
y: showYAxis
|
|
||||||
? {
|
|
||||||
tick: false
|
|
||||||
}
|
|
||||||
: null
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
title,
|
|
||||||
style: {
|
|
||||||
align: 'start',
|
|
||||||
titleFontSize: 14,
|
|
||||||
titleFill: 'rgba(0,0,0,0.88)',
|
|
||||||
titleFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
split: {
|
|
||||||
type: 'line',
|
|
||||||
line: {
|
|
||||||
style: {
|
|
||||||
lineDash: [4, 5]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
markBackground: {},
|
|
||||||
style: {
|
|
||||||
fill: (params: any) => {
|
|
||||||
return (
|
|
||||||
params.color ||
|
|
||||||
'linear-gradient(90deg,rgba(84, 204, 152,0.8) 0%,rgb(0, 168, 143,.7) 100%)'
|
|
||||||
);
|
|
||||||
},
|
|
||||||
// radiusTopLeft: 12,
|
|
||||||
// radiusTopRight: 12,
|
|
||||||
height: 20
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{data.length === 0 ? (
|
|
||||||
<EmptyData height={height} title={title} />
|
|
||||||
) : (
|
|
||||||
<Bar {...config} />
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default BarChart;
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
import { Line } from '@ant-design/plots';
|
|
||||||
import EmptyData from './empty-data';
|
|
||||||
|
|
||||||
interface LineChartProps {
|
|
||||||
title?: string;
|
|
||||||
height?: number;
|
|
||||||
data: any[];
|
|
||||||
color?: string[];
|
|
||||||
xField?: string;
|
|
||||||
yField?: string;
|
|
||||||
locale?: string;
|
|
||||||
labelFormatter?: (v: any) => string;
|
|
||||||
slider?: any;
|
|
||||||
}
|
|
||||||
const LineChart: React.FC<LineChartProps> = (props) => {
|
|
||||||
const {
|
|
||||||
data,
|
|
||||||
title,
|
|
||||||
color,
|
|
||||||
xField,
|
|
||||||
locale,
|
|
||||||
yField,
|
|
||||||
slider,
|
|
||||||
height,
|
|
||||||
labelFormatter
|
|
||||||
} = props;
|
|
||||||
const config = {
|
|
||||||
title,
|
|
||||||
height,
|
|
||||||
xField: xField || 'time',
|
|
||||||
yField: yField || 'value',
|
|
||||||
// color: color || ['red', 'blue', 'green', 'yellow'],
|
|
||||||
colorField: 'type',
|
|
||||||
autoFit: true,
|
|
||||||
slider,
|
|
||||||
shapeField: 'smooth',
|
|
||||||
axis: {
|
|
||||||
x: {
|
|
||||||
textStyle: {
|
|
||||||
autoRoate: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
y: {
|
|
||||||
tick: false,
|
|
||||||
// size: 14,
|
|
||||||
// title: '%',
|
|
||||||
titlePosition: 'top',
|
|
||||||
titleFontSize: 12,
|
|
||||||
labelFormatter
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// point: {
|
|
||||||
// shapeField: 'circle',
|
|
||||||
// sizeField: 2
|
|
||||||
// },
|
|
||||||
style: {
|
|
||||||
lineWidth: 1.5,
|
|
||||||
opacity: 0.7
|
|
||||||
// fill: (params: any) => {
|
|
||||||
// return params.color;
|
|
||||||
// }
|
|
||||||
// stroke: (params: any) => {
|
|
||||||
// console.log('line param=========', params.color);
|
|
||||||
// return params.color;
|
|
||||||
// }
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
color: {
|
|
||||||
layout: { justifyContent: 'center' }
|
|
||||||
},
|
|
||||||
size: {
|
|
||||||
itemLabelFontSize: 14,
|
|
||||||
itemLabelFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
title: 'time',
|
|
||||||
items: [{ channel: 'y' }]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{data.length === 0 ? (
|
|
||||||
<EmptyData height={height} title={title} />
|
|
||||||
) : (
|
|
||||||
<Line data={data} {...config} />
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LineChart;
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
import { Liquid } from '@ant-design/plots';
|
|
||||||
import { useEffect, useState } from 'react';
|
|
||||||
|
|
||||||
interface LiquidChartProps {
|
|
||||||
percent: number;
|
|
||||||
color?: string;
|
|
||||||
title?: string;
|
|
||||||
height?: number;
|
|
||||||
width?: number;
|
|
||||||
thresholds?: number[];
|
|
||||||
rangColor?: string[];
|
|
||||||
}
|
|
||||||
const LiquidChart: React.FC<LiquidChartProps> = (props) => {
|
|
||||||
const {
|
|
||||||
percent = 0,
|
|
||||||
color,
|
|
||||||
title,
|
|
||||||
width,
|
|
||||||
height,
|
|
||||||
thresholds = [],
|
|
||||||
rangColor = []
|
|
||||||
} = props;
|
|
||||||
|
|
||||||
const primaryColor = 'rgba(84, 204, 152,0.8)';
|
|
||||||
const [fillColor, setFillColor] = useState<string>(primaryColor);
|
|
||||||
|
|
||||||
const calcColorByPercent = () => {
|
|
||||||
if (color) {
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
if (!rangColor.length) {
|
|
||||||
return primaryColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rangColor.length && thresholds.length) {
|
|
||||||
let index = 0;
|
|
||||||
for (let i = 0; i < thresholds.length; i++) {
|
|
||||||
if (percent <= thresholds[i]) {
|
|
||||||
index = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return rangColor[index];
|
|
||||||
}
|
|
||||||
return primaryColor;
|
|
||||||
};
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const fc = calcColorByPercent();
|
|
||||||
setFillColor(fc);
|
|
||||||
}, [percent]);
|
|
||||||
|
|
||||||
const config = {
|
|
||||||
percent,
|
|
||||||
textAlign: 'center',
|
|
||||||
autoFit: true,
|
|
||||||
title: {
|
|
||||||
title,
|
|
||||||
size: 0,
|
|
||||||
style: {
|
|
||||||
align: 'center',
|
|
||||||
titleFontSize: 12,
|
|
||||||
titleFill: 'rgba(0,0,0,0.88)',
|
|
||||||
titleFontWeight: 500
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
style: {
|
|
||||||
textAlign: 'center',
|
|
||||||
outlineBorder: 2,
|
|
||||||
waveLength: 128,
|
|
||||||
stroke: fillColor,
|
|
||||||
fill: fillColor
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return <Liquid {...config} />;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LiquidChart;
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
import { Pie } from '@ant-design/plots';
|
|
||||||
import numeral from 'numeral';
|
|
||||||
|
|
||||||
interface PieChartProps {
|
|
||||||
data: { label: string; value: number }[];
|
|
||||||
height?: number;
|
|
||||||
radius?: number;
|
|
||||||
}
|
|
||||||
const PieChart: React.FC<PieChartProps> = (props) => {
|
|
||||||
const { data, height = 340, radius = 0.9 } = props;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Pie
|
|
||||||
height={height}
|
|
||||||
radius={radius}
|
|
||||||
angleField="value"
|
|
||||||
colorField="label"
|
|
||||||
data={data}
|
|
||||||
legend={{
|
|
||||||
color: {
|
|
||||||
position: 'bottom',
|
|
||||||
layout: {
|
|
||||||
justifyContent: 'center'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
label={{
|
|
||||||
position: 'outside',
|
|
||||||
text: (item: { label: number; value: number }) => {
|
|
||||||
return `${item.label}: ${numeral(item.value).format('0,0')}`;
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default PieChart;
|
|
||||||
@@ -9,7 +9,7 @@ import {
|
|||||||
yAxis
|
yAxis
|
||||||
} from '@/components/echarts/config';
|
} from '@/components/echarts/config';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { useEffect, useState } from 'react';
|
import { memo, useEffect, useState } from 'react';
|
||||||
import { ChartProps } from './types';
|
import { ChartProps } from './types';
|
||||||
|
|
||||||
const BarChart: React.FC<ChartProps> = (props) => {
|
const BarChart: React.FC<ChartProps> = (props) => {
|
||||||
@@ -90,4 +90,4 @@ const BarChart: React.FC<ChartProps> = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default BarChart;
|
export default memo(BarChart);
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ export const legend = {
|
|||||||
|
|
||||||
export const xAxis = {
|
export const xAxis = {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
boundaryGap: true,
|
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: true,
|
show: true,
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
yAxis
|
yAxis
|
||||||
} from '@/components/echarts/config';
|
} from '@/components/echarts/config';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { useEffect, useState } from 'react';
|
import { memo, useEffect, useState } from 'react';
|
||||||
import { ChartProps } from './types';
|
import { ChartProps } from './types';
|
||||||
|
|
||||||
const BarChart: React.FC<ChartProps> = (props) => {
|
const BarChart: React.FC<ChartProps> = (props) => {
|
||||||
@@ -87,7 +87,6 @@ const BarChart: React.FC<ChartProps> = (props) => {
|
|||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
...options.xAxis,
|
...options.xAxis,
|
||||||
boundaryGap: true,
|
|
||||||
type: 'value',
|
type: 'value',
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false
|
||||||
@@ -113,4 +112,4 @@ const BarChart: React.FC<ChartProps> = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default BarChart;
|
export default memo(BarChart);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { isNotEmptyValue } from '@/utils/index';
|
||||||
import type { InputNumberProps } from 'antd';
|
import type { InputNumberProps } from 'antd';
|
||||||
import { Form, InputNumber } from 'antd';
|
import { Form, InputNumber } from 'antd';
|
||||||
import { useEffect, useRef, useState } from 'react';
|
import { useEffect, useRef, useState } from 'react';
|
||||||
@@ -24,7 +25,7 @@ const SealInputNumber: React.FC<InputNumberProps & SealFormItemProps> = (
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (props.value) {
|
if (isNotEmptyValue(props.value)) {
|
||||||
setIsFocus(true);
|
setIsFocus(true);
|
||||||
}
|
}
|
||||||
}, [props.value]);
|
}, [props.value]);
|
||||||
|
|||||||
@@ -208,6 +208,12 @@ body {
|
|||||||
height: 40px;
|
height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ant-input-outlined,
|
||||||
|
.ant-input-affix-wrapper,
|
||||||
|
.ant-picker {
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
.ant-input-outlined.ant-input-status-error:not(.ant-input-disabled) {
|
.ant-input-outlined.ant-input-status-error:not(.ant-input-disabled) {
|
||||||
border: none;
|
border: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import breakpoints from '@/config/breakpoints';
|
import breakpoints from '@/config/breakpoints';
|
||||||
import { useEffect, useState } from 'react';
|
import _ from 'lodash';
|
||||||
|
import { useCallback, useEffect, useState } from 'react';
|
||||||
|
|
||||||
export default function useWindowResize() {
|
export default function useWindowResize() {
|
||||||
const [size, setSize] = useState<{ width: number; height: number }>({
|
const [size, setSize] = useState<{ width: number; height: number }>({
|
||||||
@@ -11,7 +12,7 @@ export default function useWindowResize() {
|
|||||||
const [isDesktop, setIsDesktop] = useState<boolean>(false);
|
const [isDesktop, setIsDesktop] = useState<boolean>(false);
|
||||||
const [currentPoint, setCurrentPoint] = useState<string>('');
|
const [currentPoint, setCurrentPoint] = useState<string>('');
|
||||||
|
|
||||||
const checkBreakpoint = (width: number) => {
|
const checkBreakpoint = useCallback((width: number) => {
|
||||||
if (width < breakpoints.sm) {
|
if (width < breakpoints.sm) {
|
||||||
setIsMobile(true);
|
setIsMobile(true);
|
||||||
setIsTablet(false);
|
setIsTablet(false);
|
||||||
@@ -37,15 +38,15 @@ export default function useWindowResize() {
|
|||||||
setIsTablet(false);
|
setIsTablet(false);
|
||||||
setIsDesktop(true);
|
setIsDesktop(true);
|
||||||
setCurrentPoint('xl');
|
setCurrentPoint('xl');
|
||||||
};
|
}, []);
|
||||||
|
const handleResize = _.throttle(() => {
|
||||||
|
setSize({
|
||||||
|
width: window.innerWidth,
|
||||||
|
height: window.innerHeight
|
||||||
|
});
|
||||||
|
}, 200);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleResize = () => {
|
|
||||||
setSize({
|
|
||||||
width: window.innerWidth,
|
|
||||||
height: window.innerHeight
|
|
||||||
});
|
|
||||||
};
|
|
||||||
window.addEventListener('resize', handleResize);
|
window.addEventListener('resize', handleResize);
|
||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener('resize', handleResize);
|
window.removeEventListener('resize', handleResize);
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import GpustackLogo from '@/assets/images/gpustack-logo.png';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
const LogoIcon: React.FC = () => {
|
const LogoIcon: React.FC = () => {
|
||||||
return <img src={GpustackLogo} alt="logo" style={{ height: 24 }} />;
|
return <img src={GpustackLogo} alt="logo" style={{ height: 16 }} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default LogoIcon;
|
export default LogoIcon;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export default {
|
|||||||
'dashboard.vramutilization': 'VRAM Utilization',
|
'dashboard.vramutilization': 'VRAM Utilization',
|
||||||
'dashboard.gpuutilization': 'GPU Utilization',
|
'dashboard.gpuutilization': 'GPU Utilization',
|
||||||
'dashboard.usage': 'Usage',
|
'dashboard.usage': 'Usage',
|
||||||
'dashboard.apirequest': 'API Request',
|
'dashboard.apirequest': 'API Requests',
|
||||||
'dashboard.tokens': 'Token Usage',
|
'dashboard.tokens': 'Token Usage',
|
||||||
'dashboard.topusers': 'Top Users',
|
'dashboard.topusers': 'Top Users',
|
||||||
'dashboard.activeModels': 'Active Models',
|
'dashboard.activeModels': 'Active Models',
|
||||||
|
|||||||
@@ -25,5 +25,5 @@ export default {
|
|||||||
'users.password.confirm': 'Confirm New Password',
|
'users.password.confirm': 'Confirm New Password',
|
||||||
'users.password.confirm.empty': 'Please confirm the new password.',
|
'users.password.confirm.empty': 'Please confirm the new password.',
|
||||||
'users.password.confirm.error': 'The two passwords entered do not match.',
|
'users.password.confirm.error': 'The two passwords entered do not match.',
|
||||||
'users.login.title': 'Log in to GPUStack'
|
'users.login.title': 'Log in to {name}'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,5 +24,5 @@ export default {
|
|||||||
'users.password.confirm': '确认新密码',
|
'users.password.confirm': '确认新密码',
|
||||||
'users.password.confirm.empty': '请确认新密码',
|
'users.password.confirm.empty': '请确认新密码',
|
||||||
'users.password.confirm.error': '两次输入的密码不一致',
|
'users.password.confirm.error': '两次输入的密码不一致',
|
||||||
'users.login.title': '登录 GPUStack'
|
'users.login.title': '登录 {name}'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -193,11 +193,12 @@ const Models: React.FC = () => {
|
|||||||
<Input
|
<Input
|
||||||
placeholder={intl.formatMessage({ id: 'common.filter.name' })}
|
placeholder={intl.formatMessage({ id: 'common.filter.name' })}
|
||||||
style={{ width: 300 }}
|
style={{ width: 300 }}
|
||||||
|
allowClear
|
||||||
onChange={handleNameChange}
|
onChange={handleNameChange}
|
||||||
></Input>
|
></Input>
|
||||||
<Button
|
<Button
|
||||||
type="text"
|
type="text"
|
||||||
style={{ color: 'var(--ant-color-primary)' }}
|
style={{ color: 'var(--ant-color-text-tertiary)' }}
|
||||||
onClick={handleSearch}
|
onClick={handleSearch}
|
||||||
icon={<SyncOutlined></SyncOutlined>}
|
icon={<SyncOutlined></SyncOutlined>}
|
||||||
></Button>
|
></Button>
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
import { memo, useCallback, useEffect, useState } from 'react';
|
||||||
|
import { queryDashboardData } from '../apis';
|
||||||
|
import DashboardContext from '../config/dashboard-context';
|
||||||
|
import { DashboardProps } from '../config/types';
|
||||||
|
import ActiveTable from './active-table';
|
||||||
|
import Overview from './over-view';
|
||||||
|
import SystemLoad from './system-load';
|
||||||
|
import Usage from './usage';
|
||||||
|
|
||||||
|
const Dashboard: React.FC<{ setLoading: (loading: boolean) => void }> = ({
|
||||||
|
setLoading
|
||||||
|
}) => {
|
||||||
|
const [data, setData] = useState<DashboardProps>({} as DashboardProps);
|
||||||
|
|
||||||
|
const getDashboardData = useCallback(async () => {
|
||||||
|
try {
|
||||||
|
setLoading(true);
|
||||||
|
const res = await queryDashboardData();
|
||||||
|
setData(res);
|
||||||
|
setLoading(false);
|
||||||
|
} catch (error) {
|
||||||
|
setLoading(false);
|
||||||
|
setData({} as DashboardProps);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
useEffect(() => {
|
||||||
|
getDashboardData();
|
||||||
|
}, []);
|
||||||
|
return (
|
||||||
|
<DashboardContext.Provider value={{ ...data, fetchData: getDashboardData }}>
|
||||||
|
<Overview></Overview>
|
||||||
|
<SystemLoad></SystemLoad>
|
||||||
|
<Usage></Usage>
|
||||||
|
<ActiveTable></ActiveTable>
|
||||||
|
</DashboardContext.Provider>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default memo(Dashboard);
|
||||||
@@ -29,7 +29,7 @@ const renderCardItem = (data: {
|
|||||||
const Overview: React.FC = () => {
|
const Overview: React.FC = () => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const data = useContext(DashboardContext).resource_counts || {};
|
const data = useContext(DashboardContext).resource_counts || {};
|
||||||
|
console.log('overview===');
|
||||||
const renderValue = (
|
const renderValue = (
|
||||||
value:
|
value:
|
||||||
| number
|
| number
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import Chart from '@/components/echarts/chart';
|
|||||||
import { getLocale, useIntl } from '@umijs/max';
|
import { getLocale, useIntl } from '@umijs/max';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { useCallback, useContext, useEffect, useState } from 'react';
|
import { useContext } from 'react';
|
||||||
import { DashboardContext } from '../config/dashboard-context';
|
import { DashboardContext } from '../config/dashboard-context';
|
||||||
|
|
||||||
const chartColorMap = {
|
const chartColorMap = {
|
||||||
@@ -110,9 +110,11 @@ const option = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const UtilizationOvertime: React.FC = () => {
|
const UtilizationOvertime: React.FC = () => {
|
||||||
|
console.log('systemload=====================');
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const locale = getLocale();
|
const locale = getLocale();
|
||||||
const [dataOptions, setDataOptions] = useState<any>(option);
|
let dataOptions: any = {};
|
||||||
|
// const [dataOptions, setDataOptions] = useState<any>(option);
|
||||||
const data = useContext(DashboardContext)?.system_load?.history || {};
|
const data = useContext(DashboardContext)?.system_load?.history || {};
|
||||||
|
|
||||||
const typeList = ['gpu', 'cpu', 'memory', 'gpu_memory'];
|
const typeList = ['gpu', 'cpu', 'memory', 'gpu_memory'];
|
||||||
@@ -121,7 +123,7 @@ const UtilizationOvertime: React.FC = () => {
|
|||||||
return `${value}%`;
|
return `${value}%`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateData = useCallback(() => {
|
const generateData = () => {
|
||||||
const legendData: string[] = [];
|
const legendData: string[] = [];
|
||||||
const xAxisData: string[] = [];
|
const xAxisData: string[] = [];
|
||||||
let list: { value: number; time: string; type: string }[] = [];
|
let list: { value: number; time: string; type: string }[] = [];
|
||||||
@@ -157,7 +159,7 @@ const UtilizationOvertime: React.FC = () => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
setDataOptions({
|
dataOptions = {
|
||||||
...option,
|
...option,
|
||||||
legend: {
|
legend: {
|
||||||
...option.legend,
|
...option.legend,
|
||||||
@@ -168,12 +170,12 @@ const UtilizationOvertime: React.FC = () => {
|
|||||||
data: _.uniq(xAxisData)
|
data: _.uniq(xAxisData)
|
||||||
},
|
},
|
||||||
series: list
|
series: list
|
||||||
});
|
};
|
||||||
}, [data, locale]);
|
};
|
||||||
|
generateData();
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
generateData();
|
// generateData();
|
||||||
}, [data, locale]);
|
// }, [data, locale]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
import CardWrapper from '@/components/card-wrapper';
|
||||||
|
import BarChart from '@/components/echarts/bar-chart';
|
||||||
|
import LineChart from '@/components/echarts/line-chart';
|
||||||
|
import { useIntl } from '@umijs/max';
|
||||||
|
import { Col, Row } from 'antd';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
interface RequestTokenInnerProps {
|
||||||
|
requestData: {
|
||||||
|
name: string;
|
||||||
|
color: string;
|
||||||
|
areaStyle: any;
|
||||||
|
data: { time: string; value: number }[];
|
||||||
|
}[];
|
||||||
|
tokenData: { time: string; value: number }[];
|
||||||
|
xAxisData: string[];
|
||||||
|
}
|
||||||
|
const RequestTokenInner: React.FC<RequestTokenInnerProps> = (props) => {
|
||||||
|
console.log('request token inner=====================');
|
||||||
|
const { requestData, tokenData, xAxisData } = props;
|
||||||
|
const intl = useIntl();
|
||||||
|
const labelFormatter = (v: any) => {
|
||||||
|
return dayjs(v).format('MM-DD');
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
<CardWrapper style={{ width: '100%' }}>
|
||||||
|
<Row style={{ width: '100%' }}>
|
||||||
|
<Col span={12}>
|
||||||
|
<LineChart
|
||||||
|
title={intl.formatMessage({ id: 'dashboard.apirequest' })}
|
||||||
|
seriesData={requestData}
|
||||||
|
xAxisData={xAxisData}
|
||||||
|
height={360}
|
||||||
|
labelFormatter={labelFormatter}
|
||||||
|
></LineChart>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<BarChart
|
||||||
|
title={intl.formatMessage({ id: 'dashboard.tokens' })}
|
||||||
|
seriesData={tokenData}
|
||||||
|
xAxisData={xAxisData}
|
||||||
|
height={360}
|
||||||
|
labelFormatter={labelFormatter}
|
||||||
|
></BarChart>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</CardWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default React.memo(RequestTokenInner);
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import CardWrapper from '@/components/card-wrapper';
|
||||||
|
import HBar from '@/components/echarts/h-bar';
|
||||||
|
import { useIntl } from '@umijs/max';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
interface TopUserProps {
|
||||||
|
userData: { name: string; value: number }[];
|
||||||
|
topUserList: string[];
|
||||||
|
}
|
||||||
|
const TopUser: React.FC<TopUserProps> = (props) => {
|
||||||
|
console.log('TopUser=====================');
|
||||||
|
const { userData, topUserList } = props;
|
||||||
|
const intl = useIntl();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<CardWrapper>
|
||||||
|
<HBar
|
||||||
|
title={intl.formatMessage({ id: 'dashboard.topusers' })}
|
||||||
|
seriesData={userData}
|
||||||
|
xAxisData={topUserList}
|
||||||
|
height={360}
|
||||||
|
></HBar>
|
||||||
|
</CardWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default React.memo(TopUser);
|
||||||
@@ -1,7 +1,3 @@
|
|||||||
import CardWrapper from '@/components/card-wrapper';
|
|
||||||
import BarChart from '@/components/echarts/bar-chart';
|
|
||||||
import HBar from '@/components/echarts/h-bar';
|
|
||||||
import LineChart from '@/components/echarts/line-chart';
|
|
||||||
import PageTools from '@/components/page-tools';
|
import PageTools from '@/components/page-tools';
|
||||||
import breakpoints from '@/config/breakpoints';
|
import breakpoints from '@/config/breakpoints';
|
||||||
import useWindowResize from '@/hooks/use-window-resize';
|
import useWindowResize from '@/hooks/use-window-resize';
|
||||||
@@ -11,6 +7,8 @@ import dayjs from 'dayjs';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { useContext, useEffect, useState } from 'react';
|
import { useContext, useEffect, useState } from 'react';
|
||||||
import { DashboardContext } from '../config/dashboard-context';
|
import { DashboardContext } from '../config/dashboard-context';
|
||||||
|
import RequestTokenInner from './usage-inner/request-token-inner';
|
||||||
|
import TopUser from './usage-inner/top-user';
|
||||||
|
|
||||||
const baseColorMap = {
|
const baseColorMap = {
|
||||||
baseL2: 'rgba(13,171,219,0.8)',
|
baseL2: 'rgba(13,171,219,0.8)',
|
||||||
@@ -38,28 +36,27 @@ const Usage = () => {
|
|||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const { size } = useWindowResize();
|
const { size } = useWindowResize();
|
||||||
const [paddingRight, setPaddingRight] = useState<string>('20px');
|
const [paddingRight, setPaddingRight] = useState<string>('20px');
|
||||||
const [requestData, setRequestData] = useState<
|
|
||||||
{
|
|
||||||
name: string;
|
|
||||||
color: string;
|
|
||||||
areaStyle: any;
|
|
||||||
data: { time: string; value: number }[];
|
|
||||||
}[]
|
|
||||||
>([]);
|
|
||||||
|
|
||||||
|
console.log('usage========');
|
||||||
|
const currentDate = dayjs();
|
||||||
const currentMonthDays = getCurrentMonthDays();
|
const currentMonthDays = getCurrentMonthDays();
|
||||||
const [tokenData, setTokenData] = useState<{ time: string; value: number }[]>(
|
let requestData: {
|
||||||
[]
|
name: string;
|
||||||
);
|
color: string;
|
||||||
const [userData, setUserData] = useState<{ name: string; value: number }[]>(
|
areaStyle: any;
|
||||||
[]
|
data: { time: string; value: number }[];
|
||||||
);
|
}[] = [];
|
||||||
const [xAxisData, setXAxisData] = useState<string[]>(currentMonthDays);
|
let tokenData: { time: string; value: number }[] = [];
|
||||||
const [topUserList, setTopUseList] = useState<string[]>([]);
|
let userData: { name: string; value: number }[] = [];
|
||||||
|
const xAxisData: string[] = currentMonthDays;
|
||||||
|
let topUserList: string[] = [];
|
||||||
|
|
||||||
const data = useContext(DashboardContext)?.model_usage || {};
|
const { model_usage, fetchData } = useContext(DashboardContext);
|
||||||
|
const data = model_usage || {};
|
||||||
|
|
||||||
const handleSelectDate = (date: any) => {};
|
const handleSelectDate = (date: any) => {
|
||||||
|
// fetchData?.();
|
||||||
|
};
|
||||||
|
|
||||||
const generateData = () => {
|
const generateData = () => {
|
||||||
const requestList: {
|
const requestList: {
|
||||||
@@ -68,30 +65,30 @@ const Usage = () => {
|
|||||||
areaStyle: any;
|
areaStyle: any;
|
||||||
data: { time: string; value: number }[];
|
data: { time: string; value: number }[];
|
||||||
} = {
|
} = {
|
||||||
name: 'API Request',
|
name: 'API requests',
|
||||||
areaStyle: {},
|
areaStyle: {},
|
||||||
color: baseColorMap.base,
|
color: baseColorMap.base,
|
||||||
data: []
|
data: []
|
||||||
};
|
};
|
||||||
|
|
||||||
const completionData: any = {
|
const completionData: any = {
|
||||||
name: 'completion_token',
|
name: 'Completion tokens',
|
||||||
color: baseColorMap.base,
|
color: baseColorMap.base,
|
||||||
data: []
|
data: []
|
||||||
};
|
};
|
||||||
const prompData: any = {
|
const prompData: any = {
|
||||||
name: 'prompt_token',
|
name: 'Prompt tokens',
|
||||||
color: baseColorMap.baseR3,
|
color: baseColorMap.baseR3,
|
||||||
data: []
|
data: []
|
||||||
};
|
};
|
||||||
|
|
||||||
const topUserPrompt: any = {
|
const topUserPrompt: any = {
|
||||||
name: 'prompt_token',
|
name: 'Prompt tokens',
|
||||||
color: baseColorMap.baseR3,
|
color: baseColorMap.baseR3,
|
||||||
data: []
|
data: []
|
||||||
};
|
};
|
||||||
const topUserCompletion: any = {
|
const topUserCompletion: any = {
|
||||||
name: 'completion_token',
|
name: 'Completion tokens',
|
||||||
color: baseColorMap.base,
|
color: baseColorMap.base,
|
||||||
data: []
|
data: []
|
||||||
};
|
};
|
||||||
@@ -161,14 +158,10 @@ const Usage = () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
setRequestData([requestList]);
|
requestData = [requestList];
|
||||||
setUserData([topUserCompletion, topUserPrompt]);
|
userData = [topUserCompletion, topUserPrompt];
|
||||||
setTopUseList(users);
|
topUserList = users;
|
||||||
setTokenData([completionData, prompData]);
|
tokenData = [completionData, prompData];
|
||||||
};
|
|
||||||
|
|
||||||
const labelFormatter = (v: any) => {
|
|
||||||
return dayjs(v).format('MM-DD');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -179,9 +172,7 @@ const Usage = () => {
|
|||||||
}
|
}
|
||||||
}, [size.width]);
|
}, [size.width]);
|
||||||
|
|
||||||
useEffect(() => {
|
generateData();
|
||||||
generateData();
|
|
||||||
}, [data]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -193,7 +184,7 @@ const Usage = () => {
|
|||||||
onChange={handleSelectDate}
|
onChange={handleSelectDate}
|
||||||
style={{ width: 300 }}
|
style={{ width: 300 }}
|
||||||
picker="month"
|
picker="month"
|
||||||
defaultValue={dayjs()}
|
defaultValue={currentDate}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
@@ -206,38 +197,14 @@ const Usage = () => {
|
|||||||
xl={16}
|
xl={16}
|
||||||
style={{ paddingRight: paddingRight }}
|
style={{ paddingRight: paddingRight }}
|
||||||
>
|
>
|
||||||
<CardWrapper style={{ width: '100%' }}>
|
<RequestTokenInner
|
||||||
<Row style={{ width: '100%' }}>
|
requestData={requestData}
|
||||||
<Col span={12}>
|
xAxisData={xAxisData}
|
||||||
<LineChart
|
tokenData={tokenData}
|
||||||
title={intl.formatMessage({ id: 'dashboard.apirequest' })}
|
></RequestTokenInner>
|
||||||
seriesData={requestData}
|
|
||||||
xAxisData={xAxisData}
|
|
||||||
height={360}
|
|
||||||
labelFormatter={labelFormatter}
|
|
||||||
></LineChart>
|
|
||||||
</Col>
|
|
||||||
<Col span={12}>
|
|
||||||
<BarChart
|
|
||||||
title={intl.formatMessage({ id: 'dashboard.tokens' })}
|
|
||||||
seriesData={tokenData}
|
|
||||||
xAxisData={xAxisData}
|
|
||||||
height={360}
|
|
||||||
labelFormatter={labelFormatter}
|
|
||||||
></BarChart>
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
</CardWrapper>
|
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs={24} sm={24} md={24} lg={24} xl={8}>
|
<Col xs={24} sm={24} md={24} lg={24} xl={8}>
|
||||||
<CardWrapper>
|
<TopUser userData={userData} topUserList={topUserList}></TopUser>
|
||||||
<HBar
|
|
||||||
title={intl.formatMessage({ id: 'dashboard.topusers' })}
|
|
||||||
seriesData={userData}
|
|
||||||
xAxisData={topUserList}
|
|
||||||
height={360}
|
|
||||||
></HBar>
|
|
||||||
</CardWrapper>
|
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { createContext } from 'react';
|
import { createContext } from 'react';
|
||||||
import { DashboardProps } from './types';
|
import { DashboardProps } from './types';
|
||||||
|
|
||||||
export const DashboardContext = createContext<DashboardProps>(
|
export const DashboardContext = createContext<
|
||||||
{} as DashboardProps
|
DashboardProps & { fetchData: () => Promise<void> }
|
||||||
);
|
>({} as DashboardProps & { fetchData: () => Promise<void> });
|
||||||
|
|
||||||
export default DashboardContext;
|
export default DashboardContext;
|
||||||
|
|||||||
@@ -1,44 +1,18 @@
|
|||||||
import { PageContainer } from '@ant-design/pro-components';
|
import { PageContainer } from '@ant-design/pro-components';
|
||||||
import { Spin } from 'antd';
|
import { Spin } from 'antd';
|
||||||
import { useEffect, useState } from 'react';
|
import { memo, useState } from 'react';
|
||||||
import { queryDashboardData } from './apis';
|
import DashboardInner from './components/dahboard-inner';
|
||||||
import ActiveTable from './components/active-table';
|
|
||||||
import Overview from './components/over-view';
|
|
||||||
import SystemLoad from './components/system-load';
|
|
||||||
import Usage from './components/usage';
|
|
||||||
import DashboardContext from './config/dashboard-context';
|
|
||||||
import { DashboardProps } from './config/types';
|
|
||||||
|
|
||||||
const Dashboard: React.FC = () => {
|
const Dashboard: React.FC = () => {
|
||||||
const [data, setData] = useState<DashboardProps>({} as DashboardProps);
|
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
|
|
||||||
const getDashboardData = async () => {
|
|
||||||
try {
|
|
||||||
setLoading(true);
|
|
||||||
const res = await queryDashboardData();
|
|
||||||
setData(res);
|
|
||||||
setLoading(false);
|
|
||||||
} catch (error) {
|
|
||||||
setLoading(false);
|
|
||||||
setData({} as DashboardProps);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
useEffect(() => {
|
|
||||||
getDashboardData();
|
|
||||||
}, []);
|
|
||||||
return (
|
return (
|
||||||
<PageContainer ghost extra={[]}>
|
<PageContainer ghost extra={[]}>
|
||||||
<Spin spinning={loading}>
|
<Spin spinning={loading}>
|
||||||
<DashboardContext.Provider value={{ ...data }}>
|
<DashboardInner setLoading={setLoading} />
|
||||||
<Overview></Overview>
|
|
||||||
<SystemLoad></SystemLoad>
|
|
||||||
<Usage></Usage>
|
|
||||||
<ActiveTable></ActiveTable>
|
|
||||||
</DashboardContext.Provider>
|
|
||||||
</Spin>
|
</Spin>
|
||||||
</PageContainer>
|
</PageContainer>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Dashboard;
|
export default memo(Dashboard);
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
|||||||
onChange={handleInputRepoChange}
|
onChange={handleInputRepoChange}
|
||||||
onSearch={debounceSearch}
|
onSearch={debounceSearch}
|
||||||
options={repoOptions}
|
options={repoOptions}
|
||||||
|
disabled={action === PageAction.EDIT}
|
||||||
addAfter={
|
addAfter={
|
||||||
<span style={{ position: 'relative', top: '2px' }}>
|
<span style={{ position: 'relative', top: '2px' }}>
|
||||||
<SearchOutlined></SearchOutlined>
|
<SearchOutlined></SearchOutlined>
|
||||||
@@ -176,6 +177,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
|||||||
required
|
required
|
||||||
options={fileOptions}
|
options={fileOptions}
|
||||||
onFocus={handleRepoOnBlur}
|
onFocus={handleRepoOnBlur}
|
||||||
|
disabled={action === PageAction.EDIT}
|
||||||
></SealAutoComplete>
|
></SealAutoComplete>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</>
|
</>
|
||||||
@@ -229,6 +231,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
|||||||
>
|
>
|
||||||
<SealAutoComplete
|
<SealAutoComplete
|
||||||
filterOption
|
filterOption
|
||||||
|
disabled={action === PageAction.EDIT}
|
||||||
label={intl.formatMessage({ id: 'model.form.ollama.model' })}
|
label={intl.formatMessage({ id: 'model.form.ollama.model' })}
|
||||||
required
|
required
|
||||||
options={ollamaModelOptions}
|
options={ollamaModelOptions}
|
||||||
@@ -314,6 +317,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
|||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<SealSelect
|
<SealSelect
|
||||||
|
disabled={action === PageAction.EDIT}
|
||||||
label={intl.formatMessage({
|
label={intl.formatMessage({
|
||||||
id: 'models.form.source'
|
id: 'models.form.source'
|
||||||
})}
|
})}
|
||||||
@@ -343,7 +347,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
|||||||
id: 'models.form.replicas'
|
id: 'models.form.replicas'
|
||||||
})}
|
})}
|
||||||
required
|
required
|
||||||
min={1}
|
min={0}
|
||||||
></SealInput.Number>
|
></SealInput.Number>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FormData> name="description">
|
<Form.Item<FormData> name="description">
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ export const modelSourceMap = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const status: any = {
|
export const status: any = {
|
||||||
Running: StatusMaps.success
|
Running: StatusMaps.success,
|
||||||
|
Pending: StatusMaps.transitioning
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ActionList = [
|
export const ActionList = [
|
||||||
|
|||||||
@@ -334,9 +334,14 @@ const Models: React.FC = () => {
|
|||||||
handleViewLogs(row);
|
handleViewLogs(row);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
fetchData();
|
||||||
|
return () => {
|
||||||
|
axiosToken?.cancel?.();
|
||||||
|
};
|
||||||
|
}, [queryParams]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// fetchData();
|
|
||||||
createModelsChunkRequest();
|
createModelsChunkRequest();
|
||||||
return () => {
|
return () => {
|
||||||
chunkRequedtRef.current?.current?.cancel?.();
|
chunkRequedtRef.current?.current?.cancel?.();
|
||||||
@@ -430,7 +435,7 @@ const Models: React.FC = () => {
|
|||||||
></Input>
|
></Input>
|
||||||
<Button
|
<Button
|
||||||
type="text"
|
type="text"
|
||||||
style={{ color: 'var(--ant-color-primary)' }}
|
style={{ color: 'var(--ant-color-text-tertiary)' }}
|
||||||
onClick={handleSearch}
|
onClick={handleSearch}
|
||||||
icon={<SyncOutlined></SyncOutlined>}
|
icon={<SyncOutlined></SyncOutlined>}
|
||||||
></Button>
|
></Button>
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import { SelectLang, history, useIntl, useModel } from '@umijs/max';
|
|||||||
import { Button, Checkbox, Form } from 'antd';
|
import { Button, Checkbox, Form } from 'antd';
|
||||||
import CryptoJS from 'crypto-js';
|
import CryptoJS from 'crypto-js';
|
||||||
import { useAtom } from 'jotai';
|
import { useAtom } from 'jotai';
|
||||||
import { useEffect } from 'react';
|
|
||||||
import { flushSync } from 'react-dom';
|
import { flushSync } from 'react-dom';
|
||||||
import { login } from '../apis';
|
import { login } from '../apis';
|
||||||
|
|
||||||
@@ -40,12 +39,21 @@ const renderWelCome = (intl: any) => {
|
|||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
marginBottom: 32,
|
marginBottom: 32,
|
||||||
fontSize: 24,
|
fontSize: 20,
|
||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
alignItems: 'center'
|
alignItems: 'center'
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div>{intl?.formatMessage({ id: 'users.login.title' })}</div>
|
<div className="flex-center">
|
||||||
|
<span>
|
||||||
|
{intl?.formatMessage({ id: 'users.login.title' }, { name: '' })}
|
||||||
|
</span>
|
||||||
|
<img
|
||||||
|
src={LogoIcon}
|
||||||
|
alt="logo"
|
||||||
|
style={{ height: '24px', marginLeft: 10 }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -130,9 +138,7 @@ const LoginForm = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
callGetRememberMe();
|
||||||
callGetRememberMe();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@@ -141,15 +147,9 @@ const LoginForm = () => {
|
|||||||
position: 'fixed',
|
position: 'fixed',
|
||||||
right: 0,
|
right: 0,
|
||||||
top: 0,
|
top: 0,
|
||||||
left: 0,
|
padding: '0 20px'
|
||||||
width: '100%',
|
|
||||||
padding: '0 20px',
|
|
||||||
display: 'flex',
|
|
||||||
justifyContent: 'space-between',
|
|
||||||
alignItems: 'center'
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div>{renderLogo()}</div>
|
|
||||||
<SelectLang icon={<GlobalOutlined />} reload={false} />
|
<SelectLang icon={<GlobalOutlined />} reload={false} />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ const ChatFooter: React.FC<ChatFooterProps> = (props) => {
|
|||||||
<Space size={20}>
|
<Space size={20}>
|
||||||
<Button
|
<Button
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
type="primary"
|
|
||||||
icon={<PlusOutlined />}
|
icon={<PlusOutlined />}
|
||||||
onClick={onNewMessage}
|
onClick={onNewMessage}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ const MessageList: React.FC<MessageProps> = (props) => {
|
|||||||
<span className="title">
|
<span className="title">
|
||||||
{intl.formatMessage({ id: 'playground.system' })}
|
{intl.formatMessage({ id: 'playground.system' })}
|
||||||
</span>
|
</span>
|
||||||
<Button type="primary" size="small">
|
<Button size="small">
|
||||||
{collapsed ? <EyeInvisibleOutlined /> : <EyeOutlined />}
|
{collapsed ? <EyeInvisibleOutlined /> : <EyeOutlined />}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -88,11 +88,12 @@ const Models: React.FC = () => {
|
|||||||
id: 'common.filter.name'
|
id: 'common.filter.name'
|
||||||
})}
|
})}
|
||||||
style={{ width: 300 }}
|
style={{ width: 300 }}
|
||||||
|
allowClear
|
||||||
onChange={handleNameChange}
|
onChange={handleNameChange}
|
||||||
></Input>
|
></Input>
|
||||||
<Button
|
<Button
|
||||||
type="text"
|
type="text"
|
||||||
style={{ color: 'var(--ant-color-primary)' }}
|
style={{ color: 'var(--ant-color-text-tertiary)' }}
|
||||||
onClick={handleSearch}
|
onClick={handleSearch}
|
||||||
icon={<SyncOutlined></SyncOutlined>}
|
icon={<SyncOutlined></SyncOutlined>}
|
||||||
></Button>
|
></Button>
|
||||||
|
|||||||
@@ -119,11 +119,12 @@ const Models: React.FC = () => {
|
|||||||
id: 'common.filter.name'
|
id: 'common.filter.name'
|
||||||
})}
|
})}
|
||||||
style={{ width: 300 }}
|
style={{ width: 300 }}
|
||||||
|
allowClear
|
||||||
onChange={handleNameChange}
|
onChange={handleNameChange}
|
||||||
></Input>
|
></Input>
|
||||||
<Button
|
<Button
|
||||||
type="text"
|
type="text"
|
||||||
style={{ color: 'var(--ant-color-primary)' }}
|
style={{ color: 'var(--ant-color-text-tertiary)' }}
|
||||||
onClick={handleSearch}
|
onClick={handleSearch}
|
||||||
icon={<SyncOutlined></SyncOutlined>}
|
icon={<SyncOutlined></SyncOutlined>}
|
||||||
></Button>
|
></Button>
|
||||||
|
|||||||
@@ -213,11 +213,12 @@ const Models: React.FC = () => {
|
|||||||
<Input
|
<Input
|
||||||
placeholder={intl.formatMessage({ id: 'common.filter.name' })}
|
placeholder={intl.formatMessage({ id: 'common.filter.name' })}
|
||||||
style={{ width: 300 }}
|
style={{ width: 300 }}
|
||||||
|
allowClear
|
||||||
onChange={handleNameChange}
|
onChange={handleNameChange}
|
||||||
></Input>
|
></Input>
|
||||||
<Button
|
<Button
|
||||||
type="text"
|
type="text"
|
||||||
style={{ color: 'var(--ant-color-primary)' }}
|
style={{ color: 'var(--ant-color-text-tertiary)' }}
|
||||||
onClick={handleSearch}
|
onClick={handleSearch}
|
||||||
icon={<SyncOutlined></SyncOutlined>}
|
icon={<SyncOutlined></SyncOutlined>}
|
||||||
></Button>
|
></Button>
|
||||||
|
|||||||
+1
-7
@@ -3,13 +3,7 @@ export const isNotEmptyValue = (value: any) => {
|
|||||||
if (Array.isArray(value)) {
|
if (Array.isArray(value)) {
|
||||||
return value.length > 0;
|
return value.length > 0;
|
||||||
}
|
}
|
||||||
return (
|
return !!value || value === 0 || value === false;
|
||||||
value !== null &&
|
|
||||||
value !== undefined &&
|
|
||||||
value !== '' &&
|
|
||||||
value !== false &&
|
|
||||||
value !== 0
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const handleBatchRequest = async (
|
export const handleBatchRequest = async (
|
||||||
|
|||||||
Reference in New Issue
Block a user