diff --git a/package.json b/package.json index cbaace0..6c05ac3 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ } }, "dependencies": { + "@ant-design/charts": "^1.4.3", "@ant-design/icons": "^5.2.6", "@reduxjs/toolkit": "^1.9.7", "@wangeditor/editor": "^5.1.23", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8280495..86e26d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: + '@ant-design/charts': + specifier: ^1.4.3 + version: registry.npmmirror.com/@ant-design/charts@1.4.3(@ant-design/icons@5.2.6)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14) '@ant-design/icons': specifier: ^5.2.6 version: registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.1.0)(react@18.1.0) @@ -3420,6 +3423,48 @@ packages: engines: {node: '>=10'} dev: true + registry.npmmirror.com/@amap/amap-jsapi-loader@1.0.1: + resolution: {integrity: sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz} + name: '@amap/amap-jsapi-loader' + version: 1.0.1 + dev: false + + registry.npmmirror.com/@ant-design/charts@1.4.3(@ant-design/icons@5.2.6)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14): + resolution: {integrity: sha512-Y0CJYtug+2Bjl2zvuehE39sxBITxWI49VnLl/O7olD+bwkXeY2QEDjB457dBIn+XIHizCWyWBW+wDIECvfFahw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/charts/-/charts-1.4.3.tgz} + id: registry.npmmirror.com/@ant-design/charts/1.4.3 + name: '@ant-design/charts' + version: 1.4.3 + peerDependencies: + '@ant-design/icons': ^4.6.0 + antd: ^4.6.3 + lodash: ^4.17.20 + react: '>=16.8.4' + react-dom: '>=16.8.4' + dependencies: + '@ant-design/flowchart': registry.npmmirror.com/@ant-design/flowchart@1.2.2(@ant-design/icons@5.2.6)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14) + '@ant-design/graphs': registry.npmmirror.com/@ant-design/graphs@1.4.1(react-dom@18.1.0)(react@18.1.0) + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.1.0)(react@18.1.0) + '@ant-design/maps': registry.npmmirror.com/@ant-design/maps@1.0.8(react-dom@18.1.0)(react@18.1.0) + '@ant-design/plots': registry.npmmirror.com/@ant-design/plots@1.2.6(react-dom@18.1.0)(react@18.1.0) + antd: registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0) + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + transitivePeerDependencies: + - bufferutil + - classnames + - reflect-metadata + - utf-8-validate + dev: false + + registry.npmmirror.com/@ant-design/colors@4.0.5: + resolution: {integrity: sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-4.0.5.tgz} + name: '@ant-design/colors' + version: 4.0.5 + dependencies: + tinycolor2: registry.npmmirror.com/tinycolor2@1.6.0 + dev: false + registry.npmmirror.com/@ant-design/colors@7.0.0: resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.0.tgz} name: '@ant-design/colors' @@ -3448,6 +3493,54 @@ packages: stylis: registry.npmmirror.com/stylis@4.3.0 dev: false + registry.npmmirror.com/@ant-design/flowchart@1.2.2(@ant-design/icons@5.2.6)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14): + resolution: {integrity: sha512-bzHZ81qqHjWIrXcCMInDB6eMTzbswaVCOAdUTCQJ+B45aybkVsU9LMCKquyOwRM7U7PWNfPC9S/lAlx2i2BvBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/flowchart/-/flowchart-1.2.2.tgz} + id: registry.npmmirror.com/@ant-design/flowchart/1.2.2 + name: '@ant-design/flowchart' + version: 1.2.2 + peerDependencies: + '@ant-design/icons': ^4.6.0 + antd: ^4.6.3 + lodash: ^4.17.20 + react: '>=16.8.4' + react-dom: '>=16.8.4' + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.1.0)(react@18.1.0) + '@antv/layout': registry.npmmirror.com/@antv/layout@0.1.31 + '@antv/x6': registry.npmmirror.com/@antv/x6@1.35.0 + '@antv/x6-react-components': registry.npmmirror.com/@antv/x6-react-components@1.1.20(antd@5.9.4)(react-dom@18.1.0)(react@18.1.0) + '@antv/x6-react-shape': registry.npmmirror.com/@antv/x6-react-shape@1.6.5(@antv/x6@1.35.0)(react-dom@18.1.0)(react@18.1.0) + '@antv/xflow': registry.npmmirror.com/@antv/xflow@1.1.52(@ant-design/icons@5.2.6)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14) + antd: registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0) + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.1.0 + react-color: registry.npmmirror.com/react-color@2.17.3(react@18.1.0) + react-dom: 18.1.0(react@18.1.0) + react-use: registry.npmmirror.com/react-use@17.3.1(react-dom@18.1.0)(react@18.1.0) + transitivePeerDependencies: + - classnames + - reflect-metadata + dev: false + + registry.npmmirror.com/@ant-design/graphs@1.4.1(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-Qyj7Lnfo0gmbaMzm+9AdrS3fjkg2sFU/ZKaFl7xhgEf5LnX+N/KffIvoT8FsBmrZ9ni3onwlHs1dtYa5QdVhtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/graphs/-/graphs-1.4.1.tgz} + id: registry.npmmirror.com/@ant-design/graphs/1.4.1 + name: '@ant-design/graphs' + version: 1.4.1 + peerDependencies: + react: '>=16.8.4' + react-dom: '>=16.8.4' + dependencies: + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/g6': registry.npmmirror.com/@antv/g6@4.8.24 + '@antv/layout': registry.npmmirror.com/@antv/layout@0.1.31 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + insert-css: registry.npmmirror.com/insert-css@2.0.0 + react: 18.1.0 + react-content-loader: registry.npmmirror.com/react-content-loader@5.1.4(react@18.1.0) + react-dom: 18.1.0(react@18.1.0) + dev: false + registry.npmmirror.com/@ant-design/icons-svg@4.3.1: resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} name: '@ant-design/icons-svg' @@ -3473,6 +3566,42 @@ packages: react-dom: 18.1.0(react@18.1.0) dev: false + registry.npmmirror.com/@ant-design/maps@1.0.8(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-q9Lv14Ekp7j24R9agrTXIINKc1/zslLXfTIWNuoZ0hUq7w1doyEhtLTsuF0n1wcgdKGjAX3wBKQRaVlgz+u8lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/maps/-/maps-1.0.8.tgz} + id: registry.npmmirror.com/@ant-design/maps/1.0.8 + name: '@ant-design/maps' + version: 1.0.8 + peerDependencies: + react: '>=16.8.4' + react-dom: '>=16.8.4' + dependencies: + '@antv/l7': registry.npmmirror.com/@antv/l7@2.20.5 + '@antv/l7plot': registry.npmmirror.com/@antv/l7plot@0.5.7(@antv/l7@2.20.5) + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + react: 18.1.0 + react-content-loader: registry.npmmirror.com/react-content-loader@5.1.4(react@18.1.0) + react-dom: 18.1.0(react@18.1.0) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + registry.npmmirror.com/@ant-design/plots@1.2.6(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-fFzB9DxRSPQa47S3WypRk4Rh+P8vBUuY/DT+IXgUrlKJtvVZUFnuYfjypX3Q/Pie2PEbI6gmskzXLxVF+3Ztvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/plots/-/plots-1.2.6.tgz} + id: registry.npmmirror.com/@ant-design/plots/1.2.6 + name: '@ant-design/plots' + version: 1.2.6 + peerDependencies: + react: '>=16.8.4' + react-dom: '>=16.8.4' + dependencies: + '@antv/g2plot': registry.npmmirror.com/@antv/g2plot@2.4.31 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + react: 18.1.0 + react-content-loader: registry.npmmirror.com/react-content-loader@5.1.4(react@18.1.0) + react-dom: 18.1.0(react@18.1.0) + dev: false + registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.1.0): resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz} id: registry.npmmirror.com/@ant-design/react-slick/1.0.2 @@ -3489,6 +3618,866 @@ packages: throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 dev: false + registry.npmmirror.com/@antv/adjust@0.2.5: + resolution: {integrity: sha512-MfWZOkD9CqXRES6MBGRNe27Q577a72EIwyMnE29wIlPliFvJfWwsrONddpGU7lilMpVKecS3WAzOoip3RfPTRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/adjust/-/adjust-0.2.5.tgz} + name: '@antv/adjust' + version: 0.2.5 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@1.14.1 + dev: false + + registry.npmmirror.com/@antv/algorithm@0.1.26: + resolution: {integrity: sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/algorithm/-/algorithm-0.1.26.tgz} + name: '@antv/algorithm' + version: 0.1.26 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/async-hook@2.2.9: + resolution: {integrity: sha512-4BUp2ZUaTi2fYL67Ltkf6eV912rYJeSBokGhd5fhhnpUkMA1LEI1mg97Pqmx3yC50VEQ+LKXZxj9ePZs80ECfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/async-hook/-/async-hook-2.2.9.tgz} + name: '@antv/async-hook' + version: 2.2.9 + dependencies: + async: registry.npmmirror.com/async@3.2.5 + dev: false + + registry.npmmirror.com/@antv/attr@0.3.5: + resolution: {integrity: sha512-wuj2gUo6C8Q2ASSMrVBuTcb5LcV+Tc0Egiy6bC42D0vxcQ+ta13CLxgMmHz8mjD0FxTPJDXSciyszRSC5TdLsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/attr/-/attr-0.3.5.tgz} + name: '@antv/attr' + version: 0.3.5 + dependencies: + '@antv/color-util': registry.npmmirror.com/@antv/color-util@2.0.6 + '@antv/scale': registry.npmmirror.com/@antv/scale@0.3.18 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/color-util@2.0.6: + resolution: {integrity: sha512-KnPEaAH+XNJMjax9U35W67nzPI+QQ2x27pYlzmSIWrbj4/k8PGrARXfzDTjwoozHJY8qG62Z+Ww6Alhu2FctXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/color-util/-/color-util-2.0.6.tgz} + name: '@antv/color-util' + version: 2.0.6 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/component@0.8.35: + resolution: {integrity: sha512-VnRa5X77nBPI952o2xePEEMSNZ6g2mcUDrQY8mVL2kino/8TFhqDq5fTRmDXZyWyIYd4ulJTz5zgeSwAnX/INQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/component/-/component-0.8.35.tgz} + name: '@antv/component' + version: 0.8.35 + dependencies: + '@antv/color-util': registry.npmmirror.com/@antv/color-util@2.0.6 + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/scale': registry.npmmirror.com/@antv/scale@0.3.18 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + fecha: registry.npmmirror.com/fecha@4.2.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/coord@0.3.1: + resolution: {integrity: sha512-rFE94C8Xzbx4xmZnHh2AnlB3Qm1n5x0VT3OROy257IH6Rm4cuzv1+tZaUBATviwZd99S+rOY9telw/+6C9GbRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/coord/-/coord-0.3.1.tgz} + name: '@antv/coord' + version: 0.3.1 + dependencies: + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/dom-util@2.0.4: + resolution: {integrity: sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/dom-util/-/dom-util-2.0.4.tgz} + name: '@antv/dom-util' + version: 2.0.4 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/event-emitter@0.1.3: + resolution: {integrity: sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz} + name: '@antv/event-emitter' + version: 0.1.3 + dev: false + + registry.npmmirror.com/@antv/g-base@0.5.15: + resolution: {integrity: sha512-QOtq50QpnKez9J75/Z8j2yZ7QDQdk8R8mVQJiHtaEO5eI7DM4ZbrsWff/Ew26JYmPWdq7nbRuARMAD4PX9uuLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-base/-/g-base-0.5.15.tgz} + name: '@antv/g-base' + version: 0.5.15 + dependencies: + '@antv/event-emitter': registry.npmmirror.com/@antv/event-emitter@0.1.3 + '@antv/g-math': registry.npmmirror.com/@antv/g-math@0.1.9 + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + '@types/d3-timer': registry.npmmirror.com/@types/d3-timer@2.0.3 + d3-ease: registry.npmmirror.com/d3-ease@1.0.7 + d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1 + d3-timer: registry.npmmirror.com/d3-timer@1.0.10 + detect-browser: registry.npmmirror.com/detect-browser@5.3.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g-canvas@0.5.14: + resolution: {integrity: sha512-IUGLEMIMAUYgaBMT8h3FTmYQYz7sjQkKWwh6Psqx+UPK86fySa+G8fMRrh1EqAL07jVB+GRnn6Ym+3FoFUgeFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-0.5.14.tgz} + name: '@antv/g-canvas' + version: 0.5.14 + dependencies: + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g-math': registry.npmmirror.com/@antv/g-math@0.1.9 + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g-device-api@1.4.8: + resolution: {integrity: sha512-V92kMQtBo8y7UzKPRaUwEBpU9m32POF55bcNCB6cqbVBCy5wjq/crfxJo3PD1Lmy+mxonUKBGQto7OCnrjIMbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-device-api/-/g-device-api-1.4.8.tgz} + name: '@antv/g-device-api' + version: 1.4.8 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@3.3.5 + '@webgpu/types': registry.npmmirror.com/@webgpu/types@0.1.40 + eventemitter3: registry.npmmirror.com/eventemitter3@5.0.1 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g-math@0.1.9: + resolution: {integrity: sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-math/-/g-math-0.1.9.tgz} + name: '@antv/g-math' + version: 0.1.9 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + dev: false + + registry.npmmirror.com/@antv/g-svg@0.5.7: + resolution: {integrity: sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-svg/-/g-svg-0.5.7.tgz} + name: '@antv/g-svg' + version: 0.5.7 + dependencies: + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g-math': registry.npmmirror.com/@antv/g-math@0.1.9 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + detect-browser: registry.npmmirror.com/detect-browser@5.3.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g-webgpu-core@0.5.6: + resolution: {integrity: sha512-DPiH3GkAUiT0Q+LAKeImpI+IOQ/gP2w6HstYKivpFIpBPIvZ/9equM3icVrn1iDfDkZANVXQ1PppcO3xBv1ZTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-webgpu-core/-/g-webgpu-core-0.5.6.tgz} + name: '@antv/g-webgpu-core' + version: 0.5.6 + dependencies: + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + inversify: registry.npmmirror.com/inversify@5.1.1 + inversify-inject-decorators: registry.npmmirror.com/inversify-inject-decorators@3.1.0 + probe.gl: registry.npmmirror.com/probe.gl@3.6.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + dev: false + + registry.npmmirror.com/@antv/g-webgpu-core@0.7.2: + resolution: {integrity: sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz} + name: '@antv/g-webgpu-core' + version: 0.7.2 + dependencies: + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + probe.gl: registry.npmmirror.com/probe.gl@3.6.0 + dev: false + + registry.npmmirror.com/@antv/g-webgpu-engine@0.5.6: + resolution: {integrity: sha512-D311qYUefdEFwLayutIHqucrAY3cAGH3BdnXS37nq+0nsglrHcNP0Ab1YTinn9RihLoY3yXFTLzrYkJHJbZXDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-webgpu-engine/-/g-webgpu-engine-0.5.6.tgz} + name: '@antv/g-webgpu-engine' + version: 0.5.6 + dependencies: + '@antv/g-webgpu-core': registry.npmmirror.com/@antv/g-webgpu-core@0.5.6 + '@webgpu/glslang': registry.npmmirror.com/@webgpu/glslang@0.0.15 + '@webgpu/types': registry.npmmirror.com/@webgpu/types@0.0.31 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + hammerjs: registry.npmmirror.com/hammerjs@2.0.8 + inversify: registry.npmmirror.com/inversify@5.1.1 + inversify-inject-decorators: registry.npmmirror.com/inversify-inject-decorators@3.1.0 + probe.gl: registry.npmmirror.com/probe.gl@3.6.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + regl: registry.npmmirror.com/regl@1.7.0 + dev: false + + registry.npmmirror.com/@antv/g-webgpu-engine@0.7.2: + resolution: {integrity: sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz} + name: '@antv/g-webgpu-engine' + version: 0.7.2 + dependencies: + '@antv/g-webgpu-core': registry.npmmirror.com/@antv/g-webgpu-core@0.7.2 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + regl: registry.npmmirror.com/regl@1.7.0 + dev: false + + registry.npmmirror.com/@antv/g-webgpu@0.5.5: + resolution: {integrity: sha512-TxtBniINFq1jFGEPo46xjJfrbJbUqkFd5wmsRs3tcg/7J7xoldOP1kEadpI3AJG9knMYdE92VpILw1VPd6DgzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-webgpu/-/g-webgpu-0.5.5.tgz} + name: '@antv/g-webgpu' + version: 0.5.5 + dependencies: + '@antv/g-webgpu-core': registry.npmmirror.com/@antv/g-webgpu-core@0.5.6 + '@antv/g-webgpu-engine': registry.npmmirror.com/@antv/g-webgpu-engine@0.5.6 + '@webgpu/types': registry.npmmirror.com/@webgpu/types@0.0.31 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + gl-vec2: registry.npmmirror.com/gl-vec2@1.3.0 + hammerjs: registry.npmmirror.com/hammerjs@2.0.8 + inversify: registry.npmmirror.com/inversify@5.1.1 + inversify-inject-decorators: registry.npmmirror.com/inversify-inject-decorators@3.1.0 + polyline-miter-util: registry.npmmirror.com/polyline-miter-util@1.0.1 + polyline-normals: registry.npmmirror.com/polyline-normals@2.0.2 + probe.gl: registry.npmmirror.com/probe.gl@3.6.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + dev: false + + registry.npmmirror.com/@antv/g-webgpu@0.7.2: + resolution: {integrity: sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz} + name: '@antv/g-webgpu' + version: 0.7.2 + dependencies: + '@antv/g-webgpu-core': registry.npmmirror.com/@antv/g-webgpu-core@0.7.2 + '@antv/g-webgpu-engine': registry.npmmirror.com/@antv/g-webgpu-engine@0.7.2 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + gl-vec2: registry.npmmirror.com/gl-vec2@1.3.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + dev: false + + registry.npmmirror.com/@antv/g2@4.2.10: + resolution: {integrity: sha512-/ZlJ/DFJBCvtEQgE6roxdd6sBml0fZ8ZVfzG+HdjGpA7/ceURb8XkxUcqa0E8NV+e4sFijnaAhBCdUm2whiuyA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g2/-/g2-4.2.10.tgz} + name: '@antv/g2' + version: 4.2.10 + dependencies: + '@antv/adjust': registry.npmmirror.com/@antv/adjust@0.2.5 + '@antv/attr': registry.npmmirror.com/@antv/attr@0.3.5 + '@antv/color-util': registry.npmmirror.com/@antv/color-util@2.0.6 + '@antv/component': registry.npmmirror.com/@antv/component@0.8.35 + '@antv/coord': registry.npmmirror.com/@antv/coord@0.3.1 + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/event-emitter': registry.npmmirror.com/@antv/event-emitter@0.1.3 + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g-canvas': registry.npmmirror.com/@antv/g-canvas@0.5.14 + '@antv/g-svg': registry.npmmirror.com/@antv/g-svg@0.5.7 + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/scale': registry.npmmirror.com/@antv/scale@0.3.18 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g2plot@2.4.31: + resolution: {integrity: sha512-SlWHYVsJgRN7E1Oe5Qk6yWBrSWmctmloknFmklaqe9vEeK+YB9ZLUffZvtAHT10mA2NZ+VjGUhlnMNgR9M1PQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g2plot/-/g2plot-2.4.31.tgz} + name: '@antv/g2plot' + version: 2.4.31 + dependencies: + '@antv/color-util': registry.npmmirror.com/@antv/color-util@2.0.6 + '@antv/event-emitter': registry.npmmirror.com/@antv/event-emitter@0.1.3 + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g2': registry.npmmirror.com/@antv/g2@4.2.10 + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@3.0.1 + '@antv/scale': registry.npmmirror.com/@antv/scale@0.3.18 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + d3-hierarchy: registry.npmmirror.com/d3-hierarchy@2.0.0 + d3-regression: registry.npmmirror.com/d3-regression@1.3.10 + fmin: registry.npmmirror.com/fmin@0.0.2 + pdfast: registry.npmmirror.com/pdfast@0.2.0 + size-sensor: registry.npmmirror.com/size-sensor@1.0.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g6-core@0.8.24: + resolution: {integrity: sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g6-core/-/g6-core-0.8.24.tgz} + name: '@antv/g6-core' + version: 0.8.24 + dependencies: + '@antv/algorithm': registry.npmmirror.com/@antv/algorithm@0.1.26 + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/event-emitter': registry.npmmirror.com/@antv/event-emitter@0.1.3 + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g-math': registry.npmmirror.com/@antv/g-math@0.1.9 + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + ml-matrix: registry.npmmirror.com/ml-matrix@6.11.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g6-element@0.8.24(@antv/g6@4.8.24): + resolution: {integrity: sha512-61FXkt9LY+6EOUtSam1iFTOW2AM59sPVcV1BuPj4dXiD0dluLE+R7d8B/94g1tKDw9tsjhfUQGC7hTXscJRJFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g6-element/-/g6-element-0.8.24.tgz} + id: registry.npmmirror.com/@antv/g6-element/0.8.24 + name: '@antv/g6-element' + version: 0.8.24 + peerDependencies: + '@antv/g6': 4.8.24 + dependencies: + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g6': registry.npmmirror.com/@antv/g6@4.8.24 + '@antv/g6-core': registry.npmmirror.com/@antv/g6-core@0.8.24 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/g6-pc@0.8.24(@antv/g6@4.8.24): + resolution: {integrity: sha512-nf0y1lrp8J5DotqRryXd2S/J30COW8spVcLF9gUqywGqQAHfE00Ywkqr+PZBnsfCZXsXCi9o0+CE9NrkWs4SBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g6-pc/-/g6-pc-0.8.24.tgz} + id: registry.npmmirror.com/@antv/g6-pc/0.8.24 + name: '@antv/g6-pc' + version: 0.8.24 + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@4.0.5 + '@antv/algorithm': registry.npmmirror.com/@antv/algorithm@0.1.26 + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/event-emitter': registry.npmmirror.com/@antv/event-emitter@0.1.3 + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g-canvas': registry.npmmirror.com/@antv/g-canvas@0.5.14 + '@antv/g-math': registry.npmmirror.com/@antv/g-math@0.1.9 + '@antv/g-svg': registry.npmmirror.com/@antv/g-svg@0.5.7 + '@antv/g6-core': registry.npmmirror.com/@antv/g6-core@0.8.24 + '@antv/g6-element': registry.npmmirror.com/@antv/g6-element@0.8.24(@antv/g6@4.8.24) + '@antv/g6-plugin': registry.npmmirror.com/@antv/g6-plugin@0.8.24(@antv/g6@4.8.24) + '@antv/hierarchy': registry.npmmirror.com/@antv/hierarchy@0.6.11 + '@antv/layout': registry.npmmirror.com/@antv/layout@0.3.25(dagre@0.8.5) + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + color: registry.npmmirror.com/color@3.2.1 + d3-force: registry.npmmirror.com/d3-force@2.1.1 + dagre: registry.npmmirror.com/dagre@0.8.5 + insert-css: registry.npmmirror.com/insert-css@2.0.0 + ml-matrix: registry.npmmirror.com/ml-matrix@6.11.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + transitivePeerDependencies: + - '@antv/g6' + dev: false + + registry.npmmirror.com/@antv/g6-plugin@0.8.24(@antv/g6@4.8.24): + resolution: {integrity: sha512-ZIOnwLTC7SM2bFiJZ3vYFWnkyOCWKqnU96i/fBh1qAoY5slDS3hatenZWEXUtOcqaKw1h+5A5f72MRXqBBVn0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g6-plugin/-/g6-plugin-0.8.24.tgz} + id: registry.npmmirror.com/@antv/g6-plugin/0.8.24 + name: '@antv/g6-plugin' + version: 0.8.24 + peerDependencies: + '@antv/g6': 4.8.24 + dependencies: + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/g-base': registry.npmmirror.com/@antv/g-base@0.5.15 + '@antv/g-canvas': registry.npmmirror.com/@antv/g-canvas@0.5.14 + '@antv/g-svg': registry.npmmirror.com/@antv/g-svg@0.5.7 + '@antv/g6': registry.npmmirror.com/@antv/g6@4.8.24 + '@antv/g6-core': registry.npmmirror.com/@antv/g6-core@0.8.24 + '@antv/g6-element': registry.npmmirror.com/@antv/g6-element@0.8.24(@antv/g6@4.8.24) + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3 + '@antv/path-util': registry.npmmirror.com/@antv/path-util@2.0.15 + '@antv/scale': registry.npmmirror.com/@antv/scale@0.3.18 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + insert-css: registry.npmmirror.com/insert-css@2.0.0 + dev: false + + registry.npmmirror.com/@antv/g6@4.8.24: + resolution: {integrity: sha512-bgj7sZ+z45JmOngIpYpwmSIg7SboMLZBoAlX0+RoAETZB3/xvZO0MXT3lCSyAhIgm5Sb68pekKi7OStuo04NyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g6/-/g6-4.8.24.tgz} + name: '@antv/g6' + version: 4.8.24 + dependencies: + '@antv/g6-pc': registry.npmmirror.com/@antv/g6-pc@0.8.24(@antv/g6@4.8.24) + dev: false + + registry.npmmirror.com/@antv/graphlib@1.2.0: + resolution: {integrity: sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/graphlib/-/graphlib-1.2.0.tgz} + name: '@antv/graphlib' + version: 1.2.0 + dev: false + + registry.npmmirror.com/@antv/hierarchy@0.6.11: + resolution: {integrity: sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.11.tgz} + name: '@antv/hierarchy' + version: 0.6.11 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + dev: false + + registry.npmmirror.com/@antv/l7-component@2.20.5: + resolution: {integrity: sha512-dXB8ROK5TrAB+HgjBQnG4oN6AgAcOVR0dTiW2ZnT2R7Xw7U+425rY6bz0ULpaBpUABQZGm+aYHsiGAVdDLQp6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-component/-/l7-component-2.20.5.tgz} + name: '@antv/l7-component' + version: 2.20.5 + dependencies: + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + inversify: registry.npmmirror.com/inversify@5.1.1 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + supercluster: registry.npmmirror.com/supercluster@7.1.5 + dev: false + + registry.npmmirror.com/@antv/l7-core@2.20.5: + resolution: {integrity: sha512-szeERmOqW+GV6yY0QNd6A8f/s6IFI38WlnXRHOMMdtLu13zt/LRYaNOoZMWW0wAKa/icgTjy/fzqkuC83Sfrjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-core/-/l7-core-2.20.5.tgz} + name: '@antv/l7-core' + version: 2.20.5 + dependencies: + '@antv/async-hook': registry.npmmirror.com/@antv/async-hook@2.2.9 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@mapbox/tiny-sdf': registry.npmmirror.com/@mapbox/tiny-sdf@1.2.5 + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + ajv: registry.npmmirror.com/ajv@6.12.6 + element-resize-event: registry.npmmirror.com/element-resize-event@3.0.6 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + hammerjs: registry.npmmirror.com/hammerjs@2.0.8 + inversify: registry.npmmirror.com/inversify@5.1.1 + inversify-inject-decorators: registry.npmmirror.com/inversify-inject-decorators@3.1.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + viewport-mercator-project: registry.npmmirror.com/viewport-mercator-project@6.2.3 + dev: false + + registry.npmmirror.com/@antv/l7-layers@2.20.5: + resolution: {integrity: sha512-kz0fFDOylSK4msWrocVsffpuot5T0XElxvXomcnSLq9jRH5x0GHxKzrIOlQ6iUusaU3w5ZxJ4H6Nhu5DNvzs8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-layers/-/l7-layers-2.20.5.tgz} + name: '@antv/l7-layers' + version: 2.20.5 + dependencies: + '@antv/async-hook': registry.npmmirror.com/@antv/async-hook@2.2.9 + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-maps': registry.npmmirror.com/@antv/l7-maps@2.20.5 + '@antv/l7-source': registry.npmmirror.com/@antv/l7-source@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@mapbox/martini': registry.npmmirror.com/@mapbox/martini@0.2.0 + '@turf/clone': registry.npmmirror.com/@turf/clone@6.5.0 + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + '@turf/meta': registry.npmmirror.com/@turf/meta@6.5.0 + '@turf/polygon-to-line': registry.npmmirror.com/@turf/polygon-to-line@6.5.0 + '@turf/union': registry.npmmirror.com/@turf/union@6.5.0 + d3-array: registry.npmmirror.com/d3-array@1.2.4 + d3-color: registry.npmmirror.com/d3-color@1.4.1 + d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0 + d3-scale: registry.npmmirror.com/d3-scale@2.2.2 + earcut: registry.npmmirror.com/earcut@2.2.4 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + extrude-polyline: registry.npmmirror.com/extrude-polyline@1.0.6 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + gl-vec2: registry.npmmirror.com/gl-vec2@1.3.0 + inversify: registry.npmmirror.com/inversify@5.1.1 + polyline-miter-util: registry.npmmirror.com/polyline-miter-util@1.0.1 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + dev: false + + registry.npmmirror.com/@antv/l7-map@2.20.5: + resolution: {integrity: sha512-9KoGIadepSBqzmZRbcbrSCtffCmFwUPfGliQqBSYNn/ZWcqyBKCJCyvQqu2P6q/HcWF/deg8G33+Nmnpra93Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-map/-/l7-map-2.20.5.tgz} + name: '@antv/l7-map' + version: 2.20.5 + dependencies: + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@mapbox/point-geometry': registry.npmmirror.com/@mapbox/point-geometry@0.1.0 + '@mapbox/unitbezier': registry.npmmirror.com/@mapbox/unitbezier@0.0.0 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + lodash-es: registry.npmmirror.com/lodash-es@4.17.21 + dev: false + + registry.npmmirror.com/@antv/l7-maps@2.20.5: + resolution: {integrity: sha512-Lv2PtADM2RP+IBFoWm81yrwfZE4Hvuj15rbeSBXISd+9vZdVaxYceFxClvEtDJq4x1bj0+cjQLCtMr4pltDb1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-maps/-/l7-maps-2.20.5.tgz} + name: '@antv/l7-maps' + version: 2.20.5 + dependencies: + '@amap/amap-jsapi-loader': registry.npmmirror.com/@amap/amap-jsapi-loader@1.0.1 + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-map': registry.npmmirror.com/@antv/l7-map@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + inversify: registry.npmmirror.com/inversify@5.1.1 + mapbox-gl: registry.npmmirror.com/mapbox-gl@1.13.3 + maplibre-gl: registry.npmmirror.com/maplibre-gl@3.6.2 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + viewport-mercator-project: registry.npmmirror.com/viewport-mercator-project@6.2.3 + dev: false + + registry.npmmirror.com/@antv/l7-renderer@2.20.5: + resolution: {integrity: sha512-0WONfggP9zsPVwts6oNSv3gpDdQbx2hDhjrjbI7wRgbCM7Ib4Q7RMbHQ5lgyq43H5GYeduZqehNbV4zcPLiw9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-renderer/-/l7-renderer-2.20.5.tgz} + name: '@antv/l7-renderer' + version: 2.20.5 + dependencies: + '@antv/g-device-api': registry.npmmirror.com/@antv/g-device-api@1.4.8 + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + inversify: registry.npmmirror.com/inversify@5.1.1 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + regl: registry.npmmirror.com/regl@1.6.1 + dev: false + + registry.npmmirror.com/@antv/l7-scene@2.20.5: + resolution: {integrity: sha512-lgxgu94rrEfaxDxwDCayTjhPKnEoW2yMzpocXR++oROrryvxq4GKr5JawNe86MxTKJGrpzZTQH/oTrICBSxeHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-scene/-/l7-scene-2.20.5.tgz} + name: '@antv/l7-scene' + version: 2.20.5 + dependencies: + '@antv/l7-component': registry.npmmirror.com/@antv/l7-component@2.20.5 + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-layers': registry.npmmirror.com/@antv/l7-layers@2.20.5 + '@antv/l7-maps': registry.npmmirror.com/@antv/l7-maps@2.20.5 + '@antv/l7-renderer': registry.npmmirror.com/@antv/l7-renderer@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + inversify: registry.npmmirror.com/inversify@5.1.1 + mapbox-gl: registry.npmmirror.com/mapbox-gl@1.13.3 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + dev: false + + registry.npmmirror.com/@antv/l7-source@2.20.5: + resolution: {integrity: sha512-c05NQgq8H5JM8nAcCuD+nFnn1RZV/MMKUdWYuyiRGvmKqpObKVs50jY1NXUCpB3xqhksvnne4QFkm3mDFcKS8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-source/-/l7-source-2.20.5.tgz} + name: '@antv/l7-source' + version: 2.20.5 + dependencies: + '@antv/async-hook': registry.npmmirror.com/@antv/async-hook@2.2.9 + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@mapbox/geojson-rewind': registry.npmmirror.com/@mapbox/geojson-rewind@0.5.2 + '@mapbox/vector-tile': registry.npmmirror.com/@mapbox/vector-tile@1.3.1 + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + '@turf/invariant': registry.npmmirror.com/@turf/invariant@6.5.0 + '@turf/meta': registry.npmmirror.com/@turf/meta@6.5.0 + d3-dsv: registry.npmmirror.com/d3-dsv@1.2.0 + d3-hexbin: registry.npmmirror.com/d3-hexbin@0.2.2 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + geojson-vt: registry.npmmirror.com/geojson-vt@3.2.1 + inversify: registry.npmmirror.com/inversify@5.1.1 + pbf: registry.npmmirror.com/pbf@3.2.1 + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + supercluster: registry.npmmirror.com/supercluster@7.1.5 + dev: false + + registry.npmmirror.com/@antv/l7-utils@2.20.5: + resolution: {integrity: sha512-7gTv8IapVJ9o8N2tyoAOqOEt2YOhK5wubXGLJp2/5z1aMURoo3JlnjA13TFgMkf4lD4ggOMKKjZLlo5Fvxb4fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7-utils/-/l7-utils-2.20.5.tgz} + name: '@antv/l7-utils' + version: 2.20.5 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@turf/bbox': registry.npmmirror.com/@turf/bbox@6.5.0 + '@turf/bbox-polygon': registry.npmmirror.com/@turf/bbox-polygon@6.5.0 + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + d3-color: registry.npmmirror.com/d3-color@1.4.1 + earcut: registry.npmmirror.com/earcut@2.2.4 + eventemitter3: registry.npmmirror.com/eventemitter3@4.0.7 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + web-worker-helper: registry.npmmirror.com/web-worker-helper@0.0.3 + dev: false + + registry.npmmirror.com/@antv/l7@2.20.5: + resolution: {integrity: sha512-3r9lQQHhhE8GIFbiDhSZmptq4m0BCfE9kHIH/eTPoatuOowIuZGfZ57utUUU73zYRWLf6SUBS3JP+/mLYSWGjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7/-/l7-2.20.5.tgz} + name: '@antv/l7' + version: 2.20.5 + dependencies: + '@antv/l7-component': registry.npmmirror.com/@antv/l7-component@2.20.5 + '@antv/l7-core': registry.npmmirror.com/@antv/l7-core@2.20.5 + '@antv/l7-layers': registry.npmmirror.com/@antv/l7-layers@2.20.5 + '@antv/l7-maps': registry.npmmirror.com/@antv/l7-maps@2.20.5 + '@antv/l7-scene': registry.npmmirror.com/@antv/l7-scene@2.20.5 + '@antv/l7-source': registry.npmmirror.com/@antv/l7-source@2.20.5 + '@antv/l7-utils': registry.npmmirror.com/@antv/l7-utils@2.20.5 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + webpack-bundle-analyzer: registry.npmmirror.com/webpack-bundle-analyzer@4.10.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + registry.npmmirror.com/@antv/l7plot-component@0.0.10: + resolution: {integrity: sha512-jnlg2Qm4tcUUuei+7fVk/HwRqhgxWnfdawOdB3C2u7YJqhkpk2mb7FPY+KGeZd+pqEQcAJTFi/1NeKpnZcP8kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7plot-component/-/l7plot-component-0.0.10.tgz} + name: '@antv/l7plot-component' + version: 0.0.10 + dependencies: + '@antv/dom-util': registry.npmmirror.com/@antv/dom-util@2.0.4 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + dev: false + + registry.npmmirror.com/@antv/l7plot@0.5.7(@antv/l7@2.20.5): + resolution: {integrity: sha512-ujsrpH2DH2cvEUqyuZdI7w/jPs0PXiGKK87BjMrszIxh3VZ5vEEaF09OVQUqpCLPE7lB/JvJVYZw//iBPqbHTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/l7plot/-/l7plot-0.5.7.tgz} + id: registry.npmmirror.com/@antv/l7plot/0.5.7 + name: '@antv/l7plot' + version: 0.5.7 + peerDependencies: + '@antv/l7': ^2.11.5 + dependencies: + '@antv/event-emitter': registry.npmmirror.com/@antv/event-emitter@0.1.3 + '@antv/l7': registry.npmmirror.com/@antv/l7@2.20.5 + '@antv/l7plot-component': registry.npmmirror.com/@antv/l7plot-component@0.0.10 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + lodash-es: registry.npmmirror.com/lodash-es@4.17.21 + topojson-client: registry.npmmirror.com/topojson-client@3.1.0 + dev: false + + registry.npmmirror.com/@antv/layout@0.1.31: + resolution: {integrity: sha512-iz9i19dOJGiZr5xBWI5sfG+2K3QVMNAGOBrbjWKH2RGLvGpf2TSFySidhz0siDrcQA46cDsjLmGstezQdgeGzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/layout/-/layout-0.1.31.tgz} + name: '@antv/layout' + version: 0.1.31 + dependencies: + '@antv/g-webgpu': registry.npmmirror.com/@antv/g-webgpu@0.5.5 + '@dagrejs/graphlib': registry.npmmirror.com/@dagrejs/graphlib@2.1.4 + d3-force: registry.npmmirror.com/d3-force@2.1.1 + ml-matrix: registry.npmmirror.com/ml-matrix@6.11.0 + dev: false + + registry.npmmirror.com/@antv/layout@0.3.25(dagre@0.8.5): + resolution: {integrity: sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/layout/-/layout-0.3.25.tgz} + id: registry.npmmirror.com/@antv/layout/0.3.25 + name: '@antv/layout' + version: 0.3.25 + dependencies: + '@antv/g-webgpu': registry.npmmirror.com/@antv/g-webgpu@0.7.2 + '@antv/graphlib': registry.npmmirror.com/@antv/graphlib@1.2.0 + '@antv/util': registry.npmmirror.com/@antv/util@3.3.5 + d3-force: registry.npmmirror.com/d3-force@2.1.1 + d3-quadtree: registry.npmmirror.com/d3-quadtree@2.0.0 + dagre-compound: registry.npmmirror.com/dagre-compound@0.0.11(dagre@0.8.5) + ml-matrix: registry.npmmirror.com/ml-matrix@6.5.0 + transitivePeerDependencies: + - dagre + dev: false + + registry.npmmirror.com/@antv/matrix-util@3.0.4: + resolution: {integrity: sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.0.4.tgz} + name: '@antv/matrix-util' + version: 3.0.4 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/matrix-util@3.1.0-beta.3: + resolution: {integrity: sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz} + name: '@antv/matrix-util' + version: 3.1.0-beta.3 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/path-util@2.0.15: + resolution: {integrity: sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/path-util/-/path-util-2.0.15.tgz} + name: '@antv/path-util' + version: 2.0.15 + dependencies: + '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util@3.0.4 + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/path-util@3.0.1: + resolution: {integrity: sha512-tpvAzMpF9Qm6ik2YSMqICNU5tco5POOW7S4XoxZAI/B0L26adU+Md/SmO0BBo2SpuywKvzPH3hPT3xmoyhr04Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/path-util/-/path-util-3.0.1.tgz} + name: '@antv/path-util' + version: 3.0.1 + dependencies: + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + lodash-es: registry.npmmirror.com/lodash-es@4.17.21 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/scale@0.3.18: + resolution: {integrity: sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/scale/-/scale-0.3.18.tgz} + name: '@antv/scale' + version: 0.3.18 + dependencies: + '@antv/util': registry.npmmirror.com/@antv/util@2.0.17 + fecha: registry.npmmirror.com/fecha@4.2.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/util@2.0.17: + resolution: {integrity: sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz} + name: '@antv/util' + version: 2.0.17 + dependencies: + csstype: registry.npmmirror.com/csstype@3.1.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/util@3.3.5: + resolution: {integrity: sha512-bVv1loamL/MgUEN9dNt7VKAsghO4Wgb+kzr8B9TgkM5tHgKk++xiTwi3pejIdgU8DDkzcyaRsO+VTOXJt8jLng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/util/-/util-3.3.5.tgz} + name: '@antv/util' + version: 3.3.5 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + flru: registry.npmmirror.com/flru@1.0.2 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@antv/x6-react-components@1.1.20(antd@5.9.4)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-HpQqjPCUo+jfcbfW2sr9oxuXMCxWnXxWvE8jXKJzvrlMNZ3kgfxNqMCRxwGi2QTCxLB3g/KYi5/n8kze8ui1/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/x6-react-components/-/x6-react-components-1.1.20.tgz} + id: registry.npmmirror.com/@antv/x6-react-components/1.1.20 + name: '@antv/x6-react-components' + version: 1.1.20 + peerDependencies: + antd: '>=4.4.2 || >=5.0.0-beta.0' + react: '>=16.8.6 || >=17.0.0' + react-dom: '>=16.8.6 || >=17.0.0' + dependencies: + antd: registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0) + clamp: registry.npmmirror.com/clamp@1.0.1 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-dropdown: registry.npmmirror.com/rc-dropdown@3.6.2(react-dom@18.1.0)(react@18.1.0) + rc-util: registry.npmmirror.com/rc-util@4.21.1 + react: 18.1.0 + react-color: registry.npmmirror.com/react-color@2.17.1(react@18.1.0) + react-dom: 18.1.0(react@18.1.0) + react-resize-detector: registry.npmmirror.com/react-resize-detector@7.1.2(react-dom@18.1.0)(react@18.1.0) + ua-parser-js: registry.npmmirror.com/ua-parser-js@0.7.37 + dev: false + + registry.npmmirror.com/@antv/x6-react-shape@1.6.5(@antv/x6@1.35.0)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-wdZWGluEuo1K9QIk0MSndiEcFtpHrMz6HlvswPQJhwxCiiEdC8q5eiP0zgPdfD1SjI3N3DUa8g2B93vrUJxQxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/x6-react-shape/-/x6-react-shape-1.6.5.tgz} + id: registry.npmmirror.com/@antv/x6-react-shape/1.6.5 + name: '@antv/x6-react-shape' + version: 1.6.5 + peerDependencies: + '@antv/x6': ^1.x + react: '>=16.8.6 || >=17.0.0' + react-dom: '>=16.8.6 || >=17.0.0' + dependencies: + '@antv/x6': registry.npmmirror.com/@antv/x6@1.35.0 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + dev: false + + registry.npmmirror.com/@antv/x6@1.35.0: + resolution: {integrity: sha512-OwpGQelMc/zEOfJwaAvkJQ88JYEbyGKYOjI5RhHXTvGj5NTkZgOnNTzVx0RzcZRfUGgjZ7YPYprSKsxa9+/gfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/x6/-/x6-1.35.0.tgz} + name: '@antv/x6' + version: 1.35.0 + dependencies: + csstype: registry.npmmirror.com/csstype@3.1.0 + jquery: registry.npmmirror.com/jquery@3.7.1 + jquery-mousewheel: registry.npmmirror.com/jquery-mousewheel@3.1.13 + lodash-es: registry.npmmirror.com/lodash-es@4.17.21 + mousetrap: registry.npmmirror.com/mousetrap@1.6.5 + utility-types: registry.npmmirror.com/utility-types@3.10.0 + dev: false + + registry.npmmirror.com/@antv/xflow-core@1.1.52(@ant-design/icons@5.2.6)(@antv/x6-react-components@1.1.20)(@antv/x6-react-shape@1.6.5)(@antv/x6@1.35.0)(antd@5.9.4)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-62CZeOLMXvDpKOqbq/8zoDt7MUjOkGh9dKBDbxL744UgZCN5Fx4SE+qRhK5purGixTq35XzZ+b9G5wdAX4rLjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/xflow-core/-/xflow-core-1.1.52.tgz} + id: registry.npmmirror.com/@antv/xflow-core/1.1.52 + name: '@antv/xflow-core' + version: 1.1.52 + peerDependencies: + '@ant-design/icons': ^4.6.0 + '@antv/x6': ^1.30.1 + '@antv/x6-react-components': ^1.1.15 + '@antv/x6-react-shape': ^1.2.5 + antd: ^4.6.3 + lodash: ^4.17.20 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.1.0)(react@18.1.0) + '@antv/x6': registry.npmmirror.com/@antv/x6@1.35.0 + '@antv/x6-react-components': registry.npmmirror.com/@antv/x6-react-components@1.1.20(antd@5.9.4)(react-dom@18.1.0)(react@18.1.0) + '@antv/x6-react-shape': registry.npmmirror.com/@antv/x6-react-shape@1.6.5(@antv/x6@1.35.0)(react-dom@18.1.0)(react@18.1.0) + '@antv/xflow-hook': registry.npmmirror.com/@antv/xflow-hook@1.0.52 + antd: registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + immer: registry.npmmirror.com/immer@9.0.21 + lodash: registry.npmmirror.com/lodash@4.17.21 + mana-common: registry.npmmirror.com/mana-common@0.3.2 + mana-syringe: registry.npmmirror.com/mana-syringe@0.2.2 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + rxjs: registry.npmmirror.com/rxjs@6.6.7 + dev: false + + registry.npmmirror.com/@antv/xflow-extension@1.1.52(@ant-design/icons@5.2.6)(@antv/x6-react-components@1.1.20)(@antv/x6-react-shape@1.6.5)(@antv/x6@1.35.0)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14): + resolution: {integrity: sha512-pPpx00xwucAkl5+QyxxWiOaRpKGnu0Z1+IDUEYuDvEKxms7+Ml0nDc4+CnDi1e1wr4hB3QgxgLOb0JpUTgBCfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/xflow-extension/-/xflow-extension-1.1.52.tgz} + id: registry.npmmirror.com/@antv/xflow-extension/1.1.52 + name: '@antv/xflow-extension' + version: 1.1.52 + peerDependencies: + '@ant-design/icons': ^4.6.0 + '@antv/x6': ^1.30.1 + '@antv/x6-react-components': ^1.1.15 + '@antv/x6-react-shape': ^1.2.5 + antd: ^4.6.3 + classnames: ^2.2.6 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + reflect-metadata: ^0.1.13 + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.1.0)(react@18.1.0) + '@antv/x6': registry.npmmirror.com/@antv/x6@1.35.0 + '@antv/x6-react-components': registry.npmmirror.com/@antv/x6-react-components@1.1.20(antd@5.9.4)(react-dom@18.1.0)(react@18.1.0) + '@antv/x6-react-shape': registry.npmmirror.com/@antv/x6-react-shape@1.6.5(@antv/x6@1.35.0)(react-dom@18.1.0)(react@18.1.0) + '@antv/xflow-core': registry.npmmirror.com/@antv/xflow-core@1.1.52(@ant-design/icons@5.2.6)(@antv/x6-react-components@1.1.20)(@antv/x6-react-shape@1.6.5)(@antv/x6@1.35.0)(antd@5.9.4)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0) + '@antv/xflow-hook': registry.npmmirror.com/@antv/xflow-hook@1.0.52 + antd: registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + mana-syringe: registry.npmmirror.com/mana-syringe@0.2.2 + moment: registry.npmmirror.com/moment@2.29.4 + rc-field-form: registry.npmmirror.com/rc-field-form@1.38.2(react-dom@18.1.0)(react@18.1.0) + react: 18.1.0 + react-color: registry.npmmirror.com/react-color@2.17.1(react@18.1.0) + react-dom: 18.1.0(react@18.1.0) + reflect-metadata: registry.npmmirror.com/reflect-metadata@0.1.14 + transitivePeerDependencies: + - lodash + dev: false + + registry.npmmirror.com/@antv/xflow-hook@1.0.52: + resolution: {integrity: sha512-qyheVO5bwhDjKGSldf3pkneowf8ZCydIIrX4n8LRTFpvVhVF9cPoXG9e6+1LhIFvSEaLAJcYBH4gNqAjRrbUYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/xflow-hook/-/xflow-hook-1.0.52.tgz} + name: '@antv/xflow-hook' + version: 1.0.52 + dependencies: + toposort: registry.npmmirror.com/toposort@2.0.2 + dev: false + + registry.npmmirror.com/@antv/xflow-hook@1.1.52: + resolution: {integrity: sha512-wQfJgCxZG/PYH4DhpcfOi8Js0gHlVmTMHYVJ4DZMvGPcuhEhic0vOtyd9cie0YPzWPufw6lBKtn3/0FY3yHapg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/xflow-hook/-/xflow-hook-1.1.52.tgz} + name: '@antv/xflow-hook' + version: 1.1.52 + dependencies: + toposort: registry.npmmirror.com/toposort@2.0.2 + dev: false + + registry.npmmirror.com/@antv/xflow@1.1.52(@ant-design/icons@5.2.6)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14): + resolution: {integrity: sha512-B2IApV4vG2DmMubbfXGjE+oKi2eXvPuijdHhbxwQheIWcm+VtVQscaFvwUexb4CHH5tBSnjtUeKrhRIkXop70w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/xflow/-/xflow-1.1.52.tgz} + id: registry.npmmirror.com/@antv/xflow/1.1.52 + name: '@antv/xflow' + version: 1.1.52 + peerDependencies: + '@ant-design/icons': ^4.6.0 + antd: ^4.6.3 + lodash: ^4.17.20 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.1.0)(react@18.1.0) + '@antv/layout': registry.npmmirror.com/@antv/layout@0.1.31 + '@antv/x6': registry.npmmirror.com/@antv/x6@1.35.0 + '@antv/x6-react-components': registry.npmmirror.com/@antv/x6-react-components@1.1.20(antd@5.9.4)(react-dom@18.1.0)(react@18.1.0) + '@antv/x6-react-shape': registry.npmmirror.com/@antv/x6-react-shape@1.6.5(@antv/x6@1.35.0)(react-dom@18.1.0)(react@18.1.0) + '@antv/xflow-core': registry.npmmirror.com/@antv/xflow-core@1.1.52(@ant-design/icons@5.2.6)(@antv/x6-react-components@1.1.20)(@antv/x6-react-shape@1.6.5)(@antv/x6@1.35.0)(antd@5.9.4)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0) + '@antv/xflow-extension': registry.npmmirror.com/@antv/xflow-extension@1.1.52(@ant-design/icons@5.2.6)(@antv/x6-react-components@1.1.20)(@antv/x6-react-shape@1.6.5)(@antv/x6@1.35.0)(antd@5.9.4)(classnames@2.3.2)(lodash@4.17.21)(react-dom@18.1.0)(react@18.1.0)(reflect-metadata@0.1.14) + '@antv/xflow-hook': registry.npmmirror.com/@antv/xflow-hook@1.1.52 + antd: registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0) + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + transitivePeerDependencies: + - classnames + - reflect-metadata + dev: false + registry.npmmirror.com/@babel/runtime-corejs3@7.23.1: resolution: {integrity: sha512-OKKfytwoc0tr7cDHwQm0RLVR3y+hDGFz3EPuvLNU/0fOeXJeKNIHj7ffNVFnncWt3sC58uyUCRSzf8nBQbyF6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.1.tgz} name: '@babel/runtime-corejs3' @@ -3965,6 +4954,21 @@ packages: engines: {node: '>=10'} dev: false + registry.npmmirror.com/@dagrejs/graphlib@2.1.4: + resolution: {integrity: sha512-QCg9sL4uhjn468FDEsb/S9hS2xUZSrv/+dApb1Ze5VKO96pTXKNJZ6MGhIpgWkc1TVhbVGH9/7rq/Mf8/jWicw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@dagrejs/graphlib/-/graphlib-2.1.4.tgz} + name: '@dagrejs/graphlib' + version: 2.1.4 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + dev: false + + registry.npmmirror.com/@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz} + name: '@discoveryjs/json-ext' + version: 0.5.7 + engines: {node: '>=10.0.0'} + dev: false + registry.npmmirror.com/@emotion/hash@0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz} name: '@emotion/hash' @@ -4219,6 +5223,17 @@ packages: dev: true optional: true + registry.npmmirror.com/@icons/material@0.2.4(react@18.1.0): + resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@icons/material/-/material-0.2.4.tgz} + id: registry.npmmirror.com/@icons/material/0.2.4 + name: '@icons/material' + version: 0.2.4 + peerDependencies: + react: '*' + dependencies: + react: 18.1.0 + dev: false + registry.npmmirror.com/@jridgewell/gen-mapping@0.3.1: resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz} name: '@jridgewell/gen-mapping' @@ -4257,7 +5272,6 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} name: '@jridgewell/sourcemap-codec' version: 1.4.15 - dev: true registry.npmmirror.com/@jridgewell/trace-mapping@0.3.19: resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz} @@ -4268,6 +5282,154 @@ packages: '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 dev: true + registry.npmmirror.com/@ljharb/resumer@0.0.1: + resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ljharb/resumer/-/resumer-0.0.1.tgz} + name: '@ljharb/resumer' + version: 0.0.1 + engines: {node: '>= 0.4'} + dependencies: + '@ljharb/through': registry.npmmirror.com/@ljharb/through@2.3.11 + dev: false + + registry.npmmirror.com/@ljharb/through@2.3.11: + resolution: {integrity: sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ljharb/through/-/through-2.3.11.tgz} + name: '@ljharb/through' + version: 2.3.11 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + dev: false + + registry.npmmirror.com/@mapbox/geojson-rewind@0.5.2: + resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz} + name: '@mapbox/geojson-rewind' + version: 0.5.2 + hasBin: true + dependencies: + get-stream: registry.npmmirror.com/get-stream@6.0.1 + minimist: registry.npmmirror.com/minimist@1.2.6 + dev: false + + registry.npmmirror.com/@mapbox/geojson-types@1.0.2: + resolution: {integrity: sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz} + name: '@mapbox/geojson-types' + version: 1.0.2 + dev: false + + registry.npmmirror.com/@mapbox/jsonlint-lines-primitives@2.0.2: + resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz} + name: '@mapbox/jsonlint-lines-primitives' + version: 2.0.2 + engines: {node: '>= 0.6'} + dev: false + + registry.npmmirror.com/@mapbox/mapbox-gl-supported@1.5.0(mapbox-gl@1.13.3): + resolution: {integrity: sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz} + id: registry.npmmirror.com/@mapbox/mapbox-gl-supported/1.5.0 + name: '@mapbox/mapbox-gl-supported' + version: 1.5.0 + peerDependencies: + mapbox-gl: '>=0.32.1 <2.0.0' + dependencies: + mapbox-gl: registry.npmmirror.com/mapbox-gl@1.13.3 + dev: false + + registry.npmmirror.com/@mapbox/martini@0.2.0: + resolution: {integrity: sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/martini/-/martini-0.2.0.tgz} + name: '@mapbox/martini' + version: 0.2.0 + dev: false + + registry.npmmirror.com/@mapbox/point-geometry@0.1.0: + resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz} + name: '@mapbox/point-geometry' + version: 0.1.0 + dev: false + + registry.npmmirror.com/@mapbox/tiny-sdf@1.2.5: + resolution: {integrity: sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz} + name: '@mapbox/tiny-sdf' + version: 1.2.5 + dev: false + + registry.npmmirror.com/@mapbox/tiny-sdf@2.0.6: + resolution: {integrity: sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz} + name: '@mapbox/tiny-sdf' + version: 2.0.6 + dev: false + + registry.npmmirror.com/@mapbox/unitbezier@0.0.0: + resolution: {integrity: sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz} + name: '@mapbox/unitbezier' + version: 0.0.0 + dev: false + + registry.npmmirror.com/@mapbox/unitbezier@0.0.1: + resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz} + name: '@mapbox/unitbezier' + version: 0.0.1 + dev: false + + registry.npmmirror.com/@mapbox/vector-tile@1.3.1: + resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz} + name: '@mapbox/vector-tile' + version: 1.3.1 + dependencies: + '@mapbox/point-geometry': registry.npmmirror.com/@mapbox/point-geometry@0.1.0 + dev: false + + registry.npmmirror.com/@mapbox/whoots-js@3.1.0: + resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz} + name: '@mapbox/whoots-js' + version: 3.1.0 + engines: {node: '>=6.0.0'} + dev: false + + registry.npmmirror.com/@maplibre/maplibre-gl-style-spec@19.3.3: + resolution: {integrity: sha512-cOZZOVhDSulgK0meTsTkmNXb1ahVvmTmWmfx9gRBwc6hq98wS9JP35ESIoNq3xqEan+UN+gn8187Z6E4NKhLsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.3.tgz} + name: '@maplibre/maplibre-gl-style-spec' + version: 19.3.3 + hasBin: true + dependencies: + '@mapbox/jsonlint-lines-primitives': registry.npmmirror.com/@mapbox/jsonlint-lines-primitives@2.0.2 + '@mapbox/unitbezier': registry.npmmirror.com/@mapbox/unitbezier@0.0.1 + json-stringify-pretty-compact: registry.npmmirror.com/json-stringify-pretty-compact@3.0.0 + minimist: registry.npmmirror.com/minimist@1.2.8 + rw: registry.npmmirror.com/rw@1.3.3 + sort-object: registry.npmmirror.com/sort-object@3.0.3 + dev: false + + registry.npmmirror.com/@polka/url@1.0.0-next.24: + resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.24.tgz} + name: '@polka/url' + version: 1.0.0-next.24 + dev: false + + registry.npmmirror.com/@probe.gl/env@3.6.0: + resolution: {integrity: sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@probe.gl/env/-/env-3.6.0.tgz} + name: '@probe.gl/env' + version: 3.6.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + dev: false + + registry.npmmirror.com/@probe.gl/log@3.6.0: + resolution: {integrity: sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@probe.gl/log/-/log-3.6.0.tgz} + name: '@probe.gl/log' + version: 3.6.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@probe.gl/env': registry.npmmirror.com/@probe.gl/env@3.6.0 + dev: false + + registry.npmmirror.com/@probe.gl/stats@3.6.0: + resolution: {integrity: sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@probe.gl/stats/-/stats-3.6.0.tgz} + name: '@probe.gl/stats' + version: 3.6.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + dev: false + registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.4.1.tgz} id: registry.npmmirror.com/@rc-component/color-picker/1.4.1 @@ -4418,6 +5580,78 @@ packages: version: 0.0.7 dev: false + registry.npmmirror.com/@turf/bbox-polygon@6.5.0: + resolution: {integrity: sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz} + name: '@turf/bbox-polygon' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + dev: false + + registry.npmmirror.com/@turf/bbox@6.5.0: + resolution: {integrity: sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/bbox/-/bbox-6.5.0.tgz} + name: '@turf/bbox' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + '@turf/meta': registry.npmmirror.com/@turf/meta@6.5.0 + dev: false + + registry.npmmirror.com/@turf/clone@6.5.0: + resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/clone/-/clone-6.5.0.tgz} + name: '@turf/clone' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + dev: false + + registry.npmmirror.com/@turf/helpers@6.5.0: + resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/helpers/-/helpers-6.5.0.tgz} + name: '@turf/helpers' + version: 6.5.0 + dev: false + + registry.npmmirror.com/@turf/invariant@6.5.0: + resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/invariant/-/invariant-6.5.0.tgz} + name: '@turf/invariant' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + dev: false + + registry.npmmirror.com/@turf/meta@6.5.0: + resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/meta/-/meta-6.5.0.tgz} + name: '@turf/meta' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + dev: false + + registry.npmmirror.com/@turf/polygon-to-line@6.5.0: + resolution: {integrity: sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz} + name: '@turf/polygon-to-line' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + '@turf/invariant': registry.npmmirror.com/@turf/invariant@6.5.0 + dev: false + + registry.npmmirror.com/@turf/union@6.5.0: + resolution: {integrity: sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@turf/union/-/union-6.5.0.tgz} + name: '@turf/union' + version: 6.5.0 + dependencies: + '@turf/helpers': registry.npmmirror.com/@turf/helpers@6.5.0 + '@turf/invariant': registry.npmmirror.com/@turf/invariant@6.5.0 + polygon-clipping: registry.npmmirror.com/polygon-clipping@0.15.5 + dev: false + + registry.npmmirror.com/@types/d3-timer@2.0.3: + resolution: {integrity: sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-2.0.3.tgz} + name: '@types/d3-timer' + version: 2.0.3 + dev: false + registry.npmmirror.com/@types/eslint-scope@3.7.5: resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz} name: '@types/eslint-scope' @@ -4448,6 +5682,12 @@ packages: version: 0.3.4 dev: false + registry.npmmirror.com/@types/geojson@7946.0.13: + resolution: {integrity: sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.13.tgz} + name: '@types/geojson' + version: 7946.0.13 + dev: false + registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz} name: '@types/hoist-non-react-statics' @@ -4457,18 +5697,46 @@ packages: hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 dev: false + registry.npmmirror.com/@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz} + name: '@types/js-cookie' + version: 2.2.7 + dev: false + registry.npmmirror.com/@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} name: '@types/json-schema' version: 7.0.11 dev: true + registry.npmmirror.com/@types/mapbox__point-geometry@0.1.4: + resolution: {integrity: sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz} + name: '@types/mapbox__point-geometry' + version: 0.1.4 + dev: false + + registry.npmmirror.com/@types/mapbox__vector-tile@1.3.4: + resolution: {integrity: sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz} + name: '@types/mapbox__vector-tile' + version: 1.3.4 + dependencies: + '@types/geojson': registry.npmmirror.com/@types/geojson@7946.0.13 + '@types/mapbox__point-geometry': registry.npmmirror.com/@types/mapbox__point-geometry@0.1.4 + '@types/pbf': registry.npmmirror.com/@types/pbf@3.0.5 + dev: false + registry.npmmirror.com/@types/node@17.0.36: resolution: {integrity: sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.36.tgz} name: '@types/node' version: 17.0.36 dev: true + registry.npmmirror.com/@types/pbf@3.0.5: + resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/pbf/-/pbf-3.0.5.tgz} + name: '@types/pbf' + version: 3.0.5 + dev: false + registry.npmmirror.com/@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz} name: '@types/prop-types' @@ -4491,6 +5759,14 @@ packages: version: 0.16.2 dev: false + registry.npmmirror.com/@types/supercluster@7.1.3: + resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/supercluster/-/supercluster-7.1.3.tgz} + name: '@types/supercluster' + version: 7.1.3 + dependencies: + '@types/geojson': registry.npmmirror.com/@types/geojson@7946.0.13 + dev: false + registry.npmmirror.com/@types/use-sync-external-store@0.0.3: resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz} name: '@types/use-sync-external-store' @@ -4901,6 +6177,30 @@ packages: '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 dev: true + registry.npmmirror.com/@webgpu/glslang@0.0.15: + resolution: {integrity: sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webgpu/glslang/-/glslang-0.0.15.tgz} + name: '@webgpu/glslang' + version: 0.0.15 + dev: false + + registry.npmmirror.com/@webgpu/types@0.0.31: + resolution: {integrity: sha512-cvvCMSZBT4VsRNtt0lI6XQqvOIIWw6+NRUtnPUMDVDgsI4pCZColz3qzF5QcP9wIYOHEc3jssIBse8UWONKhlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webgpu/types/-/types-0.0.31.tgz} + name: '@webgpu/types' + version: 0.0.31 + dev: false + + registry.npmmirror.com/@webgpu/types@0.1.40: + resolution: {integrity: sha512-/BBkHLS6/eQjyWhY2H7Dx5DHcVrS2ICj9owvSRdgtQT6KcafLZA86tPze0xAOsd4FbsYKCUBUQyNi87q7gV7kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webgpu/types/-/types-0.1.40.tgz} + name: '@webgpu/types' + version: 0.1.40 + dev: false + + registry.npmmirror.com/@xobotyi/scrollbar-width@1.9.5: + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz} + name: '@xobotyi/scrollbar-width' + version: 1.9.5 + dev: false + registry.npmmirror.com/@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} name: '@xtuc/ieee754' @@ -4924,13 +6224,27 @@ packages: acorn: registry.npmmirror.com/acorn@8.10.0 dev: true + registry.npmmirror.com/acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz} + name: acorn-walk + version: 8.2.0 + engines: {node: '>=0.4.0'} + dev: false + registry.npmmirror.com/acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz} name: acorn version: 8.10.0 engines: {node: '>=0.4.0'} hasBin: true - dev: true + + registry.npmmirror.com/add-dom-event-listener@1.1.0: + resolution: {integrity: sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz} + name: add-dom-event-listener + version: 1.1.0 + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + dev: false registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} @@ -4952,7 +6266,38 @@ packages: fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 uri-js: registry.npmmirror.com/uri-js@4.4.1 - dev: true + + registry.npmmirror.com/align-text@0.1.4: + resolution: {integrity: sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz} + name: align-text + version: 0.1.4 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@3.2.2 + longest: registry.npmmirror.com/longest@1.0.1 + repeat-string: registry.npmmirror.com/repeat-string@1.6.1 + dev: false + + registry.npmmirror.com/amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz} + name: amdefine + version: 1.0.1 + engines: {node: '>=0.4.2'} + dev: false + + registry.npmmirror.com/ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} + name: ansi-regex + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz} + name: ansi-styles + version: 2.2.1 + engines: {node: '>=0.10.0'} + dev: false registry.npmmirror.com/antd@5.9.4(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-eyNn1C/Q9ESn4ktfTlRIIXBbWT5L/Rr38xP37dIvJ3FeD/a4vaVcMqqLz5ywwMPKxgWnuUxggo1mJwWdPoIdSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd/-/antd-5.9.4.tgz} @@ -5019,18 +6364,68 @@ packages: - moment dev: false + registry.npmmirror.com/arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz} + name: arr-union + version: 3.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} + name: array-buffer-byte-length + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + dev: false + registry.npmmirror.com/array-tree-filter@2.1.0: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} name: array-tree-filter version: 2.1.0 dev: false + registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz} + name: arraybuffer.prototype.slice + version: 1.0.2 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + dev: false + + registry.npmmirror.com/as-number@1.0.0: + resolution: {integrity: sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/as-number/-/as-number-1.0.0.tgz} + name: as-number + version: 1.0.0 + dev: false + + registry.npmmirror.com/assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz} + name: assign-symbols + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} name: async-validator version: 4.2.5 dev: false + registry.npmmirror.com/async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async/-/async-3.2.5.tgz} + name: async + version: 3.2.5 + dev: false + registry.npmmirror.com/asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz} name: asynckit @@ -5056,6 +6451,13 @@ packages: postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 dev: true + registry.npmmirror.com/available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + name: available-typed-arrays + version: 1.0.5 + engines: {node: '>= 0.4'} + dev: false + registry.npmmirror.com/axios@1.5.1: resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-1.5.1.tgz} name: axios @@ -5068,6 +6470,21 @@ packages: - debug dev: false + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: false + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: registry.npmmirror.com/concat-map@0.0.1 + dev: false + registry.npmmirror.com/browserslist@4.22.1: resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz} name: browserslist @@ -5087,12 +6504,78 @@ packages: version: 1.1.2 dev: true + registry.npmmirror.com/bytewise-core@1.2.3: + resolution: {integrity: sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bytewise-core/-/bytewise-core-1.2.3.tgz} + name: bytewise-core + version: 1.2.3 + dependencies: + typewise-core: registry.npmmirror.com/typewise-core@1.2.0 + dev: false + + registry.npmmirror.com/bytewise@1.1.0: + resolution: {integrity: sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bytewise/-/bytewise-1.1.0.tgz} + name: bytewise + version: 1.1.0 + dependencies: + bytewise-core: registry.npmmirror.com/bytewise-core@1.2.3 + typewise: registry.npmmirror.com/typewise@1.0.3 + dev: false + + registry.npmmirror.com/call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} + name: call-bind + version: 1.0.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.1.1 + dev: false + + registry.npmmirror.com/call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz} + name: call-bind + version: 1.0.5 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + set-function-length: registry.npmmirror.com/set-function-length@1.1.1 + dev: false + + registry.npmmirror.com/camelcase@1.2.1: + resolution: {integrity: sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz} + name: camelcase + version: 1.2.1 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/caniuse-lite@1.0.30001546: resolution: {integrity: sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz} name: caniuse-lite version: 1.0.30001546 dev: true + registry.npmmirror.com/center-align@0.1.3: + resolution: {integrity: sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz} + name: center-align + version: 0.1.3 + engines: {node: '>=0.10.0'} + dependencies: + align-text: registry.npmmirror.com/align-text@0.1.4 + lazy-cache: registry.npmmirror.com/lazy-cache@1.0.4 + dev: false + + registry.npmmirror.com/chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz} + name: chalk + version: 1.1.3 + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@2.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + has-ansi: registry.npmmirror.com/has-ansi@2.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@3.0.1 + supports-color: registry.npmmirror.com/supports-color@2.0.0 + dev: false + registry.npmmirror.com/chrome-trace-event@1.0.3: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} name: chrome-trace-event @@ -5100,12 +6583,66 @@ packages: engines: {node: '>=6.0'} dev: true + registry.npmmirror.com/clamp@1.0.1: + resolution: {integrity: sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clamp/-/clamp-1.0.1.tgz} + name: clamp + version: 1.0.1 + dev: false + registry.npmmirror.com/classnames@2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} name: classnames version: 2.3.2 dev: false + registry.npmmirror.com/cliui@2.1.0: + resolution: {integrity: sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cliui/-/cliui-2.1.0.tgz} + name: cliui + version: 2.1.0 + dependencies: + center-align: registry.npmmirror.com/center-align@0.1.3 + right-align: registry.npmmirror.com/right-align@0.1.3 + wordwrap: registry.npmmirror.com/wordwrap@0.0.2 + dev: false + + registry.npmmirror.com/color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + dev: false + + registry.npmmirror.com/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: false + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: false + + registry.npmmirror.com/color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz} + name: color-string + version: 1.9.1 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + simple-swizzle: registry.npmmirror.com/simple-swizzle@0.2.2 + dev: false + + registry.npmmirror.com/color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color/-/color-3.2.1.tgz} + name: color + version: 3.2.1 + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + color-string: registry.npmmirror.com/color-string@1.9.1 + dev: false + registry.npmmirror.com/combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz} name: combined-stream @@ -5119,7 +6656,13 @@ packages: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} name: commander version: 2.20.3 - dev: true + + registry.npmmirror.com/commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} + name: commander + version: 7.2.0 + engines: {node: '>= 10'} + dev: false registry.npmmirror.com/compute-scroll-into-view@1.0.20: resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz} @@ -5133,6 +6676,18 @@ packages: version: 3.1.0 dev: false + registry.npmmirror.com/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: false + + registry.npmmirror.com/contour_plot@0.0.1: + resolution: {integrity: sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/contour_plot/-/contour_plot-0.0.1.tgz} + name: contour_plot + version: 0.0.1 + dev: false + registry.npmmirror.com/copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz} name: copy-anything @@ -5184,6 +6739,14 @@ packages: postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 dev: true + registry.npmmirror.com/css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz} + name: css-in-js-utils + version: 3.1.0 + dependencies: + hyphenate-style-name: registry.npmmirror.com/hyphenate-style-name@1.0.4 + dev: false + registry.npmmirror.com/css-prefers-color-scheme@9.0.0(postcss@8.4.31): resolution: {integrity: sha512-03QGAk/FXIRseDdLb7XAiu6gidQ0Nd8945xuM7VFVPpc6goJsG9uIO8xQjTxwbPdPIIV4o4AJoOJyt8gwDl67g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-prefers-color-scheme/-/css-prefers-color-scheme-9.0.0.tgz} id: registry.npmmirror.com/css-prefers-color-scheme/9.0.0 @@ -5196,6 +6759,22 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.31 dev: true + registry.npmmirror.com/css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz} + name: css-tree + version: 1.1.3 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.14 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/csscolorparser@1.0.3: + resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csscolorparser/-/csscolorparser-1.0.3.tgz} + name: csscolorparser + version: 1.0.3 + dev: false + registry.npmmirror.com/cssdb@7.7.3: resolution: {integrity: sha512-QPbpOl+jR13quGTIvwCavognmtpr6T9ra6G9S++scJek7BY4xdkJpB3slU1JkjQmzKmpDHnPB+wkz+mxoT/h4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssdb/-/cssdb-7.7.3.tgz} name: cssdb @@ -5216,6 +6795,156 @@ packages: version: 3.1.0 dev: false + registry.npmmirror.com/csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz} + name: csstype + version: 3.1.3 + dev: false + + registry.npmmirror.com/d3-array@1.2.4: + resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz} + name: d3-array + version: 1.2.4 + dev: false + + registry.npmmirror.com/d3-collection@1.0.7: + resolution: {integrity: sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz} + name: d3-collection + version: 1.0.7 + dev: false + + registry.npmmirror.com/d3-color@1.4.1: + resolution: {integrity: sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz} + name: d3-color + version: 1.4.1 + dev: false + + registry.npmmirror.com/d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz} + name: d3-color + version: 3.1.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/d3-dispatch@2.0.0: + resolution: {integrity: sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz} + name: d3-dispatch + version: 2.0.0 + dev: false + + registry.npmmirror.com/d3-dsv@1.2.0: + resolution: {integrity: sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-dsv/-/d3-dsv-1.2.0.tgz} + name: d3-dsv + version: 1.2.0 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander@2.20.3 + iconv-lite: registry.npmmirror.com/iconv-lite@0.4.24 + rw: registry.npmmirror.com/rw@1.3.3 + dev: false + + registry.npmmirror.com/d3-ease@1.0.7: + resolution: {integrity: sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz} + name: d3-ease + version: 1.0.7 + dev: false + + registry.npmmirror.com/d3-force@2.1.1: + resolution: {integrity: sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-force/-/d3-force-2.1.1.tgz} + name: d3-force + version: 2.1.1 + dependencies: + d3-dispatch: registry.npmmirror.com/d3-dispatch@2.0.0 + d3-quadtree: registry.npmmirror.com/d3-quadtree@2.0.0 + d3-timer: registry.npmmirror.com/d3-timer@2.0.0 + dev: false + + registry.npmmirror.com/d3-format@1.4.5: + resolution: {integrity: sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-format/-/d3-format-1.4.5.tgz} + name: d3-format + version: 1.4.5 + dev: false + + registry.npmmirror.com/d3-hexbin@0.2.2: + resolution: {integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-hexbin/-/d3-hexbin-0.2.2.tgz} + name: d3-hexbin + version: 0.2.2 + dev: false + + registry.npmmirror.com/d3-hierarchy@2.0.0: + resolution: {integrity: sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz} + name: d3-hierarchy + version: 2.0.0 + dev: false + + registry.npmmirror.com/d3-interpolate@1.4.0: + resolution: {integrity: sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz} + name: d3-interpolate + version: 1.4.0 + dependencies: + d3-color: registry.npmmirror.com/d3-color@1.4.1 + dev: false + + registry.npmmirror.com/d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz} + name: d3-interpolate + version: 3.0.1 + engines: {node: '>=12'} + dependencies: + d3-color: registry.npmmirror.com/d3-color@3.1.0 + dev: false + + registry.npmmirror.com/d3-quadtree@2.0.0: + resolution: {integrity: sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz} + name: d3-quadtree + version: 2.0.0 + dev: false + + registry.npmmirror.com/d3-regression@1.3.10: + resolution: {integrity: sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-regression/-/d3-regression-1.3.10.tgz} + name: d3-regression + version: 1.3.10 + dev: false + + registry.npmmirror.com/d3-scale@2.2.2: + resolution: {integrity: sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-scale/-/d3-scale-2.2.2.tgz} + name: d3-scale + version: 2.2.2 + dependencies: + d3-array: registry.npmmirror.com/d3-array@1.2.4 + d3-collection: registry.npmmirror.com/d3-collection@1.0.7 + d3-format: registry.npmmirror.com/d3-format@1.4.5 + d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0 + d3-time: registry.npmmirror.com/d3-time@1.1.0 + d3-time-format: registry.npmmirror.com/d3-time-format@2.3.0 + dev: false + + registry.npmmirror.com/d3-time-format@2.3.0: + resolution: {integrity: sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-time-format/-/d3-time-format-2.3.0.tgz} + name: d3-time-format + version: 2.3.0 + dependencies: + d3-time: registry.npmmirror.com/d3-time@1.1.0 + dev: false + + registry.npmmirror.com/d3-time@1.1.0: + resolution: {integrity: sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-time/-/d3-time-1.1.0.tgz} + name: d3-time + version: 1.1.0 + dev: false + + registry.npmmirror.com/d3-timer@1.0.10: + resolution: {integrity: sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz} + name: d3-timer + version: 1.0.10 + dev: false + + registry.npmmirror.com/d3-timer@2.0.0: + resolution: {integrity: sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-timer/-/d3-timer-2.0.0.tgz} + name: d3-timer + version: 2.0.0 + dev: false + registry.npmmirror.com/d@1.0.1: resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d/-/d-1.0.1.tgz} name: d @@ -5225,12 +6954,39 @@ packages: type: registry.npmmirror.com/type@1.2.0 dev: false + registry.npmmirror.com/dagre-compound@0.0.11(dagre@0.8.5): + resolution: {integrity: sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dagre-compound/-/dagre-compound-0.0.11.tgz} + id: registry.npmmirror.com/dagre-compound/0.0.11 + name: dagre-compound + version: 0.0.11 + engines: {node: '>=6.0.0'} + peerDependencies: + dagre: ^0.8.5 + dependencies: + dagre: registry.npmmirror.com/dagre@0.8.5 + dev: false + + registry.npmmirror.com/dagre@0.8.5: + resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz} + name: dagre + version: 0.8.5 + dependencies: + graphlib: registry.npmmirror.com/graphlib@2.1.8 + lodash: registry.npmmirror.com/lodash@4.17.21 + dev: false + registry.npmmirror.com/dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} name: dayjs version: 1.11.10 dev: false + registry.npmmirror.com/debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debounce/-/debounce-1.2.1.tgz} + name: debounce + version: 1.2.1 + dev: false + registry.npmmirror.com/debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} name: debug @@ -5246,6 +7002,65 @@ packages: dev: true optional: true + registry.npmmirror.com/decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} + name: decamelize + version: 1.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz} + name: deep-equal + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + is-arguments: registry.npmmirror.com/is-arguments@1.1.1 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + object-is: registry.npmmirror.com/object-is@1.1.5 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + dev: false + + registry.npmmirror.com/define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz} + name: define-data-property + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + dev: false + + registry.npmmirror.com/define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz} + name: define-properties + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz} + name: define-properties + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/defined@1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/defined/-/defined-1.0.1.tgz} + name: defined + version: 1.0.1 + dev: false + registry.npmmirror.com/delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} name: delayed-stream @@ -5253,6 +7068,12 @@ packages: engines: {node: '>=0.4.0'} dev: false + registry.npmmirror.com/detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz} + name: detect-browser + version: 5.3.0 + dev: false + registry.npmmirror.com/dom-align@1.12.4: resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz} name: dom-align @@ -5267,12 +7088,39 @@ packages: ssr-window: registry.npmmirror.com/ssr-window@3.0.0 dev: false + registry.npmmirror.com/dotignore@0.1.2: + resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dotignore/-/dotignore-0.1.2.tgz} + name: dotignore + version: 0.1.2 + hasBin: true + dependencies: + minimatch: registry.npmmirror.com/minimatch@3.1.2 + dev: false + + registry.npmmirror.com/duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz} + name: duplexer + version: 0.1.2 + dev: false + + registry.npmmirror.com/earcut@2.2.4: + resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/earcut/-/earcut-2.2.4.tgz} + name: earcut + version: 2.2.4 + dev: false + registry.npmmirror.com/electron-to-chromium@1.4.543: resolution: {integrity: sha512-t2ZP4AcGE0iKCCQCBx/K2426crYdxD3YU6l0uK2EO3FZH0pbC4pFz/sZm2ruZsND6hQBTcDWWlo/MLpiOdif5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.543.tgz} name: electron-to-chromium version: 1.4.543 dev: true + registry.npmmirror.com/element-resize-event@3.0.6: + resolution: {integrity: sha512-sSeXY9rNDp86bJODW68pxLcy3A5FrPZfIgOrJHzqgYzX513Zq6/ytdBigp7KeJEpZZopBBSiO1cVuiRkZpNxLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/element-resize-event/-/element-resize-event-3.0.6.tgz} + name: element-resize-event + version: 3.0.6 + dev: false + registry.npmmirror.com/enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz} name: enhanced-resolve @@ -5294,12 +7142,89 @@ packages: dev: true optional: true + registry.npmmirror.com/error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz} + name: error-stack-parser + version: 2.1.4 + dependencies: + stackframe: registry.npmmirror.com/stackframe@1.3.4 + dev: false + + registry.npmmirror.com/es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz} + name: es-abstract + version: 1.22.3 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + arraybuffer.prototype.slice: registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2 + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.5 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 + string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.8 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.7 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.7 + typed-array-buffer: registry.npmmirror.com/typed-array-buffer@1.0.0 + typed-array-byte-length: registry.npmmirror.com/typed-array-byte-length@1.0.0 + typed-array-byte-offset: registry.npmmirror.com/typed-array-byte-offset@1.0.0 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + registry.npmmirror.com/es-module-lexer@1.3.1: resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz} name: es-module-lexer version: 1.3.1 dev: true + registry.npmmirror.com/es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz} + name: es-set-tostringtag + version: 2.0.2 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + name: es-to-primitive + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: false + registry.npmmirror.com/es5-ext@0.10.62: resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz} name: es5-ext @@ -5370,6 +7295,20 @@ packages: engines: {node: '>=6'} dev: true + registry.npmmirror.com/escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: false + + registry.npmmirror.com/escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: false + registry.npmmirror.com/eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} name: eslint-scope @@ -5412,6 +7351,18 @@ packages: es5-ext: registry.npmmirror.com/es5-ext@0.10.62 dev: false + registry.npmmirror.com/eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz} + name: eventemitter3 + version: 4.0.7 + dev: false + + registry.npmmirror.com/eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz} + name: eventemitter3 + version: 5.0.1 + dev: false + registry.npmmirror.com/events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/events/-/events-3.3.0.tgz} name: events @@ -5427,17 +7378,87 @@ packages: type: registry.npmmirror.com/type@2.7.2 dev: false + registry.npmmirror.com/extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz} + name: extend-shallow + version: 2.0.1 + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + dev: false + + registry.npmmirror.com/extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz} + name: extend-shallow + version: 3.0.2 + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: registry.npmmirror.com/assign-symbols@1.0.0 + is-extendable: registry.npmmirror.com/is-extendable@1.0.1 + dev: false + + registry.npmmirror.com/extrude-polyline@1.0.6: + resolution: {integrity: sha512-fcKIanU/v+tcdgG0+xMbS0C2VZ0/CF3qqxSjHiWfWICh0yFBezPr3SsOhgdzwE5E82plG6p1orEsfSqgldpxVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extrude-polyline/-/extrude-polyline-1.0.6.tgz} + name: extrude-polyline + version: 1.0.6 + dependencies: + as-number: registry.npmmirror.com/as-number@1.0.0 + gl-vec2: registry.npmmirror.com/gl-vec2@1.3.0 + polyline-miter-util: registry.npmmirror.com/polyline-miter-util@1.0.1 + dev: false + registry.npmmirror.com/fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} name: fast-deep-equal version: 3.1.3 - dev: true registry.npmmirror.com/fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} name: fast-json-stable-stringify version: 2.1.0 - dev: true + + registry.npmmirror.com/fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-loops/-/fast-loops-1.1.3.tgz} + name: fast-loops + version: 1.1.3 + dev: false + + registry.npmmirror.com/fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz} + name: fast-shallow-equal + version: 1.0.0 + dev: false + + registry.npmmirror.com/fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz} + name: fastest-stable-stringify + version: 2.0.2 + dev: false + + registry.npmmirror.com/fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz} + name: fecha + version: 4.2.3 + dev: false + + registry.npmmirror.com/flru@1.0.2: + resolution: {integrity: sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flru/-/flru-1.0.2.tgz} + name: flru + version: 1.0.2 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/fmin@0.0.2: + resolution: {integrity: sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fmin/-/fmin-0.0.2.tgz} + name: fmin + version: 0.0.2 + dependencies: + contour_plot: registry.npmmirror.com/contour_plot@0.0.1 + json2module: registry.npmmirror.com/json2module@0.0.3 + rollup: registry.npmmirror.com/rollup@0.25.8 + tape: registry.npmmirror.com/tape@4.17.0 + uglify-js: registry.npmmirror.com/uglify-js@2.8.29 + dev: false registry.npmmirror.com/follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz} @@ -5451,6 +7472,14 @@ packages: optional: true dev: false + registry.npmmirror.com/for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.4 + dev: false + registry.npmmirror.com/form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz} name: form-data @@ -5468,6 +7497,12 @@ packages: version: 4.3.6 dev: true + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: false + registry.npmmirror.com/fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz} name: fsevents @@ -5478,12 +7513,146 @@ packages: dev: true optional: true + registry.npmmirror.com/function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: false + + registry.npmmirror.com/function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} + name: function-bind + version: 1.1.2 + dev: false + + registry.npmmirror.com/function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz} + name: function.prototype.name + version: 1.1.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: false + + registry.npmmirror.com/functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: false + + registry.npmmirror.com/geojson-vt@3.2.1: + resolution: {integrity: sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/geojson-vt/-/geojson-vt-3.2.1.tgz} + name: geojson-vt + version: 3.2.1 + dev: false + + registry.npmmirror.com/get-intrinsic@1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz} + name: get-intrinsic + version: 1.1.1 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + has: registry.npmmirror.com/has@1.0.3 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz} + name: get-intrinsic + version: 1.2.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} + name: get-stream + version: 6.0.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + name: get-symbol-description + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz} + name: get-value + version: 2.0.6 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/gl-matrix@3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz} + name: gl-matrix + version: 3.4.3 + dev: false + + registry.npmmirror.com/gl-vec2@1.3.0: + resolution: {integrity: sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gl-vec2/-/gl-vec2-1.3.0.tgz} + name: gl-vec2 + version: 1.3.0 + dev: false + registry.npmmirror.com/glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} name: glob-to-regexp version: 0.4.1 dev: true + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: false + + registry.npmmirror.com/global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} + name: global-prefix + version: 3.0.0 + engines: {node: '>=6'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + kind-of: registry.npmmirror.com/kind-of@6.0.3 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + name: globalthis + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + dev: false + + registry.npmmirror.com/gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + registry.npmmirror.com/graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz} name: graceful-fs @@ -5491,6 +7660,51 @@ packages: requiresBuild: true dev: true + registry.npmmirror.com/graphlib@2.1.8: + resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz} + name: graphlib + version: 2.1.8 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + dev: false + + registry.npmmirror.com/grid-index@1.1.0: + resolution: {integrity: sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/grid-index/-/grid-index-1.1.0.tgz} + name: grid-index + version: 1.1.0 + dev: false + + registry.npmmirror.com/gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz} + name: gzip-size + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + duplexer: registry.npmmirror.com/duplexer@0.1.2 + dev: false + + registry.npmmirror.com/hammerjs@2.0.8: + resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hammerjs/-/hammerjs-2.0.8.tgz} + name: hammerjs + version: 2.0.8 + engines: {node: '>=0.8.0'} + dev: false + + registry.npmmirror.com/has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz} + name: has-ansi + version: 2.0.0 + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: false + + registry.npmmirror.com/has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: false + registry.npmmirror.com/has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} name: has-flag @@ -5498,6 +7712,55 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} + name: has-property-descriptors + version: 1.0.0 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.1.1 + dev: false + + registry.npmmirror.com/has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + name: has-proto + version: 1.0.1 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + dev: false + + registry.npmmirror.com/hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz} + name: hasown + version: 2.0.0 + engines: {node: '>= 0.4'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + dev: false + registry.npmmirror.com/hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz} name: hoist-non-react-statics @@ -5506,12 +7769,24 @@ packages: react-is: registry.npmmirror.com/react-is@16.13.1 dev: false + registry.npmmirror.com/html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz} + name: html-escaper + version: 2.0.2 + dev: false + registry.npmmirror.com/html-void-elements@2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz} name: html-void-elements version: 2.0.1 dev: false + registry.npmmirror.com/hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz} + name: hyphenate-style-name + version: 1.0.4 + dev: false + registry.npmmirror.com/i18next@20.6.1: resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz} name: i18next @@ -5520,6 +7795,15 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 dev: false + registry.npmmirror.com/iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + registry.npmmirror.com/iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} name: iconv-lite @@ -5531,6 +7815,12 @@ packages: dev: true optional: true + registry.npmmirror.com/ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} + name: ieee754 + version: 1.2.1 + dev: false + registry.npmmirror.com/image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} name: image-size @@ -5547,12 +7837,199 @@ packages: version: 9.0.21 dev: false + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: false + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: false + + registry.npmmirror.com/ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} + name: ini + version: 1.3.8 + dev: false + + registry.npmmirror.com/inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz} + name: inline-style-prefixer + version: 7.0.0 + dependencies: + css-in-js-utils: registry.npmmirror.com/css-in-js-utils@3.1.0 + fast-loops: registry.npmmirror.com/fast-loops@1.1.3 + dev: false + + registry.npmmirror.com/insert-css@2.0.0: + resolution: {integrity: sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/insert-css/-/insert-css-2.0.0.tgz} + name: insert-css + version: 2.0.0 + dev: false + + registry.npmmirror.com/internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz} + name: internal-slot + version: 1.0.6 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + hasown: registry.npmmirror.com/hasown@2.0.0 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/inversify-inject-decorators@3.1.0: + resolution: {integrity: sha512-/seBlVp5bXrLQS3DpKEmlgeZL6C7Tf/QITd+IMQrbBBGuCbxb7k3hRAWu9XSreNpFzLgSboz3sClLSEmGwHphw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inversify-inject-decorators/-/inversify-inject-decorators-3.1.0.tgz} + name: inversify-inject-decorators + version: 3.1.0 + dev: false + + registry.npmmirror.com/inversify@5.1.1: + resolution: {integrity: sha512-j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inversify/-/inversify-5.1.1.tgz} + name: inversify + version: 5.1.1 + dev: false + + registry.npmmirror.com/is-any-array@2.0.1: + resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-any-array/-/is-any-array-2.0.1.tgz} + name: is-any-array + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz} + name: is-arguments + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + name: is-array-buffer + version: 3.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz} + name: is-arrayish + version: 0.3.2 + dev: false + + registry.npmmirror.com/is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + dev: false + + registry.npmmirror.com/is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz} + name: is-buffer + version: 1.1.6 + dev: false + + registry.npmmirror.com/is-callable@1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz} + name: is-callable + version: 1.2.4 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz} + name: is-core-module + version: 2.13.1 + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz} + name: is-extendable + version: 0.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz} + name: is-extendable + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 + dev: false + registry.npmmirror.com/is-hotkey@0.2.0: resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz} name: is-hotkey version: 0.2.0 dev: false + registry.npmmirror.com/is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + name: is-negative-zero + version: 2.0.2 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz} + name: is-plain-object + version: 2.0.4 + engines: {node: '>=0.10.0'} + dependencies: + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: false + registry.npmmirror.com/is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz} name: is-plain-object @@ -5560,18 +8037,90 @@ packages: engines: {node: '>=0.10.0'} dev: false + registry.npmmirror.com/is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz} + name: is-typed-array + version: 1.1.12 + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + registry.npmmirror.com/is-url@1.2.4: resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz} name: is-url version: 1.2.4 dev: false + registry.npmmirror.com/is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + name: is-weakref + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + registry.npmmirror.com/is-what@3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz} name: is-what version: 3.14.1 dev: true + registry.npmmirror.com/isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} + name: isarray + version: 2.0.5 + dev: false + + registry.npmmirror.com/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: false + + registry.npmmirror.com/isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz} + name: isobject + version: 3.0.1 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} name: jest-worker @@ -5583,6 +8132,30 @@ packages: supports-color: registry.npmmirror.com/supports-color@8.1.1 dev: true + registry.npmmirror.com/jquery-mousewheel@3.1.13: + resolution: {integrity: sha512-GXhSjfOPyDemM005YCEHvzrEALhKDIswtxSHSR2e4K/suHVJKJxxRCGz3skPjNxjJjQa9AVSGGlYjv1M3VLIPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz} + name: jquery-mousewheel + version: 3.1.13 + dev: false + + registry.npmmirror.com/jquery@3.7.1: + resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz} + name: jquery + version: 3.7.1 + dev: false + + registry.npmmirror.com/js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz} + name: js-cookie + version: 2.2.1 + dev: false + + registry.npmmirror.com/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: false + registry.npmmirror.com/json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} name: json-parse-even-better-errors @@ -5593,7 +8166,21 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} name: json-schema-traverse version: 0.4.1 - dev: true + + registry.npmmirror.com/json-stringify-pretty-compact@3.0.0: + resolution: {integrity: sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz} + name: json-stringify-pretty-compact + version: 3.0.0 + dev: false + + registry.npmmirror.com/json2module@0.0.3: + resolution: {integrity: sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json2module/-/json2module-0.0.3.tgz} + name: json2module + version: 0.0.3 + hasBin: true + dependencies: + rw: registry.npmmirror.com/rw@1.3.3 + dev: false registry.npmmirror.com/json2mq@0.2.0: resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz} @@ -5603,6 +8190,41 @@ packages: string-convert: registry.npmmirror.com/string-convert@0.2.1 dev: false + registry.npmmirror.com/kdbush@3.0.0: + resolution: {integrity: sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kdbush/-/kdbush-3.0.0.tgz} + name: kdbush + version: 3.0.0 + dev: false + + registry.npmmirror.com/kdbush@4.0.2: + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz} + name: kdbush + version: 4.0.2 + dev: false + + registry.npmmirror.com/kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz} + name: kind-of + version: 3.2.2 + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: registry.npmmirror.com/is-buffer@1.1.6 + dev: false + + registry.npmmirror.com/kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} + name: kind-of + version: 6.0.3 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/lazy-cache@1.0.4: + resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz} + name: lazy-cache + version: 1.0.4 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/less-loader@11.1.3(less@4.2.0)(webpack@5.88.2): resolution: {integrity: sha512-A5b7O8dH9xpxvkosNrP0dFp2i/dISOJa9WwGF3WJflfqIERE2ybxh1BFDj5CovC2+jCE4M354mk90hN6ziXlVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less-loader/-/less-loader-11.1.3.tgz} id: registry.npmmirror.com/less-loader/11.1.3 @@ -5646,6 +8268,12 @@ packages: engines: {node: '>=6.11.5'} dev: true + registry.npmmirror.com/lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz} + name: lodash-es + version: 4.17.21 + dev: false + registry.npmmirror.com/lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} name: lodash.camelcase @@ -5693,6 +8321,22 @@ packages: name: lodash version: 4.17.21 + registry.npmmirror.com/longest@1.0.1: + resolution: {integrity: sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz} + name: longest + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} + name: loose-envify + version: 1.4.0 + hasBin: true + dependencies: + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + registry.npmmirror.com/make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} name: make-dir @@ -5705,6 +8349,95 @@ packages: dev: true optional: true + registry.npmmirror.com/mana-common@0.3.2: + resolution: {integrity: sha512-1oylLR9CcyshQcTiBdM96HxIoaA413eudpo1INiOCwyZE554TDJNUD0zrIjmeBvw8CBAjukzaAHn2gn0hZphIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mana-common/-/mana-common-0.3.2.tgz} + name: mana-common + version: 0.3.2 + dev: false + + registry.npmmirror.com/mana-syringe@0.2.2: + resolution: {integrity: sha512-Sv5r0/PrQRq4pW+9lDicGsEPzPLkd1PwjTs5zHUV1I293S3alkBNyuSjktVeBploofH8MAMLd4DS2crwct48wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mana-syringe/-/mana-syringe-0.2.2.tgz} + name: mana-syringe + version: 0.2.2 + dependencies: + inversify: registry.npmmirror.com/inversify@5.1.1 + dev: false + + registry.npmmirror.com/mapbox-gl@1.13.3: + resolution: {integrity: sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mapbox-gl/-/mapbox-gl-1.13.3.tgz} + name: mapbox-gl + version: 1.13.3 + engines: {node: '>=6.4.0'} + dependencies: + '@mapbox/geojson-rewind': registry.npmmirror.com/@mapbox/geojson-rewind@0.5.2 + '@mapbox/geojson-types': registry.npmmirror.com/@mapbox/geojson-types@1.0.2 + '@mapbox/jsonlint-lines-primitives': registry.npmmirror.com/@mapbox/jsonlint-lines-primitives@2.0.2 + '@mapbox/mapbox-gl-supported': registry.npmmirror.com/@mapbox/mapbox-gl-supported@1.5.0(mapbox-gl@1.13.3) + '@mapbox/point-geometry': registry.npmmirror.com/@mapbox/point-geometry@0.1.0 + '@mapbox/tiny-sdf': registry.npmmirror.com/@mapbox/tiny-sdf@1.2.5 + '@mapbox/unitbezier': registry.npmmirror.com/@mapbox/unitbezier@0.0.0 + '@mapbox/vector-tile': registry.npmmirror.com/@mapbox/vector-tile@1.3.1 + '@mapbox/whoots-js': registry.npmmirror.com/@mapbox/whoots-js@3.1.0 + csscolorparser: registry.npmmirror.com/csscolorparser@1.0.3 + earcut: registry.npmmirror.com/earcut@2.2.4 + geojson-vt: registry.npmmirror.com/geojson-vt@3.2.1 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + grid-index: registry.npmmirror.com/grid-index@1.1.0 + murmurhash-js: registry.npmmirror.com/murmurhash-js@1.0.0 + pbf: registry.npmmirror.com/pbf@3.2.1 + potpack: registry.npmmirror.com/potpack@1.0.2 + quickselect: registry.npmmirror.com/quickselect@2.0.0 + rw: registry.npmmirror.com/rw@1.3.3 + supercluster: registry.npmmirror.com/supercluster@7.1.5 + tinyqueue: registry.npmmirror.com/tinyqueue@2.0.3 + vt-pbf: registry.npmmirror.com/vt-pbf@3.1.3 + dev: false + + registry.npmmirror.com/maplibre-gl@3.6.2: + resolution: {integrity: sha512-krg2KFIdOpLPngONDhP6ixCoWl5kbdMINP0moMSJFVX7wX1Clm2M9hlNKXS8vBGlVWwR5R3ZfI6IPrYz7c+aCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/maplibre-gl/-/maplibre-gl-3.6.2.tgz} + name: maplibre-gl + version: 3.6.2 + engines: {node: '>=16.14.0', npm: '>=8.1.0'} + dependencies: + '@mapbox/geojson-rewind': registry.npmmirror.com/@mapbox/geojson-rewind@0.5.2 + '@mapbox/jsonlint-lines-primitives': registry.npmmirror.com/@mapbox/jsonlint-lines-primitives@2.0.2 + '@mapbox/point-geometry': registry.npmmirror.com/@mapbox/point-geometry@0.1.0 + '@mapbox/tiny-sdf': registry.npmmirror.com/@mapbox/tiny-sdf@2.0.6 + '@mapbox/unitbezier': registry.npmmirror.com/@mapbox/unitbezier@0.0.1 + '@mapbox/vector-tile': registry.npmmirror.com/@mapbox/vector-tile@1.3.1 + '@mapbox/whoots-js': registry.npmmirror.com/@mapbox/whoots-js@3.1.0 + '@maplibre/maplibre-gl-style-spec': registry.npmmirror.com/@maplibre/maplibre-gl-style-spec@19.3.3 + '@types/geojson': registry.npmmirror.com/@types/geojson@7946.0.13 + '@types/mapbox__point-geometry': registry.npmmirror.com/@types/mapbox__point-geometry@0.1.4 + '@types/mapbox__vector-tile': registry.npmmirror.com/@types/mapbox__vector-tile@1.3.4 + '@types/pbf': registry.npmmirror.com/@types/pbf@3.0.5 + '@types/supercluster': registry.npmmirror.com/@types/supercluster@7.1.3 + earcut: registry.npmmirror.com/earcut@2.2.4 + geojson-vt: registry.npmmirror.com/geojson-vt@3.2.1 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + global-prefix: registry.npmmirror.com/global-prefix@3.0.0 + kdbush: registry.npmmirror.com/kdbush@4.0.2 + murmurhash-js: registry.npmmirror.com/murmurhash-js@1.0.0 + pbf: registry.npmmirror.com/pbf@3.2.1 + potpack: registry.npmmirror.com/potpack@2.0.0 + quickselect: registry.npmmirror.com/quickselect@2.0.0 + supercluster: registry.npmmirror.com/supercluster@8.0.1 + tinyqueue: registry.npmmirror.com/tinyqueue@2.0.3 + vt-pbf: registry.npmmirror.com/vt-pbf@3.1.3 + dev: false + + registry.npmmirror.com/material-colors@1.2.6: + resolution: {integrity: sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz} + name: material-colors + version: 1.2.6 + dev: false + + registry.npmmirror.com/mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz} + name: mdn-data + version: 2.0.14 + dev: false + registry.npmmirror.com/merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} name: merge-stream @@ -5743,6 +8476,102 @@ packages: dev: true optional: true + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: false + + registry.npmmirror.com/minimist@1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz} + name: minimist + version: 1.2.6 + dev: false + + registry.npmmirror.com/minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + dev: false + + registry.npmmirror.com/ml-array-max@1.2.4: + resolution: {integrity: sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ml-array-max/-/ml-array-max-1.2.4.tgz} + name: ml-array-max + version: 1.2.4 + dependencies: + is-any-array: registry.npmmirror.com/is-any-array@2.0.1 + dev: false + + registry.npmmirror.com/ml-array-min@1.2.3: + resolution: {integrity: sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ml-array-min/-/ml-array-min-1.2.3.tgz} + name: ml-array-min + version: 1.2.3 + dependencies: + is-any-array: registry.npmmirror.com/is-any-array@2.0.1 + dev: false + + registry.npmmirror.com/ml-array-rescale@1.3.7: + resolution: {integrity: sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz} + name: ml-array-rescale + version: 1.3.7 + dependencies: + is-any-array: registry.npmmirror.com/is-any-array@2.0.1 + ml-array-max: registry.npmmirror.com/ml-array-max@1.2.4 + ml-array-min: registry.npmmirror.com/ml-array-min@1.2.3 + dev: false + + registry.npmmirror.com/ml-matrix@6.11.0: + resolution: {integrity: sha512-7jr9NmFRkaUxbKslfRu3aZOjJd2LkSitCGv+QH9PF0eJoEG7jIpjXra1Vw8/kgao8+kHCSsJONG6vfWmXQ+/Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.11.0.tgz} + name: ml-matrix + version: 6.11.0 + dependencies: + is-any-array: registry.npmmirror.com/is-any-array@2.0.1 + ml-array-rescale: registry.npmmirror.com/ml-array-rescale@1.3.7 + dev: false + + registry.npmmirror.com/ml-matrix@6.5.0: + resolution: {integrity: sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.5.0.tgz} + name: ml-matrix + version: 6.5.0 + dependencies: + ml-array-rescale: registry.npmmirror.com/ml-array-rescale@1.3.7 + dev: false + + registry.npmmirror.com/mock-property@1.0.3: + resolution: {integrity: sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mock-property/-/mock-property-1.0.3.tgz} + name: mock-property + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + hasown: registry.npmmirror.com/hasown@2.0.0 + isarray: registry.npmmirror.com/isarray@2.0.5 + dev: false + + registry.npmmirror.com/moment@2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz} + name: moment + version: 2.29.4 + dev: false + + registry.npmmirror.com/mousetrap@1.6.5: + resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz} + name: mousetrap + version: 1.6.5 + dev: false + + registry.npmmirror.com/mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz} + name: mrmime + version: 1.0.1 + engines: {node: '>=10'} + dev: false + registry.npmmirror.com/ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} name: ms @@ -5751,12 +8580,39 @@ packages: dev: true optional: true + registry.npmmirror.com/murmurhash-js@1.0.0: + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/murmurhash-js/-/murmurhash-js-1.0.0.tgz} + name: murmurhash-js + version: 1.0.0 + dev: false + registry.npmmirror.com/namespace-emitter@2.0.1: resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz} name: namespace-emitter version: 2.0.1 dev: false + registry.npmmirror.com/nano-css@5.6.1(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nano-css/-/nano-css-5.6.1.tgz} + id: registry.npmmirror.com/nano-css/5.6.1 + name: nano-css + version: 5.6.1 + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + css-tree: registry.npmmirror.com/css-tree@1.1.3 + csstype: registry.npmmirror.com/csstype@3.1.3 + fastest-stable-stringify: registry.npmmirror.com/fastest-stable-stringify@2.0.2 + inline-style-prefixer: registry.npmmirror.com/inline-style-prefixer@7.0.0 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + rtl-css-js: registry.npmmirror.com/rtl-css-js@1.16.1 + stacktrace-js: registry.npmmirror.com/stacktrace-js@2.0.2 + stylis: registry.npmmirror.com/stylis@4.3.0 + dev: false + registry.npmmirror.com/nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz} name: nanoid @@ -5805,6 +8661,69 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} + name: object-inspect + version: 1.12.3 + dev: false + + registry.npmmirror.com/object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz} + name: object-inspect + version: 1.13.1 + dev: false + + registry.npmmirror.com/object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz} + name: object-is + version: 1.1.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.1.4 + dev: false + + registry.npmmirror.com/object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz} + name: object.assign + version: 4.1.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: false + + registry.npmmirror.com/opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz} + name: opener + version: 1.5.2 + hasBin: true + dev: false + registry.npmmirror.com/parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz} name: parse-node-version @@ -5812,11 +8731,39 @@ packages: engines: {node: '>= 0.10'} dev: true + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: false + + registry.npmmirror.com/pbf@3.2.1: + resolution: {integrity: sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbf/-/pbf-3.2.1.tgz} + name: pbf + version: 3.2.1 + hasBin: true + dependencies: + ieee754: registry.npmmirror.com/ieee754@1.2.1 + resolve-protobuf-schema: registry.npmmirror.com/resolve-protobuf-schema@2.1.0 + dev: false + + registry.npmmirror.com/pdfast@0.2.0: + resolution: {integrity: sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pdfast/-/pdfast-0.2.0.tgz} + name: pdfast + version: 0.2.0 + dev: false + registry.npmmirror.com/picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} name: picocolors version: 1.0.0 - dev: true registry.npmmirror.com/pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz} @@ -5827,6 +8774,30 @@ packages: dev: true optional: true + registry.npmmirror.com/polygon-clipping@0.15.5: + resolution: {integrity: sha512-a1D0gSpnzO2IC4jFoW5KklPU6gto0DMIuZJlUBANugoTuGwtvGrSMPd7y+dVaaY9gjgaputMLjihzaQciKm7qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/polygon-clipping/-/polygon-clipping-0.15.5.tgz} + name: polygon-clipping + version: 0.15.5 + dependencies: + splaytree: registry.npmmirror.com/splaytree@3.1.2 + dev: false + + registry.npmmirror.com/polyline-miter-util@1.0.1: + resolution: {integrity: sha512-/3u91zz6mBerBZo6qnOJOTjv7EfPhKtsV028jMyj86YpzLRNmCCFfrX7IO9tCEQ2W4x45yc+vKOezjf7u2Nd6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/polyline-miter-util/-/polyline-miter-util-1.0.1.tgz} + name: polyline-miter-util + version: 1.0.1 + dependencies: + gl-vec2: registry.npmmirror.com/gl-vec2@1.3.0 + dev: false + + registry.npmmirror.com/polyline-normals@2.0.2: + resolution: {integrity: sha512-dpHrAi61ymhsB4N0XlNb3YpkKJeTFnXBXDWpeH8Ucstq0TUZrCN3YK4Jlgk8ofMWN25lhGC4wnxLMv+TUK8rig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/polyline-normals/-/polyline-normals-2.0.2.tgz} + name: polyline-normals + version: 2.0.2 + dependencies: + polyline-miter-util: registry.npmmirror.com/polyline-miter-util@1.0.1 + dev: false + registry.npmmirror.com/postcss-attribute-case-insensitive@6.0.2(postcss@8.4.31): resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-6.0.2.tgz} id: registry.npmmirror.com/postcss-attribute-case-insensitive/6.0.2 @@ -6265,6 +9236,18 @@ packages: source-map-js: registry.npmmirror.com/source-map-js@1.0.2 dev: true + registry.npmmirror.com/potpack@1.0.2: + resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/potpack/-/potpack-1.0.2.tgz} + name: potpack + version: 1.0.2 + dev: false + + registry.npmmirror.com/potpack@2.0.0: + resolution: {integrity: sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/potpack/-/potpack-2.0.0.tgz} + name: potpack + version: 2.0.0 + dev: false + registry.npmmirror.com/preact@10.18.1: resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/preact/-/preact-10.18.1.tgz} name: preact @@ -6286,6 +9269,33 @@ packages: engines: {node: '>=6'} dev: false + registry.npmmirror.com/probe.gl@3.6.0: + resolution: {integrity: sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/probe.gl/-/probe.gl-3.6.0.tgz} + name: probe.gl + version: 3.6.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + '@probe.gl/env': registry.npmmirror.com/@probe.gl/env@3.6.0 + '@probe.gl/log': registry.npmmirror.com/@probe.gl/log@3.6.0 + '@probe.gl/stats': registry.npmmirror.com/@probe.gl/stats@3.6.0 + dev: false + + registry.npmmirror.com/prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz} + name: prop-types + version: 15.8.1 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/protocol-buffers-schema@3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz} + name: protocol-buffers-schema + version: 3.6.0 + dev: false + registry.npmmirror.com/proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz} name: proxy-from-env @@ -6311,7 +9321,6 @@ packages: name: punycode version: 2.1.1 engines: {node: '>=6'} - dev: true registry.npmmirror.com/qrcode.react@3.1.0(react@18.1.0): resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qrcode.react/-/qrcode.react-3.1.0.tgz} @@ -6324,6 +9333,12 @@ packages: react: 18.1.0 dev: false + registry.npmmirror.com/quickselect@2.0.0: + resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz} + name: quickselect + version: 2.0.0 + dev: false + registry.npmmirror.com/randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} name: randombytes @@ -6438,6 +9453,23 @@ packages: react-dom: 18.1.0(react@18.1.0) dev: false + registry.npmmirror.com/rc-dropdown@3.6.2(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-Wsw7GkVbUXADEs8FPL0v8gd+3mWQiydPFXBlr2imMScQaf8hh79pG9KrBc1DwK+nqHmYOpQfK2gn6jG2AQw9Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-3.6.2.tgz} + id: registry.npmmirror.com/rc-dropdown/3.6.2 + name: rc-dropdown + version: 3.6.2 + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-trigger: registry.npmmirror.com/rc-trigger@5.3.4(react-dom@18.1.0)(react@18.1.0) + rc-util: registry.npmmirror.com/rc-util@5.37.0(react-dom@18.1.0)(react@18.1.0) + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + dev: false + registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.1.0.tgz} id: registry.npmmirror.com/rc-dropdown/4.1.0 @@ -6913,6 +9945,25 @@ packages: react-dom: 18.1.0(react@18.1.0) dev: false + registry.npmmirror.com/rc-trigger@5.3.4(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-trigger/-/rc-trigger-5.3.4.tgz} + id: registry.npmmirror.com/rc-trigger/5.3.4 + name: rc-trigger + version: 5.3.4 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-align: registry.npmmirror.com/rc-align@4.0.15(react-dom@18.1.0)(react@18.1.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.1.0)(react@18.1.0) + rc-util: registry.npmmirror.com/rc-util@5.37.0(react-dom@18.1.0)(react@18.1.0) + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + dev: false + registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.5.tgz} id: registry.npmmirror.com/rc-upload/4.3.5 @@ -6929,6 +9980,18 @@ packages: react-dom: 18.1.0(react@18.1.0) dev: false + registry.npmmirror.com/rc-util@4.21.1: + resolution: {integrity: sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-util/-/rc-util-4.21.1.tgz} + name: rc-util + version: 4.21.1 + dependencies: + add-dom-event-listener: registry.npmmirror.com/add-dom-event-listener@1.1.0 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react-is: registry.npmmirror.com/react-is@16.13.1 + react-lifecycles-compat: registry.npmmirror.com/react-lifecycles-compat@3.0.4 + shallowequal: registry.npmmirror.com/shallowequal@1.1.0 + dev: false + registry.npmmirror.com/rc-util@5.37.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-util/-/rc-util-5.37.0.tgz} id: registry.npmmirror.com/rc-util/5.37.0 @@ -6962,6 +10025,52 @@ packages: react-dom: 18.1.0(react@18.1.0) dev: false + registry.npmmirror.com/react-color@2.17.1(react@18.1.0): + resolution: {integrity: sha512-S+I6TkUKJaqfALLkAIfiCZ/MANQyy7dKkf7g9ZU5GTUy2rf8c2Rx62otyvADAviWR+6HRkzdf2vL1Qvz9goCLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-color/-/react-color-2.17.1.tgz} + id: registry.npmmirror.com/react-color/2.17.1 + name: react-color + version: 2.17.1 + peerDependencies: + react: '*' + dependencies: + '@icons/material': registry.npmmirror.com/@icons/material@0.2.4(react@18.1.0) + lodash: registry.npmmirror.com/lodash@4.17.21 + material-colors: registry.npmmirror.com/material-colors@1.2.6 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.1.0 + reactcss: registry.npmmirror.com/reactcss@1.2.3(react@18.1.0) + tinycolor2: registry.npmmirror.com/tinycolor2@1.6.0 + dev: false + + registry.npmmirror.com/react-color@2.17.3(react@18.1.0): + resolution: {integrity: sha512-1dtO8LqAVotPIChlmo6kLtFS1FP89ll8/OiA8EcFRDR+ntcK+0ukJgByuIQHRtzvigf26dV5HklnxDIvhON9VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-color/-/react-color-2.17.3.tgz} + id: registry.npmmirror.com/react-color/2.17.3 + name: react-color + version: 2.17.3 + peerDependencies: + react: '*' + dependencies: + '@icons/material': registry.npmmirror.com/@icons/material@0.2.4(react@18.1.0) + lodash: registry.npmmirror.com/lodash@4.17.21 + material-colors: registry.npmmirror.com/material-colors@1.2.6 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.1.0 + reactcss: registry.npmmirror.com/reactcss@1.2.3(react@18.1.0) + tinycolor2: registry.npmmirror.com/tinycolor2@1.6.0 + dev: false + + registry.npmmirror.com/react-content-loader@5.1.4(react@18.1.0): + resolution: {integrity: sha512-hTq7pZi2GKCK6a9d3u6XStozm0QGCEjw8cSqQReiWnh2up6IwCha5R5TF0o6SY5qUDpByloEZEZtnFxpJyENFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-content-loader/-/react-content-loader-5.1.4.tgz} + id: registry.npmmirror.com/react-content-loader/5.1.4 + name: react-content-loader + version: 5.1.4 + engines: {node: '>=10'} + peerDependencies: + react: '>=16.0.0' + dependencies: + react: 18.1.0 + dev: false + registry.npmmirror.com/react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} name: react-is @@ -6974,6 +10083,12 @@ packages: version: 18.2.0 dev: false + registry.npmmirror.com/react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz} + name: react-lifecycles-compat + version: 3.0.4 + dev: false + registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.0.5)(@types/react@18.0.9)(react-dom@18.1.0)(react@18.1.0)(redux@4.2.1): resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-redux/-/react-redux-8.1.3.tgz} id: registry.npmmirror.com/react-redux/8.1.3 @@ -7011,6 +10126,20 @@ packages: use-sync-external-store: registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.1.0) dev: false + registry.npmmirror.com/react-resize-detector@7.1.2(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-zXnPJ2m8+6oq9Nn8zsep/orts9vQv3elrpA+R8XTcW7DVVUJ9vwDwMXaBtykAYjMnkCIaOoK9vObyR7ZgFNlOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resize-detector/-/react-resize-detector-7.1.2.tgz} + id: registry.npmmirror.com/react-resize-detector/7.1.2 + name: react-resize-detector + version: 7.1.2 + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + dev: false + registry.npmmirror.com/react-router-dom@6.16.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.16.0.tgz} id: registry.npmmirror.com/react-router-dom/6.16.0 @@ -7040,6 +10169,58 @@ packages: react: 18.1.0 dev: false + registry.npmmirror.com/react-universal-interface@0.6.2(react@18.1.0)(tslib@2.6.2): + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz} + id: registry.npmmirror.com/react-universal-interface/0.6.2 + name: react-universal-interface + version: 0.6.2 + peerDependencies: + react: '*' + tslib: '*' + dependencies: + react: 18.1.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/react-use@17.3.1(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-hs7+tS4rRm1QLHPfanLCqXIi632tP4V7Sai1ENUP2WTufU6am++tU9uSw9YrNCFqbABiEv0ndKU1XCUcfu2tXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-use/-/react-use-17.3.1.tgz} + id: registry.npmmirror.com/react-use/17.3.1 + name: react-use + version: 17.3.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + dependencies: + '@types/js-cookie': registry.npmmirror.com/@types/js-cookie@2.2.7 + '@xobotyi/scrollbar-width': registry.npmmirror.com/@xobotyi/scrollbar-width@1.9.5 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-shallow-equal: registry.npmmirror.com/fast-shallow-equal@1.0.0 + js-cookie: registry.npmmirror.com/js-cookie@2.2.1 + nano-css: registry.npmmirror.com/nano-css@5.6.1(react-dom@18.1.0)(react@18.1.0) + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + react-universal-interface: registry.npmmirror.com/react-universal-interface@0.6.2(react@18.1.0)(tslib@2.6.2) + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + screenfull: registry.npmmirror.com/screenfull@5.2.0 + set-harmonic-interval: registry.npmmirror.com/set-harmonic-interval@1.0.1 + throttle-debounce: registry.npmmirror.com/throttle-debounce@3.0.1 + ts-easing: registry.npmmirror.com/ts-easing@0.2.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/reactcss@1.2.3(react@18.1.0): + resolution: {integrity: sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reactcss/-/reactcss-1.2.3.tgz} + id: registry.npmmirror.com/reactcss/1.2.3 + name: reactcss + version: 1.2.3 + peerDependencies: + react: '*' + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.1.0 + dev: false + registry.npmmirror.com/redux-thunk@2.4.2(redux@4.2.1): resolution: {integrity: sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redux-thunk/-/redux-thunk-2.4.2.tgz} id: registry.npmmirror.com/redux-thunk/2.4.2 @@ -7059,12 +10240,48 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 dev: false + registry.npmmirror.com/reflect-metadata@0.1.14: + resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.14.tgz} + name: reflect-metadata + version: 0.1.14 + dev: false + registry.npmmirror.com/regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} name: regenerator-runtime version: 0.14.0 dev: false + registry.npmmirror.com/regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} + name: regexp.prototype.flags + version: 1.5.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + dev: false + + registry.npmmirror.com/regl@1.6.1: + resolution: {integrity: sha512-7Z9rmpEqmLNwC9kCYCyfyu47eWZaQWeNpwZfwz99QueXN8B/Ow40DB0N+OeUeM/yu9pZAB01+JgJ+XghGveVoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regl/-/regl-1.6.1.tgz} + name: regl + version: 1.6.1 + dev: false + + registry.npmmirror.com/regl@1.7.0: + resolution: {integrity: sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regl/-/regl-1.7.0.tgz} + name: regl + version: 1.7.0 + dev: false + + registry.npmmirror.com/repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz} + name: repeat-string + version: 1.6.1 + engines: {node: '>=0.10'} + dev: false + registry.npmmirror.com/reselect@4.1.8: resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reselect/-/reselect-4.1.8.tgz} name: reselect @@ -7077,6 +10294,45 @@ packages: version: 1.5.1 dev: false + registry.npmmirror.com/resolve-protobuf-schema@2.1.0: + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz} + name: resolve-protobuf-schema + version: 2.1.0 + dependencies: + protocol-buffers-schema: registry.npmmirror.com/protocol-buffers-schema@3.6.0 + dev: false + + registry.npmmirror.com/resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz} + name: resolve + version: 1.22.8 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: false + + registry.npmmirror.com/right-align@0.1.3: + resolution: {integrity: sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/right-align/-/right-align-0.1.3.tgz} + name: right-align + version: 0.1.3 + engines: {node: '>=0.10.0'} + dependencies: + align-text: registry.npmmirror.com/align-text@0.1.4 + dev: false + + registry.npmmirror.com/rollup@0.25.8: + resolution: {integrity: sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-0.25.8.tgz} + name: rollup + version: 0.25.8 + hasBin: true + dependencies: + chalk: registry.npmmirror.com/chalk@1.1.3 + minimist: registry.npmmirror.com/minimist@1.2.6 + source-map-support: registry.npmmirror.com/source-map-support@0.3.3 + dev: false + registry.npmmirror.com/rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz} name: rollup @@ -7087,19 +10343,62 @@ packages: fsevents: registry.npmmirror.com/fsevents@2.3.3 dev: true + registry.npmmirror.com/rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz} + name: rtl-css-js + version: 1.16.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + dev: false + + registry.npmmirror.com/rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz} + name: rw + version: 1.3.3 + dev: false + + registry.npmmirror.com/rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz} + name: rxjs + version: 6.6.7 + engines: {npm: '>=2.0.0'} + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + dev: false + + registry.npmmirror.com/safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz} + name: safe-array-concat + version: 1.0.1 + engines: {node: '>=0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + isarray: registry.npmmirror.com/isarray@2.0.5 + dev: false + registry.npmmirror.com/safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} name: safe-buffer version: 5.2.1 dev: true + registry.npmmirror.com/safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + name: safe-regex-test + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + dev: false + registry.npmmirror.com/safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} name: safer-buffer version: 2.1.2 requiresBuild: true - dev: true - optional: true registry.npmmirror.com/sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz} @@ -7120,6 +10419,13 @@ packages: ajv-keywords: registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6) dev: true + registry.npmmirror.com/screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz} + name: screenfull + version: 5.2.0 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/scroll-into-view-if-needed@2.2.31: resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz} name: scroll-into-view-if-needed @@ -7153,6 +10459,89 @@ packages: randombytes: registry.npmmirror.com/randombytes@2.1.0 dev: true + registry.npmmirror.com/set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz} + name: set-function-length + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + dev: false + + registry.npmmirror.com/set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz} + name: set-function-name + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + dev: false + + registry.npmmirror.com/set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz} + name: set-harmonic-interval + version: 1.0.1 + engines: {node: '>=6.9'} + dev: false + + registry.npmmirror.com/set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz} + name: set-value + version: 2.0.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 + split-string: registry.npmmirror.com/split-string@3.1.0 + dev: false + + registry.npmmirror.com/shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz} + name: shallowequal + version: 1.1.0 + dev: false + + registry.npmmirror.com/side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + dev: false + + registry.npmmirror.com/simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz} + name: simple-swizzle + version: 0.2.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.3.2 + dev: false + + registry.npmmirror.com/sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sirv/-/sirv-2.0.3.tgz} + name: sirv + version: 2.0.3 + engines: {node: '>= 10'} + dependencies: + '@polka/url': registry.npmmirror.com/@polka/url@1.0.0-next.24 + mrmime: registry.npmmirror.com/mrmime@1.0.1 + totalist: registry.npmmirror.com/totalist@3.0.1 + dev: false + + registry.npmmirror.com/size-sensor@1.0.2: + resolution: {integrity: sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/size-sensor/-/size-sensor-1.0.2.tgz} + name: size-sensor + version: 1.0.2 + dev: false + registry.npmmirror.com/slate-history@0.66.0(slate@0.72.8): resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz} id: registry.npmmirror.com/slate-history/0.66.0 @@ -7182,6 +10571,34 @@ packages: engines: {node: '>=8.3.0'} dev: false + registry.npmmirror.com/sort-asc@0.2.0: + resolution: {integrity: sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-asc/-/sort-asc-0.2.0.tgz} + name: sort-asc + version: 0.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/sort-desc@0.2.0: + resolution: {integrity: sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-desc/-/sort-desc-0.2.0.tgz} + name: sort-desc + version: 0.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/sort-object@3.0.3: + resolution: {integrity: sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-object/-/sort-object-3.0.3.tgz} + name: sort-object + version: 3.0.3 + engines: {node: '>=0.10.0'} + dependencies: + bytewise: registry.npmmirror.com/bytewise@1.1.0 + get-value: registry.npmmirror.com/get-value@2.0.6 + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + sort-asc: registry.npmmirror.com/sort-asc@0.2.0 + sort-desc: registry.npmmirror.com/sort-desc@0.2.0 + union-value: registry.npmmirror.com/union-value@1.0.1 + dev: false + registry.npmmirror.com/source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} name: source-map-js @@ -7189,6 +10606,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/source-map-support@0.3.3: + resolution: {integrity: sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.3.3.tgz} + name: source-map-support + version: 0.3.3 + dependencies: + source-map: registry.npmmirror.com/source-map@0.1.32 + dev: false + registry.npmmirror.com/source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} name: source-map-support @@ -7198,12 +10623,49 @@ packages: source-map: registry.npmmirror.com/source-map@0.6.1 dev: true + registry.npmmirror.com/source-map@0.1.32: + resolution: {integrity: sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz} + name: source-map + version: 0.1.32 + engines: {node: '>=0.8.0'} + dependencies: + amdefine: registry.npmmirror.com/amdefine@1.0.1 + dev: false + + registry.npmmirror.com/source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz} + name: source-map + version: 0.5.6 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} + name: source-map + version: 0.5.7 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} name: source-map version: 0.6.1 engines: {node: '>=0.10.0'} - dev: true + + registry.npmmirror.com/splaytree@3.1.2: + resolution: {integrity: sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/splaytree/-/splaytree-3.1.2.tgz} + name: splaytree + version: 3.1.2 + dev: false + + registry.npmmirror.com/split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz} + name: split-string + version: 3.1.0 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@3.0.2 + dev: false registry.npmmirror.com/ssr-window@3.0.0: resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz} @@ -7211,18 +10673,114 @@ packages: version: 3.0.0 dev: false + registry.npmmirror.com/stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stack-generator/-/stack-generator-2.0.10.tgz} + name: stack-generator + version: 2.0.10 + dependencies: + stackframe: registry.npmmirror.com/stackframe@1.3.4 + dev: false + + registry.npmmirror.com/stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz} + name: stackframe + version: 1.3.4 + dev: false + + registry.npmmirror.com/stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz} + name: stacktrace-gps + version: 3.1.2 + dependencies: + source-map: registry.npmmirror.com/source-map@0.5.6 + stackframe: registry.npmmirror.com/stackframe@1.3.4 + dev: false + + registry.npmmirror.com/stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz} + name: stacktrace-js + version: 2.0.2 + dependencies: + error-stack-parser: registry.npmmirror.com/error-stack-parser@2.1.4 + stack-generator: registry.npmmirror.com/stack-generator@2.0.10 + stacktrace-gps: registry.npmmirror.com/stacktrace-gps@3.1.2 + dev: false + registry.npmmirror.com/string-convert@0.2.1: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz} name: string-convert version: 0.2.1 dev: false + registry.npmmirror.com/string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz} + name: string.prototype.trim + version: 1.2.8 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz} + name: string.prototype.trimend + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz} + name: string.prototype.trimstart + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz} + name: strip-ansi + version: 3.0.1 + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: false + registry.npmmirror.com/stylis@4.3.0: resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} name: stylis version: 4.3.0 dev: false + registry.npmmirror.com/supercluster@7.1.5: + resolution: {integrity: sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supercluster/-/supercluster-7.1.5.tgz} + name: supercluster + version: 7.1.5 + dependencies: + kdbush: registry.npmmirror.com/kdbush@3.0.0 + dev: false + + registry.npmmirror.com/supercluster@8.0.1: + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supercluster/-/supercluster-8.0.1.tgz} + name: supercluster + version: 8.0.1 + dependencies: + kdbush: registry.npmmirror.com/kdbush@4.0.2 + dev: false + + registry.npmmirror.com/supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz} + name: supports-color + version: 2.0.0 + engines: {node: '>=0.8.0'} + dev: false + registry.npmmirror.com/supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} name: supports-color @@ -7232,6 +10790,13 @@ packages: has-flag: registry.npmmirror.com/has-flag@4.0.0 dev: true + registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: false + registry.npmmirror.com/swiper@11.0.4: resolution: {integrity: sha512-qtUxILrD4aD++rpKzGrkz3IAWL92f9uTrDwjb6HaNLmPvJhZCE/83DL+9w4kIgDDJeF6QKalV47rMBN77UOVYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/swiper/-/swiper-11.0.4.tgz} name: swiper @@ -7246,6 +10811,30 @@ packages: engines: {node: '>=6'} dev: true + registry.npmmirror.com/tape@4.17.0: + resolution: {integrity: sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tape/-/tape-4.17.0.tgz} + name: tape + version: 4.17.0 + hasBin: true + dependencies: + '@ljharb/resumer': registry.npmmirror.com/@ljharb/resumer@0.0.1 + '@ljharb/through': registry.npmmirror.com/@ljharb/through@2.3.11 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + deep-equal: registry.npmmirror.com/deep-equal@1.1.2 + defined: registry.npmmirror.com/defined@1.0.1 + dotignore: registry.npmmirror.com/dotignore@0.1.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + glob: registry.npmmirror.com/glob@7.2.3 + has: registry.npmmirror.com/has@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + minimist: registry.npmmirror.com/minimist@1.2.8 + mock-property: registry.npmmirror.com/mock-property@1.0.3 + object-inspect: registry.npmmirror.com/object-inspect@1.12.3 + resolve: registry.npmmirror.com/resolve@1.22.8 + string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.8 + dev: false + registry.npmmirror.com/terser-webpack-plugin@5.3.9(webpack@5.88.2): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz} id: registry.npmmirror.com/terser-webpack-plugin/5.3.9 @@ -7286,6 +10875,13 @@ packages: source-map-support: registry.npmmirror.com/source-map-support@0.5.21 dev: true + registry.npmmirror.com/throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz} + name: throttle-debounce + version: 3.0.1 + engines: {node: '>=10'} + dev: false + registry.npmmirror.com/throttle-debounce@5.0.0: resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz} name: throttle-debounce @@ -7299,12 +10895,58 @@ packages: version: 1.0.3 dev: false + registry.npmmirror.com/tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz} + name: tinycolor2 + version: 1.6.0 + dev: false + + registry.npmmirror.com/tinyqueue@2.0.3: + resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tinyqueue/-/tinyqueue-2.0.3.tgz} + name: tinyqueue + version: 2.0.3 + dev: false + registry.npmmirror.com/toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} name: toggle-selection version: 1.0.6 dev: false + registry.npmmirror.com/topojson-client@3.1.0: + resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz} + name: topojson-client + version: 3.1.0 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander@2.20.3 + dev: false + + registry.npmmirror.com/toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toposort/-/toposort-2.0.2.tgz} + name: toposort + version: 2.0.2 + dev: false + + registry.npmmirror.com/totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz} + name: totalist + version: 3.0.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-easing/-/ts-easing-0.2.0.tgz} + name: ts-easing + version: 0.2.0 + dev: false + + registry.npmmirror.com/tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: false + registry.npmmirror.com/tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz} name: tslib @@ -7322,6 +10964,116 @@ packages: version: 2.7.2 dev: false + registry.npmmirror.com/typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} + name: typed-array-buffer + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} + name: typed-array-byte-length + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} + name: typed-array-byte-offset + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + name: typed-array-length + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typewise-core@1.2.0: + resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typewise-core/-/typewise-core-1.2.0.tgz} + name: typewise-core + version: 1.2.0 + dev: false + + registry.npmmirror.com/typewise@1.0.3: + resolution: {integrity: sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typewise/-/typewise-1.0.3.tgz} + name: typewise + version: 1.0.3 + dependencies: + typewise-core: registry.npmmirror.com/typewise-core@1.2.0 + dev: false + + registry.npmmirror.com/ua-parser-js@0.7.37: + resolution: {integrity: sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ua-parser-js/-/ua-parser-js-0.7.37.tgz} + name: ua-parser-js + version: 0.7.37 + dev: false + + registry.npmmirror.com/uglify-js@2.8.29: + resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz} + name: uglify-js + version: 2.8.29 + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + source-map: registry.npmmirror.com/source-map@0.5.7 + yargs: registry.npmmirror.com/yargs@3.10.0 + optionalDependencies: + uglify-to-browserify: registry.npmmirror.com/uglify-to-browserify@1.0.2 + dev: false + + registry.npmmirror.com/uglify-to-browserify@1.0.2: + resolution: {integrity: sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz} + name: uglify-to-browserify + version: 1.0.2 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + name: unbox-primitive + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + dev: false + + registry.npmmirror.com/union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz} + name: union-value + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + arr-union: registry.npmmirror.com/arr-union@3.1.0 + get-value: registry.npmmirror.com/get-value@2.0.6 + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + set-value: registry.npmmirror.com/set-value@2.0.1 + dev: false + registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz} id: registry.npmmirror.com/update-browserslist-db/1.0.13 @@ -7342,7 +11094,6 @@ packages: version: 4.4.1 dependencies: punycode: registry.npmmirror.com/punycode@2.1.1 - dev: true registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.1.0): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz} @@ -7361,6 +11112,22 @@ packages: version: 1.0.2 dev: true + registry.npmmirror.com/utility-types@3.10.0: + resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utility-types/-/utility-types-3.10.0.tgz} + name: utility-types + version: 3.10.0 + engines: {node: '>= 4'} + dev: false + + registry.npmmirror.com/viewport-mercator-project@6.2.3: + resolution: {integrity: sha512-QQb0/qCLlP4DdfbHHSWVYXpghB2wkLIiiZQnoelOB59mXKQSyZVxjreq1S+gaBJFpcGkWEcyVtre0+2y2DTl/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/viewport-mercator-project/-/viewport-mercator-project-6.2.3.tgz} + name: viewport-mercator-project + version: 6.2.3 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.1 + gl-matrix: registry.npmmirror.com/gl-matrix@3.4.3 + dev: false + registry.npmmirror.com/vite@4.5.0(@types/node@17.0.36)(less@4.2.0): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz} id: registry.npmmirror.com/vite/4.5.0 @@ -7401,6 +11168,16 @@ packages: fsevents: registry.npmmirror.com/fsevents@2.3.3 dev: true + registry.npmmirror.com/vt-pbf@3.1.3: + resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vt-pbf/-/vt-pbf-3.1.3.tgz} + name: vt-pbf + version: 3.1.3 + dependencies: + '@mapbox/point-geometry': registry.npmmirror.com/@mapbox/point-geometry@0.1.0 + '@mapbox/vector-tile': registry.npmmirror.com/@mapbox/vector-tile@1.3.1 + pbf: registry.npmmirror.com/pbf@3.2.1 + dev: false + registry.npmmirror.com/wangeditor@4.7.15: resolution: {integrity: sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wangeditor/-/wangeditor-4.7.15.tgz} name: wangeditor @@ -7421,6 +11198,37 @@ packages: graceful-fs: registry.npmmirror.com/graceful-fs@4.2.10 dev: true + registry.npmmirror.com/web-worker-helper@0.0.3: + resolution: {integrity: sha512-/TllNPjGenDwjE67M16TD9ALwuY847/zIoH7r+e5rSeG4kEa3HiMTAsUDj80yzIzhtshkv215KfsnQ/RXR3nVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-worker-helper/-/web-worker-helper-0.0.3.tgz} + name: web-worker-helper + version: 0.0.3 + dev: false + + registry.npmmirror.com/webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz} + name: webpack-bundle-analyzer + version: 4.10.1 + engines: {node: '>= 10.13.0'} + hasBin: true + dependencies: + '@discoveryjs/json-ext': registry.npmmirror.com/@discoveryjs/json-ext@0.5.7 + acorn: registry.npmmirror.com/acorn@8.10.0 + acorn-walk: registry.npmmirror.com/acorn-walk@8.2.0 + commander: registry.npmmirror.com/commander@7.2.0 + debounce: registry.npmmirror.com/debounce@1.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@4.0.0 + gzip-size: registry.npmmirror.com/gzip-size@6.0.0 + html-escaper: registry.npmmirror.com/html-escaper@2.0.2 + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + opener: registry.npmmirror.com/opener@1.5.2 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + sirv: registry.npmmirror.com/sirv@2.0.3 + ws: registry.npmmirror.com/ws@7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + registry.npmmirror.com/webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} name: webpack-sources @@ -7470,8 +11278,88 @@ packages: - uglify-js dev: true + registry.npmmirror.com/which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: false + + registry.npmmirror.com/which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.13.tgz} + name: which-typed-array + version: 1.1.13 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-1.3.1.tgz} + name: which + version: 1.3.1 + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: false + registry.npmmirror.com/wildcard@1.1.2: resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz} name: wildcard version: 1.1.2 dev: false + + registry.npmmirror.com/window-size@0.1.0: + resolution: {integrity: sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz} + name: window-size + version: 0.1.0 + engines: {node: '>= 0.8.0'} + dev: false + + registry.npmmirror.com/wordwrap@0.0.2: + resolution: {integrity: sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz} + name: wordwrap + version: 0.0.2 + engines: {node: '>=0.4.0'} + dev: false + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: false + + registry.npmmirror.com/ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz} + name: ws + version: 7.5.9 + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + registry.npmmirror.com/yargs@3.10.0: + resolution: {integrity: sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/-/yargs-3.10.0.tgz} + name: yargs + version: 3.10.0 + dependencies: + camelcase: registry.npmmirror.com/camelcase@1.2.1 + cliui: registry.npmmirror.com/cliui@2.1.0 + decamelize: registry.npmmirror.com/decamelize@1.2.0 + window-size: registry.npmmirror.com/window-size@0.1.0 + dev: false diff --git a/src/App.less b/src/App.less index b09a428..7bcd923 100644 --- a/src/App.less +++ b/src/App.less @@ -2,7 +2,7 @@ .app-main { display: flex; - flex-direction: row; + flex-direction: column; border-radius: 4px; margin: 0 auto; position: absolute; @@ -12,7 +12,7 @@ right: 0; bottom: 0; background-color: #f3f4f6; - padding: 66px 16px 32px; + padding: 66px 16px 0; overflow: hidden; -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ @@ -25,5 +25,11 @@ width: 1439px; margin: 0 auto; overflow: auto; + flex-grow: 1; + } + .copyright { + height: 40px; + line-height: 40px; + text-align: center; } } diff --git a/src/App.tsx b/src/App.tsx index c9ed272..8530e0a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,11 +1,46 @@ +import req from '@utils/request' import Header from '@views/header' import { Suspense, memo, useEffect } from 'react' +import { useDispatch } from 'react-redux' import { Outlet, useLocation, useNavigate } from 'react-router-dom' +// 引入对应的方法 import './App.less' +import { saveUserInfo } from './store/features/userInfoSlice.ts' + +const apiName = { + update: '/user/update', + queryInfo: '/user/getUserInfo' +} const App = () => { + const userInfoStorage = localStorage.getItem('userInfo') + const { loginId = '' } = userInfoStorage ? JSON.parse(userInfoStorage) : {} + const dispatch = useDispatch() + const location = useLocation() const navigate = useNavigate() + + const getUserInfo = async () => { + req( + { + method: 'post', + url: apiName.queryInfo, + data: { + userName: loginId + } + }, + '/auth' + ).then(res => { + if (res?.success && res?.data) { + dispatch(saveUserInfo(res.data)) + } + }) + } + + useEffect(() => { + getUserInfo() + }, []) + useEffect(() => { if (location.pathname === '/') { const userInfoStorage = localStorage.getItem('userInfo') @@ -18,7 +53,7 @@ const App = () => { return (
{
+
+ + 京ICP备2023035579号 + +
) } diff --git a/src/components/analysis-atlas/index.jsx b/src/components/analysis-atlas/index.jsx new file mode 100644 index 0000000..066fb6c --- /dev/null +++ b/src/components/analysis-atlas/index.jsx @@ -0,0 +1,71 @@ +import { Radar } from '@ant-design/charts' +import React, { memo } from 'react' + +//atlasList 列表数据 [{name:'',star:''}] +//aliasStr 鼠标浮上去显示的框框内的别名 +//fillOpacity 填充区域的透明度 +//fill 填充区域的颜色 +//alternateColor 图形相间的颜色 +//lineColor 线的颜色 +//atlasWidth 分析图宽 +//atlasHeight 分析图长 +//atlasSpan 分析图跨度 +//atlasParag 你需要有几个圈 + +export default memo(function ({ + atlasList = [], + aliasStr, + fillOpacity = 0.2, + fill = 'rgb(60, 110, 238)', + alternateColor = 'rgba(0, 0, 0, 0.04)', + lineColor = 'rgb(60, 110, 238)', + atlasWidth = 250, + atlasHeight = 250, + atlasSpan = 25, + atlasParag = 4, + atlasMin = 0, + atlasMax = 100 +}) { + let spanList = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] + .splice(0, atlasParag + 1) + .map(item => item * atlasSpan + '') + + const config = { + data: atlasList, + xField: 'name', + yField: 'star', + width: atlasWidth, + height: atlasHeight, + appendPadding: [0, 15, 15, 15], + meta: { + star: { + alias: aliasStr, //字段别名 + min: atlasMin, + max: atlasMax, + nice: true, + formatter: v => v, + values: spanList //用来控制有几个圈 + } + }, + xAxis: { + tickLine: null + }, + yAxis: { + label: false, + grid: { + alternateColor: alternateColor + } + }, + // 开启辅助点 + point: { + size: 2 + }, + lineStyle: { + fill: fill, + fillOpacity: fillOpacity, + cursor: 'pointer', + stroke: lineColor + } + } + return +}) diff --git a/src/components/tags-editor/index.jsx b/src/components/tags-editor/index.jsx index e9db5ad..78085f0 100644 --- a/src/components/tags-editor/index.jsx +++ b/src/components/tags-editor/index.jsx @@ -1,304 +1,303 @@ -import React, { Component } from 'react'; +import React, { Component } from 'react' -import req from '@utils/request'; -import { Input, Tag, Tooltip, message } from 'antd'; -import { PlusOutlined } from '@ant-design/icons'; -import { apiName, ModuleType } from './constant'; -import './index.less'; +import { PlusOutlined } from '@ant-design/icons' +import req from '@utils/request' +import { Input, Tag, Tooltip, message } from 'antd' +import { ModuleType, apiName } from './constant' +import './index.less' const apiNameModule = { - [ModuleType.second]: [apiName.addInterviewCategory, apiName.deleteInterviewCategory], - [ModuleType.third]: [apiName.addInterviewLabel, apiName.deleteInterviewLabel], -}; + [ModuleType.second]: [apiName.addInterviewCategory, apiName.deleteInterviewCategory], + [ModuleType.third]: [apiName.addInterviewLabel, apiName.deleteInterviewLabel] +} export default class TagsEditor extends Component { - saveInputRef = (input) => (this.input = input); + saveInputRef = input => (this.input = input) - constructor(props) { - super(props); - this.state = { - inputVisible: false, - inputValue: '', - }; + constructor(props) { + super(props) + this.state = { + inputVisible: false, + inputValue: '' } + } - /** - * 点击X号 - * @param {*} index 当前index - * @param {*} categoryId 当前id - */ - handleClose = (index, categoryId) => { - const { moduleType, categoryList } = this.props; - let params = { - id: categoryId, - }; - let url = apiNameModule[moduleType][1]; - req({ - method: 'post', - data: params, - url: url, - }) - .then((res) => { - if (res.data) { - let list = categoryList.filter((item) => { - return item.id !== categoryId; - }); - this.props.onChangeLabel(list, this.formatList(list)); - } - }) - .catch((err) => { - console.log(err); - }); - }; - - /** - * 展示输入框 - */ - showInput = () => { - this.setState({ inputVisible: true }, () => this.input.focus()); - }; - - /** - * 输入框改变内容 - * @param {*} e - */ - handleInputChange = (e) => { - this.setState({ inputValue: e.target.value }); - }; - - /** - * 增加标签 - */ - handleInputConfirm = () => { - let { categoryList } = this.props; - let { inputValue } = this.state; - let equalList = [], - formatInputValue = inputValue.trim(); - if (!formatInputValue) { - this.setState({ - inputValue: '', - inputVisible: false, - }); - return; + /** + * 点击X号 + * @param {*} index 当前index + * @param {*} categoryId 当前id + */ + handleClose = (index, categoryId) => { + const { moduleType, categoryList } = this.props + let params = { + id: categoryId + } + let url = apiNameModule[moduleType][1] + req({ + method: 'post', + data: params, + url: url + }) + .then(res => { + if (res.data) { + let list = categoryList.filter(item => { + return item.id !== categoryId + }) + this.props.onChangeLabel(list, this.formatList(list)) } - if (categoryList.length > 0) { - equalList = categoryList.filter((item) => { - return item.categoryName.toLowerCase() === formatInputValue.toLowerCase(); - }); - } - if (equalList.length <= 0) { - this.postAddInterviewCategory(formatInputValue); - } else { - message.info('所增内容已存在', 0.3); - this.setState({ - inputValue: '', - }); - } - }; + }) + .catch(err => { + console.log(err) + }) + } - /** - * 增加标签 - * @param {*} inputValue 当前的值 - */ - postAddInterviewCategory = (inputValue) => { - const { parentCategoryValue, moduleType, categoryList } = this.props; - let params_2 = { - categoryName: inputValue, - categoryType: 2, - parentId: parentCategoryValue[0], - }; - let params_3 = { - labelName: inputValue, - primaryCategoryId: parentCategoryValue[0], - }; - let params = moduleType == ModuleType.third ? params_3 : params_2; - req({ - method: 'post', - data: params, - url: apiNameModule[moduleType][0], - }) - .then((res) => { - if (res.data) { - let id = res.data; - let list = [ - ...categoryList, - { - categoryName: inputValue, - categoryId: id, - isShowClose: true, - }, - ]; - let formatList = this.onHandleLabelSelectState(list, list.length - 1, false); - this.setState( - { - inputVisible: false, - inputValue: '', - }, - () => { - this.props.onChangeLabel(formatList, this.formatList(formatList)); - } - ); - } - }) - .catch((err) => { - console.log(err); - }); - }; + /** + * 展示输入框 + */ + showInput = () => { + this.setState({ inputVisible: true }, () => this.input.focus()) + } - /** - * 选中/未选中-标签 - * @param {*} tagIndex 选择的标签 - * @param {*} active 选择的标签的当前状态 - * @returns - */ - onChangeLabel = (tagIndex, active) => () => { - let { categoryList, isDisabledReverseSelection } = this.props; - if (active && isDisabledReverseSelection) { - return; - } - let formatLabelList = this.onHandleLabelSelectState(categoryList, tagIndex, active); - this.props.onChangeLabel(formatLabelList, this.formatList(formatLabelList)); - }; + /** + * 输入框改变内容 + * @param {*} e + */ + handleInputChange = e => { + this.setState({ inputValue: e.target.value }) + } - /** - * 处理数据选中/未选中(单选/多选) - * @param {*} list 分类列表 - * @param {*} tagIndex 当前索引 - * @param {*} active 当前选中状态 - * @returns - */ - onHandleLabelSelectState = (list, tagIndex, active) => { - const { isSingleChoice } = this.props; - let formatLabelList = []; - // 单选 - if (isSingleChoice) { - formatLabelList = list.map((item, index) => { - let flag = false; - if (index == tagIndex) { - flag = !active; // 将三级标签设置选中/未选中 - } - return { - ...item, - active: flag, - }; - }); - } else { - // 多选 - formatLabelList = list.map((item, index) => { - let flag = item.active; - if (index == tagIndex) { - flag = !active; // 将三级标签设置选中/未选中 - } - return { - ...item, - active: flag, - }; - }); - } - return formatLabelList; - }; + /** + * 增加标签 + */ + handleInputConfirm = () => { + let { categoryList } = this.props + let { inputValue } = this.state + let equalList = [], + formatInputValue = inputValue.trim() + if (!formatInputValue) { + this.setState({ + inputValue: '', + inputVisible: false + }) + return + } + if (categoryList.length > 0) { + equalList = categoryList.filter(item => { + return item.categoryName.toLowerCase() === formatInputValue.toLowerCase() + }) + } + if (equalList.length <= 0) { + this.postAddInterviewCategory(formatInputValue) + } else { + message.info('所增内容已存在', 0.3) + this.setState({ + inputValue: '' + }) + } + } - /** - * 格式化数据-获得选中项id列表 - * @param {*} list - * @returns - */ - formatList = (list) => { - let labelList = []; - list.forEach((item) => { - if (item.active) { - labelList.push(item.id); + /** + * 增加标签 + * @param {*} inputValue 当前的值 + */ + postAddInterviewCategory = inputValue => { + const { parentCategoryValue, moduleType, categoryList } = this.props + let params_2 = { + categoryName: inputValue, + categoryType: 2, + parentId: parentCategoryValue[0] + } + let params_3 = { + labelName: inputValue, + primaryCategoryId: parentCategoryValue[0] + } + let params = moduleType == ModuleType.third ? params_3 : params_2 + req({ + method: 'post', + data: params, + url: apiNameModule[moduleType][0] + }) + .then(res => { + if (res.data) { + let id = res.data + let list = [ + ...categoryList, + { + categoryName: inputValue, + categoryId: id, + isShowClose: true } - }); - return labelList; - }; - - render() { - const { moduleType, categoryList, isAddTag, isDeleteTag } = this.props; - const { inputVisible, inputValue } = this.state; - let labelList = categoryList; - // 数组中存在 -9999 表示暂无数据,需要支持新增 - if ( - categoryList.filter((item) => { - return item.id === -9999; - }).length > 0 - ) { - labelList = categoryList.slice(1, categoryList.length); + ] + let formatList = this.onHandleLabelSelectState(list, list.length - 1, false) + this.setState( + { + inputVisible: false, + inputValue: '' + }, + () => { + this.props.onChangeLabel(formatList, this.formatList(formatList)) + } + ) } - return ( -
- {labelList?.length > 0 && - labelList.map((item, index) => { - const isLongTag = item.categoryName?.length > 20; - const tagElem = ( - this.handleClose(index, item.id)}> - {isLongTag - ? `${item.categoryName.slice(0, 20)}...` - : item.categoryName} - - ); - return isLongTag ? ( - - {tagElem} - - ) : ( -
- {tagElem} -
- ); - })} - {inputVisible && ( - - )} - {/* 支持手动增加标签 */} - {!inputVisible && isAddTag && ( - - -  新增{moduleType == ModuleType.third ? '标签' : '分类'} - - )} - {!isAddTag && labelList.length === 0 && ( -
暂无数据呦~
- )} -
- ); + }) + .catch(err => { + console.log(err) + }) + } + + /** + * 选中/未选中-标签 + * @param {*} tagIndex 选择的标签 + * @param {*} active 选择的标签的当前状态 + * @returns + */ + onChangeLabel = (tagIndex, active) => () => { + let { categoryList, isDisabledReverseSelection } = this.props + if (active && isDisabledReverseSelection) { + return } + let formatLabelList = this.onHandleLabelSelectState(categoryList, tagIndex, active) + this.props.onChangeLabel(formatLabelList, this.formatList(formatLabelList)) + } + + /** + * 处理数据选中/未选中(单选/多选) + * @param {*} list 分类列表 + * @param {*} tagIndex 当前索引 + * @param {*} active 当前选中状态 + * @returns + */ + onHandleLabelSelectState = (list, tagIndex, active) => { + const { isSingleChoice } = this.props + let formatLabelList = [] + // 单选 + if (isSingleChoice) { + formatLabelList = list.map((item, index) => { + let flag = false + if (index == tagIndex) { + flag = !active // 将三级标签设置选中/未选中 + } + return { + ...item, + active: flag + } + }) + } else { + // 多选 + formatLabelList = list.map((item, index) => { + let flag = item.active + if (index == tagIndex) { + flag = !active // 将三级标签设置选中/未选中 + } + return { + ...item, + active: flag + } + }) + } + return formatLabelList + } + + /** + * 格式化数据-获得选中项id列表 + * @param {*} list + * @returns + */ + formatList = list => { + let labelList = [] + list.forEach(item => { + if (item.active) { + labelList.push(item.id) + } + }) + return labelList + } + + render() { + const { moduleType, categoryList, isAddTag, isDeleteTag } = this.props + const { inputVisible, inputValue } = this.state + let labelList = categoryList + // 数组中存在 -9999 表示暂无数据,需要支持新增 + if ( + categoryList.filter(item => { + return item.id === -9999 + }).length > 0 + ) { + labelList = categoryList.slice(1, categoryList.length) + } + return ( +
+ {labelList?.length > 0 && + labelList.map((item, index) => { + const isLongTag = item.categoryName?.length > 20 + const tagElem = ( + this.handleClose(index, item.id)} + > + {isLongTag ? `${item.categoryName.slice(0, 20)}...` : item.categoryName} + + ) + return isLongTag ? ( + + {tagElem} + + ) : ( +
{tagElem}
+ ) + })} + {inputVisible && ( + + )} + {/* 支持手动增加标签 */} + {!inputVisible && isAddTag && ( + + +  新增{moduleType == ModuleType.third ? '标签' : '分类'} + + )} + {!isAddTag && labelList.length === 0 &&
暂无数据呦~
} +
+ ) + } } diff --git a/src/components/timerCom/FlipClock.jsx b/src/components/timerCom/FlipClock.jsx new file mode 100644 index 0000000..f204ef6 --- /dev/null +++ b/src/components/timerCom/FlipClock.jsx @@ -0,0 +1,118 @@ +import React, { Component } from 'react' +import Flipper from './Flipper' +import './flipClock.less' + +class FlipClock extends Component { + constructor(props) { + super(props) + this.timer = null + this.flipObjs = [] + this.state = { + hou: 0, + second: 0, + minutes: 0, + strikes: 0, + oneHour: false, + halfHour: false + } + } + + render() { + let { oneHour, halfHour } = this.state + return ( +
+ + + : + + + : + + +
+ ) + } + + componentDidMount() { + this.flipObjs = [ + this.refs.flipperHour1, + this.refs.flipperHour2, + this.refs.flipperMinute1, + this.refs.flipperMinute2, + this.refs.flipperSecond1, + this.refs.flipperSecond2 + ] + this.init() + } + + // 初始化数字 + init() { + for (let i = 0; i < this.flipObjs.length; i++) { + this.flipObjs[i].setFront(0) + } + } + // 开始计时 + run = () => { + this.timer = setInterval(() => { + // 获取当前时间 + const nextstrikes = this.state.strikes + 1000 + const o_nextstrikes = nextstrikes + 1000 + let hou = parseInt(nextstrikes / 3600000) % 24, + minetes = parseInt(nextstrikes / 60000) % 60, + second = parseInt(nextstrikes / 1000) % 60 + let o_hou = parseInt(o_nextstrikes / 3600000) % 24, + o_minetes = parseInt(o_nextstrikes / 60000) % 60, + o_second = parseInt(o_nextstrikes / 1000) % 60 + let n_hou = o_hou <= 9 ? '0' + o_hou : o_hou, + n_minetes = o_minetes <= 9 ? '0' + o_minetes : o_minetes, + n_second = o_second <= 9 ? '0' + o_second : o_second + let nextTimeStr = n_hou + n_minetes + n_second + + this.setState( + { + hou: hou <= 9 ? '0' + hou : hou, + minutes: minetes <= 9 ? '0' + minetes : minetes, + second: second <= 9 ? '0' + second : second, + strikes: nextstrikes, + oneHour: 10000 <= nextTimeStr, + halfHour: 3000 <= nextTimeStr + }, + () => { + let { hou, minutes, second } = this.state + let nowTimeStr = hou + minutes + second + + for (let i = 0; i < this.flipObjs.length; i++) { + if (nowTimeStr[i] === nextTimeStr[i]) { + continue + } + this.flipObjs[i].flipDown(nowTimeStr[i], nextTimeStr[i]) + } + } + ) + }, 1000) + } + + end = () => { + clearInterval(this.timer) + } + + stop = () => { + clearInterval(this.timer) + } + + /** + * 计时的时间段 + * @returns + */ + getUseTime = () => { + const { hou, minutes, second } = this.state + const nowTimeStr = hou + minutes + second + return nowTimeStr + } + + //清除定时器 + componentWillUnmount() { + clearInterval(this.timer) + } +} +export default FlipClock diff --git a/src/components/timerCom/Flipper.jsx b/src/components/timerCom/Flipper.jsx new file mode 100644 index 0000000..2430924 --- /dev/null +++ b/src/components/timerCom/Flipper.jsx @@ -0,0 +1,106 @@ +/* + * 翻牌数字 + * @author: 兔子先生 + * @createDate: 2019-11-24 + */ +// import PropTypes from 'prop-types' +import React, { Component } from 'react' +import './flipper.less' + +class Flipper extends Component { + constructor(props) { + super(props) + this.state = { + isFlipping: false, + flipType: 'down', + frontTextFromData: 0, + backTextFromData: 1 + } + } + + render() { + const { isFlipping, flipType, frontTextFromData, backTextFromData } = this.state + return ( +
+
+
+
+ ) + } + + _textClass(number) { + return 'number' + number + } + + _thisTimeClass() { + let { oneHour, halfHour } = this.props + return (halfHour ? 'digital30 ' : '') + (oneHour ? 'digital60 ' : ' ') + } + + _flip(type, front, back) { + // 如果处于翻转中,则不执行 + if (this.isFlipping) { + return false + } + this.setState({ + frontTextFromData: front, + backTextFromData: back, + // 根据传递过来的type设置翻转方向 + flipType: type, + // 设置翻转状态为true + isFlipping: true + }) + setTimeout(() => { + this.setState({ + frontTextFromData: back, + isFlipping: false + }) + }, this.props.duration) + } + // 下翻牌 + flipDown(front, back) { + this._flip('down', front, back) + } + // 上翻牌 + flipUp(front, back) { + this._flip('up', front, back) + } + // 设置前牌文字 + setFront(text) { + this.setState({ + frontTextFromData: text + }) + } + // 设置后牌文字 + setBack(text) { + this.setState({ + backTextFromData: text + }) + } +} + +// props类型校验 +// Flipper.propTypes = { +// frontText: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), +// backText: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), +// duration: PropTypes.number +// } + +// props默认值 +Flipper.defaultProps = { + // front paper text + // 前牌文字 + frontText: 0, + // back paper text + // 后牌文字 + backText: 1, + // flipping duration, please be consistent with the CSS animation-duration value. + // 翻牌动画时间,与CSS中设置的animation-duration保持一致 + duration: 600 +} + +export default Flipper diff --git a/src/components/timerCom/flipClock.less b/src/components/timerCom/flipClock.less new file mode 100644 index 0000000..dea0edb --- /dev/null +++ b/src/components/timerCom/flipClock.less @@ -0,0 +1,17 @@ +.FlipClock { + text-align: center; +} + +.FlipClock .M-Flipper { + margin: 0 3px; +} + +.FlipClock em { + display: inline-block; + line-height: 27px; + font-size: 40px; + font-style: normal; + vertical-align: top; + margin: 0 3px; + color: rgba(0, 0, 0, 0.65); +} diff --git a/src/components/timerCom/flipper.less b/src/components/timerCom/flipper.less new file mode 100644 index 0000000..3b04457 --- /dev/null +++ b/src/components/timerCom/flipper.less @@ -0,0 +1,196 @@ +.M-Flipper { + display: inline-block; + position: relative; + width: 36px; + height: 35px; + line-height: 34px; + /* border: solid 1px #000; */ + border-radius: 10px; + background: #fff; + font-size: 30px; + color: #000; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.5); + text-align: center; + font-family: "Helvetica Neue"; +} + +.M-Flipper .digital:before, +.M-Flipper .digital:after { + content: ""; + position: absolute; + left: 0; + right: 0; + background: #fff; + overflow: hidden; + box-sizing: border-box; +} + +.M-Flipper .digital30:before, +.M-Flipper .digital30:after { + background: #ff9e20; + color: #fff; +} + +.M-Flipper .digital60:before, +.M-Flipper .digital60:after { + background: rgb(240, 76, 76); + color: #fff; +} + +.M-Flipper .digital:before { + top: 0; + bottom: 50%; + border-radius: 10px 10px 0 0; + border-bottom: solid 0.5px #ccc; +} + +.M-Flipper .digital:after { + top: 50%; + bottom: 0; + border-radius: 0 0 10px 10px; + line-height: 0; +} + +/*向下翻*/ +.M-Flipper.down .front:before { + z-index: 3; +} + +.M-Flipper.down .back:after { + z-index: 2; + transform-origin: 50% 0%; + transform: perspective(160px) rotateX(180deg); +} + +.M-Flipper.down .front:after, +.M-Flipper.down .back:before { + z-index: 1; +} + +.M-Flipper.down.go .front:before { + transform-origin: 50% 100%; + animation: frontFlipDown 0.6s ease-in-out both; + box-shadow: 0 -2px 6px rgba(255, 255, 255, 0.3); + backface-visibility: hidden; +} + +.M-Flipper.down.go .back:after { + animation: backFlipDown 0.6s ease-in-out both; +} + +/*向上翻*/ +.M-Flipper.up .front:after { + z-index: 3; +} + +.M-Flipper.up .back:before { + z-index: 2; + transform-origin: 50% 100%; + transform: perspective(160px) rotateX(-180deg); +} + +.M-Flipper.up .front:before, +.M-Flipper.up .back:after { + z-index: 1; +} + +.M-Flipper.up.go .front:after { + transform-origin: 50% 0; + animation: frontFlipUp 0.6s ease-in-out both; + /* box-shadow: 0 2px 6px rgba(255, 255, 255, 0.3); */ + backface-visibility: hidden; +} + +.M-Flipper.up.go .back:before { + animation: backFlipUp 0.6s ease-in-out both; +} + +@keyframes frontFlipDown { + 0% { + transform: perspective(160px) rotateX(0deg); + } + + 100% { + transform: perspective(160px) rotateX(-180deg); + } +} + +@keyframes backFlipDown { + 0% { + transform: perspective(160px) rotateX(180deg); + } + + 100% { + transform: perspective(160px) rotateX(0deg); + } +} + +@keyframes frontFlipUp { + 0% { + transform: perspective(160px) rotateX(0deg); + } + + 100% { + transform: perspective(160px) rotateX(180deg); + } +} + +@keyframes backFlipUp { + 0% { + transform: perspective(160px) rotateX(-180deg); + } + + 100% { + transform: perspective(160px) rotateX(0deg); + } +} + +.M-Flipper .number0:before, +.M-Flipper .number0:after { + content: "0"; +} + +.M-Flipper .number1:before, +.M-Flipper .number1:after { + content: "1"; +} + +.M-Flipper .number2:before, +.M-Flipper .number2:after { + content: "2"; +} + +.M-Flipper .number3:before, +.M-Flipper .number3:after { + content: "3"; +} + +.M-Flipper .number4:before, +.M-Flipper .number4:after { + content: "4"; +} + +.M-Flipper .number5:before, +.M-Flipper .number5:after { + content: "5"; +} + +.M-Flipper .number6:before, +.M-Flipper .number6:after { + content: "6"; +} + +.M-Flipper .number7:before, +.M-Flipper .number7:after { + content: "7"; +} + +.M-Flipper .number8:before, +.M-Flipper .number8:after { + content: "8"; +} + +.M-Flipper .number9:before, +.M-Flipper .number9:after { + content: "9"; +} diff --git a/src/components/timerCom/index.jsx b/src/components/timerCom/index.jsx new file mode 100644 index 0000000..eeb868c --- /dev/null +++ b/src/components/timerCom/index.jsx @@ -0,0 +1,34 @@ +import React, { Component } from "react"; + +export default class timerCom extends Component { + constructor(props) { + super(props); + this.state = { + hou: 0, + second: 0, + minutes: 0, + strikes: 0, + }; + } + timer = () => { + const nextstrikes = this.state.strikes + 50; + this.setState({ + hou: parseInt(nextstrikes / 3600000) % 24, + minutes: parseInt(nextstrikes / 60000) % 60, + second: parseInt(nextstrikes / 1000) % 60, + strikes: this.state.strikes + 50, + }); + } + componentDidMount() { + setInterval(this.timer, 50); + } + render() { + return ( +
+

+ {this.state.hou}:{this.state.minutes}:{this.state.second} +

+
+ ); + } +} diff --git a/src/components/top-menu/index.jsx b/src/components/top-menu/index.jsx index 4f93719..f988713 100644 --- a/src/components/top-menu/index.jsx +++ b/src/components/top-menu/index.jsx @@ -7,22 +7,26 @@ const MENULIST = [ { key: 'questionBank', title: '刷题', - route: '/question-bank' + route: '/question-bank', + finished: true }, { key: 'prictiseQuestion', title: '练题', - route: '/brush-question' + route: '/practice-questions', + finished: true }, { key: 'practiceQuestions', title: '鸡圈', - route: '/practice-questions' + route: '/jichi-club', + finished: false }, { key: 'interList', title: '模拟面试', - route: '/inter-list' + route: '/inter-list', + finished: false } ] @@ -55,10 +59,10 @@ const TopMenu = () => { if (!userInfoStorage) { return message.info('请登录') } - if (item.key === 'questionBank') { - if (location.pathname === '/question-bank') return - navigate('/question-bank') + if (item.finished) { + if (location.pathname === item.route) return setCurrentKey(item.key) + navigate(item.route) } else { return message.info('敬请期待') } diff --git a/src/imgs/badcf6d37c476233.png b/src/imgs/badcf6d37c476233.png new file mode 100644 index 0000000..21bf61e Binary files /dev/null and b/src/imgs/badcf6d37c476233.png differ diff --git a/src/imgs/head.jpg b/src/imgs/head.jpg index d975ab3..971b6c8 100644 Binary files a/src/imgs/head.jpg and b/src/imgs/head.jpg differ diff --git a/src/imgs/personal_qr_code.jpg b/src/imgs/personal_qr_code.jpg new file mode 100644 index 0000000..b7a1b0b Binary files /dev/null and b/src/imgs/personal_qr_code.jpg differ diff --git a/src/router/index.tsx b/src/router/index.tsx index 03bba88..4cd09c9 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -36,8 +36,20 @@ const router = createBrowserRouter([ Component: lazy(() => import('@views/search-details')) }, { - path: 'personal-center', + path: 'personal-center/:tab', Component: lazy(() => import('@views/personal-center')) + }, + { + path: 'practice-questions', + Component: lazy(() => import('@views/practise/practice-questions')) + }, + { + path: 'practice-detail/:id', + Component: lazy(() => import('@views/practise/practice-details/index1.jsx')) + }, + { + path: 'practice-analytic/:id', + Component: lazy(() => import('@views/practise/practice-analytic')) } ] } diff --git a/src/store/features/userInfoSlice.ts b/src/store/features/userInfoSlice.ts index 7d0b0cc..183c023 100644 --- a/src/store/features/userInfoSlice.ts +++ b/src/store/features/userInfoSlice.ts @@ -1,23 +1,33 @@ import { createSlice } from '@reduxjs/toolkit' -export interface CounterState { - value: number - title: string +export interface UserInfo { + nickName?: string + phone?: string + email?: string + sex?: string | number + introduce?: string + avatar?: string } -const initialState: CounterState = { - value: 0, - title: 'redux toolkit pre' +const initialState: UserInfo = { + nickName: '', + phone: '', + email: '', + sex: undefined, + introduce: '', + avatar: '' } // 创建一个 Slice export const userInfoSlice = createSlice({ name: 'userInfo', - initialState, + initialState: { + userInfo: initialState + }, // 定义 reducers 并生成关联的操作 reducers: { // 定义一个加的方法 saveUserInfo: (state, { payload }) => { - state.value = payload + state.userInfo = { ...state.userInfo, ...payload } } } }) diff --git a/src/views/header/index.tsx b/src/views/header/index.tsx index b8750d3..2fcc45a 100644 --- a/src/views/header/index.tsx +++ b/src/views/header/index.tsx @@ -1,10 +1,10 @@ -import Head from '@/imgs/head.jpg' import Logo from '@/imgs/logo.jpg' import { HeartOutlined, LikeOutlined, LoginOutlined, UserOutlined } from '@ant-design/icons' import TopMenu from '@components/top-menu' -import LoginQrcode from '@imgs/login_qrcode.jpg' +import LoginQrcode from '@imgs/personal_qr_code.jpg' import req from '@utils/request' import { Button, Dropdown, Input, Modal, Popover, Space, message } from 'antd' +import { useSelector } from 'react-redux' import { useNavigate } from 'react-router-dom' import './index.less' @@ -15,17 +15,20 @@ const menuItems = [ { label: '个人中心', key: 1, - icon: + icon: , + path: '/user-info' }, { label: '我的收藏', key: 2, - icon: + icon: , + path: '/personal-center/0' }, { label: '我的点赞', key: 3, - icon: + icon: , + path: '/personal-center/1' }, { type: 'divider' @@ -47,19 +50,19 @@ const discoverItems = [ title: '跟我做', subTitle: '从0到1做鸡翅Club项目', key: 'club', - path: '' + path: 'https://www.yuque.com/jingdianjichi/gb9bgl/zod2490hhixazf6n?singleDoc#%20%E3%80%8A%E9%B8%A1%E7%BF%85Club%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D%E3%80%8B' }, { title: '更深入', subTitle: '从0到1做企业级框架项目', key: 'deep', - path: '' + path: 'https://www.yuque.com/jingdianjichi/gb9bgl/rliblb1tvthnl6k3?singleDoc#%20%E3%80%8Aape-frame%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D%E3%80%8B' }, { title: '加星球', subTitle: '一键进入鸡哥的知识星球', key: 'star', - path: '' + path: 'https://www.yuque.com/jingdianjichi/gb9bgl/ko3bclqhtuu8uif0?singleDoc#%20%E3%80%8A%E7%9F%A5%E8%AF%86%E6%98%9F%E7%90%83%E5%AE%A3%E4%BC%A0%E3%80%8B' } ] @@ -67,48 +70,43 @@ const Header = () => { const { pathname } = window.location const navigate = useNavigate() + const { userInfo } = useSelector(store => store.userInfo) + const handleMenuClick = e => { const userInfoStorage = localStorage.getItem('userInfo') if (!userInfoStorage) { return message.info('请登录') } const { loginId } = JSON.parse(userInfoStorage) - switch (e.key) { - case '1': - navigate('/user-info') - break - case '4': - // 退出 - Modal.confirm({ - title: '退出提示', - content: '确定退出当前用户登录吗?', - okText: '确定', - cancelText: '取消', - onOk: () => { - req( - { - method: 'get', - url: '/user/logOut', - params: { - userName: loginId - } - }, - '/auth' - ).then(res => { - if (res.success) { - localStorage.removeItem('userInfo') - message.info('退出成功') - setTimeout(() => { - navigate('/login') - }, 500) + if (e.key == 4) { + Modal.confirm({ + title: '退出提示', + content: '确定退出当前用户登录吗?', + okText: '确定', + cancelText: '取消', + onOk: () => { + req( + { + method: 'get', + url: '/user/logOut', + params: { + userName: loginId } - }) - } - }) - break - default: - message.info('敬请期待') - break + }, + '/auth' + ).then(res => { + if (res.success) { + localStorage.removeItem('userInfo') + message.info('退出成功') + setTimeout(() => { + navigate('/login') + }, 500) + } + }) + } + }) + } else { + navigate(e.item.props.path) } } @@ -134,7 +132,7 @@ const Header = () => {
{ return ( @@ -174,7 +172,7 @@ const Header = () => { ) }} > - + {'/question-bank' == pathname && (
@@ -189,22 +187,29 @@ const Header = () => { />
)} -
- - - -
+ {'/login' !== pathname && ( +
+ + {userInfo.avatar ? ( + + ) : ( +
+ )} + {/* */} + +
+ )}
diff --git a/src/views/login/index.tsx b/src/views/login/index.tsx index 414268b..022e5d6 100644 --- a/src/views/login/index.tsx +++ b/src/views/login/index.tsx @@ -1,7 +1,9 @@ +import { saveUserInfo } from '@features/userInfoSlice.ts' import LoginQrcode from '@imgs/login_qrcode.jpg' import req from '@utils/request' import { Button, Input, Space, message } from 'antd' import { useState } from 'react' +import { useDispatch } from 'react-redux' import { useNavigate } from 'react-router-dom' import './index.less' @@ -11,13 +13,30 @@ const loginApiName = '/user/doLogin' const Login = () => { const [validCode, setValidCode] = useState('') const navigate = useNavigate() + const dispatch = useDispatch() const changeCode = e => { setValidCode(e.target.value) } + const getUserInfo = async loginId => { + req( + { + method: 'post', + url: '/user/getUserInfo', + data: { + userName: loginId + } + }, + '/auth' + ).then(res => { + if (res?.success && res?.data) { + dispatch(saveUserInfo(res.data)) + } + }) + } + const doLogin = () => { - console.log(validCode) if (!validCode) return req( { @@ -26,13 +45,14 @@ const Login = () => { params: { validCode } }, '/auth' - ).then(res => { + ).then(async res => { if (res.success && res.data) { message.success('登录成功') localStorage.setItem('userInfo', JSON.stringify(res.data)) + await getUserInfo(res.data.loginId) setTimeout(() => { navigate('/question-bank') - }, 1000) + }, 500) } else { message.error('登录失败,请重试') } diff --git a/src/views/personal-center/components/collection-bag/index.jsx b/src/views/personal-center/components/collection-bag/index.jsx index 9317638..7b47e4d 100644 --- a/src/views/personal-center/components/collection-bag/index.jsx +++ b/src/views/personal-center/components/collection-bag/index.jsx @@ -1,8 +1,8 @@ import { Card, Pagination, Spin } from 'antd' import React, { Component } from 'react' import { collectTabType } from '../../constant' -import CollectionQuestion from '../collection-question' import EmptyBox from '../empty-box' +import QuestionList from '../question-list' import './index.less' const tabList = [ { @@ -21,7 +21,7 @@ export default class CollectionBag extends Component { this.state = { currentKey: collectTabType.testQuestions, // 选中的tab 默认选中第一个 collectionList: [], - isShowSpin: true, + isShowSpin: false, isShowSkeleton: true } } @@ -53,7 +53,25 @@ export default class CollectionBag extends Component { /** * 获取一级分类数据 */ - getCollectionList() {} + getCollectionList() { + this.total = 3 + this.setState({ + collectionList: [ + { + id: 100, + subjectName: 'Redis支持哪几种数据类型?' + }, + { + id: 101, + subjectName: 'Redis的高级数据类型有什么?' + }, + { + id: 102, + subjectName: 'Redis的优点有什么?' + } + ] + }) + } /** * 分页 @@ -109,7 +127,7 @@ export default class CollectionBag extends Component { case collectTabType.testQuestions: return (
- +
) } diff --git a/src/views/personal-center/components/collection-question/index.jsx b/src/views/personal-center/components/collection-question/index.jsx deleted file mode 100644 index 6c206e9..0000000 --- a/src/views/personal-center/components/collection-question/index.jsx +++ /dev/null @@ -1,103 +0,0 @@ -import { SnippetsTwoTone } from '@ant-design/icons' -import { debounce, splicingQuery } from '@utils' -import React, { Component } from 'react' - -import './index.less' - -class CollectionQuestion extends Component { - constructor(props) { - super(props) - this.state = { - isModalVisible: false //对话框默认不可见 - } - } - - handleCancelCollection = () => { - console.log('取消收藏') - this.setState({ - isModalVisible: true - }) - } - - handleCancel = () => { - // console.log('点了取消'); - this.setState({ - isModalVisible: false - }) - } - - handleOk = () => { - console.log('点了确认') - this.setState({ - isModalVisible: false - }) - } - handleJump = id => - debounce(() => { - this.props.history.push( - splicingQuery('good-collection-question', { - subjectType: 4, - subjectId: id - }) - ) - }) - - render() { - const { collectionList, collectionTotal } = this.props - const { isModalVisible } = this.state - return ( -
-
-
- -
-
收藏的题目({collectionTotal})
-
- {collectionList.map(item => { - return ( -
-
- - {item.subjectName} - -
- {/*
- - 取消收藏 - - -

- 确认取消收藏吗? -

-
-
*/} -
- ) - })} -
- ) - } -} - -export default CollectionQuestion diff --git a/src/views/personal-center/components/empty-box/index.jsx b/src/views/personal-center/components/empty-box/index.jsx index eff9eae..5681359 100644 --- a/src/views/personal-center/components/empty-box/index.jsx +++ b/src/views/personal-center/components/empty-box/index.jsx @@ -3,7 +3,7 @@ import './index.less' export default function EmptyBox() { return (
- + {/* */} 这里什么也没有哦~
) diff --git a/src/views/personal-center/components/good-bag/index.jsx b/src/views/personal-center/components/good-bag/index.jsx index 20c5dbc..d12bfff 100644 --- a/src/views/personal-center/components/good-bag/index.jsx +++ b/src/views/personal-center/components/good-bag/index.jsx @@ -2,7 +2,7 @@ import { Card, Pagination, Spin } from 'antd' import React, { Component } from 'react' import { goodTabType } from '../../constant' import EmptyBox from '../empty-box' -import GoodQuestion from '../good-question' +import QuestionList from '../question-list' import './index.less' const tabList = [ { @@ -21,7 +21,7 @@ export default class GoodBag extends Component { this.state = { currentKey: goodTabType.testQuestions, // 选中的tab 默认选中第一个 goodList: [], - isShowSpin: true + isShowSpin: false } } @@ -52,7 +52,25 @@ export default class GoodBag extends Component { /** * 获取一级分类数据 */ - getGoodList() {} + getGoodList() { + this.total = 3 + this.setState({ + goodList: [ + { + id: 100, + subjectName: 'Redis支持哪几种数据类型?' + }, + { + id: 101, + subjectName: 'Redis的高级数据类型有什么?' + }, + { + id: 102, + subjectName: 'Redis的优点有什么?' + } + ] + }) + } /** * 分页 @@ -106,7 +124,7 @@ export default class GoodBag extends Component { switch (type) { // 收藏的试题 case goodTabType.testQuestions: - return + return } } } diff --git a/src/views/personal-center/components/good-question/index.jsx b/src/views/personal-center/components/good-question/index.jsx deleted file mode 100644 index 058d5ba..0000000 --- a/src/views/personal-center/components/good-question/index.jsx +++ /dev/null @@ -1,97 +0,0 @@ -import { SnippetsTwoTone } from '@ant-design/icons' -import { debounce, splicingQuery } from '@utils' -import React, { Component } from 'react' - -import './index.less' - -class GoodQuestion extends Component { - constructor(props) { - super(props) - this.state = { - isModalVisible: false //对话框默认不可见 - } - } - - handleCancelGood = () => { - console.log('取消点赞') - this.setState({ - isModalVisible: true - }) - } - - handleCancel = () => { - // console.log('点了取消'); - this.setState({ - isModalVisible: false - }) - } - - handleOk = () => { - console.log('点了确认') - this.setState({ - isModalVisible: false - }) - } - handleJump = id => - debounce(() => { - this.props.history.push( - splicingQuery('good-collection-question', { - subjectType: 4, - subjectId: id - }) - ) - }) - - render() { - const { goodList, goodTotal } = this.props - const { isModalVisible } = this.state - return ( -
-
-
- -
-
点赞的题目({goodTotal})
-
- {goodList.map(item => { - return ( -
-
- - {item.subjectName} - -
- {/*
- - 取消点赞 - - -

- 确认取消点赞吗? -

-
-
*/} -
- ) - })} -
- ) - } -} - -export default GoodQuestion diff --git a/src/views/personal-center/components/good-question/index.less b/src/views/personal-center/components/good-question/index.less deleted file mode 100644 index 06dc739..0000000 --- a/src/views/personal-center/components/good-question/index.less +++ /dev/null @@ -1,44 +0,0 @@ -.good-bag-component-tab1-body { - padding: 0 20px 20px 20px; - .good-bag-component-tab1-head-title { - display: flex; - color: #333; - font-size: 16px; - font-weight: 400; - .good-bag-component-tab1-head-title-icon { - margin-right: 8px; - } - } - .good-bag-component-tab1-body-item { - margin: 10px 0; - overflow: auto; - position: relative; - clear: both; - // height: 60px; - border-bottom: 1px solid #e5e5e5; - - .good-bag-component-tab1-body-item-question { - font-size: 14px; - line-height: 1.8; - .good-bag-component-tab1-body-item-question-content { - width: 600px; - cursor: pointer; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; - overflow: hidden; - &:hover { - color: #3c6eee; - } - } - } - .good-bag-component-tab1-body-item-foot { - margin-top: 10px; - float: right; - .good-bag-component-tab1-body-item-foot-button { - cursor: pointer; - color: #3c6eee; - } - } - } -} diff --git a/src/views/personal-center/components/question-list/index.jsx b/src/views/personal-center/components/question-list/index.jsx new file mode 100644 index 0000000..617231c --- /dev/null +++ b/src/views/personal-center/components/question-list/index.jsx @@ -0,0 +1,44 @@ +import { SnippetsTwoTone } from '@ant-design/icons' +import React from 'react' + +import './index.less' + +const CollectionQuestion = props => { + const { total, list, name } = props + + const handleJump = id => { + window.open('/brush-question/' + id) + } + + return ( +
+
+
+ +
+
+ {name}的题目({total}) +
+
+ {list.map(item => { + return ( +
+
+ handleJump(item.id)} + > + {item.subjectName} + +
+
+ ) + })} +
+ ) +} + +export default CollectionQuestion diff --git a/src/views/personal-center/components/collection-question/index.less b/src/views/personal-center/components/question-list/index.less similarity index 96% rename from src/views/personal-center/components/collection-question/index.less rename to src/views/personal-center/components/question-list/index.less index 012dfe5..8e0a7b1 100644 --- a/src/views/personal-center/components/collection-question/index.less +++ b/src/views/personal-center/components/question-list/index.less @@ -11,9 +11,10 @@ } .collection-bag-component-tab1-body-item { margin: 10px 0; + padding: 10px 0; overflow: auto; position: relative; - clear: both; + // clear: both; // height: 60px; border-bottom: 1px solid #e5e5e5; diff --git a/src/views/personal-center/index.jsx b/src/views/personal-center/index.jsx index 6f338f1..d7b930d 100644 --- a/src/views/personal-center/index.jsx +++ b/src/views/personal-center/index.jsx @@ -1,135 +1,97 @@ -import { IdcardOutlined, LikeTwoTone, MailOutlined, StarTwoTone } from '@ant-design/icons' +import { LikeTwoTone, StarTwoTone } from '@ant-design/icons' import { Menu } from 'antd' -import PubSub from 'pubsub-js' -import React, { Component } from 'react' +import React, { useEffect, useState } from 'react' +import { useSelector } from 'react-redux' +import { useParams } from 'react-router-dom' import CollectionBag from './components/collection-bag' import GoodBag from './components/good-bag' import './index.less' -export default class PersonalCenter extends Component { - constructor(props) { - super(props) - this.state = { - currentKeyMap: 0, //选中的menu - userName: '', //姓名 - intervieweEamil: '', //邮箱 - headImg: '', //头像 - department: '', //部门 - practiceAmount: 0, //练题数 - inputAmount: 0, //录题数 - goodAmount: 0, //点赞数 - collectionAmount: 0, //收藏数 - subMenuList: [] - } +const personList = { + 0: '收藏', + 1: '点赞' +} + +const PersonalCenter = props => { + const [currentKeyMap, setCurrentKeyMap] = useState(0) + const { userInfo } = useSelector(store => store.userInfo) + const [selectedKeys, setSelectedKeys] = useState('0') + + const { tab } = useParams() + + useEffect(() => { + setCurrentKeyMap(+tab) + setSelectedKeys(tab) + }, [tab]) + + const handleClick = ({ key }) => { + setCurrentKeyMap(Number(key)) + setSelectedKeys(key) } - personList = { - // 0: '刷题', - 0: '收藏', - 1: '点赞' - } - componentDidMount() { - PubSub.subscribe('handleToRender', () => { - this.setState({}) - }) - } - /** - * 切换菜单 - * @param {*} e - */ - handleClick = e => { - console.log('--------', e) - //截取_后的字符 - let index = e.keyPath[0].lastIndexOf('_') - let index2 = e.keyPath[0].substring(index + 1, e.keyPath[0].length) - // - console.log('index2>>>>', index2) - this.setState({ - currentKeyMap: Number(index2) - }) - } - render() { - let { - headImg, - userName, - intervieweEamil, - department, - goodAmount, - collectionAmount, - practiceAmount, - inputAmount - } = this.state - const { currentKeyMap } = this.state - return ( -
-
-
-
- -
-
-
{userName}
-
- - - - - - -
-
+ + return ( +
+
+
+
+
-
-
-
- {practiceAmount} -
-
练题
-
-
-
{inputAmount}
-
录题
-
-
-
{goodAmount}
-
点赞
-
-
-
- {collectionAmount} -
-
收藏
-
+
+
{userInfo.nickName}
+ {/*
+ + + + + + +
*/}
-
-
- - {/* - - {this.personList[0]} - */} - - - {this.personList[0]} - - - - {this.personList[1]} - - +
+ {/*
+
{10}
+
练题
+
*/} + {/*
+
{inputAmount}
+
录题
+
*/} +
+
{20}
+
点赞
-
- {/* {currentKeyMap === 0 && } */} - {currentKeyMap === 0 && } - {currentKeyMap === 1 && } +
+
{30}
+
收藏
- ) - } +
+
+ + + + {personList[0]} + + + + {personList[1]} + + +
+
+ {currentKeyMap === 0 && } + {currentKeyMap === 1 && } +
+
+
+ ) } + +export default PersonalCenter diff --git a/src/views/personal-center/index.less b/src/views/personal-center/index.less index 9c0577e..f039835 100644 --- a/src/views/personal-center/index.less +++ b/src/views/personal-center/index.less @@ -1,7 +1,6 @@ .personal-center-box { margin: 0 auto; width: 1439px; - // padding: 20px 50px; border-radius: 5px; overflow: auto; .personal-center-introduction { @@ -11,10 +10,12 @@ margin-bottom: 10px; display: flex; justify-content: space-between; + align-items: center; .personal-center-introduction-detail { margin-left: 50px; - padding-top: 20px; + // padding-top: 20px; display: flex; + align-items: center; .personal-center-introduction-detail-headImg { margin-right: 20px; align-items: center; @@ -34,8 +35,8 @@ } .personal-center-introduction-result { margin-right: 50px; - padding-top: 30px; display: flex; + align-items: center; .personal-center-introduction-result-item { text-align: center; padding-right: 10px; @@ -54,7 +55,7 @@ overflow-y: auto; border-radius: 3px; width: 300px; - height: 720px; + min-height: 320px; } .personal-center-content-right { background-color: #fff; diff --git a/src/views/practise/practice-analytic/components/answer-analysis/index.jsx b/src/views/practise/practice-analytic/components/answer-analysis/index.jsx new file mode 100644 index 0000000..03209c5 --- /dev/null +++ b/src/views/practise/practice-analytic/components/answer-analysis/index.jsx @@ -0,0 +1,216 @@ +import req from '@utils/request' +import { Spin } from 'antd' +import React, { Component } from 'react' +import { ApiName, IdKeyLetterKey } from '../../constant' +import './index.less' + +export default class AnswerAnalysis extends Component { + constructor(props) { + super(props) + this.state = { + subjectList: [], // 题目列表 + subjectName: '', + optionList: [], // 选项列表 + labelNames: '', // 标签列表 + respondAnswer: [], // 你的答案 + subjectParse: '', // 解析 + correctAnswer: [], // 正确答案 + currentIndex: 0, // 当前选中的下标 + isLoading: false + } + } + + componentDidMount() { + this.getScoreDetail() + } + + /** + * 答案解析-获得题目列表 + */ + getScoreDetail = () => { + const { practiceId } = this.props + let params = { + practiceId: practiceId + } + req({ + method: 'post', + data: params, + url: ApiName.getScoreDetail + }) + .then(res => { + if (res?.data && res?.data?.length > 0) { + this.setState( + { + subjectList: res.data + }, + () => { + this.getSubjectDetail(0, res.data[0]) + } + ) + } + }) + .catch(err => console.log(err)) + } + + /** + * 答案解析-获得答案详情 + * @param {*} index 当前index + * @param {*} subjectItem 当前item + */ + getSubjectDetail = (index, subjectItem) => { + const { practiceId } = this.props + let params = { + practiceId: practiceId, + subjectId: subjectItem.subjectId, + subjectType: subjectItem.subjectType + } + JDreq({ + method: 'post', + data: params, + url: ApiName.getSubjectDetail + }) + .then(res => { + if (res.data) { + let respondAnswer = res.data.respondAnswer + let optionList = [] + res.data.optionList.forEach(element => { + let obj = { + isCorrect: element.isCorrect, + optionContent: element.optionContent, + optionType: element.optionType, + isAnswer: 0 + } + if (respondAnswer.includes(element.optionType)) { + obj.isAnswer = 1 + } + optionList.push(obj) + }) + this.setState({ + isLoading: false, + currentIndex: index, + subjectName: res.data.subjectName, + optionList: optionList, // 选项列表 + labelNames: res.data.labelNames, // 标签列表 + respondAnswer: respondAnswer, // 你的答案 + subjectParse: res.data.subjectParse, // 解析 + correctAnswer: res.data.correctAnswer // 正确答案 + }) + } + }) + .catch(err => console.log(err)) + } + + onChangeOption = (index, item) => () => { + let { currentIndex } = this.state + if (index === currentIndex) { + return + } + this.getSubjectDetail(index, item) + } + + render() { + const { + subjectList, + subjectName, + optionList, + labelNames, + respondAnswer, + subjectParse, + correctAnswer, + currentIndex, + isLoading + } = this.state + const isRight = correctAnswer.join('') !== respondAnswer.join('') + return ( + +
+ {subjectList?.length > 0 && ( +
+
每题得分
+
+ {subjectList.map((item, index) => { + return ( +
+ {index + 1} +
+ ) + })} +
+
+ )} +
+
{currentIndex + 1}
+
{subjectName}
+
+
+ 正确答案: + {correctAnswer?.length > 0 + ? correctAnswer.map((item, index) => { + return {IdKeyLetterKey[item] + ' '} + }) + : '空'} + 你的答案: + {respondAnswer?.length > 0 + ? respondAnswer.map((item, index) => { + return {IdKeyLetterKey[item] + ' '} + }) + : '空'} + +  ({isRight ? '错误' : '正确'}) + +
+ {optionList?.length > 0 && ( +
+ {optionList.map((item, index) => { + return ( +
+ ) + })} +
+ )} + {labelNames?.length > 0 && ( +
+
本题知识点
+
+ {labelNames.map((item, index) => { + return ( +
+ {item} +
+ ) + })} +
+
+ )} + {!!subjectParse && ( +
+
参考解析
+
{subjectParse}
+
+ )} +
+
+ ) + } +} diff --git a/src/views/practise/practice-analytic/components/answer-analysis/index.less b/src/views/practise/practice-analytic/components/answer-analysis/index.less new file mode 100644 index 0000000..c2d0e6b --- /dev/null +++ b/src/views/practise/practice-analytic/components/answer-analysis/index.less @@ -0,0 +1,146 @@ +.answer-analysis-box { + padding-bottom: 30px; + // 分页 + .answer-analysis-paging { + padding: 20px 30px; + background-color: #fff; + border-bottom: 1px solid #ededed; + .answer-analysis-paging-tip { + margin-bottom: 20px; + color: #666; + font-size: 14px; + } + .answer-analysis-paging-list { + display: flex; + flex-wrap: wrap; + .answer-analysis-paging-item { + display: flex; + justify-content: center; + align-items: center; + margin-right: 4px; + margin-bottom: 20px; + width: 32px; + height: 32px; + font-size: 14px; + color: white; + cursor: pointer; + transition: all 0.3s; + &:hover { + margin-top: -6px; + margin-bottom: -6px; + height: 44px; + } + } + // 选中 + .answer-analysis-paging-item-active { + margin-top: -6px; + margin-bottom: -6px; + height: 44px; + } + // 答错 + .answer-analysis-error { + background-color: #ff431e; + } + // 答对 + .answer-analysis-rigth { + background-color: rgba(60, 110, 238, 1); + } + } + } + // 题名 + .answer-analysis-name { + display: flex; + align-items: center; + padding: 20px 30px; + font-size: 14px; + background-color: #fff; + border-bottom: 1px solid #ededed; + .answer-analysis-name-num { + padding: 5px 7px; + display: flex; + justify-content: center; + align-items: center; + min-width: 30px; + color: #fff; + font-weight: 400; + border-radius: 50%; + background-color: rgba(60, 110, 238, 1); + } + .answer-analysis-name-text { + margin-left: 10px; + } + } + // 答案 + .answer-analysis-answer { + padding: 20px 30px; + } + // 选项 + .answer-analysis-option-list { + display: flex; + flex-direction: column; + padding: 0 30px; + .answer-analysis-option-item { + padding: 10px; + margin-bottom: 20px; + font-size: 14px; + border-radius: 6px; + border: 1px solid #d4d4d4; + background: #fff; + } + // 正确 + .answer-analysis-option-item-rigth { + border-color: rgba(60, 110, 238, 1); + } + // 错误 + .answer-analysis-option-item-error { + border-color: #ff431e; + } + } + // 知识点 + .answer-analysis-points { + padding: 0 30px 20px; + font-size: 14px; + background-color: rgba(60, 110, 238, 0.08); + .answer-analysis-points-tip { + margin-bottom: 20px; + padding-top: 20px; + color: rgb(102, 102, 102); + } + .answer-analysis-points-list { + display: flex; + justify-content: flex-start; + align-items: center; + .answer-analysis-points-item { + display: flex; + justify-content: center; + align-items: center; + margin-right: 4px; + padding: 0 8px; + height: 22px; + color: #999; + font-size: 12px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 12px; + &:hover { + color: rgba(60, 110, 238, 1); + border-color: rgba(60, 110, 238, 1); + } + } + } + } + // 解析 + .answer-analysis-parse { + padding: 0 30px 20px; + font-size: 14px; + background-color: #fff; + .answer-analysis-parse-tip { + margin-bottom: 20px; + padding-top: 20px; + color: rgb(102, 102, 102); + } + .answer-analysis-parse-text { + color: #333; + } + } +} diff --git a/src/views/practise/practice-analytic/components/assessment-report/index.jsx b/src/views/practise/practice-analytic/components/assessment-report/index.jsx new file mode 100644 index 0000000..df625a7 --- /dev/null +++ b/src/views/practise/practice-analytic/components/assessment-report/index.jsx @@ -0,0 +1,148 @@ +import req from '@utils/request' + +import AnalysisAtlas from '@components/analysis-atlas' +import { splicingQuery } from '@utils' +import { Button, Spin } from 'antd' +import React, { Component } from 'react' +import { ApiName, ModuleName } from '../../constant' +import RecommendList from '../recommend-list' +import './index.less' + +class AssessmentReport extends Component { + constructor(props) { + super(props) + this.state = { + correctSubject: '3', + recommendSetList: [], + skill: [], + title: '测试试卷', + isLoading: false + } + } + + componentDidMount() { + this.getReport() + } + + /** + * 答案解析-获得评估报告 + */ + getReport = async () => { + const { practiceId } = this.props + let params = { + practiceId: practiceId + } + await req({ + method: 'post', + data: params, + url: ApiName.getReport + }) + .then(res => { + if (res?.data) { + let list = res.data.skill || [] + let len = res.data.skill.length + if (len === 1) { + let l1 = [ + { name: res.data.skill[0].name + ' ', star: res.data.skill[0].star }, + { + name: ' ' + res.data.skill[0].name + ' ', + star: res.data.skill[0].star + } + ] + list = list.concat(l1) + } else if (len === 2) { + let l1 = [{ name: res.data.skill[1].name + ' ', star: res.data.skill[1].star }] + list = list.concat(l1) + } + this.setState({ + isLoading: false, + title: res.data.title, + correctSubject: res.data.correctSubject, + recommendSetList: res.data.recommendSetList, + skill: list + }) + } + }) + .catch(err => console.log(err)) + } + + /** + * 练习其他技能 + */ + onChangePracticeOther = () => { + this.props.history.push('/practice-questions') + } + + /** + * 查看答案解析 + */ + onChangeAnswerAnalysis = () => { + this.props.onHandleAnswerAnalysis && this.props.onHandleAnswerAnalysis(ModuleName.analysis) + } + + /** + * 点击推荐套题 + * @param {*} setId + * @returns + */ + onChangeSetId = setId => { + this.props.history.push( + splicingQuery('/practice-details', { + setId + }) + ) + } + + render() { + const { correctSubject, recommendSetList, skill, title, isLoading } = this.state + return ( + +
+
+
+ {/*
+ + 得分:12 +
*/} +
试卷:{title}
+
正确题数:{correctSubject}
+ +
+
+
你的技能图谱
+
+ +
+
+
+ {recommendSetList?.length > 0 && ( + + )} +
+ +
+
+
+ ) + } +} + +export default AssessmentReport diff --git a/src/views/practise/practice-analytic/components/assessment-report/index.less b/src/views/practise/practice-analytic/components/assessment-report/index.less new file mode 100644 index 0000000..99cc5d5 --- /dev/null +++ b/src/views/practise/practice-analytic/components/assessment-report/index.less @@ -0,0 +1,63 @@ +.assessment-report-box { + .assessment-report-top { + display: flex; + padding: 30px 24px; + background-color: #fff; + .assessment-report-main { + flex: 1; + padding: 20px 0 20px 16px; + // // 得分 + // .assessment-report-defen { + // display: flex; + // align-items: center; + // margin-bottom: 20px; + // color: #888; + // .assessment-report-defen-icon { + // margin-right: 4px; + // width: 28px; + // height: 28px; + // } + // } + .assessment-report-item { + margin-bottom: 20px; + font-size: 16px; + font-weight: 600; + } + // 再练一套 + .assessment-report-submit { + height: 40px; + border-color: rgba(60, 110, 238, 1); + background-color: rgba(60, 110, 238, 1); + } + } + // 图谱 + .assessment-report-tupu { + flex: 1; + padding: 20px 0 20px 30px; + border-left: 1px solid #ddd; + .assessment-report-tupu-tip { + margin-bottom: 20px; + color: #888; + font-size: 16px; + } + .assessment-report-tupu-content { + margin: 0 auto; + width: 200px; + height: 200px; + } + } + } + // 查看答案解析 + .assessment-report-answer-analysis { + display: flex; + align-items: center; + justify-content: center; + margin: 30px 0; + .assessment-report-answer-btn { + width: 260px; + height: 40px; + border-color: rgba(60, 110, 238, 1); + background-color: rgba(60, 110, 238, 1); + } + } +} diff --git a/src/views/practise/practice-analytic/components/recommend-list/index.jsx b/src/views/practise/practice-analytic/components/recommend-list/index.jsx new file mode 100644 index 0000000..7bbebb8 --- /dev/null +++ b/src/views/practise/practice-analytic/components/recommend-list/index.jsx @@ -0,0 +1,39 @@ +import { debounce } from '@utils' +import React from 'react' +import { RecommendBackImg } from '../../constant' +import './index.less' + +export default function RecommendList(props) { + const { recommendSetList } = props + /** + * 点击推荐套题 + * @param {*} setId + * @returns + */ + const onChangeSetId = setId => + debounce(() => { + props.onHandleSetId && props.onHandleSetId(setId) + }) + return ( +
+
根据本次练习,为你推荐以下内容
+
+ {recommendSetList.map((item, index) => { + return ( +
+
{item.setName}
+
热度指数:{item.setHeat}
+
+ ) + })} +
+
+ ) +} diff --git a/src/views/practise/practice-analytic/components/recommend-list/index.less b/src/views/practise/practice-analytic/components/recommend-list/index.less new file mode 100644 index 0000000..e50655f --- /dev/null +++ b/src/views/practise/practice-analytic/components/recommend-list/index.less @@ -0,0 +1,64 @@ +// 推荐 +.assessment-report-recommend { + margin-top: 30px; + padding: 30px 40px; + background-color: #fff; + .assessment-report-recommend-tip { + position: relative; + margin-bottom: 30px; + margin-left: 16px; + font-size: 16px; + color: #333; + &:before { + content: ''; + position: absolute; + left: -16px; + top: 8px; + width: 8px; + height: 8px; + background: rgba(255, 158, 32, 1); + } + } + // 推荐列表 + .assessment-report-recommend-list { + display: flex; + .recommend-item { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + margin-right: 10px; + padding: 20px; + width: 220px; + height: 130px; + border-radius: 10px; + background-size: 100% 100%; + background-repeat: no-repeat; + cursor: pointer; + transition: all 0.5s; + &:hover { + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.08); + } + .recommend-item-name { + display: flex; + justify-content: flex-start; + margin-bottom: 10px; + width: 100%; + color: #fff; + font-size: 16px; + overflow: hidden; + text-overflow: ellipsis; //省略 + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + } + .recommend-item-heat { + display: flex; + justify-content: flex-end; + width: 100%; + color: #fff; + font-size: 14px; + } + } + } +} diff --git a/src/views/practise/practice-analytic/constant.js b/src/views/practise/practice-analytic/constant.js new file mode 100644 index 0000000..33f1814 --- /dev/null +++ b/src/views/practise/practice-analytic/constant.js @@ -0,0 +1,53 @@ +export const ModuleName = { + /** + * 评估报告 + */ + assessment: 'assessment', + /** + * 答案解析 + */ + analysis: 'analysis', +}; + +export const ImgObj = { + defen: 'https://img10.360buyimg.com/imagetools/jfs/t1/197806/1/18639/2369/61a095a8E09f4e860/493d753073a4a9fa.png', +}; + +export const ApiName = { + /** + * 获得评价 + */ + getReport: '/admin/practice/detail/getReport', + /** + * 答案详情 + */ + getSubjectDetail: '/admin/practice/detail/getSubjectDetail', + /** + * 获得题号 + */ + getScoreDetail: 'admin/practice/detail/getScoreDetail', +}; + +/** + * id对应字母 + */ +export const IdKeyLetterKey = { + 1: 'A', + 2: 'B', + 3: 'C', + 4: 'D', + 5: 'E', + 6: 'F', + 7: 'G', + 8: 'H', +}; + +/** + * 推荐对应的背景图 + */ +export const RecommendBackImg = { + 0: 'https://img11.360buyimg.com/imagetools/jfs/t1/202713/11/17151/312/61a5dea1E5623fea6/2922d716cae01b28.png', + 1: 'https://img10.360buyimg.com/imagetools/jfs/t1/142359/35/22866/2975/61a5dea0E3fcd563c/78ee45555dd19cda.png', + 2: 'https://img13.360buyimg.com/imagetools/jfs/t1/161380/34/26207/1078/61a5dea0E7824463e/4e18f74e8c6439ad.png', + 3: 'https://img14.360buyimg.com/imagetools/jfs/t1/160815/15/27226/880/61a5e1e6E152b08b7/fb698b8321d08246.png', +}; diff --git a/src/views/practise/practice-analytic/index.jsx b/src/views/practise/practice-analytic/index.jsx new file mode 100644 index 0000000..d32348a --- /dev/null +++ b/src/views/practise/practice-analytic/index.jsx @@ -0,0 +1,69 @@ +import { Tabs } from 'antd' +import React, { Component } from 'react' +import AnswerAnalysis from './components/answer-analysis' +import AssessmentReport from './components/assessment-report' +import { ModuleName } from './constant' +import './index.less' +const { TabPane } = Tabs + +const practiceAnalyticTabList = [ + { tab: '评估报告', key: ModuleName.assessment }, + { tab: '答案解析', key: ModuleName.analysis } +] +export default class PracticeAnalytic extends Component { + constructor(props) { + super(props) + this.state = { currentKey: ModuleName.assessment } + } + + /** + * 切换card tab + * @param {*} key + */ + onTabChange = key => { + this.setState({ currentKey: key }) + } + + render() { + const { currentKey } = this.state + console.log(this.props) + // const urlParams = queryParse(this.props.location.search) + // if (!urlParams.practiceId) { + // return null + // } + return ( +
+ { + this.onTabChange(key, 'key') + }} + > + {practiceAnalyticTabList.map(item => { + return + })} + + {currentKey == ModuleName.assessment ? ( + { + this.onTabChange(key, 'key') + }} + practiceId={1} + /> + ) : ( + + )} +
+ ) + } +} diff --git a/src/views/practise/practice-analytic/index.less b/src/views/practise/practice-analytic/index.less new file mode 100644 index 0000000..2d8d1dd --- /dev/null +++ b/src/views/practise/practice-analytic/index.less @@ -0,0 +1,20 @@ +.practice-analytic-box { + margin: 0 auto; + width: 1430px; + border: 1px solid #e0e0e0; + overflow-y: auto; + .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab { + background-color: #fff; + border-radius: 0; + border: none; + } + .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active { + color: #fff; + background-color: #1890ff; + } + // 将body背景重置作为灰色 + .ant-card-body { + background-color: #f3f4f6; + padding: 0; + } +} diff --git a/src/views/practise/practice-details/components/practice-action/index.jsx b/src/views/practise/practice-details/components/practice-action/index.jsx new file mode 100644 index 0000000..8791f20 --- /dev/null +++ b/src/views/practise/practice-details/components/practice-action/index.jsx @@ -0,0 +1,79 @@ +import { debounce } from '@utils' +import { Button } from 'antd' +import React, { Fragment } from 'react' +import { ImgObj, mark } from '../../constant' +import './index.less' + +export default function PracticeAction(props) { + const { isLast, isMark } = props + + /** + * 标记一下 + * @returns + */ + const onChangeMark = debounce(() => { + props.onHandleMark && props.onHandleMark() + }) + + /** + * 交卷 + * @returns + */ + const onChangeOver = debounce(() => { + props.onHandleOver && props.onHandleOver() + }) + + /** + * 提前交卷 + * @returns + */ + const onChangeAdvanceOver = debounce(() => { + props.onHandleAdvanceOver && props.onHandleAdvanceOver() + }) + + /** + * 下一题 + * @returns + */ + const onChangeNext = debounce(() => { + props.onHandleNext && props.onHandleNext() + }) + + return ( + +
+
+
+ + {mark[isMark]} +
+
+
+
+ {isLast ? ( + + ) : ( + + )} +
+ {!isLast && ( +
+ +
+ )} +
+
+
*交卷即可查看全部答案和解析
+
+ ) +} diff --git a/src/views/practise/practice-details/components/practice-action/index.less b/src/views/practise/practice-details/components/practice-action/index.less new file mode 100644 index 0000000..de85f09 --- /dev/null +++ b/src/views/practise/practice-details/components/practice-action/index.less @@ -0,0 +1,42 @@ +// 标记/提前交卷/交卷/下一题 +.practice-action-box { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 14px; + .practice-action-list { + display: flex; + // 标记 + .practice-action-item { + margin-right: 30px; + line-height: 20px; + cursor: pointer; + .action-mark-icon { + margin-right: 4px; + width: 20px; + height: 20px; + } + } + // 按钮 + .practice-action-button { + margin: 0 15px; + .action-button-advance-submit { + background-color: #ff6547; + border-color: #ff6547; + color: white; + } + .action-button-submit { + background-color: rgba(60, 110, 238, 1); + border-color: rgba(60, 110, 238, 1); + color: white; + } + } + } +} +// 提示 +.practice-action-tips { + margin-top: 10px; + color: #888; + font-size: 14px; + text-align: right; +} diff --git a/src/views/practise/practice-details/components/practice-advance/index.jsx b/src/views/practise/practice-details/components/practice-advance/index.jsx new file mode 100644 index 0000000..4e78f43 --- /dev/null +++ b/src/views/practise/practice-details/components/practice-advance/index.jsx @@ -0,0 +1,36 @@ +import { Modal } from 'antd' +import React from 'react' +import { ImgObj } from '../../constant' +import './index.less' + +export default function PracticeAdvance(props) { + const { isShowModalBox } = props + const onSubmitModal = () => { + props.onHandleSubmitModal && props.onHandleSubmitModal() + } + const onCancelModal = () => { + props.onHandleCancelModal && props.onHandleCancelModal() + } + return ( + +
+
+ +
+
+ 你还有部分题目未完成,交卷即可查看试卷全部答案及解析,是否立即交卷? +
+
+
+ ) +} diff --git a/src/views/practise/practice-details/components/practice-advance/index.less b/src/views/practise/practice-details/components/practice-advance/index.less new file mode 100644 index 0000000..ae58e2e --- /dev/null +++ b/src/views/practise/practice-details/components/practice-advance/index.less @@ -0,0 +1,21 @@ +.practice-advance-box { + .practice-advance { + display: flex; + flex-direction: column; + align-items: center; + padding: 28px 0; + .practice-advance-img { + width: 80px; + height: 80px; + .practice-advance-icon { + width: 100%; + height: 100%; + } + } + .practice-advance-text { + margin: 10px; + padding: 0 50px; + text-align: center; + } + } +} diff --git a/src/views/practise/practice-details/components/practice-paging/index.jsx b/src/views/practise/practice-details/components/practice-paging/index.jsx new file mode 100644 index 0000000..104591b --- /dev/null +++ b/src/views/practise/practice-details/components/practice-paging/index.jsx @@ -0,0 +1,50 @@ +import { AppstoreOutlined } from '@ant-design/icons' +import { debounce } from '@utils' +import React, { Fragment } from 'react' +import './index.less' + +export default function PracticePaging(props) { + const { subjectList, singleLength, multipleLength, judgeLength } = props + const onChangePaging = index => + debounce(() => { + props.onHandlePaging && props.onHandlePaging(index) + }) + return ( + + {subjectList?.length > 0 && ( +
+
+
答题卡
+
+ + 单选题{singleLength}道 | 多选题{multipleLength}道 | 判断题 + {judgeLength}道 +
+
+
+ {subjectList.map((item, index) => { + return ( +
0 + ? 'practice-paging-item-answer' + : 'practice-paging-item-unactive' + } `} + onClick={onChangePaging(index)} + > + {index + 1} +
+ ) + })} +
+
+ )} +
+ ) +} diff --git a/src/views/practise/practice-details/components/practice-paging/index.less b/src/views/practise/practice-details/components/practice-paging/index.less new file mode 100644 index 0000000..f8b8767 --- /dev/null +++ b/src/views/practise/practice-details/components/practice-paging/index.less @@ -0,0 +1,70 @@ +.practice-paging-box { + padding: 20px; + border-top: 1px dashed #ddd; + .practice-paging-tips { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + font-size: 16px; + color: #666; + .practice-paging-tip { + padding: 5px 10px; + font-size: 14px; + background: #f2f2f2; + } + } + + .practice-paging-list { + display: flex; + flex-wrap: wrap; + .practice-paging-item { + display: flex; + justify-content: center; + align-items: center; + margin-right: 10px; + width: 40px; + height: 40px; + font-size: 16px; + cursor: pointer; + &:hover { + color: white; + background-color: rgba(60, 110, 238, 1); + } + } + // 未选中 + .practice-paging-item-unactive { + color: #dce4ec; + &:after { + background: #aaa; + } + } + // 选中 + .practice-paging-item-active { + color: white; + background-color: rgba(60, 110, 238, 1); + &:after { + background: #fff; + } + } + // 有答案 + .practice-paging-item-answer { + color: rgba(60, 110, 238, 1); + &:after { + background: rgba(60, 110, 238, 1); + } + } + // 被标记 + .practice-paging-item-mark { + position: relative; + &:after { + content: ''; + position: absolute; + right: 3px; + top: 3px; + width: 4px; + height: 4px; + border-radius: 50%; + } + } + } +} diff --git a/src/views/practise/practice-details/constant.js b/src/views/practise/practice-details/constant.js new file mode 100644 index 0000000..d2bf18a --- /dev/null +++ b/src/views/practise/practice-details/constant.js @@ -0,0 +1,43 @@ +export const mark = { + 0: '标记一下', + 1: '已标记', +}; + +export const collection = { + 0: '未收藏', + 1: '已收藏', +}; + +export const quetionsType = { + 1: '单选题', + 2: '多选题', + 3: '判断题', +}; + +export const ApiName = { + /** + * 获取练习题目 + */ + getSubjects: '/admin/practice/set/getSubjects', + + /** + * 获取练习题目详情 + */ + getPracticeSubject: '/admin/practice/set/getPracticeSubject', + + /** + * 交卷 + */ + submitSubject: '/admin/practice/detail/submit', +}; + +export const ImgObj = { + stop: 'https://img10.360buyimg.com/imagetools/jfs/t1/206561/1/10729/2819/619f783cE77dd49ed/54eb1fc4b3144a97.png', + run: 'https://img11.360buyimg.com/imagetools/jfs/t1/161735/6/25253/2598/619f783cEa897a673/fbf4e8c05d40feb5.png', + info: 'https://img13.360buyimg.com/imagetools/jfs/t1/217399/4/5733/2641/619f7b91E0894649e/2f6353fe0d35fb46.png', + questionMark: + 'https://img12.360buyimg.com/imagetools/jfs/t1/201809/8/16630/2674/61a04963E92475548/ede8a7f006113cae.png', + mark: 'https://img12.360buyimg.com/imagetools/jfs/t1/207329/30/11079/2474/61a70ad0E64730d1c/ed75ee746fb33926.png', + advanceTip: + 'https://img11.360buyimg.com/imagetools/jfs/t1/161028/16/25609/6746/61a08d83E06659dfa/e6418acdab948134.png', +}; diff --git a/src/views/practise/practice-details/index.jsx b/src/views/practise/practice-details/index.jsx new file mode 100644 index 0000000..6aa434a --- /dev/null +++ b/src/views/practise/practice-details/index.jsx @@ -0,0 +1,511 @@ +import Timer from '@components/timerCom/FlipClock' +import { getCurrentTime, splicingQuery } from '@utils' +import req from '@utils/request' +import { Checkbox, Modal, Radio } from 'antd' +import _ from 'lodash' +import React, { Component } from 'react' +import PracticeAction from './components/practice-action' +import PracticeAdvance from './components/practice-advance' +import PracticePaging from './components/practice-paging' +import { ApiName, ImgObj, quetionsType } from './constant' +import './index.less' + +export default class PracticeDetails extends Component { + constructor(props) { + super(props) + this.state = { + isMark: 0, // 是否标记 + isCollection: 0, + currentActive: '', + subjectList: [], // 总题目列表 + subjectObject: {}, //题目 + currentIndex: 0, + isShowAdvanOverceBox: false, + isShowStopBox: false + } + } + + timerRef = React.createRef() + subjectTitle = '' + singleLength = 0 + multipleLength = 0 + judgeLength = 0 + setId = '' + + componentDidMount() { + // const urlParams = queryParse(this.props.location.search) + // this.setId = urlParams.setId + this.getSubjectList() + this.timerRef.current.run() + // window.addEventListener('beforeunload', this.listener); + } + + componentWillUnmount() { + // window.addEventListener('beforeunload', this.listener); + } + + //监听屏幕刷新,关闭默认事件,界面没有动,不会拦截 + listener = ev => { + ev.preventDefault() + ev.returnValue = '' + } + + /** + * 获得题目列表 + */ + getSubjectList = () => { + let params = { + setId: this.setId + } + this.subjectTitle = '热门题目练习' + this.singleLength = 1 + this.multipleLength = 1 + this.judgeLength = 1 + const list = [ + { + subjectType: 1, + subjectId: 1 + }, + { + subjectType: 2, + subjectId: 2 + }, + { + subjectType: 3, + subjectId: 3 + } + ] + this.setState({ + subjectList: [...list] + }) + _.set(list, [0, 'active'], true) + this.getPracticeSubject(list[0], list, 0, []) + // req({ + // method: 'post', + // data: params, + // url: ApiName.getSubjects + // }) + // .then(res => { + // if (res.data && res.data?.subjectList?.length > 0) { + // let list = res.data.subjectList + // this.singleLength = + // list?.length > 0 ? list.filter(item => item.subjectType === 1).length : 0 + // this.multipleLength = + // list?.length > 0 ? list.filter(item => item.subjectType === 2).length : 0 + // this.judgeLength = + // list?.length > 0 ? list.filter(item => item.subjectType === 3).length : 0 + // this.subjectTitle = res.data?.title || '' // 总题目列表 + // this.getPracticeSubject(list[0], list, 0, []) + // } + // }) + // .catch(err => console.log(err)) + } + + /** + * 获得题目详情 + * @param {*} item 选择的项 + * @param {*} subjectList 题目列表 + * @param {*} index 选择的下标 + * @param {*} activeList 选中的列表 + * @param {*} isMark 是否被标记 + */ + getPracticeSubject = (item, subjectList, index, activeList, isMark = 0) => { + let params = { + subjectId: item.subjectId, + subjectType: item.subjectType + } + + const optionList = + item.subjectType === 3 + ? [ + { + optionContent: '正确', + optionType: 1 + }, + { + optionContent: '错误', + optionType: 0 + } + ] + : [ + { + optionType: 1, + optionContent: '

题目答案1

' + }, + { + optionType: 2, + optionContent: '

题目答案2

' + }, + { + optionType: 3, + optionContent: '

题目答案3

' + } + ] + + return this.setState({ + currentIndex: index, + currentActive: item.subjectType === 2 ? activeList : activeList[0], + subjectObject: { + subjectName: '题干内容', + subjectType: item.subjectType, + optionList, + // subjectList: subjectList, + // currentIndex: index, + // currentActive: item.sub??jectType === 2 ? activeList : activeList[0], + isMark: isMark + } + }) + req({ + method: 'post', + data: params, + url: ApiName.getPracticeSubject + }) + .then(res => { + if (res.data) { + let subjectObject = res.data + if (item.subjectType === 3) { + subjectObject.optionList = [ + { + optionContent: '正确', + optionType: 1 + }, + { + optionContent: '错误', + optionType: 0 + } + ] + } + this.setState({ + subjectObject: res.data, + subjectList: subjectList, + currentIndex: index, + currentActive: item.subjectType === 2 ? activeList : activeList[0], + isMark: isMark + }) + } + }) + .catch(err => console.log(err)) + } + + /** + * 选择单选 + * @param {*} e + * @returns + */ + onChangeRadio = e => () => { + let { currentIndex, subjectList } = this.state + _.set(subjectList, [currentIndex, 'activeList'], [e]) + this.setState({ + currentActive: e, + subjectList + }) + } + + /** + * 选择多选 + * @param {*} e + * @returns + */ + onChangeCheck = e => { + let { currentIndex, subjectList } = this.state + _.set(subjectList, [currentIndex, 'activeList'], e) + this.setState({ + currentActive: e, + subjectList + }) + } + + /** + * 暂停计时 + */ + onChangeStop = () => { + this.setState({ isShowStopBox: true }) + this.timerRef.current.stop() + } + + /** + * 标记一下 + */ + onChangeMark = () => { + let { currentIndex, subjectList, subjectObject } = this.state + let flag = 1 + if (subjectList[currentIndex]?.isMark) { + flag = 0 + } + _.set(subjectList, [currentIndex, 'isMark'], flag) + this.setState({ + subjectList, + isMark: flag, + subjectObject + }) + } + + /** + * 选择答题卡 + * @param {*} index + * @param {*} item + * @returns + */ + onChangePaging = index => { + let { currentIndex } = this.state + // 如果点击当前题目,直接return + if (currentIndex === index) { + return + } + this.changeData(index) + } + + /** + * 交卷 + */ + onChangeOver = () => { + const { subjectList } = this.state + let answerDetails = [] + subjectList.forEach(item => { + let obj = { + subjectId: item.subjectId, + subjectType: item.subjectType, + answerContents: [] + } + if (item?.activeList && item?.activeList?.length > 0) { + obj.answerContents = item.activeList + } + answerDetails.push(obj) + }) + let params = { + setId: this.setId, + timeUse: this.timerRef.current.getUseTime(), + submitTime: getCurrentTime(), + answerDetails: answerDetails + } + req({ + method: 'post', + data: params, + url: ApiName.submitSubject + }) + .then(res => { + if (res.data && res.data.practiceId) { + //关闭定时器 + this.timerRef.current.end() + this.props.history.replace( + splicingQuery('/practice-analytic', { + practiceId: res.data.practiceId + }) + ) + } + }) + .catch(err => console.log(err)) + } + + /** + * 提前交卷弹框-直接交卷 + */ + onHandleSubmitModal = () => { + this.onChangeOver() + } + + /** + * 提前交卷弹框-继续做题 + */ + onHandleCancelModal = () => { + this.setState({ isShowAdvanOverceBox: false }) + } + + /** + * 提前交卷 + */ + onChangeAdvanceOver = () => { + this.setState({ + isShowAdvanOverceBox: true + }) + } + + /** + * 下一题 + * @returns + */ + onChangeNext = () => { + let { currentIndex } = this.state + currentIndex += 1 + this.changeData(currentIndex) + } + + /** + * 改变数据 + * @param {*} index 当前点击下标 + */ + changeData = index => { + let { subjectList } = this.state + let subObj = subjectList[index] + let activeList = [] // 多选 选中的答案项 + let isMark = 0 // 是否被标记 + + // 将其他item设置为未选中 + subjectList.forEach(item => { + item.active = false + }) + _.set(subjectList, [index, 'active'], true) + + // if当前选择的有选答案,则直接显示出来 + if (subObj?.activeList?.length > 0) { + activeList = subObj?.activeList + } + + // if当前已被标记,则直接显示出来 + if (subObj?.isMark == 1) { + isMark = 1 + } + + this.getPracticeSubject(subObj, subjectList, index, activeList, isMark) + } + + /** + * 暂停弹框-继续做题 + */ + onChangeSubmitModal = () => { + this.timerRef.current.run() + this.setState({ isShowStopBox: false }) + } + + /** + * 暂停弹框-再次再做 + */ + onChangeCancelModal = () => { + this.props.history.goBack() + } + + render() { + const { + isMark, + isCollection, + currentIndex, + currentActive, + subjectList, + subjectObject, + isShowAdvanOverceBox, + isShowStopBox + } = this.state + const isLast = currentIndex === subjectList?.length - 1 + // 获得已答的题目个数 + const noAnswerNum = + subjectList.filter(item => item.activeList && item.activeList.length > 0).length || 0 + return ( +
+
+
+
{this.subjectTitle}
+
+
+ +
+ +
+
+
+
+ {currentIndex + 1}/{subjectList?.length} +
+ +
[{quetionsType[subjectObject.subjectType]}]
+
+
+
+
{subjectObject.subjectName}
+ {subjectObject.subjectType === 2 ? ( + + {subjectObject?.optionList?.length > 0 && + subjectObject?.optionList.map(item => { + return ( + +
+
+ ) + })} +
+ ) : ( + + {subjectObject?.optionList?.length > 0 && + subjectObject?.optionList.map(item => { + return ( + +
+
+ ) + })} +
+ )} +
+ +
+ +
+ + +
+ + 休息一下吧!共{subjectList?.length}道题,还剩 + {subjectList?.length - noAnswerNum}道没做哦~ +
+
+
+ ) + } +} diff --git a/src/views/practise/practice-details/index.less b/src/views/practise/practice-details/index.less new file mode 100644 index 0000000..bc306b5 --- /dev/null +++ b/src/views/practise/practice-details/index.less @@ -0,0 +1,107 @@ +.details-container { + width: 1439px; + margin: 0 auto; + overflow: auto; + background-color: #ffffff; + flex-direction: column; + margin-bottom: 20px; + border: 1px solid #e0e0e0; + border-radius: 3px; + .container-box { + background-color: #ffffff; + .container-box-title { + padding: 20px; + border-bottom: 1px solid #eee; + display: flex; + justify-content: space-between; + .title-title { + font-size: 20px; + vertical-align: middle; + overflow: hidden; + // text-overflow: ellipsis; + // white-space: nowrap; + // word-wrap: normal; + max-width: 1000px; + } + .title-time { + display: flex; + align-items: center; + .title-timer-img { + margin: -4px 10px 0 0; + width: 30px; + height: 30px; + .title-timer-icon { + width: 100%; + height: 100%; + } + } + } + } + .details-question-number { + padding: 20px; + display: flex; + .question-number-number { + background-color: #e5e5e5; + padding: 0 5px; + border-radius: 5px; + font-size: 16px; + } + .question-number-mark { + margin: 0 8px; + width: 24px; + height: 24px; + } + .question-number-type { + background-color: #fff; + line-height: 1.5; + font-size: 16px; + border-radius: 3px; + } + } + .practice-main { + background-color: #fff; + padding: 20px; + padding: 10px 20px 20px; + .practice-text { + margin-bottom: 20px; + .practice-question { + margin-bottom: 20px; + font-size: 14px; + line-height: 1.6; + } + .practice-answer-list { + width: 100%; + .practice-answer-item { + display: flex; + align-items: center; + margin-bottom: 20px; + padding: 12px 20px 13px; + word-break: break-all; + border: 1px solid #d4d4d4; + background-color: #fff; + border-radius: 4px; + &:hover { + cursor: pointer; + color: #1890ff; + background: #f3f3f3; + text-decoration: none; + } + } + .practice-answer-item-active { + color: #1890ff; + text-decoration: none; + border-color: #1890ff; + } + .ant-checkbox-wrapper + .ant-checkbox-wrapper { + margin-left: 0; + } + } + } + } + } +} +.details-container-box-info { + margin-right: 10px; + width: 36px; + height: 36px; +} diff --git a/src/views/practise/practice-details/index1.jsx b/src/views/practise/practice-details/index1.jsx new file mode 100644 index 0000000..2a11830 --- /dev/null +++ b/src/views/practise/practice-details/index1.jsx @@ -0,0 +1,485 @@ +import Timer from '@components/timerCom/FlipClock' +import req from '@utils/request' +import { Checkbox, Modal, Radio } from 'antd' +import _ from 'lodash' +import React, { useEffect, useState } from 'react' +import { useNavigate } from 'react-router-dom' +import PracticeAction from './components/practice-action' +import PracticeAdvance from './components/practice-advance' +import PracticePaging from './components/practice-paging' +import { ApiName, ImgObj, quetionsType } from './constant' +import './index.less' + +const PracticeDetails = props => { + const navigate = useNavigate() + + const [isMark, setIsMark] = useState(0) // 是否标记 + const [currentActive, setCurrentActive] = useState('') + const [subjectList, setSubjectList] = useState([]) + const [subjectObject, setSubjectObject] = useState({}) + const [currentIndex, setCurrentIndex] = useState(0) + const [isShowAdvanOverceBox, setIsShowAdvanOverceBox] = useState(false) + const [isShowStopBox, setIsShowStopBox] = useState(false) + + const timerRef = React.createRef() + let subjectTitle = '' + let singleLength = 0 + let multipleLength = 0 + let judgeLength = 0 + const setId = '' + + const isLast = currentIndex === subjectList?.length - 1 + + /** + * 获得题目列表 + */ + const getSubjectList = () => { + let params = { + setId: setId + } + subjectTitle = '热门题目练习' + singleLength = 1 + multipleLength = 1 + judgeLength = 1 + const list = [ + { + subjectType: 1, + subjectId: 1, + active: true + }, + { + subjectType: 2, + subjectId: 2 + }, + { + subjectType: 3, + subjectId: 3 + } + ] + setSubjectList([...list]) + // _.set(list, [0, 'active'], true) + getPracticeSubject(list[0], list, 0, []) + // req({ + // method: 'post', + // data: params, + // url: ApiName.getSubjects + // }) + // .then(res => { + // if (res.data && res.data?.subjectList?.length > 0) { + // let list = res.data.subjectList + // singleLength = + // list?.length > 0 ? list.filter(item => item.subjectType === 1).length : 0 + // multipleLength = + // list?.length > 0 ? list.filter(item => item.subjectType === 2).length : 0 + // judgeLength = + // list?.length > 0 ? list.filter(item => item.subjectType === 3).length : 0 + // subjectTitle = res.data?.title || '' // 总题目列表 + // getPracticeSubject(list[0], list, 0, []) + // } + // }) + // .catch(err => console.log(err)) + } + + useEffect(() => { + timerRef.current.run() + getSubjectList() + }, []) + + /** + * 获得题目详情 + * @param {*} item 选择的项 + * @param {*} subjectList 题目列表 + * @param {*} index 选择的下标 + * @param {*} activeList 选中的列表 + * @param {*} isMark 是否被标记 + */ + const getPracticeSubject = (item, subjectList, index, activeList, isMark = 0) => { + let params = { + subjectId: item.subjectId, + subjectType: item.subjectType + } + + const optionList = + item.subjectType === 3 + ? [ + { + optionContent: '正确', + optionType: 1 + }, + { + optionContent: '错误', + optionType: 0 + } + ] + : [ + { + optionType: 1, + optionContent: '

题目答案1

' + }, + { + optionType: 2, + optionContent: '

题目答案2

' + }, + { + optionType: 3, + optionContent: '

题目答案3

' + } + ] + setCurrentActive(item.subjectType === 2 ? activeList : activeList[0]) + setCurrentIndex(index) + setSubjectObject({ + subjectName: '题干内容', + subjectType: item.subjectType, + optionList, + // subjectList: subjectList, + // currentIndex: index, + // currentActive: item.sub??jectType === 2 ? activeList : activeList[0], + isMark: isMark + }) + + return + req({ + method: 'post', + data: params, + url: ApiName.getPracticeSubject + }) + .then(res => { + if (res.data) { + let subjectObject = res.data + if (item.subjectType === 3) { + subjectObject.optionList = [ + { + optionContent: '正确', + optionType: 1 + }, + { + optionContent: '错误', + optionType: 0 + } + ] + } + setState({ + subjectObject: res.data, + subjectList: subjectList, + currentIndex: index, + currentActive: item.subjectType === 2 ? activeList : activeList[0], + isMark: isMark + }) + } + }) + .catch(err => console.log(err)) + } + + /** + * 选择单选 + * @param {*} e + * @returns + */ + const onChangeRadio = e => () => { + const list = [...subjectList] + _.set(list, [currentIndex, 'activeList'], [e]) + setCurrentActive(e) + setSubjectList([...list]) + } + + /** + * 选择多选 + * @param {*} e + * @returns + */ + const onChangeCheck = e => { + // let { currentIndex, subjectList } = state + const list = [...subjectList] + _.set(list, [currentIndex, 'activeList'], e) + setCurrentActive(e) + setSubjectList([...list]) + } + + /** + * 暂停计时 + */ + const onChangeStop = () => { + // setState({ isShowStopBox: true }) + setIsShowStopBox(true) + timerRef.current.stop() + } + + /** + * 标记一下 + */ + const onChangeMark = () => { + const list = [...subjectList] + let flag = 1 + if (list[currentIndex]?.isMark) { + flag = 0 + } + _.set(list, [currentIndex, 'isMark'], flag) + setSubjectList([...list]) + setIsMark(flag) + } + + /** + * 选择答题卡 + * @param {*} index + * @param {*} item + * @returns + */ + const onChangePaging = index => { + // 如果点击当前题目,直接return + if (currentIndex === index) { + return + } + changeData(index) + } + + /** + * 交卷 + */ + const onChangeOver = () => { + timerRef.current.end() + navigate('/practice-analytic/1', { replace: true }) + // const list = [...subjectList] + // let answerDetails = [] + // list.forEach(item => { + // let obj = { + // subjectId: item.subjectId, + // subjectType: item.subjectType, + // answerContents: [] + // } + // if (item?.activeList && item?.activeList?.length > 0) { + // obj.answerContents = item.activeList + // } + // answerDetails.push(obj) + // }) + // let params = { + // setId: setId, + // timeUse: timerRef.current.getUseTime(), + // submitTime: getCurrentTime(), + // answerDetails: answerDetails + // } + // req({ + // method: 'post', + // data: params, + // url: ApiName.submitSubject + // }) + // .then(res => { + // if (res.data && res.data.practiceId) { + // //关闭定时器 + // timerRef.current.end() + // props.history.replace( + // splicingQuery('/practice-analytic', { + // practiceId: res.data.practiceId + // }) + // ) + // } + // }) + // .catch(err => console.log(err)) + } + + /** + * 提前交卷弹框-直接交卷 + */ + const onHandleSubmitModal = () => { + onChangeOver() + } + + /** + * 提前交卷弹框-继续做题 + */ + const onHandleCancelModal = () => { + setIsShowAdvanOverceBox(false) + + // setState({ isShowAdvanOverceBox: false }) + } + + /** + * 提前交卷 + */ + const onChangeAdvanceOver = () => { + setIsShowAdvanOverceBox(true) + // setState({ + // isShowAdvanOverceBox: true + // }) + } + + /** + * 下一题 + * @returns + */ + const onChangeNext = () => { + // let { currentIndex } = state + // currentIndex += 1 + setCurrentIndex(currentIndex + 1) + changeData(currentIndex + 1) + } + + /** + * 改变数据 + * @param {*} index 当前点击下标 + */ + const changeData = index => { + // let { subjectList } = state + const list = [...subjectList] + let subObj = list[index] + let activeList = [] // 多选 选中的答案项 + let isMark = 0 // 是否被标记 + + // 将其他item设置为未选中 + list.forEach(item => { + item.active = false + }) + _.set(list, [index, 'active'], true) + + // if当前选择的有选答案,则直接显示出来 + if (subObj?.activeList?.length > 0) { + activeList = subObj?.activeList + } + + // if当前已被标记,则直接显示出来 + if (subObj?.isMark == 1) { + isMark = 1 + } + + getPracticeSubject(subObj, list, index, activeList, isMark) + } + + /** + * 暂停弹框-继续做题 + */ + const onChangeSubmitModal = () => { + timerRef.current.run() + setIsShowStopBox(false) + // setState({ isShowStopBox: false }) + } + + /** + * 暂停弹框-再次再做 + */ + const onChangeCancelModal = () => { + // props.history.goBack() + navigate(-1) + } + + const noAnswerNum = + subjectList.filter(item => item.activeList && item.activeList.length > 0).length || 0 + + return ( +
+
+
+
{subjectTitle}
+
+
+ +
+ +
+
+
+
+ {currentIndex + 1}/{subjectList?.length} +
+ +
[{quetionsType[subjectObject.subjectType]}]
+
+
+
+
{subjectObject.subjectName}
+ {subjectObject.subjectType === 2 ? ( + + {subjectObject?.optionList?.length > 0 && + subjectObject?.optionList.map(item => { + return ( + +
+
+ ) + })} +
+ ) : ( + + {subjectObject?.optionList?.length > 0 && + subjectObject?.optionList.map(item => { + return ( + +
+
+ ) + })} +
+ )} +
+ +
+ +
+ + +
+ + 休息一下吧!共{subjectList?.length}道题,还剩 + {subjectList?.length - noAnswerNum}道没做哦~ +
+
+
+ ) +} +export default PracticeDetails diff --git a/src/views/practise/practice-questions/components/front-end/index.jsx b/src/views/practise/practice-questions/components/front-end/index.jsx new file mode 100644 index 0000000..d7d923d --- /dev/null +++ b/src/views/practise/practice-questions/components/front-end/index.jsx @@ -0,0 +1,236 @@ +import { debounce, splicingQuery } from '@utils' +import req from '@utils/request' +import { Button, Card, Checkbox, Descriptions, Spin } from 'antd' +import _ from 'lodash' +import React, { Component, Fragment } from 'react' +import { ApiName } from '../../constant' +import './index.less' + +const CheckboxGroup = Checkbox.Group +class FrontEnd extends Component { + constructor(props) { + super(props) + this.state = { + tabList: [], + secondCategoryList: [], + isShowSpin: false, + currentKey: '', //当前的大类id + difficulty: 1 + } + } + allCategoryMap = {} + selectList = [] + + componentDidMount() { + this.getSpecialPracticeContent() + } + + /** + * 获取菜单对应的内容 + */ + getSpecialPracticeContent() { + const { menuId, menuType } = this.props + let params = { + menuId: menuId, + menuType: menuType + } + req({ + method: 'post', + data: params, + url: ApiName.getSpecialPracticeContent + }) + .then(res => { + if (res.data && res.data?.length > 0) { + let tabList = res.data.map(item => { + return { + tab: item.primaryCategoryName, + key: item.primaryCategoryId + } + }) + res.data.forEach(item => { + this.allCategoryMap[item.primaryCategoryId] = item.categoryList + }) + + this.setState({ + currentKey: tabList[0].key, + tabList: tabList, + secondCategoryList: this.allCategoryMap[res.data[0].primaryCategoryId], + isShowSpin: false + }) + } else { + this.setState({ + tabList: [], + secondCategoryList: [], + isShowSpin: false + }) + } + }) + .catch(err => console.log(err)) + } + + /** + * 生成setId接口 + */ + addPractice = debounce(() => { + const { menuId } = this.props + let params = { + difficulty: menuId, + assembleIds: this.selectList + } + req({ + method: 'post', + data: params, + url: '/admin/practice/set/addPractice' + }) + .then(res => { + if (res.data) { + this.props.history.push( + splicingQuery('/practice-details', { + setId: res.data.setId + }) + ) + } + }) + .catch(err => console.log(err)) + }) + + /** + * 复选框-选中/未选中 + * @param {*} index 二级分类下标 + * @returns + */ + onChange = index => list => { + let { secondCategoryList } = this.state + _.set(secondCategoryList, [index, 'activeList'], list) + this.setState({ secondCategoryList }) + this.getAssembleIdList(secondCategoryList) + } + + /** + * 切换一级分类 + * @param {*} key + */ + onTabChange = debounce(key => { + let { secondCategoryList } = this.state + // 切换一级大类时,将activeList全重置为空 + secondCategoryList.forEach(item => { + item.activeList = [] + }) + this.getAssembleIdList([]) + this.setState({ + currentKey: key, + secondCategoryList: this.allCategoryMap[key] + }) + }) + + /** + * 获取选中的assembleId列表 + * @param {*} list + */ + getAssembleIdList = list => { + let activeList = [] + list.forEach(item => { + if (item.activeList && item.activeList?.length !== 0) { + activeList = _.concat(activeList, item.activeList) + } + }) + this.selectList = activeList + } + + /** + * 全选 + * @param {*} index 二级分类下标 + * @returns + */ + onCheckAllChange = index => e => { + let { secondCategoryList } = this.state + let activeList = [] + if (e.target.checked) { + activeList = secondCategoryList[index].labelList.map(item => item.assembleId) + } + _.set(secondCategoryList, [index, 'activeList'], activeList) + this.setState({ secondCategoryList }) + this.getAssembleIdList(secondCategoryList) + } + + render() { + const { secondCategoryList, isShowSpin, currentKey, tabList } = this.state + return ( + + {tabList?.length > 0 && ( +
+ { + this.onTabChange(key, 'key') + }} + > +
+ {secondCategoryList?.length > 0 && + secondCategoryList.map((secondItem, secondIndex) => { + let labelList = secondItem.labelList.map(item => { + return { + label: item.labelName, + value: item.assembleId + } + }) + return ( + +
+
+ {secondItem.categoryName} +
+
+ + 全选 + +
+
+ + } + > + + + +
+ ) + })} +
+
+
+ +
+
+ )} +
+ ) + } +} + +export default FrontEnd diff --git a/src/views/practise/practice-questions/components/front-end/index.less b/src/views/practise/practice-questions/components/front-end/index.less new file mode 100644 index 0000000..c300d3a --- /dev/null +++ b/src/views/practise/practice-questions/components/front-end/index.less @@ -0,0 +1,24 @@ +.front-box { + .ant-descriptions-title { + display: flex; + justify-content: space-between; + font-size: 18px; + color: rgba(51, 51, 51, 0.7); + } + .ant-checkbox-wrapper { + font-size: 14px; + color: rgba(51, 51, 51, 0.5); + } + .box{ + display: flex; + width: 1439px; + .box1{ + flex: 1; + } + .box2{ + flex: 1; + // float: right; + text-align: right; + } + } +} diff --git a/src/views/practise/practice-questions/components/front-end/index1.tsx b/src/views/practise/practice-questions/components/front-end/index1.tsx new file mode 100644 index 0000000..b5384ba --- /dev/null +++ b/src/views/practise/practice-questions/components/front-end/index1.tsx @@ -0,0 +1,90 @@ +import req from '@utils/request' +import { Card, Checkbox, Descriptions } from 'antd' +import { useEffect, useState } from 'react' + +const apiName = { + /** + * 查询大类 + */ + queryPrimaryCategory: '/category/queryPrimaryCategory', + + // 查询分类及标签 + queryCategoryAndLabel: '/category/queryCategoryAndLabel' +} + +const PracticeHome = () => { + const [primaryList, setPrimaryList] = useState[]>([]) + const [cateAndLabelList, setCateAndLabelList] = useState[]>([]) + const [currentPrimaryId, setCurrentPrimaryId] = useState() + + const queryPrimaryList = () => { + req({ + method: 'post', + url: apiName.queryPrimaryCategory, + data: { categoryType: 1 } + }) + .then((res: Record) => { + if (res.data && res.data.length > 0) { + setCurrentPrimaryId(res.data[0].id) + setPrimaryList([...res.data].map(t => ({ tab: t.categoryName, key: t.id }))) + } + }) + .catch(err => { + console.log(err) + }) + } + + useEffect(() => { + queryPrimaryList() + }, []) + + const getCategoryAndLabel = () => { + req({ + method: 'post', + url: apiName.queryCategoryAndLabel, + data: { id: currentPrimaryId } + }) + .then(res => { + if (res.data && res.data.length > 0) { + res.data = res.data.map(item => { + return { + ...item, + children: item.labelDTOList.map(t => ({ label: t.labelName, value: t.id })) + } + }) + setCateAndLabelList([...res.data]) + } + }) + .catch(err => { + console.log(err) + }) + } + + useEffect(() => { + if (currentPrimaryId) { + getCategoryAndLabel() + } + }, [currentPrimaryId]) + + return ( +
+ + {cateAndLabelList.map(item => { + return ( + 全选}> + + + + + ) + })} + +
+ ) +} + +export default PracticeHome diff --git a/src/views/practise/practice-questions/components/paper-end/index.jsx b/src/views/practise/practice-questions/components/paper-end/index.jsx new file mode 100644 index 0000000..4ba4718 --- /dev/null +++ b/src/views/practise/practice-questions/components/paper-end/index.jsx @@ -0,0 +1,155 @@ +// import req from '@utils/request' +import { Card, Input, Pagination, Spin, Tooltip } from 'antd' +import React, { useState } from 'react' +import { useNavigate } from 'react-router-dom' + +import './index.less' + +const { Search } = Input + +const tabList = [ + { + key: '0', + tab: '默认' + } + // { + // key: '1', + // tab: '最新' + // }, + // { + // key: '2', + // tab: '最热' + // } +] + +const PaperView = props => { + const navigate = useNavigate() + + const [spinning, setSpinning] = useState(false) + const [paperList, setPaperList] = useState([ + { + setId: 1, + setName: '测试试卷', + setHeat: 1, + setDesc: '描述' + } + ]) + const [orderType, setOrderType] = useState(0) + const [setId, setSetId] = useState(0) + const [pageInfo, setPageInfo] = useState({ + total: 0, + pageIndex: 1 + }) + const [searchText, setSearchText] = useState('') + const getPreSetContent = () => { + // const { menuId, menuType } = this.props + // const { orderType, searchText } = this.state + // let params = { + // menuId: menuId, + // menuType: menuType, + // orderType: orderType, + // pageInfo: { + // pageIndex: this.pageIndex, + // pageSize: 8 + // }, + // setName: searchText + // } + // req({ + // method: 'post', + // data: params, + // url: 'admin/practice/set/getPreSetContent' + // }) + // .then(res => { + // if (res.data.pageList && res.data.pageList?.length > 0) { + // this.setState({ + // paperList: res.data.pageList, + // total: res.data.pageInfo.total, + // isShowSpin: false, + // setId: res.data.pageList.setId + // }) + // } + // }) + // .catch(err => console.log(err)) + } + + const onTabChange = key => { + setOrderType(key) + } + + const onChangePagination = pageIndex => { + setPageInfo({ + ...pageInfo, + pageIndex + }) + } + + const handleJump = setId => navigate('/practice-detail/' + setId) + + const onSearch = value => { + setSearchText(value) + } + + return ( + + {/*
+ +
*/} +
+
+ +
+ {paperList?.length > 0 && + paperList.map((item, index) => { + return ( +
handleJump(item.setId)} + key={`paperList_${index}`} + > +

{item.setName}

+
+ 热度指数:{item.setHeat} +
+
+ + {item.setDesc} + +
+
+ ) + })} +
+
+
+
+ {pageInfo.total > 8 && ( + + )} +
+
+
+ ) +} + +export default PaperView diff --git a/src/views/practise/practice-questions/components/paper-end/index.less b/src/views/practise/practice-questions/components/paper-end/index.less new file mode 100644 index 0000000..1d0a755 --- /dev/null +++ b/src/views/practise/practice-questions/components/paper-end/index.less @@ -0,0 +1,76 @@ +.paper-box-search { + margin-left: 600px; +} +.paper-box { + .paper-box-cardlist { + border-radius: 3px; + margin-bottom: 10px; + .ant-card-body { + padding: 20px 10px; + display: flex; + flex-wrap: wrap; + + .paper-box-cardlist-body-item { + height: 190px; + width: 210px; + padding: 20px 30px; + margin: 0 15px 10px 0px; + border-radius: 3px; + background-image: url(../../../../../imgs/badcf6d37c476233.png); + background-size: 100% 100%; + cursor: pointer; + transition: all 0.5s; + &:hover { + transform: scale(1.04); + } + .paper-box-cardlist-body-item-title { + max-height: 40px; + margin-top: 15px; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + vertical-align: middle; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + font-size: 14px; + color: #666; + margin-bottom: 10px; + height: 100px; + line-height: 1.4; + font-weight: 400; + font-weight: bolder; + } + .paper-box-cardlist-body-item-logo { + width: 80px; + height: 80px; + text-align: center; + line-height: 80px; + margin: 10px auto 0; + border-radius: 50px; + overflow: hidden; + } + .paper-box-cardlist-body-item-hot { + font-size: 12px; + color: #666; + text-align: center; + margin: 10px 0; + } + .paper-box-cardlist-body-item-describe { + text-align: center; + width: 100%; + font-size: 12px; + color: #888; + box-sizing: border-box; + padding-top: 10px; + .hide-3-line { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + } + } + } + } + } +} diff --git a/src/views/practise/practice-questions/constant.js b/src/views/practise/practice-questions/constant.js new file mode 100644 index 0000000..9b36bab --- /dev/null +++ b/src/views/practise/practice-questions/constant.js @@ -0,0 +1,20 @@ +/** + * 接口 + */ +export const ApiName = { + /** + * 获取左侧菜单 + */ + getPracticeMenu: '/admin/practice/set/getPracticeMenu', + /** + * 获取右侧内容 + */ + getSpecialPracticeContent: '/admin/practice/set/getSpecialPracticeContent', + /** + * 查询大类 + */ + queryPrimaryCategory: '/category/queryPrimaryCategory', + + // 查询分类及标签 + queryCategoryAndLabel: '/category/queryCategoryAndLabel' +} diff --git a/src/views/practise/practice-questions/index.jsx b/src/views/practise/practice-questions/index.jsx new file mode 100644 index 0000000..7dc67f4 --- /dev/null +++ b/src/views/practise/practice-questions/index.jsx @@ -0,0 +1,159 @@ +import { MailOutlined } from '@ant-design/icons' +import req from '@utils/request' +import { Menu } from 'antd' +import React, { Component, Fragment } from 'react' +import PaperEnd from './components/paper-end/index' +import { ApiName } from './constant' +import './index.less' + +const { SubMenu } = Menu + +export default class PracticeQuestions extends Component { + constructor(props) { + super(props) + this.state = { + currentKey: '', // 选中的menu + subMenuList: [] + } + } + + /** + * 当前选择的二级菜单 + */ + currentKeyMap = {} + + /** + * 当前选择的二级菜单对应的一级菜单 + */ + currentKeyFirstMenuType = 1 + + componentDidMount() { + this.getPracticeMenu() + } + + /** + * 获取左侧菜单 + */ + getPracticeMenu() { + this.currentKeyMap = { + menuName: '试卷', + menuId: '10', + menuType: 2 + } + this.setState({ + currentKey: '10', + subMenuList: [ + { + title: '模拟套卷', + detailVOS: [ + { + menuName: '后端', + menuId: '10', + menuType: 2 + } + ] + } + ] + }) + return + // return new Promise(resolve => { + // resolve() + // }) + req({ + method: 'post', + data: {}, + url: ApiName.getPracticeMenu + }) + .then(res => { + if (res.data && res.data.length > 0) { + this.currentKeyMap = res.data[0].detailVOS[0] + this.setState({ + subMenuList: res.data, + currentKey: this.currentKeyMap.menuId + }) + } + }) + .catch(err => console.log(err)) + } + + /** + * 切换菜单 + * @param {*} e + */ + handleClick = e => { + console.log(e) + let { subMenuList, currentKey } = this.state + if (currentKey === e.key) { + return + } + // 获得当前选择的下标 + let index = e.keyPath[1].split('_')[2] + // this.currentKeyFirstMenuType = subMenuList[index].id; + this.currentKeyFirstMenuType = index // 记录一级菜单 + + subMenuList[index].detailVOS.forEach(element => { + // 获得当前选中的菜单项 + if (element.menuId == e.key) { + this.currentKeyMap = element + } + }) + this.setState({ + currentKey: e.key + }) + } + + render() { + const { currentKey, subMenuList } = this.state + return ( + + {subMenuList?.length > 0 && ( +
+
+ + {subMenuList.map((subMenuItem, subMenuIndex) => { + return ( + } + > + {subMenuItem?.detailVOS?.length > 0 && + subMenuItem?.detailVOS?.map(menuItem => { + return ( + + {menuItem.menuType == 1 ? 'GRADE ' : ''} + {menuItem.menuName} + + ) + })} + + ) + })} + +
+
+ {/* {this.currentKeyFirstMenuType == 0 ? ( + + ) : ( + + )} */} + +
+
+ )} +
+ ) + } +} diff --git a/src/views/practise/practice-questions/index.less b/src/views/practise/practice-questions/index.less new file mode 100644 index 0000000..67fdf05 --- /dev/null +++ b/src/views/practise/practice-questions/index.less @@ -0,0 +1,50 @@ +.practice-questions-container { + margin: 0 auto; + display: flex; + width: 1439px; + // padding: 20px 50px; + border-radius: 5px; + // flex-direction: column; + overflow: auto; + .practice-questions-menu { + margin-right: 20px; + padding: 10px; + overflow-y: auto; + background-color: white; + + .ant-menu-submenu > .ant-menu { + background-color: #fafafa; + } + // 右边线去掉 + .ant-menu-inline, + .ant-menu-vertical, + .ant-menu-vertical-left { + border-right: 0; + } + } + .practice-questions-box { + flex: 1; + margin: 0 auto; + background-color: white; + padding: 20px 50px; + border-radius: 5px; + flex-direction: column; + overflow: auto; + .tab-name { + color: rgba(60, 110, 238, 1) !important; + } + .but { + margin-bottom: 50px; + .button { + // size: 25px; + width: 120px; + block-size: 40px; + color: white; + // background-color: rgba(60, 110, 238, 0.7) !important; + background-color: rgba(60, 110, 238, 1); + border-radius: 36px; + float: right; + } + } + } +} diff --git a/src/views/question-bank/index.less b/src/views/question-bank/index.less index 6229a89..e82c840 100644 --- a/src/views/question-bank/index.less +++ b/src/views/question-bank/index.less @@ -1,39 +1,39 @@ .question-bank-box { - display: flex; - width: 1439px; - margin: 0 auto; - background-color: #f3f4f6; - border-radius: 5px; - height: calc(100vh - 90px); - overflow-y: scroll; - .mask-box { - flex: 1; - overflow-y: auto; - border-radius: 8px; - .question-box { - .category-list-box { - padding: 24px 24px 6px; - border-top-left-radius: 8px; - border-top-right-radius: 8px; - background-color: #fff; - } - .question-list-box { - margin-top: 1px; - } - .loading-more{ - background-color: white; - text-align: center; - padding-bottom: 15px; - } - } - } - - .ranking-box { - margin-left: 16px; - overflow-y: auto; - width: 310px; - } - .ant-spin-nested-loading { + display: flex; + width: 1439px; + margin: 0 auto; + background-color: #f3f4f6; + border-radius: 5px; + height: calc(100vh - 90px); + overflow-y: scroll; + .mask-box { + flex: 1; + overflow-y: auto; + border-radius: 8px; + .question-box { + .category-list-box { + padding: 24px 24px 6px; + border-top-left-radius: 8px; + border-top-right-radius: 8px; background-color: #fff; + } + .question-list-box { + margin-top: 1px; + } + .loading-more { + background-color: white; + text-align: center; + padding-bottom: 15px; + } } + } + + .ranking-box { + margin-left: 16px; + overflow-y: auto; + width: 310px; + } + .ant-spin-nested-loading { + background-color: #fff; + } } diff --git a/src/views/question-bank/index.tsx b/src/views/question-bank/index.tsx index 41c8acc..b00e9a5 100644 --- a/src/views/question-bank/index.tsx +++ b/src/views/question-bank/index.tsx @@ -31,7 +31,6 @@ const QuestionBank = () => { * @param {*} assembleIds 三级标签 assembleIds */ const onChangeLabel = values => { - console.log(values) setSelectedValue(values) setQuestionList([]) setTotal(0) diff --git a/src/views/upload-questions/components/brief-questions/index.jsx b/src/views/upload-questions/components/brief-questions/index.jsx index 548368f..3812ab6 100644 --- a/src/views/upload-questions/components/brief-questions/index.jsx +++ b/src/views/upload-questions/components/brief-questions/index.jsx @@ -1,341 +1,341 @@ -import React, { Component, Fragment, createRef } from 'react'; -import { Input, Modal, message, Spin } from 'antd'; +import { Input, Modal, message } from 'antd' +import React, { Component, Fragment, createRef } from 'react' -import req from '@utils/request'; -import { debounce } from '@utils'; -import KindEditor from '../kind-editor'; -import RankLabelBox from '../rank-label-box'; -import RepeatContentBox from '../repeat-content-box'; -import { apiName } from '../../constant'; +import { debounce } from '@utils' +import req from '@utils/request' +import { apiName } from '../../constant' import QuestionEditor from '../question-editor' -import './index.less'; +import RankLabelBox from '../rank-label-box' +import RepeatContentBox from '../repeat-content-box' +import './index.less' export default class BriefQuestions extends Component { - constructor(props) { - super(props); - this.state = { - subjectName: '', // 题目 - isDisabledSubmit: true, //是否禁止输入 - isShowModalBox: false, // 是否展示重复率弹框 - isSubmit: true, // 是否支持提交 - }; + constructor(props) { + super(props) + this.state = { + subjectName: '', // 题目 + isDisabledSubmit: true, //是否禁止输入 + isShowModalBox: false, // 是否展示重复率弹框 + isSubmit: true // 是否支持提交 } - kindEditor = createRef(); - rankLabelBox = createRef(); - rankId = 1; //职级 - subjectAnswer = ''; // 答案 - firstCategoryValue = ''; // 一级分类的值 - secondCategoryValue = []; // 二级分类的值 - thirdCategoryValue = []; // 三级标签的值 - repeatInfo = {}; // 重复率 + } + kindEditor = createRef() + rankLabelBox = createRef() + rankId = 1 //职级 + subjectAnswer = '' // 答案 + firstCategoryValue = '' // 一级分类的值 + secondCategoryValue = [] // 二级分类的值 + thirdCategoryValue = [] // 三级标签的值 + repeatInfo = {} // 重复率 - /** - * 输入题目 - * @param {*} e - */ - onChangeSubjectName = (e) => { - let str = e.target.value.trim(); - this.setState( - { - subjectName: str, - }, - () => { - // this.rankLabelBox.getThirdCategoryList(); - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - } - ); - }; - - /** - * 富文本编辑器 - * @param {*} e - */ - onChangeEditor = (e) => { - this.subjectAnswer = e; - let isDisabledSubmit = this.checkData(); + /** + * 输入题目 + * @param {*} e + */ + onChangeSubjectName = e => { + let str = e.target.value.trim() + this.setState( + { + subjectName: str + }, + () => { + // this.rankLabelBox.getThirdCategoryList(); + let isDisabledSubmit = this.checkData() this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 一次确认录入 - */ - onSubmit = debounce(() => { - console.log(this.rankId) - const { subjectName, isDisabledSubmit, isSubmit } = this.state; - if (isDisabledSubmit || !isSubmit) { - return; - } - if (!isSubmit) { - return; - } - if (!!!subjectName) { - message.warning('请输入题目名称'); - return; - } - if (!!!this.subjectAnswer) { - message.warning('请输入题目答案'); - return; - } - if (!!!this.firstCategoryValue) { - message.warning('请选择一级分类'); - return; - } - if (this.secondCategoryValue.length <= 0) { - message.warning('请选择二级分类'); - return; - } - if (this.thirdCategoryValue.length <= 0) { - message.warning('请选择三级标签'); - return; - } - this.setState({ - isSubmit: false, - }); - let params = { - subjectName: subjectName, - subjectDifficult: this.rankId, - subjectType: 4, - subjectScore: 1, - subjectParse: '解析什么', - subjectAnswer: this.subjectAnswer, - categoryIds: this.secondCategoryValue.filter(item => item.active).map(t => t.id), - labelIds: this.thirdCategoryValue.filter(item => item.active).map(t => t.id), - }; - req({ - method: 'post', - data: params, - url: apiName.add, + isDisabledSubmit }) - .then((res) => { - this.setState({ - isSubmit: true, - }, () => { - this.successModalConfirm(); - }); - }) - .catch((err) => { - this.setState({ - isSubmit: true, - }); - console.log(err); - }); - }); + } + ) + } - /** - * 校验是否支持点击按钮 - * @returns - */ - checkData = () => { - const { subjectName } = this.state; - let isDisabledSubmit = false; - if ( - !!!subjectName || - !!!this.subjectAnswer || - !!!this.firstCategoryValue || - this.secondCategoryValue.length <= 0 - // || - // this.thirdCategoryValue.length <= 0 - ) { - isDisabledSubmit = true; - } - return isDisabledSubmit; - }; + /** + * 富文本编辑器 + * @param {*} e + */ + onChangeEditor = e => { + this.subjectAnswer = e + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } - /** - * 取消 - */ - onCancel = () => { - console.log(this.kindEditor) - this.subjectAnswer = ''; // 答案 - this.rankId = 1; - this.firstCategoryValue = ''; - this.secondCategoryValue = []; - this.thirdCategoryValue = []; - this.repeatInfo = {}; - this.kindEditor.current.onClear(); - this.rankLabelBox.current.initRankLabel(); - this.setState({ - subjectName: '', - isShowModalBox: false, - isSubmit: true, // 是否支持提交 - }); - }; - - /** - * 重复率弹框-确认录入 - */ - onSubmitRepeatModal = debounce( - () => { - let params = { - docId: this.repeatInfo.repeatDocId, - }; - req({ - method: 'post', - data: params, - url: apiName.addRepeatInterviewSubject, - }) - .then((res) => { - if (res.data) { - this.successModalConfirm(); - } else { - message.info('请再次确认'); - } - }) - .catch((err) => { - console.log(err); - message.error('请再次确认'); - }); - }, - 300, - true - ); - - /** - * 重复率弹框-取消录入 - */ - onCancelRepeatModal = () => { - this.repeatInfo = {}; - this.setState({ - isShowModalBox: false, - }); - }; - - /** - * 录入成功的弹框 - */ - successModalConfirm = () => { - Modal.confirm({ - title: ( -
- 录入成功!贡献榜火力值 + 1 -
- ), - closable: false, - maskClosable: false, - icon: ' ', - onOk: this.onAgainSuccessModal, - onCancel: this.onGoHomeSuccessModal, - okText: '再录一题', - cancelText: '去首页', - className: 'questions-success-modal-confirm', - }); - }; - - /** - * 录入成功弹框-再来一题 - */ - onAgainSuccessModal = () => { - this.onCancel(); - }; - - /** - * 录入成功弹框-去首页 - */ - onGoHomeSuccessModal = () => { - window.location.href = '/question-bank'; - }; - - /** - * 分类选择 - * @param {*} e - */ - onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { - this.firstCategoryValue = firstCategoryValue; // 一级分类的值 - this.secondCategoryValue = secondCategoryValue; // 二级分类的值 - this.thirdCategoryValue = thirdCategoryValue; // 三级标签的值 - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 职级选择 - * @param {*} list - */ - handleChangeRank = (list) => { - this.rankId = list[0].categoryId; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - render() { - const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state; - const { questionsType } = this.props; - // this.successModalConfirm(); - - return ( - - -
-
题目名称:
-
- -
-
-
-
题目答案:
- {this.reanderAnser()} -
- -
-
- 清空 -
-
- 提交 -
-
- -
-
- ); + /** + * 一次确认录入 + */ + onSubmit = debounce(() => { + console.log(this.rankId) + const { subjectName, isDisabledSubmit, isSubmit } = this.state + if (isDisabledSubmit || !isSubmit) { + return } + if (!isSubmit) { + return + } + if (!!!subjectName) { + message.warning('请输入题目名称') + return + } + if (!!!this.subjectAnswer) { + message.warning('请输入题目答案') + return + } + if (!!!this.firstCategoryValue) { + message.warning('请选择一级分类') + return + } + if (this.secondCategoryValue.length <= 0) { + message.warning('请选择二级分类') + return + } + if (this.thirdCategoryValue.length <= 0) { + message.warning('请选择三级标签') + return + } + this.setState({ + isSubmit: false + }) + let params = { + subjectName: subjectName, + subjectDifficult: this.rankId, + subjectType: 4, + subjectScore: 1, + subjectParse: '解析什么', + subjectAnswer: this.subjectAnswer, + categoryIds: this.secondCategoryValue.filter(item => item.active).map(t => t.id), + labelIds: this.thirdCategoryValue.filter(item => item.active).map(t => t.id) + } + req({ + method: 'post', + data: params, + url: apiName.add + }) + .then(res => { + this.setState( + { + isSubmit: true + }, + () => { + this.successModalConfirm() + } + ) + }) + .catch(err => { + this.setState({ + isSubmit: true + }) + console.log(err) + }) + }) - /** - * 问答题-答案 - */ - reanderAnser = () => { - return ( -
- -
- ); - }; + /** + * 校验是否支持点击按钮 + * @returns + */ + checkData = () => { + const { subjectName } = this.state + let isDisabledSubmit = false + if ( + !!!subjectName || + !!!this.subjectAnswer || + !!!this.firstCategoryValue || + this.secondCategoryValue.length <= 0 + // || + // this.thirdCategoryValue.length <= 0 + ) { + isDisabledSubmit = true + } + return isDisabledSubmit + } + + /** + * 取消 + */ + onCancel = () => { + this.subjectAnswer = '' // 答案 + this.rankId = 1 + this.firstCategoryValue = '' + this.secondCategoryValue = [] + this.thirdCategoryValue = [] + this.repeatInfo = {} + this.kindEditor.current.onClear() + this.rankLabelBox.current.initRankLabel() + this.setState({ + subjectName: '', + isShowModalBox: false, + isSubmit: true // 是否支持提交 + }) + } + + /** + * 重复率弹框-确认录入 + */ + onSubmitRepeatModal = debounce( + () => { + let params = { + docId: this.repeatInfo.repeatDocId + } + req({ + method: 'post', + data: params, + url: apiName.addRepeatInterviewSubject + }) + .then(res => { + if (res.data) { + this.successModalConfirm() + } else { + message.info('请再次确认') + } + }) + .catch(err => { + console.log(err) + message.error('请再次确认') + }) + }, + 300, + true + ) + + /** + * 重复率弹框-取消录入 + */ + onCancelRepeatModal = () => { + this.repeatInfo = {} + this.setState({ + isShowModalBox: false + }) + } + + /** + * 录入成功的弹框 + */ + successModalConfirm = () => { + Modal.confirm({ + title: ( +
+ 录入成功!贡献榜火力值 + 1 +
+ ), + closable: false, + maskClosable: false, + icon: ' ', + onOk: this.onAgainSuccessModal, + onCancel: this.onGoHomeSuccessModal, + okText: '再录一题', + cancelText: '去首页', + className: 'questions-success-modal-confirm' + }) + } + + /** + * 录入成功弹框-再来一题 + */ + onAgainSuccessModal = () => { + this.onCancel() + } + + /** + * 录入成功弹框-去首页 + */ + onGoHomeSuccessModal = () => { + window.location.href = '/question-bank' + } + + /** + * 分类选择 + * @param {*} e + */ + onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { + this.firstCategoryValue = firstCategoryValue // 一级分类的值 + this.secondCategoryValue = secondCategoryValue // 二级分类的值 + this.thirdCategoryValue = thirdCategoryValue // 三级标签的值 + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + /** + * 职级选择 + * @param {*} list + */ + handleChangeRank = list => { + this.rankId = list[0].categoryId + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + render() { + const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state + const { questionsType } = this.props + // this.successModalConfirm(); + + return ( + // + +
+
题目名称:
+
+ +
+
+
+
题目答案:
+ {this.reanderAnser()} +
+ +
+
+ 清空 +
+
+ 提交 +
+
+ +
+ // {/*
*/} + ) + } + + /** + * 问答题-答案 + */ + reanderAnser = () => { + return ( +
+ +
+ ) + } } - diff --git a/src/views/upload-questions/components/judge-questions/index.jsx b/src/views/upload-questions/components/judge-questions/index.jsx index 680c394..2c3db2d 100644 --- a/src/views/upload-questions/components/judge-questions/index.jsx +++ b/src/views/upload-questions/components/judge-questions/index.jsx @@ -1,327 +1,312 @@ -import React, { Component, Fragment } from 'react'; -import { Input, Modal, message, Spin } from 'antd'; -import req from '@utils/request'; -import { debounce } from '@utils'; -import RankLabelBox from '../rank-label-box'; -import OptionInputBox from '../option-input-box'; -import RepeatContentBox from '../repeat-content-box'; -import { apiName } from '../../constant'; -import './index.less'; +import { debounce } from '@utils' +import req from '@utils/request' +import { Input, Modal, Spin, message } from 'antd' +import React, { Component, Fragment, createRef } from 'react' +import { apiName } from '../../constant' +import OptionInputBox from '../option-input-box' +import RankLabelBox from '../rank-label-box' +import RepeatContentBox from '../repeat-content-box' +import './index.less' export default class JudgeQuestions extends Component { - constructor(props) { - super(props); - this.state = { - subjectName: '', // 题目 - isDisabledSubmit: true, //是否禁止输入 - isShowModalBox: false, // 是否展示重复率弹框 - isSubmit: true, // 是否支持提交 - }; + constructor(props) { + super(props) + this.state = { + subjectName: '', // 题目 + isDisabledSubmit: true, //是否禁止输入 + isShowModalBox: false, // 是否展示重复率弹框 + isSubmit: true // 是否支持提交 } - rankLabelBox = RankLabelBox | null; - optionInputBox = OptionInputBox | null; - currentActive = []; // 当前选中的项 - scoreValue = ''; // 分数 - subjectAnalysis = ''; //试题解析 - rankId = 1; //职级 - firstCategoryValue = ''; // 一级分类的值 - secondCategoryValue = []; // 二级分类的值 - thirdCategoryValue = []; // 三级标签的值 - repeatInfo = {}; // 重复率 + } + // rankLabelBox = RankLabelBox | null + rankLabelBox = createRef() + optionInputBox = OptionInputBox | null + currentActive = [] // 当前选中的项 + scoreValue = '' // 分数 + subjectAnalysis = '' //试题解析 + rankId = 1 //职级 + firstCategoryValue = '' // 一级分类的值 + secondCategoryValue = [] // 二级分类的值 + thirdCategoryValue = [] // 三级标签的值 + repeatInfo = {} // 重复率 - /** - * 输入题目 - * @param {*} e - */ - onChangeSubjectName = (e) => { - let str = e.target.value.trim(); - this.setState( - { - subjectName: str, - }, - () => { - this.rankLabelBox.getThirdCategoryList(); - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - } - ); - }; - - /** - * 一次确认录入 - */ - onSubmit = debounce(() => { - const { subjectName, isDisabledSubmit, isSubmit } = this.state; - if (isDisabledSubmit || !isSubmit) { - return; - } + /** + * 输入题目 + * @param {*} e + */ + onChangeSubjectName = e => { + let str = e.target.value.trim() + this.setState( + { + subjectName: str + }, + () => { + // this.rankLabelBox.getThirdCategoryList(); + let isDisabledSubmit = this.checkData() this.setState({ - isSubmit: false, - }); - let params = { - subjectName: subjectName, - difficulty: this.rankId, - subjectType: 3, - subjectScore: this.scoreValue, - subjectParse: this.subjectAnalysis, - isCorrect: this.currentActive[0], - categoryIds: this.secondCategoryValue, - labelIds: this.thirdCategoryValue, - }; - console.log('判断录入 ----', params); - req({ - method: 'post', - data: params, - url: apiName.addInterviewSubject, + isDisabledSubmit }) - .then((res) => { - this.repeatInfo = {}; - if (res.data && res.data.insertStatus) { - this.setState( - { - isSubmit: true, - }, - () => { - this.successModalConfirm(); - } - ); - } else if (!res.data.insertStatus) { - this.repeatInfo = { - repeatDocId: res.data.docId, // 重复题目id - repeatRate: res.data.repeatRate, // 重复率 - repeatIsCorrect: res.data.isCorrect, // 答案 - repeatSubjectName: res.data.subjectName, // 重复题目 - repeatSetterErp: res.data.subjectSetterErp, // 出题人erp - repeatSetterName: res.data.subjectSetterName, // 出题人姓名 - }; - this.setState({ - isShowModalBox: true, - isSubmit: true, - }); - } - }) - .catch((err) => { - this.setState({ - isSubmit: true, - }); - console.log(err); - }); - }); + } + ) + } - /** - * 校验是否支持点击按钮 - * @returns - */ - checkData = () => { - const { subjectName } = this.state; - let isDisabledSubmit = false; - if ( - !!!subjectName || - this.currentActive?.length <= 0 || - !!!this.firstCategoryValue || - this.secondCategoryValue.length <= 0 || - this.thirdCategoryValue.length <= 0 || - !!!this.scoreValue - ) { - isDisabledSubmit = true; - } - return isDisabledSubmit; - }; - - /** - * 取消 - */ - onCancel = () => { - this.currentActive = []; // 选项列表 - this.scoreValue = ''; // 分数 - this.subjectAnalysis = ''; //试题解析 - this.rankId = 1; - this.firstCategoryValue = ''; // 一级分类的值 - this.secondCategoryValue = []; // 二级分类的值 - this.thirdCategoryValue = []; // 三级标签的值 - this.repeatInfo = {}; - this.rankLabelBox.initRankLabel(); - this.optionInputBox.handleClearOption(); - this.setState({ - subjectName: '', - isShowModalBox: false, - isSubmit: true, // 是否支持提交 - }); - }; - - /** - * 重复率弹框-确认录入 - */ - onSubmitRepeatModal = debounce( - () => { - let params = { - docId: this.repeatInfo.repeatDocId, - }; - req({ - method: 'post', - data: params, - url: apiName.addRepeatInterviewSubject, - }) - .then((res) => { - if (res.data) { - this.successModalConfirm(); - } else { - message.info('请再次确认'); - } - }) - .catch((err) => { - console.log(err); - message.error('请再次确认'); - }); - }, - 300, - true - ); - - /** - * 重复率弹框-取消录入 - */ - onCancelRepeatModal = () => { - this.repeatInfo = {}; - this.setState({ - isShowModalBox: false, - }); - }; - - /** - * 录入成功的弹框 - */ - successModalConfirm = () => { - Modal.confirm({ - title: ( -
- 录入成功!贡献榜火力值 + 1 -
- ), - closable: false, - maskClosable: false, - icon: ' ', - onOk: this.onAgainSuccessModal, - onCancel: this.onGoHomeSuccessModal, - okText: '再录一题', - cancelText: '去首页', - className: 'questions-success-modal-confirm', - }); - }; - - /** - * 录入成功弹框-再来一题 - */ - onAgainSuccessModal = () => { - this.onCancel(); - }; - - /** - * 录入成功弹框-去首页 - */ - onGoHomeSuccessModal = () => { - // this.onCancel(); - window.location.href = '/cms-supplier/question-bank'; - }; - - /** - * 分类选择 - * @param {*} e - */ - onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { - this.firstCategoryValue = firstCategoryValue; // 一级分类的值 - this.secondCategoryValue = secondCategoryValue; // 二级分类的值 - this.thirdCategoryValue = thirdCategoryValue; // 三级标签的值 - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 职级选择 - * @param {*} list - */ - handleChangeRank = (list) => { - this.rankId = list[0]; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - /** - * 选项操作 - * @param {*} currentActive 选项列表 - * @param {*} scoreValue 分值 - * @param {*} subjectAnalysis 解析 - */ - handleChangeOption = (currentActive, scoreValue, subjectAnalysis) => { - this.currentActive = currentActive; - this.scoreValue = scoreValue; - this.subjectAnalysis = subjectAnalysis; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - render() { - const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state; - const { questionsType } = this.props; - return ( - - -
-
题目名称:
- this.onChangeSubjectName(e)} - /> -
- { - this.optionInputBox = ref; - }} - isJudge={true} - handleChangeOption={this.handleChangeOption} - /> - { - this.rankLabelBox = ref; - }} - subjectName={subjectName} - onChangeRankLabel={this.onChangeRankLabel} - handleChangeRank={this.handleChangeRank} - /> -
-
- 清空 -
-
- 提交 -
-
- -
-
- ); + /** + * 一次确认录入 + */ + onSubmit = debounce(() => { + const { subjectName, isDisabledSubmit, isSubmit } = this.state + if (isDisabledSubmit || !isSubmit) { + return } + this.setState({ + isSubmit: false + }) + let params = { + subjectName: subjectName, + subjectDifficult: this.rankId, + subjectType: 3, + subjectScore: this.scoreValue, + subjectParse: this.subjectAnalysis, + optionList: [{ isCorrect: this.currentActive[0] }], + categoryIds: this.secondCategoryValue.filter(item => item.active).map(t => t.id), + labelIds: this.thirdCategoryValue.filter(item => item.active).map(t => t.id) + } + console.log('判断录入 ----', params) + req({ + method: 'post', + data: params, + url: apiName.add + }) + .then(res => { + this.setState( + { + isSubmit: true + }, + () => { + this.successModalConfirm() + } + ) + }) + .catch(err => { + this.setState({ + isSubmit: true + }) + console.log(err) + }) + }) + + /** + * 校验是否支持点击按钮 + * @returns + */ + checkData = () => { + const { subjectName } = this.state + let isDisabledSubmit = false + if ( + !!!subjectName || + this.currentActive?.length <= 0 || + !!!this.firstCategoryValue || + this.secondCategoryValue.length <= 0 || + this.thirdCategoryValue.length <= 0 || + !!!this.scoreValue + ) { + isDisabledSubmit = true + } + return isDisabledSubmit + } + + /** + * 取消 + */ + onCancel = () => { + this.currentActive = [] // 选项列表 + this.scoreValue = '' // 分数 + this.subjectAnalysis = '' //试题解析 + this.rankId = 1 + this.firstCategoryValue = '' // 一级分类的值 + this.secondCategoryValue = [] // 二级分类的值 + this.thirdCategoryValue = [] // 三级标签的值 + this.repeatInfo = {} + this.rankLabelBox.current.initRankLabel() + this.optionInputBox.handleClearOption() + this.setState({ + subjectName: '', + isShowModalBox: false, + isSubmit: true // 是否支持提交 + }) + } + + /** + * 重复率弹框-确认录入 + */ + onSubmitRepeatModal = debounce( + () => { + let params = { + docId: this.repeatInfo.repeatDocId + } + req({ + method: 'post', + data: params, + url: apiName.addRepeatInterviewSubject + }) + .then(res => { + if (res.data) { + this.successModalConfirm() + } else { + message.info('请再次确认') + } + }) + .catch(err => { + console.log(err) + message.error('请再次确认') + }) + }, + 300, + true + ) + + /** + * 重复率弹框-取消录入 + */ + onCancelRepeatModal = () => { + this.repeatInfo = {} + this.setState({ + isShowModalBox: false + }) + } + + /** + * 录入成功的弹框 + */ + successModalConfirm = () => { + Modal.confirm({ + title: ( +
+ 录入成功!贡献榜火力值 + 1 +
+ ), + closable: false, + maskClosable: false, + icon: ' ', + onOk: this.onAgainSuccessModal, + onCancel: this.onGoHomeSuccessModal, + okText: '再录一题', + cancelText: '去首页', + className: 'questions-success-modal-confirm' + }) + } + + /** + * 录入成功弹框-再来一题 + */ + onAgainSuccessModal = () => { + this.onCancel() + } + + /** + * 录入成功弹框-去首页 + */ + onGoHomeSuccessModal = () => { + window.location.href = '/question-bank' + } + + /** + * 分类选择 + * @param {*} e + */ + onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { + this.firstCategoryValue = firstCategoryValue // 一级分类的值 + this.secondCategoryValue = secondCategoryValue // 二级分类的值 + this.thirdCategoryValue = thirdCategoryValue // 三级标签的值 + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + /** + * 职级选择 + * @param {*} list + */ + handleChangeRank = list => { + this.rankId = list[0] + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + /** + * 选项操作 + * @param {*} currentActive 选项列表 + * @param {*} scoreValue 分值 + * @param {*} subjectAnalysis 解析 + */ + handleChangeOption = (currentActive, scoreValue, subjectAnalysis) => { + this.currentActive = currentActive + this.scoreValue = scoreValue + this.subjectAnalysis = subjectAnalysis + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + render() { + const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state + const { questionsType } = this.props + return ( + + +
+
题目名称:
+ this.onChangeSubjectName(e)} + /> +
+ { + this.optionInputBox = ref + }} + isJudge={true} + handleChangeOption={this.handleChangeOption} + /> + +
+
+ 清空 +
+
+ 提交 +
+
+ +
+
+ ) + } } diff --git a/src/views/upload-questions/components/judge-questions/index.less b/src/views/upload-questions/components/judge-questions/index.less index c556327..4aa55dd 100644 --- a/src/views/upload-questions/components/judge-questions/index.less +++ b/src/views/upload-questions/components/judge-questions/index.less @@ -1,52 +1,52 @@ .judge-questions-container { - width: 1000px; + // width: 1000px; + display: flex; + align-items: center; + padding: 0 24px; + padding-top: 36px; + // label名字title + .judge-questions-title { display: flex; align-items: center; - padding: 0 24px; - padding-top: 36px; - // label名字title - .judge-questions-title { - display: flex; - align-items: center; - justify-content: flex-end; - width: 140px; - line-height: 40px; - font-size: 16px; - color: rgba(51, 51, 51, 1); - &:before { - display: inline-block; - margin-right: 4px; - margin-top: 1px; - color: #f5222d; - font-size: 16px; - content: '*'; - } + justify-content: flex-end; + width: 140px; + line-height: 40px; + font-size: 16px; + color: rgba(51, 51, 51, 1); + &:before { + display: inline-block; + margin-right: 4px; + margin-top: 1px; + color: #f5222d; + font-size: 16px; + content: '*'; } + } } .judge-questions-btns-container { + display: flex; + justify-content: flex-end; + align-items: center; + margin: 20px auto; + width: 952px; + .judge-questions-btn { display: flex; - justify-content: flex-end; align-items: center; - margin: 20px auto; - width: 952px; - .judge-questions-btn { - display: flex; - align-items: center; - justify-content: center; - width: 150px; - height: 40px; - font-size: 16px; - cursor: pointer; - border: 1px solid #d9d9d9; - border-radius: 10px; - } - .judge-questions-submit { - margin-left: 40px; - background-color: #4390f7; - color: #fff; - border: 1px solid #4390f7; - } - .judge-questions-disabled-submit { - opacity: 0.5; - } + justify-content: center; + width: 150px; + height: 40px; + font-size: 16px; + cursor: pointer; + border: 1px solid #d9d9d9; + border-radius: 10px; + } + .judge-questions-submit { + margin-left: 40px; + background-color: #4390f7; + color: #fff; + border: 1px solid #4390f7; + } + .judge-questions-disabled-submit { + opacity: 0.5; + } } diff --git a/src/views/upload-questions/components/multiple-questions/index.jsx b/src/views/upload-questions/components/multiple-questions/index.jsx index 5e1aa98..35090a7 100644 --- a/src/views/upload-questions/components/multiple-questions/index.jsx +++ b/src/views/upload-questions/components/multiple-questions/index.jsx @@ -1,343 +1,366 @@ -import React, { Component, Fragment } from 'react'; -import { Input, Modal, message, Spin } from 'antd'; -import _ from 'lodash'; -import req from '@utils/request'; -import { debounce } from '@utils'; -import KindEditor from '../kind-editor'; -import RankLabelBox from '../rank-label-box'; -import OptionInputBox from '../option-input-box'; -import RepeatContentBox from '../repeat-content-box'; -import { apiName } from '../../constant'; -import './index.less'; +import { debounce } from '@utils' +import req from '@utils/request' +import { Input, Modal, Spin, message } from 'antd' +import React, { Component, Fragment, createRef } from 'react' +import { apiName } from '../../constant' +import OptionInputBox from '../option-input-box' +import RankLabelBox from '../rank-label-box' +import RepeatContentBox from '../repeat-content-box' +import './index.less' -const defalutLabel = '请使用富文本编辑器输入选项内容'; +const defalutLabel = '请使用富文本编辑器输入选项内容' export default class MultipleQuestions extends Component { - constructor(props) { - super(props); - this.state = { - subjectName: '', // 题目 - isDisabledSubmit: true, //是否禁止输入 - isShowModalBox: false, // 是否展示重复率弹框 - isSubmit: true, // 是否支持提交 - }; + constructor(props) { + super(props) + this.state = { + subjectName: '', // 题目 + isDisabledSubmit: true, //是否禁止输入 + isShowModalBox: false, // 是否展示重复率弹框 + isSubmit: true // 是否支持提交 } - kindEditor = KindEditor | null; - rankLabelBox = RankLabelBox | null; - optionInputBox = OptionInputBox | null; - currentActive = []; // 选项列表 - scoreValue = ''; // 分数 - subjectAnalysis = ''; //试题解析 - rankId = 1; //职级 - subjectAnswer = ''; // 选项内容 - firstCategoryValue = ''; // 一级分类的值 - secondCategoryValue = []; // 二级分类的值 - thirdCategoryValue = []; // 三级标签的值 - repeatInfo = {}; // 重复率 + } + rankLabelBox = createRef() + optionInputBox = OptionInputBox | null + currentActive = [] // 选项列表 + scoreValue = '' // 分数 + subjectAnalysis = '' //试题解析 + rankId = 1 //职级 + subjectAnswer = '' // 选项内容 + firstCategoryValue = '' // 一级分类的值 + secondCategoryValue = [] // 二级分类的值 + thirdCategoryValue = [] // 三级标签的值 + repeatInfo = {} // 重复率 - /** - * 输入题目 - * @param {*} e - */ - onChangeSubjectName = (e) => { - let str = e.target.value.trim(); - this.setState( - { - subjectName: str, - }, - () => { - this.rankLabelBox.getThirdCategoryList(); - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - } - ); - }; - - /** - * 一次确认录入 - */ - onSubmit = debounce(() => { - const { subjectName, isDisabledSubmit, isSubmit } = this.state; - if (isDisabledSubmit || !isSubmit) { - return; - } + /** + * 输入题目 + * @param {*} e + */ + onChangeSubjectName = e => { + let str = e.target.value.trim() + this.setState( + { + subjectName: str + }, + () => { + // this.rankLabelBox.getThirdCategoryList(); + let isDisabledSubmit = this.checkData() this.setState({ - isSubmit: false, - }); - let params = { - subjectName: subjectName, - difficulty: this.rankId, - subjectType: 2, - subjectScore: this.scoreValue, - subjectParse: this.subjectAnalysis, - categoryIds: this.secondCategoryValue, - labelIds: this.thirdCategoryValue, - optionList: this.currentActive, - }; - console.log('多选录入 ----', params); - req({ - method: 'post', - data: params, - url: apiName.addInterviewSubject, + isDisabledSubmit }) - .then((res) => { - this.repeatInfo = {}; - if (res.data && res.data.insertStatus) { - this.setState( - { - isSubmit: true, - }, - () => { - this.successModalConfirm(); - } - ); - } else if (!res.data.insertStatus) { - this.repeatInfo = { - repeatDocId: res.data.docId, // 重复题目id - repeatRate: res.data.repeatRate, // 重复率 - repeatSubjectName: res.data.subjectName, // 重复题目 - repeatOptionList: res.data.optionList, // 重复列表项 - repeatSetterErp: res.data.subjectSetterErp, // 出题人erp - repeatSetterName: res.data.subjectSetterName, // 出题人姓名 - }; - this.setState({ - isShowModalBox: true, - isSubmit: true, - }); - } - }) - .catch((err) => { - this.setState({ - isSubmit: true, - }); - console.log(err); - }); - }); + } + ) + } - /** - * 校验是否支持点击按钮 - * @returns - */ - /** - * 校验是否支持点击按钮 - * @returns - */ - checkData = () => { - const { subjectName } = this.state; - let list = this.currentActive.filter((item) => item.optionContent === defalutLabel); - let isDisabledSubmit = false; - if ( - !!!subjectName || - list.length > 0 || - !!!this.firstCategoryValue || - this.secondCategoryValue.length <= 0 || - this.thirdCategoryValue.length <= 0 || - !!!this.scoreValue - ) { - isDisabledSubmit = true; - } - return isDisabledSubmit; - }; - - /** - * 取消 - */ - onCancel = () => { - this.currentActive = []; // 选项列表 - this.scoreValue = ''; // 分数 - this.subjectAnalysis = ''; //试题解析 - this.rankId = 1; - this.subjectAnswer = ''; // 选项内容 - this.firstCategoryValue = ''; // 一级分类的值 - this.secondCategoryValue = []; // 二级分类的值 - this.thirdCategoryValue = []; // 三级标签的值 - this.repeatInfo = {}; - this.kindEditor && this.kindEditor.onClear(); - this.rankLabelBox.initRankLabel(); - this.optionInputBox.handleClearOption(); - this.setState({ - subjectName: '', - isShowModalBox: false, - isSubmit: true, // 是否支持提交 - }); - }; - - /** - * 重复率弹框-确认录入 - */ - onSubmitRepeatModal = debounce( - () => { - let params = { - docId: this.repeatInfo.repeatDocId, - }; - req({ - method: 'post', - data: params, - url: apiName.addRepeatInterviewSubject, - }) - .then((res) => { - if (res.data) { - this.successModalConfirm(); - } else { - message.info('请再次确认'); - } - }) - .catch((err) => { - console.log(err); - message.error('请再次确认'); - }); - }, - 300, - true - ); - - /** - * 重复率弹框-取消录入 - */ - onCancelRepeatModal = () => { - this.repeatInfo = {}; - this.setState({ - isShowModalBox: false, - }); - }; - - /** - * 录入成功的弹框 - */ - successModalConfirm = () => { - Modal.confirm({ - title: ( -
- 录入成功!贡献榜火力值 + 1 -
- ), - closable: false, - maskClosable: false, - icon: ' ', - onOk: this.onAgainSuccessModal, - onCancel: this.onGoHomeSuccessModal, - okText: '再录一题', - cancelText: '去首页', - className: 'questions-success-modal-confirm', - }); - }; - - /** - * 录入成功弹框-再来一题 - */ - onAgainSuccessModal = () => { - this.onCancel(); - }; - - /** - * 录入成功弹框-去首页 - */ - onGoHomeSuccessModal = () => { - // this.onCancel(); - window.location.href = '/cms-supplier/question-bank'; - }; - - /** - * 分类选择 - * @param {*} e - */ - onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { - this.firstCategoryValue = firstCategoryValue; // 一级分类的值 - this.secondCategoryValue = secondCategoryValue; // 二级分类的值 - this.thirdCategoryValue = thirdCategoryValue; // 三级标签的值 - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 职级选择 - * @param {*} list - */ - handleChangeRank = (list) => { - this.rankId = list[0]; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 选项操作 - * @param {*} currentActive 选项列表 - * @param {*} scoreValue 分值 - * @param {*} subjectAnalysis 解析 - */ - handleChangeOption = (currentActive, scoreValue, subjectAnalysis) => { - this.currentActive = currentActive; - this.scoreValue = scoreValue; - this.subjectAnalysis = subjectAnalysis; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - render() { - const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state; - const { questionsType } = this.props; - return ( - - -
-
题目名称:
- this.onChangeSubjectName(e)} - /> -
- { - this.optionInputBox = ref; - }} - isMultiple={true} - handleChangeOption={this.handleChangeOption} - /> - { - this.rankLabelBox = ref; - }} - subjectName={subjectName} - onChangeRankLabel={this.onChangeRankLabel} - handleChangeRank={this.handleChangeRank} - /> -
-
- 清空 -
-
- 提交 -
-
- -
-
- ); + /** + * 一次确认录入 + */ + onSubmit = debounce(() => { + const { subjectName, isDisabledSubmit, isSubmit } = this.state + if (isDisabledSubmit || !isSubmit) { + return + } + if (!!!subjectName) { + message.warning('请输入题目名称') + return } -} + if (!this.currentActive.length) { + message.warning('请录入答案') + return + } + if (!!!this.firstCategoryValue) { + message.warning('请选择一级分类') + return + } + if (this.secondCategoryValue.length <= 0) { + message.warning('请选择二级分类') + return + } + if (this.thirdCategoryValue.length <= 0) { + message.warning('请选择三级标签') + return + } + this.setState({ + isSubmit: false + }) + let params = { + subjectName: subjectName, + subjectDifficult: this.rankId, + subjectType: 2, + subjectScore: this.scoreValue, + subjectParse: this.subjectAnalysis, + categoryIds: this.secondCategoryValue.filter(item => item.active).map(t => t.id), + labelIds: this.thirdCategoryValue.filter(item => item.active).map(t => t.id), + optionList: this.currentActive + } + req({ + method: 'post', + data: params, + url: apiName.add + }) + .then(res => { + // this.repeatInfo = {} + // if (res.data && res.data.insertStatus) { + // this.setState( + // { + // isSubmit: true + // }, + // () => { + // this.successModalConfirm() + // } + // ) + // } else if (!res.data.insertStatus) { + // this.repeatInfo = { + // repeatDocId: res.data.docId, // 重复题目id + // repeatRate: res.data.repeatRate, // 重复率 + // repeatSubjectName: res.data.subjectName, // 重复题目 + // repeatOptionList: res.data.optionList, // 重复列表项 + // repeatSetterErp: res.data.subjectSetterErp, // 出题人erp + // repeatSetterName: res.data.subjectSetterName // 出题人姓名 + // } + // this.setState({ + // isShowModalBox: true, + // isSubmit: true + // }) + // } + this.setState( + { + isSubmit: true + }, + () => { + this.successModalConfirm() + } + ) + }) + .catch(err => { + this.setState({ + isSubmit: true + }) + console.log(err) + }) + }) + + /** + * 校验是否支持点击按钮 + * @returns + */ + /** + * 校验是否支持点击按钮 + * @returns + */ + checkData = () => { + const { subjectName } = this.state + let list = this.currentActive.filter(item => item.optionContent === defalutLabel) + let isDisabledSubmit = false + if ( + !!!subjectName || + list.length > 0 || + !!!this.firstCategoryValue || + this.secondCategoryValue.length <= 0 || + this.thirdCategoryValue.length <= 0 || + !!!this.scoreValue + ) { + isDisabledSubmit = true + } + return isDisabledSubmit + } + + /** + * 取消 + */ + onCancel = () => { + this.currentActive = [] // 选项列表 + this.scoreValue = '' // 分数 + this.subjectAnalysis = '' //试题解析 + this.rankId = 1 + this.subjectAnswer = '' // 选项内容 + this.firstCategoryValue = '' // 一级分类的值 + this.secondCategoryValue = [] // 二级分类的值 + this.thirdCategoryValue = [] // 三级标签的值 + this.repeatInfo = {} + this.rankLabelBox.current.initRankLabel() + this.optionInputBox.handleClearOption() + this.setState({ + subjectName: '', + isShowModalBox: false, + isSubmit: true // 是否支持提交 + }) + } + + /** + * 重复率弹框-确认录入 + */ + onSubmitRepeatModal = debounce( + () => { + let params = { + docId: this.repeatInfo.repeatDocId + } + req({ + method: 'post', + data: params, + url: apiName.addRepeatInterviewSubject + }) + .then(res => { + if (res.data) { + this.successModalConfirm() + } else { + message.info('请再次确认') + } + }) + .catch(err => { + console.log(err) + message.error('请再次确认') + }) + }, + 300, + true + ) + + /** + * 重复率弹框-取消录入 + */ + onCancelRepeatModal = () => { + this.repeatInfo = {} + this.setState({ + isShowModalBox: false + }) + } + + /** + * 录入成功的弹框 + */ + successModalConfirm = () => { + Modal.confirm({ + title: ( +
+ 录入成功!贡献榜火力值 + 1 +
+ ), + closable: false, + maskClosable: false, + icon: ' ', + onOk: this.onAgainSuccessModal, + onCancel: this.onGoHomeSuccessModal, + okText: '再录一题', + cancelText: '去首页', + className: 'questions-success-modal-confirm' + }) + } + + /** + * 录入成功弹框-再来一题 + */ + onAgainSuccessModal = () => { + this.onCancel() + } + + /** + * 录入成功弹框-去首页 + */ + onGoHomeSuccessModal = () => { + window.location.href = '/question-bank' + } + + /** + * 分类选择 + * @param {*} e + */ + onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { + this.firstCategoryValue = firstCategoryValue // 一级分类的值 + this.secondCategoryValue = secondCategoryValue // 二级分类的值 + this.thirdCategoryValue = thirdCategoryValue // 三级标签的值 + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + /** + * 职级选择 + * @param {*} list + */ + handleChangeRank = list => { + this.rankId = list[0] + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + /** + * 选项操作 + * @param {*} currentActive 选项列表 + * @param {*} scoreValue 分值 + * @param {*} subjectAnalysis 解析 + */ + handleChangeOption = (currentActive, scoreValue, subjectAnalysis) => { + this.currentActive = currentActive + this.scoreValue = scoreValue + this.subjectAnalysis = subjectAnalysis + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + render() { + const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state + const { questionsType } = this.props + return ( + + +
+
题目名称:
+ this.onChangeSubjectName(e)} + /> +
+ { + this.optionInputBox = ref + }} + isMultiple={true} + handleChangeOption={this.handleChangeOption} + /> + +
+
+ 清空 +
+
+ 提交 +
+
+ +
+
+ ) + } +} diff --git a/src/views/upload-questions/components/multiple-questions/index.less b/src/views/upload-questions/components/multiple-questions/index.less index 6a56304..21ab340 100644 --- a/src/views/upload-questions/components/multiple-questions/index.less +++ b/src/views/upload-questions/components/multiple-questions/index.less @@ -1,52 +1,52 @@ .multiple-questions-container { - width: 1000px; + // width: 1000px; + display: flex; + align-items: center; + padding: 0 24px; + padding-top: 36px; + // label名字title + .multiple-questions-title { display: flex; align-items: center; - padding: 0 24px; - padding-top: 36px; - // label名字title - .multiple-questions-title { - display: flex; - align-items: center; - justify-content: flex-end; - width: 140px; - line-height: 40px; - font-size: 16px; - color: rgba(51, 51, 51, 1); - &:before { - display: inline-block; - margin-right: 4px; - margin-top: 1px; - color: #f5222d; - font-size: 16px; - content: '*'; - } + justify-content: flex-end; + width: 140px; + line-height: 40px; + font-size: 16px; + color: rgba(51, 51, 51, 1); + &:before { + display: inline-block; + margin-right: 4px; + margin-top: 1px; + color: #f5222d; + font-size: 16px; + content: '*'; } + } } .multiple-questions-btns-container { + display: flex; + justify-content: flex-end; + align-items: center; + margin: 20px auto; + width: 952px; + .multiple-questions-btn { display: flex; - justify-content: flex-end; align-items: center; - margin: 20px auto; - width: 952px; - .multiple-questions-btn { - display: flex; - align-items: center; - justify-content: center; - width: 150px; - height: 40px; - font-size: 16px; - cursor: pointer; - border: 1px solid #d9d9d9; - border-radius: 10px; - } - .multiple-questions-submit { - margin-left: 40px; - background-color: #4390f7; - color: #fff; - border: 1px solid #4390f7; - } - .multiple-questions-disabled-submit { - opacity: 0.5; - } + justify-content: center; + width: 150px; + height: 40px; + font-size: 16px; + cursor: pointer; + border: 1px solid #d9d9d9; + border-radius: 10px; + } + .multiple-questions-submit { + margin-left: 40px; + background-color: #4390f7; + color: #fff; + border: 1px solid #4390f7; + } + .multiple-questions-disabled-submit { + opacity: 0.5; + } } diff --git a/src/views/upload-questions/components/option-input-box/index.jsx b/src/views/upload-questions/components/option-input-box/index.jsx index e5873cb..e1a4525 100644 --- a/src/views/upload-questions/components/option-input-box/index.jsx +++ b/src/views/upload-questions/components/option-input-box/index.jsx @@ -1,9 +1,11 @@ +import { CloseCircleFilled } from '@ant-design/icons' import { debounce } from '@utils' import { Input, Select, Tooltip, message } from 'antd' import _ from 'lodash' -import React, { Component, Fragment } from 'react' +import React, { Component, Fragment, createRef } from 'react' import { optionLetter } from '../../constant' -import KindEditor from '../kind-editor' +import QuestionEditor from '../question-editor' + import './index.less' const { TextArea } = Input const { Option } = Select @@ -49,7 +51,8 @@ export default class OptionInputBox extends Component { } } - kindEditor = KindEditor | null + // kindEditor = KindEditor | null + kindEditor = createRef() subjectAnswer = '' // 选项内容 /** @@ -98,10 +101,10 @@ export default class OptionInputBox extends Component { */ onChangeOptEditor = (index, type) => () => { let { optionList } = this.state - this.kindEditor && this.kindEditor.onClear() if (type === 'submit') { _.set(optionList, [index, 'label'], !!this.subjectAnswer ? this.subjectAnswer : defalutLabel) } + this.kindEditor && this.kindEditor.current.onClear() _.set(optionList, [index, 'isShowEditor'], false) this.subjectAnswer = '' this.setState( @@ -131,7 +134,7 @@ export default class OptionInputBox extends Component { optionList }, () => { - this.kindEditor && this.kindEditor.onCashBack() + this.kindEditor && this.kindEditor.current.onCashBack() } ) }) @@ -140,7 +143,7 @@ export default class OptionInputBox extends Component { * 富文本编辑器 * @param {*} e */ - onChangeEditor = index => e => { + onChangeEditor = e => { this.subjectAnswer = e } @@ -318,7 +321,7 @@ export default class OptionInputBox extends Component {
{listLen > showDeleteLength && ( - + )}
@@ -331,15 +334,7 @@ export default class OptionInputBox extends Component { style={{ marginTop: 19 }} >
- { - this.kindEditor = ref - }} - bodyHeight={145} - borderRadius={12} - onChange={this.onChangeEditor(index)} - cashBackText={isShowTip ? '' : item.label} - /> +
{isJudge diff --git a/src/views/upload-questions/components/question-editor/index.jsx b/src/views/upload-questions/components/question-editor/index.jsx index 370bbc8..6d6e82d 100644 --- a/src/views/upload-questions/components/question-editor/index.jsx +++ b/src/views/upload-questions/components/question-editor/index.jsx @@ -1,77 +1,82 @@ import '@wangeditor/editor/dist/css/style.css' // 引入 css -import React, { - useState, useEffect, forwardRef, - useImperativeHandle, -} from 'react' import { Editor, Toolbar } from '@wangeditor/editor-for-react' - +import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react' // 当前菜单排序和分组 function MyEditor(props, ref) { - // editor 实例 - const [editor, setEditor] = useState(null) + // editor 实例 + const [editor, setEditor] = useState(null) + // 编辑器内容 + const [html, setHtml] = useState('

') - // 编辑器内容 - const [html, setHtml] = useState('

') + // 工具栏配置 + const toolbarConfig = { + excludeKeys: ['group-image', 'group-video'] + } + // 编辑器配置 + const editorConfig = { + placeholder: '请输入内容...' + } - // 工具栏配置 - const toolbarConfig = { - excludeKeys: [ - 'group-image', 'group-video' - ] + const changeValue = html => { + setHtml(html) + props.onChange(html) + } + + const onClear = () => setHtml('') + + /** + * 回现代码 + */ + const onCashBack = () => { + let { cashBackText } = props + if (!!!cashBackText) { + return } + setHtml(`${cashBackText}`) + // editor.fo; + } - // 编辑器配置 - const editorConfig = { - placeholder: '请输入内容...', + // 此处注意useImperativeHandle方法的的第一个参数是目标元素的ref引用 + useImperativeHandle(ref, () => ({ + // onCallback 就是暴露给父组件的方法 + onClear, + onCashBack + })) + + // 及时销毁 editor ,重要! + useEffect(() => { + return () => { + if (editor == null) return + editor.destroy() + setEditor(null) } + }, [editor]) - - const changeValue = (html) => { - setHtml(html) - props.onChange(html) - } - - const onClear = () => setHtml('') - // 此处注意useImperativeHandle方法的的第一个参数是目标元素的ref引用 - useImperativeHandle(ref, () => ({ - // onCallback 就是暴露给父组件的方法 - onClear - })); - - // 及时销毁 editor ,重要! - useEffect(() => { - return () => { - if (editor == null) return - editor.destroy() - setEditor(null) - } - }, [editor]) - - return ( - <> -
- - changeValue(editor.getHtml())} - mode="default" - style={{ height: '300px', overflowY: 'scroll' }} - /> -
- - ) + return ( + <> +
+ + changeValue(editor.getHtml())} + mode='default' + style={{ height: '300px', overflowY: 'scroll' }} + /> +
+ + ) } -export default forwardRef(MyEditor) \ No newline at end of file +export default forwardRef(MyEditor) diff --git a/src/views/upload-questions/components/repeat-content-box/index.jsx b/src/views/upload-questions/components/repeat-content-box/index.jsx index 009252d..11cf8af 100644 --- a/src/views/upload-questions/components/repeat-content-box/index.jsx +++ b/src/views/upload-questions/components/repeat-content-box/index.jsx @@ -1,234 +1,190 @@ -import React, { Fragment } from 'react'; -import { Modal, Tooltip } from 'antd'; -import { letterList, judgeList } from '../../constant'; -import './index.less'; +import { Modal, Tooltip } from 'antd' +import React, { Fragment } from 'react' +import { judgeList, letterList } from '../../constant' +import './index.less' export default function RepeatContentBox(props) { - const { isShowModalBox, repeatInfo, repeatQuestionsType } = props; - // const { isShowModalBox, repeatQuestionsType } = props; - // const repeatInfo = { - // repeatSubjectName: - // 'Chrome如Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?何支持小于12px的字?', - // repeatSubjectAnswe: - // 'Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?', - // repeatSetterErp: 'suchunping3', - // repeatSetterName: '苏春萍', - // }; + const { isShowModalBox, repeatInfo, repeatQuestionsType } = props + /** + * 确认录入 + */ + const onSubmitRepeatModal = e => { + props.handleSubmitRepeatModal && props.handleSubmitRepeatModal() + } + /** + * 取消录入 + */ + const onCancelRepeatModal = () => { + props.handleCancelRepeatModal && props.handleCancelRepeatModal() + } - // const repeatInfo = { - // repeatSubjectName: - // 'Chrome如Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?Chrome如何支持小于12px的字?何支持小于12px的字?', - // repeatOptionList: [ - // { - // isCorrect: '', - // optionContent: 'Chrome如何支持小于12px的字?Chrome如何支持小于12px的', - // optionType: 1, - // }, - // { - // isCorrect: '', - // optionContent: 'Chrome如何支持小于12px的字?Chrome如何支持小于12px的', - // optionType: 2, - // }, - // { - // isCorrect: 1, - // optionContent: 'Chrome如何支持小于12px的字?Chrome如何支持小于12px的', - // optionType: 3, - // }, - // ], - // repeatSetterErp: 'suchunping3', - // repeatSetterName: '苏春萍', - // }; - /** - * 确认录入 - */ - const onSubmitRepeatModal = (e) => { - props.handleSubmitRepeatModal && props.handleSubmitRepeatModal(); - }; - /** - * 取消录入 - */ - const onCancelRepeatModal = () => { - props.handleCancelRepeatModal && props.handleCancelRepeatModal(); - }; + const renderRepeat = (type, repeatInfo) => { + switch (type) { + case 1: + return renderBriefQuestions(repeatInfo) + case 2: + case 3: + return renderSelectQuestions(type, repeatInfo) + case 4: + return renderJudgeQuestions(repeatInfo) + } + } - const renderRepeat = (type, repeatInfo) => { - switch (type) { - case 1: - return renderBriefQuestions(repeatInfo); - case 2: - case 3: - return renderSelectQuestions(type, repeatInfo); - case 4: - return renderJudgeQuestions(repeatInfo); - } - }; + /** + * 展示重复内容-问答型 + * @returns + */ + const renderBriefQuestions = repeatInfo => { + return ( +
+
+
问答题
+
{repeatInfo.repeatSubjectName}
+
+
+
参考答案
+
+
+
+
来自
+ + {repeatInfo.repeatSetterName} + +
+
+ ) + } - /** - * 展示重复内容-问答型 - * @returns - */ - const renderBriefQuestions = (repeatInfo) => { - return ( -
-
-
问答题
-
{repeatInfo.repeatSubjectName}
-
-
-
参考答案
-
-
-
-
来自
- - {repeatInfo.repeatSetterName} - -
-
- ); - }; - - /** - * 展示重复内容-单选/多选 - * @returns - */ - const renderSelectQuestions = (type, repeatInfo) => { - // 过滤获得正确选项 - let repeatRightKey = repeatInfo?.repeatOptionList?.filter((item) => item.isCorrect === 1); - return ( -
-
-
{type === 2 ? '单选题' : '多选题'}
-
{repeatInfo.repeatSubjectName}
-
- {repeatInfo?.repeatOptionList?.length > 0 && ( -
-
选项内容
-
- {repeatInfo.repeatOptionList.map((item, index) => { - return ( -
- {/*
+ /** + * 展示重复内容-单选/多选 + * @returns + */ + const renderSelectQuestions = (type, repeatInfo) => { + // 过滤获得正确选项 + let repeatRightKey = repeatInfo?.repeatOptionList?.filter(item => item.isCorrect === 1) + return ( +
+
+
{type === 2 ? '单选题' : '多选题'}
+
{repeatInfo.repeatSubjectName}
+
+ {repeatInfo?.repeatOptionList?.length > 0 && ( +
+
选项内容
+
+ {repeatInfo.repeatOptionList.map((item, index) => { + return ( +
+ {/*
{letterList[item.optionType]}
*/} -
-
- ); - })} -
-
- )} - {repeatRightKey?.length > 0 && ( -
-
答案
-
- {repeatRightKey.map((item, index) => { - return ( - - {letterList[item.optionType]}{' '} - - ); - })} -
-
- )} - {!!repeatInfo.repeatSubjectAnswe && ( -
-
题目解析
-
-
- )} -
-
来自
- - {repeatInfo.repeatSetterName} - -
+
+
+ ) + })}
- ); - }; - - /** - * 展示重复内容-判断 - * @returns - */ - const renderJudgeQuestions = (repeatInfo) => { - return ( -
-
-
判断题
-
{repeatInfo.repeatSubjectName}
-
-
-
答案
-
- {judgeList[repeatInfo.repeatIsCorrect]} -
-
- {!!repeatInfo.repeatSubjectAnswe && ( -
-
题目解析
-
-
- )} -
-
来自
- - {repeatInfo.repeatSetterName} - -
+
+ )} + {repeatRightKey?.length > 0 && ( +
+
答案
+
+ {repeatRightKey.map((item, index) => { + return {letterList[item.optionType]} + })}
- ); - }; +
+ )} + {!!repeatInfo.repeatSubjectAnswe && ( +
+
题目解析
+
+
+ )} +
+
来自
+ + {repeatInfo.repeatSetterName} + +
+
+ ) + } + /** + * 展示重复内容-判断 + * @returns + */ + const renderJudgeQuestions = repeatInfo => { return ( - - - {repeatInfo.repeatRate || '10%'} - - 重复率 - - } - onOk={onSubmitRepeatModal} - onCancel={onCancelRepeatModal} - okText="确认录入" - cancelText="取消录入"> - {renderRepeat(repeatQuestionsType, repeatInfo)} - - ); +
+
+
判断题
+
{repeatInfo.repeatSubjectName}
+
+
+
答案
+
{judgeList[repeatInfo.repeatIsCorrect]}
+
+ {!!repeatInfo.repeatSubjectAnswe && ( +
+
题目解析
+
+
+ )} +
+
来自
+ + {repeatInfo.repeatSetterName} + +
+
+ ) + } + + return ( + + + {repeatInfo.repeatRate || '10%'} + + 重复率 + + } + onOk={onSubmitRepeatModal} + onCancel={onCancelRepeatModal} + okText='确认录入' + cancelText='取消录入' + > + {renderRepeat(repeatQuestionsType, repeatInfo)} + + ) } diff --git a/src/views/upload-questions/components/single-questions/index.jsx b/src/views/upload-questions/components/single-questions/index.jsx index 01f3b54..951f64a 100644 --- a/src/views/upload-questions/components/single-questions/index.jsx +++ b/src/views/upload-questions/components/single-questions/index.jsx @@ -1,338 +1,365 @@ -import React, { Component, Fragment } from 'react'; -import { Input, Modal, message, Spin } from 'antd'; -import _ from 'lodash'; -import req from '@utils/request'; -import { debounce } from '@utils'; -import KindEditor from '../kind-editor'; -import RankLabelBox from '../rank-label-box'; -import OptionInputBox from '../option-input-box'; -import RepeatContentBox from '../repeat-content-box'; -import { apiName } from '../../constant'; -import './index.less'; -const defalutLabel = '请使用富文本编辑器输入选项内容'; +import { debounce } from '@utils' +import req from '@utils/request' +import { Input, Modal, Spin, message } from 'antd' +import React, { Component, Fragment, createRef } from 'react' +import { apiName } from '../../constant' +import OptionInputBox from '../option-input-box' +import RankLabelBox from '../rank-label-box' +import RepeatContentBox from '../repeat-content-box' +import './index.less' +const defalutLabel = '请使用富文本编辑器输入选项内容' export default class SingleQuestions extends Component { - constructor(props) { - super(props); - this.state = { - subjectName: '', // 题目 - isDisabledSubmit: true, //是否禁止输入 - isShowModalBox: false, // 是否展示重复率弹框 - isSubmit: true, // 是否支持提交 - }; + constructor(props) { + super(props) + this.state = { + subjectName: '', // 题目 + isDisabledSubmit: true, //是否禁止输入 + isShowModalBox: false, // 是否展示重复率弹框 + isSubmit: true // 是否支持提交 } - kindEditor = KindEditor | null; - rankLabelBox = RankLabelBox | null; - optionInputBox = OptionInputBox | null; + } + rankLabelBox = createRef() - currentActive = []; // 选项列表 - scoreValue = ''; // 分数 - subjectAnalysis = ''; //试题解析 - rankId = 1; //职级 - subjectAnswer = ''; // 选项内容 + optionInputBox = OptionInputBox | null - firstCategoryValue = ''; // 一级分类的值 - secondCategoryValue = []; // 二级分类的值 - thirdCategoryValue = []; // 三级标签的值 - repeatInfo = {}; // 重复率 + currentActive = [] // 选项列表 + scoreValue = '' // 分数 + subjectAnalysis = '' //试题解析 + rankId = 1 //职级 + subjectAnswer = '' // 选项内容 - /** - * 输入题目 - * @param {*} e - */ - onChangeSubjectName = (e) => { - let str = e.target.value.trim(); - this.setState( - { - subjectName: str, - }, - () => { - this.rankLabelBox.getThirdCategoryList(); - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - } - ); - }; + firstCategoryValue = '' // 一级分类的值 + secondCategoryValue = [] // 二级分类的值 + thirdCategoryValue = [] // 三级标签的值 + repeatInfo = {} // 重复率 - /** - * 一次确认录入 - */ - onSubmit = debounce(() => { - const { subjectName, isDisabledSubmit, isSubmit } = this.state; - if (isDisabledSubmit || !isSubmit) { - return; - } + /** + * 输入题目 + * @param {*} e + */ + onChangeSubjectName = e => { + let str = e.target.value.trim() + this.setState( + { + subjectName: str + }, + () => { + // this.rankLabelBox.getThirdCategoryList(); + let isDisabledSubmit = this.checkData() this.setState({ - isSubmit: false, - }); - let params = { - subjectName: subjectName, - difficulty: this.rankId, - subjectType: 1, - subjectScore: this.scoreValue, - subjectParse: this.subjectAnalysis, - categoryIds: this.secondCategoryValue, - labelIds: this.thirdCategoryValue, - optionList: this.currentActive, - }; - console.log('单选题录入 ----', params); - req({ - method: 'post', - data: params, - url: apiName.addInterviewSubject, + isDisabledSubmit }) - .then((res) => { - this.repeatInfo = {}; - if (res.data && res.data.insertStatus) { - this.setState( - { - isSubmit: true, - }, - () => { - this.successModalConfirm(); - } - ); - } else if (!res.data.insertStatus) { - this.repeatInfo = { - repeatDocId: res.data.docId, // 重复题目id - repeatRate: res.data.repeatRate, // 重复率 - repeatSubjectName: res.data.subjectName, // 重复题目 - repeatOptionList: res.data.optionList, // 重复列表项 - repeatSetterErp: res.data.subjectSetterErp, // 出题人erp - repeatSetterName: res.data.subjectSetterName, // 出题人姓名 - }; - this.setState({ - isShowModalBox: true, - isSubmit: true, - }); - } - }) - .catch((err) => { - this.setState({ - isSubmit: true, - }); - console.log(err); - }); - }); + } + ) + } - /** - * 校验是否支持点击按钮 - * @returns - */ - checkData = () => { - const { subjectName } = this.state; - let list = this.currentActive.filter((item) => item.optionContent === defalutLabel); - let isDisabledSubmit = false; - if ( - !!!subjectName || - list.length > 0 || - !!!this.firstCategoryValue || - this.secondCategoryValue.length <= 0 || - this.thirdCategoryValue.length <= 0 || - !!!this.scoreValue - ) { - isDisabledSubmit = true; - } - return isDisabledSubmit; - }; - - /** - * 取消 - */ - onCancel = () => { - this.currentActive = []; // 选项列表 - this.scoreValue = ''; // 分数 - this.subjectAnalysis = ''; //试题解析 - this.rankId = 1; - this.subjectAnswer = ''; // 选项内容 - this.firstCategoryValue = ''; // 一级分类的值 - this.secondCategoryValue = []; // 二级分类的值 - this.thirdCategoryValue = []; // 三级标签的值 - this.kindEditor && this.kindEditor.onClear(); - this.rankLabelBox.initRankLabel(); - this.optionInputBox.handleClearOption(); - this.repeatInfo = {}; - this.setState({ - subjectName: '', - isShowModalBox: false, - isSubmit: true, // 是否支持提交 - }); - }; - - /** - * 重复率弹框-确认录入 - */ - onSubmitRepeatModal = debounce( - () => { - let params = { - docId: this.repeatInfo.repeatDocId, - }; - req({ - method: 'post', - data: params, - url: apiName.addRepeatInterviewSubject, - }) - .then((res) => { - if (res.data) { - this.successModalConfirm(); - } else { - message.info('请再次确认'); - } - }) - .catch((err) => { - console.log(err); - message.error('请再次确认'); - }); - }, - 300, - true - ); - - /** - * 重复率弹框-取消录入 - */ - onCancelRepeatModal = () => { - this.repeatInfo = {}; - this.setState({ - isShowModalBox: false, - }); - }; - - /** - * 录入成功的弹框 - */ - successModalConfirm = () => { - Modal.confirm({ - title: ( -
- 录入成功!贡献榜火力值 + 1 -
- ), - closable: false, - maskClosable: false, - icon: ' ', - onOk: this.onAgainSuccessModal, - onCancel: this.onGoHomeSuccessModal, - okText: '再录一题', - cancelText: '去首页', - className: 'questions-success-modal-confirm', - }); - }; - - /** - * 录入成功弹框-再来一题 - */ - onAgainSuccessModal = () => { - this.onCancel(); - }; - - /** - * 录入成功弹框-去首页 - */ - onGoHomeSuccessModal = () => { - window.location.href = '/cms-supplier/question-bank'; - }; - - /** - * 分类选择 - * @param {*} e - */ - onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { - this.firstCategoryValue = firstCategoryValue; // 一级分类的值 - this.secondCategoryValue = secondCategoryValue; // 二级分类的值 - this.thirdCategoryValue = thirdCategoryValue; // 三级标签的值 - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 职级选择 - * @param {*} list - */ - handleChangeRank = (list) => { - this.rankId = list[0]; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - /** - * 选项操作 - * @param {*} currentActive 选项列表 - * @param {*} scoreValue 分值 - * @param {*} subjectAnalysis 解析 - */ - handleChangeOption = (currentActive, scoreValue, subjectAnalysis) => { - this.currentActive = currentActive; - this.scoreValue = scoreValue; - this.subjectAnalysis = subjectAnalysis; - let isDisabledSubmit = this.checkData(); - this.setState({ - isDisabledSubmit, - }); - }; - - render() { - const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state; - const { questionsType } = this.props; - return ( - - -
-
题目名称:
- this.onChangeSubjectName(e)} - /> -
- { - this.optionInputBox = ref; - }} - handleChangeOption={this.handleChangeOption} - /> - { - this.rankLabelBox = ref; - }} - subjectName={subjectName} - onChangeRankLabel={this.onChangeRankLabel} - handleChangeRank={this.handleChangeRank} - /> -
-
- 清空 -
-
- 提交 -
-
- -
-
- ); + /** + * 一次确认录入 + */ + onSubmit = debounce(() => { + const { subjectName, isDisabledSubmit, isSubmit } = this.state + if (isDisabledSubmit || !isSubmit) { + return } -} + if (!isSubmit) { + return + } + if (!!!subjectName) { + message.warning('请输入题目名称') + return + } + if (!this.currentActive.length) { + message.warning('请录入答案') + return + } + if (!!!this.firstCategoryValue) { + message.warning('请选择一级分类') + return + } + if (this.secondCategoryValue.length <= 0) { + message.warning('请选择二级分类') + return + } + if (this.thirdCategoryValue.length <= 0) { + message.warning('请选择三级标签') + return + } + this.setState({ + isSubmit: false + }) + let params = { + subjectName: subjectName, + subjectDifficult: this.rankId, + subjectType: 1, + subjectScore: this.scoreValue, + subjectParse: this.subjectAnalysis, + categoryIds: this.secondCategoryValue.filter(item => item.active).map(t => t.id), + labelIds: this.thirdCategoryValue.filter(item => item.active).map(t => t.id), + optionList: this.currentActive + } + req({ + method: 'post', + data: params, + url: apiName.add + }) + .then(res => { + // this.repeatInfo = {} + // if (res.data && res.data.insertStatus) { + // this.setState( + // { + // isSubmit: true + // }, + // () => { + // this.successModalConfirm() + // } + // ) + // } else if (!res.data.insertStatus) { + // this.repeatInfo = { + // repeatDocId: res.data.docId, // 重复题目id + // repeatRate: res.data.repeatRate, // 重复率 + // repeatSubjectName: res.data.subjectName, // 重复题目 + // repeatOptionList: res.data.optionList, // 重复列表项 + // repeatSetterErp: res.data.subjectSetterErp, // 出题人erp + // repeatSetterName: res.data.subjectSetterName // 出题人姓名 + // } + // this.setState({ + // isShowModalBox: true, + // isSubmit: true + // }) + // } + this.setState( + { + isSubmit: true + }, + () => { + this.successModalConfirm() + } + ) + }) + .catch(err => { + this.setState({ + isSubmit: true + }) + console.log(err) + }) + }) + /** + * 校验是否支持点击按钮 + * @returns + */ + checkData = () => { + const { subjectName } = this.state + let list = this.currentActive.filter(item => item.optionContent === defalutLabel) + let isDisabledSubmit = false + if ( + !!!subjectName || + list.length > 0 || + !!!this.firstCategoryValue || + this.secondCategoryValue.length <= 0 || + this.thirdCategoryValue.length <= 0 || + !!!this.scoreValue + ) { + isDisabledSubmit = true + } + return isDisabledSubmit + } + + /** + * 取消 + */ + onCancel = () => { + this.currentActive = [] // 选项列表 + this.scoreValue = '' // 分数 + this.subjectAnalysis = '' //试题解析 + this.rankId = 1 + this.subjectAnswer = '' // 选项内容 + this.firstCategoryValue = '' // 一级分类的值 + this.secondCategoryValue = [] // 二级分类的值 + this.thirdCategoryValue = [] // 三级标签的值 + this.rankLabelBox.current.initRankLabel() + this.optionInputBox.handleClearOption() + this.repeatInfo = {} + this.setState({ + subjectName: '', + isShowModalBox: false, + isSubmit: true // 是否支持提交 + }) + } + + /** + * 重复率弹框-确认录入 + */ + onSubmitRepeatModal = debounce( + () => { + let params = { + docId: this.repeatInfo.repeatDocId + } + req({ + method: 'post', + data: params, + url: apiName.addRepeatInterviewSubject + }) + .then(res => { + if (res.data) { + this.successModalConfirm() + } else { + message.info('请再次确认') + } + }) + .catch(err => { + console.log(err) + message.error('请再次确认') + }) + }, + 300, + true + ) + + /** + * 重复率弹框-取消录入 + */ + onCancelRepeatModal = () => { + this.repeatInfo = {} + this.setState({ + isShowModalBox: false + }) + } + + /** + * 录入成功的弹框 + */ + successModalConfirm = () => { + Modal.confirm({ + title: ( +
+ 录入成功!贡献榜火力值 + 1 +
+ ), + closable: false, + maskClosable: false, + icon: ' ', + onOk: this.onAgainSuccessModal, + onCancel: this.onGoHomeSuccessModal, + okText: '再录一题', + cancelText: '去首页', + className: 'questions-success-modal-confirm' + }) + } + + /** + * 录入成功弹框-再来一题 + */ + onAgainSuccessModal = () => { + this.onCancel() + } + + /** + * 录入成功弹框-去首页 + */ + onGoHomeSuccessModal = () => { + window.location.href = '/question-bank' + } + + /** + * 分类选择 + * @param {*} e + */ + onChangeRankLabel = (firstCategoryValue, secondCategoryValue, thirdCategoryValue) => { + this.firstCategoryValue = firstCategoryValue // 一级分类的值 + this.secondCategoryValue = secondCategoryValue // 二级分类的值 + this.thirdCategoryValue = thirdCategoryValue // 三级标签的值 + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + /** + * 职级选择 + * @param {*} list + */ + handleChangeRank = list => { + this.rankId = list[0] + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + /** + * 选项操作 + * @param {*} currentActive 选项列表 + * @param {*} scoreValue 分值 + * @param {*} subjectAnalysis 解析 + */ + handleChangeOption = (currentActive, scoreValue, subjectAnalysis) => { + this.currentActive = currentActive + this.scoreValue = scoreValue + this.subjectAnalysis = subjectAnalysis + let isDisabledSubmit = this.checkData() + this.setState({ + isDisabledSubmit + }) + } + + render() { + const { subjectName, isDisabledSubmit, isSubmit, isShowModalBox } = this.state + const { questionsType } = this.props + return ( + + +
+
题目名称:
+ this.onChangeSubjectName(e)} + /> +
+ { + this.optionInputBox = ref + }} + handleChangeOption={this.handleChangeOption} + /> + +
+
+ 清空 +
+
+ 提交 +
+
+ +
+
+ ) + } +} diff --git a/src/views/upload-questions/components/single-questions/index.less b/src/views/upload-questions/components/single-questions/index.less index 6a5986f..5c92650 100644 --- a/src/views/upload-questions/components/single-questions/index.less +++ b/src/views/upload-questions/components/single-questions/index.less @@ -1,53 +1,53 @@ .single-questions-container { - width: 1000px; + // width: 1000px; + display: flex; + align-items: center; + padding: 0 24px; + padding-top: 36px; + // label名字title + .single-questions-title { display: flex; align-items: center; - padding: 0 24px; - padding-top: 36px; - // label名字title - .single-questions-title { - display: flex; - align-items: center; - justify-content: flex-end; - width: 140px; - line-height: 40px; - font-size: 16px; - color: rgba(51, 51, 51, 1); - &:before { - display: inline-block; - margin-right: 4px; - margin-top: 1px; - color: #f5222d; - font-size: 16px; - content: '*'; - } + justify-content: flex-end; + width: 140px; + line-height: 40px; + font-size: 16px; + color: rgba(51, 51, 51, 1); + &:before { + display: inline-block; + margin-right: 4px; + margin-top: 1px; + color: #f5222d; + font-size: 16px; + content: '*'; } + } } .single-questions-btns-container { + display: flex; + justify-content: flex-end; + align-items: center; + margin: 20px auto; + width: 952px; + .single-questions-btn { display: flex; - justify-content: flex-end; align-items: center; - margin: 20px auto; - width: 952px; - .single-questions-btn { - display: flex; - align-items: center; - justify-content: center; - width: 150px; - height: 40px; - font-size: 16px; - cursor: pointer; - border: 1px solid #d9d9d9; - border-radius: 10px; - } - .single-questions-submit { - margin-left: 40px; - background-color: #4390f7; - color: #fff; - border: 1px solid #4390f7; - } - .single-questions-disabled-submit { - opacity: 0.5; - } + justify-content: center; + width: 150px; + height: 40px; + font-size: 16px; + cursor: pointer; + border: 1px solid #d9d9d9; + border-radius: 10px; + } + .single-questions-submit { + margin-left: 40px; + background-color: #4390f7; + color: #fff; + border: 1px solid #4390f7; + } + .single-questions-disabled-submit { + opacity: 0.5; + } } diff --git a/src/views/upload-questions/components/upload-left-layout/index.jsx b/src/views/upload-questions/components/upload-left-layout/index.jsx index c5f4308..b7533cf 100644 --- a/src/views/upload-questions/components/upload-left-layout/index.jsx +++ b/src/views/upload-questions/components/upload-left-layout/index.jsx @@ -1,27 +1,29 @@ -import React from 'react'; -import { Affix } from 'antd'; -import { RightOutlined } from '@ant-design/icons'; -import './index.less'; +import { RightOutlined } from '@ant-design/icons' +import { Affix } from 'antd' +import React from 'react' +import './index.less' export default function UploadLeftLayout(props) { - return ( - -
- {props.layoutList.map((item, index) => { - return ( -
{ - props.onChange(index); - }} - key={`upload_left_layout_${item.id}`}> - {item.title} - -
- ); - })} + return ( + +
+ {props.layoutList.map((item, index) => { + return ( +
{ + props.onChange(index) + }} + key={`upload_left_layout_${item.id}`} + > + {item.title} +
- - ); + ) + })} +
+
+ ) } diff --git a/src/views/upload-questions/components/upload-left-layout/index.less b/src/views/upload-questions/components/upload-left-layout/index.less index 206c7cc..9a855a5 100644 --- a/src/views/upload-questions/components/upload-left-layout/index.less +++ b/src/views/upload-questions/components/upload-left-layout/index.less @@ -18,6 +18,7 @@ background: rgba(255, 255, 255, 1); border: 1px solid rgba(208, 212, 222, 1); border-radius: 12px; + cursor: pointer; } .upload-left-layout-item-active { color: rgba(60, 110, 238, 1); diff --git a/src/views/upload-questions/constant.js b/src/views/upload-questions/constant.js index b1bb51d..8a8aabd 100644 --- a/src/views/upload-questions/constant.js +++ b/src/views/upload-questions/constant.js @@ -2,143 +2,142 @@ * API名称 */ export const apiName = { - /** - * 获取一级 - */ - queryPrimaryCategory: '/category/queryPrimaryCategory', + /** + * 获取一级 + */ + queryPrimaryCategory: '/category/queryPrimaryCategory', + // 查询二级分类 + queryCategoryByPrimary: 'category/queryCategoryByPrimary', - // 查询二级分类 - queryCategoryByPrimary: 'category/queryCategoryByPrimary', + // 根据一级分类查询标签 + queryLabelByCategoryId: '/label/queryLabelByCategoryId', - // 根据一级分类查询标签 - queryLabelByCategoryId: '/label/queryLabelByCategoryId', - - // 新增简答 - add: '/add', - /** - * 新增题目 - */ - addInterviewSubject: '/admin/question/subject/add', - /** - * 新增重复题目 - */ - addRepeatInterviewSubject: '/admin/question/subject/addRepeatSubject', -}; + // 新增简答 + add: '/add', + /** + * 新增题目 + */ + addInterviewSubject: '/admin/question/subject/add', + /** + * 新增重复题目 + */ + addRepeatInterviewSubject: '/admin/question/subject/addRepeatSubject' +} /** * 模块类型 */ export const ModuleType = { - default: 'default', - second: 'second', - third: 'third', -}; + default: 'default', + second: 'second', + third: 'third' +} /** * 导入职级对应的星 */ export const starList = [ - { - categoryId: 1, - categoryName: '初级', - active: true, - }, - { - categoryId: 2, - categoryName: '中级', - }, - { - categoryId: 3, - categoryName: '高级', - }, - { - categoryId: 4, - categoryName: '资深', - }, - { - categoryId: 5, - categoryName: '专家', - }, -]; + { + categoryId: 1, + categoryName: '初级', + active: true + }, + { + categoryId: 2, + categoryName: '中级' + }, + { + categoryId: 3, + categoryName: '高级' + }, + { + categoryId: 4, + categoryName: '资深' + }, + { + categoryId: 5, + categoryName: '专家' + } +] /** * 模块类型 */ export const uploadLayout = [ - { - id: 1, - title: '简答题', - active: true, - }, - // { - // id: 2, - // title: '单选题', - // active: false, - // }, - // { - // id: 3, - // title: '多选题', - // active: false, - // }, - // { - // id: 4, - // title: '判断题', - // active: false, - // }, -]; + { + id: 1, + title: '简答题', + active: true + }, + { + id: 2, + title: '单选题', + active: false + }, + { + id: 3, + title: '多选题', + active: false + }, + { + id: 4, + title: '判断题', + active: false + } +] /** * 数组索引对应字母 */ export const optionLetter = { - 0: { - label: 'A', - value: 1, - }, - 1: { - label: 'B', - value: 2, - }, - 2: { - label: 'C', - value: 3, - }, - 3: { - label: 'D', - value: 4, - }, - 4: { - label: 'E', - value: 5, - }, - 5: { - label: 'F', - value: 6, - }, - 6: { - label: 'G', - value: 7, - }, -}; + 0: { + label: 'A', + value: 1 + }, + 1: { + label: 'B', + value: 2 + }, + 2: { + label: 'C', + value: 3 + }, + 3: { + label: 'D', + value: 4 + }, + 4: { + label: 'E', + value: 5 + }, + 5: { + label: 'F', + value: 6 + }, + 6: { + label: 'G', + value: 7 + } +} /** * 字母id对应字母 */ export const letterList = { - 1: 'A', - 2: 'B', - 3: 'C', - 4: 'D', - 5: 'E', - 6: 'F', - 7: 'G', -}; + 1: 'A', + 2: 'B', + 3: 'C', + 4: 'D', + 5: 'E', + 6: 'F', + 7: 'G' +} /** * 正确/错误 */ export const judgeList = { - 0: '错误', - 1: '正确', -}; + 0: '错误', + 1: '正确' +} diff --git a/src/views/upload-questions/index.less b/src/views/upload-questions/index.less index e3af76d..98f2236 100644 --- a/src/views/upload-questions/index.less +++ b/src/views/upload-questions/index.less @@ -2,9 +2,9 @@ position: relative; margin: 0 auto; width: 1439px; - overflow-y: auto; + // overflow-y: auto; border-radius: 5px; - height: calc(100vh - 100px); + // height: calc(100vh - 100px); .ant-card-head { position: sticky; top: 0; @@ -14,7 +14,4 @@ z-index: 10; background-color: #fff; } - .ant-card-body { - display: flex; - } } diff --git a/src/views/upload-questions/index.tsx b/src/views/upload-questions/index.tsx index 5090e98..2fcb1c2 100644 --- a/src/views/upload-questions/index.tsx +++ b/src/views/upload-questions/index.tsx @@ -2,16 +2,9 @@ import req from '@utils/request' import { Card, message } from 'antd' import { useEffect, useState } from 'react' import { useNavigate } from 'react-router-dom' -import BatchleBox from './pages/batch-box' import SingleBox from './pages/single-box' import './index.less' -const tabList = [ - { - key: 'singleBox', - tab: '单题录入' - } -] const UploadQuestions = () => { const [currentKey, setCurrentKey] = useState('singleBox') const navigate = useNavigate() @@ -41,23 +34,18 @@ const UploadQuestions = () => { }) }, []) - const contentList = { - singleBox: , - batchBox: - } - return (
{ setCurrentKey(key) }} > - {contentList[currentKey]} +
) diff --git a/src/views/upload-questions/pages/batch-box/index.jsx b/src/views/upload-questions/pages/batch-box/index.jsx deleted file mode 100644 index cd2acaa..0000000 --- a/src/views/upload-questions/pages/batch-box/index.jsx +++ /dev/null @@ -1,12 +0,0 @@ -import React, { Component } from 'react'; -import './index.less'; -export default class BatchBox extends Component { - constructor(props) { - super(props); - this.state = {}; - } - - render() { - return
批量上传
; - } -} diff --git a/src/views/upload-questions/pages/batch-box/index.less b/src/views/upload-questions/pages/batch-box/index.less deleted file mode 100644 index db9425c..0000000 --- a/src/views/upload-questions/pages/batch-box/index.less +++ /dev/null @@ -1,7 +0,0 @@ -.upload-batch-questions-box { - margin: 0 auto; - width: 1000px; - display: flex; - border-radius: 5px; - border: 1px solid #3d3d3d; -} diff --git a/src/views/upload-questions/pages/single-box/index.jsx b/src/views/upload-questions/pages/single-box/index.jsx index c755dd3..c9b1c34 100644 --- a/src/views/upload-questions/pages/single-box/index.jsx +++ b/src/views/upload-questions/pages/single-box/index.jsx @@ -1,9 +1,10 @@ +import { RightOutlined } from '@ant-design/icons' +import { Button, Space } from 'antd' import React, { Component } from 'react' import BriefQuestions from '../../components/brief-questions' import JudgeQuestions from '../../components/judge-questions' import MultipleQuestions from '../../components/multiple-questions' import SingleQuestions from '../../components/single-questions' -import UploadLeftLayout from '../../components/upload-left-layout' import { uploadLayout } from '../../constant' import './index.less' @@ -40,16 +41,6 @@ export default class SingleBox extends Component { }) } - render() { - const { currentIndex, layoutList } = this.state - return ( -
- -
{this.changeReander(currentIndex)}
-
- ) - } - changeReander = i => { switch (i) { case 0: @@ -62,4 +53,32 @@ export default class SingleBox extends Component { return } } + + render() { + const { currentIndex, layoutList } = this.state + return ( +
+ {/* */} +
+ + {layoutList.map((item, index) => { + return ( + + ) + })} + +
+
{this.changeReander(currentIndex)}
+
+ ) + } } diff --git a/src/views/upload-questions/pages/single-box/index.less b/src/views/upload-questions/pages/single-box/index.less index 02bdc8e..d76fa9c 100644 --- a/src/views/upload-questions/pages/single-box/index.less +++ b/src/views/upload-questions/pages/single-box/index.less @@ -1,29 +1,33 @@ .ant-modal-body { - padding: 12px 24px 0; + padding: 12px 24px 0; } .upload-questions-modular { - display: flex; - flex-direction: column; - margin: 0 auto; - margin-left: 35px; - background: rgba(249, 250, 252, 1); - border: 2px solid rgba(240, 240, 240, 1); - border-radius: 12px; + // display: flex; + // flex-direction: column; + margin: 0 auto; + margin-left: 35px; + background: rgba(249, 250, 252, 1); + border: 2px solid rgba(240, 240, 240, 1); + border-radius: 12px; + height: calc(100vh - 220px); + overflow-y: scroll; + width: 100%; + // flex: 1 0 auto; } .questions-success-modal-confirm { - width: 300px; - // 录入成功弹框 - .ant-modal-confirm-btns { - display: flex; - justify-content: center; - width: 100%; - .ant-btn { - width: 100px; - border-radius: 18px; - } - .ant-btn-primary { - background: rgba(60, 110, 238, 1); - margin-left: 60px; - } + width: 300px; + // 录入成功弹框 + .ant-modal-confirm-btns { + display: flex; + justify-content: center; + width: 100%; + .ant-btn { + width: 100px; + border-radius: 18px; } + .ant-btn-primary { + background: rgba(60, 110, 238, 1); + margin-left: 60px; + } + } } diff --git a/src/views/user-info/index.tsx b/src/views/user-info/index.tsx index 968b6db..24aa29a 100644 --- a/src/views/user-info/index.tsx +++ b/src/views/user-info/index.tsx @@ -1,8 +1,9 @@ -import Head from '@/imgs/head.jpg' import { LoadingOutlined, PlusOutlined } from '@ant-design/icons' +import { saveUserInfo } from '@features/userInfoSlice.ts' import req from '@utils/request' import { Button, Card, Col, Form, Input, Radio, Row, Upload, message } from 'antd' import { memo, useEffect, useState } from 'react' +import { useDispatch } from 'react-redux' import './index.less' @@ -54,6 +55,8 @@ const UserInfo = () => { const userInfoStorage = localStorage.getItem('userInfo') const { loginId = '', tokenValue = '' } = userInfoStorage ? JSON.parse(userInfoStorage) : {} + const dispatch = useDispatch() + const [form] = Form.useForm() const [editFlag, setEditFlag] = useState(false) const [loading, setLoading] = useState(false) @@ -73,6 +76,7 @@ const UserInfo = () => { ).then(res => { if (res?.success && res?.data) { setUserInfo(res.data) + setAvatar(res.data.avatar || '') form.setFieldsValue(res.data) } }) @@ -87,7 +91,6 @@ const UserInfo = () => { const onFinish = () => { setLoading(true) const values = form.getFieldsValue() - // return console.log(values) if (!Object.values(values).filter(Boolean).length && !avatar) { setLoading(false) return @@ -108,10 +111,13 @@ const UserInfo = () => { '/auth' ) .then(res => { + dispatch(saveUserInfo(params)) + setUserInfo(params) + setAvatar(params.avatar || '') if (res.success) { message.success('更新成功') setTimeout(() => { - getUserInfo() + // getUserInfo() setLoading(false) setEditFlag(false) }, 500) @@ -126,7 +132,6 @@ const UserInfo = () => { } const handleChange = ({ file }) => { - // console.log(info) if (file.status === 'done' && file.response.success && file.response.data) { setAvatar(file.response.data) } @@ -174,7 +179,12 @@ const UserInfo = () => { ) : ( - + {userInfo.avatar ? ( + + ) : ( +
+ )} + {/* */} )} diff --git a/vite.config.ts b/vite.config.ts index b50f907..e039ff2 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -25,7 +25,9 @@ export default ({ mode }) => { '@utils': path.resolve(__dirname, 'src/utils'), '@components': path.resolve(__dirname, 'src/components'), '@imgs': path.resolve(__dirname, 'src/imgs'), - '@constants': path.resolve(__dirname, 'src/constants') + '@constants': path.resolve(__dirname, 'src/constants'), + '@store': path.resolve(__dirname, 'src/store'), + '@features': path.resolve(__dirname, 'src/store/features') } }, plugins: [react()],