From 8d8aa1348377323c11e83273581659a67b76a18e Mon Sep 17 00:00:00 2001 From: dev <710328466@qq.com> Date: Wed, 10 Jan 2024 15:15:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BB=93?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/config.json | 2 +- .npmrc | 1 + .vscode/settings.json | 8 + docs/index.md | 49 +- global.d.ts | 3 + packages/biz/CHANGELOG.md | 10 + packages/biz/README.md | 2 +- .../components/navigation/index.js | 27 + .../components/navigation/index.less | 44 + .../es/BigImageModal/images/emptyImage.png | Bin 0 -> 5786 bytes .../images/percent_background.png | Bin 0 -> 514 bytes packages/biz/es/BigImageModal/index.js | 151 + packages/biz/es/BigImageModal/index.less | 1145 ++ packages/biz/es/BigImageModal/index.temp.js | 789 ++ packages/biz/es/BigImageModal/mock.js | 854 ++ packages/biz/es/Demo/index.d.ts | 3 - packages/biz/es/Demo/index.js | 11 +- .../es/adapter/BigImageModalAdapter/index.js | 8 + .../BigImageModalAdapter/interface.d.ts | 217 + packages/biz/es/adapter/index.js | 1 + packages/biz/es/global.d.ts | 0 .../es/hooks/useIntelligentTracking/index.js | 618 + packages/biz/es/hooks/useTaskState/index.js | 153 + packages/biz/es/index.js | 4 +- packages/biz/es/useSocket/index.js | 101 + packages/biz/es/useSocket/onceChannel.js | 24 + packages/biz/es/useSocket/ws.js | 243 + packages/biz/es/utils/constants.js | 40 + packages/biz/es/utils/index.js | 0 packages/biz/es/utils/request.js | 121 + packages/biz/lib/Demo/index.d.ts | 3 - packages/biz/lib/index.d.ts | 1 - packages/biz/package.json | 12 +- .../components/navigation/index.less | 44 + .../components/navigation/index.tsx | 39 + .../src/BigImageModal/images/emptyImage.png | Bin 0 -> 5786 bytes .../images/percent_background.png | Bin 0 -> 514 bytes packages/biz/src/BigImageModal/index.less | 1145 ++ packages/biz/src/BigImageModal/index.md | 76 + packages/biz/src/BigImageModal/index.temp.tsx | 696 + packages/biz/src/BigImageModal/index.tsx | 162 + packages/biz/src/BigImageModal/mock.ts | 902 ++ packages/biz/src/Demo/index.tsx | 6 +- .../adapter/BigImageModalAdapter/index.tsx | 177 + .../BigImageModalAdapter/interface.d.ts | 217 + packages/biz/src/adapter/index.ts | 1 + packages/biz/src/global.d.ts | 0 .../hooks/useIntelligentTracking/index.tsx | 378 + packages/biz/src/hooks/useTaskState/index.ts | 103 + packages/biz/src/index.md | 2 +- packages/biz/src/index.tsx | 2 + packages/biz/src/useSocket/index.ts | 101 + packages/biz/src/useSocket/onceChannel.tsx | 23 + packages/biz/src/useSocket/ws.ts | 222 + packages/biz/src/utils/constants.ts | 28 + packages/biz/src/utils/index.ts | 0 packages/biz/src/utils/request.ts | 77 + packages/constants/.fatherrc.ts | 7 + packages/constants/CHANGELOG.md | 19 + packages/constants/README.md | 15 + packages/constants/es/base/index.d.ts | 23 + packages/constants/es/base/index.js | 30 + packages/constants/es/camera/index.d.ts | 1 + packages/constants/es/camera/index.js | 1 + packages/constants/es/index.d.ts | 2 + packages/constants/es/index.js | 2 + packages/constants/lib/base/index.d.ts | 23 + packages/constants/lib/base/index.js | 80 + packages/constants/lib/camera/index.d.ts | 1 + packages/constants/lib/camera/index.js | 29 + packages/constants/lib/index.d.ts | 2 + packages/constants/lib/index.js | 25 + packages/constants/package.json | 38 + packages/constants/src/base/index.ts | 27 + packages/constants/src/camera/index.ts | 1 + packages/constants/src/changelog/index.md | 8 + packages/constants/src/index.md | 8 + packages/constants/src/index.tsx | 2 + packages/func/.fatherrc.ts | 3 - packages/func/CHANGELOG.md | 6 + packages/func/dist/umd/func.min.js | 2 +- packages/func/es/addEventListener/index.d.ts | 3 - packages/func/es/addEventListener/index.js | 17 - packages/func/es/camera/constants.d.ts | 41 + packages/func/es/camera/constants.js | 50 + packages/func/es/camera/index.d.ts | 40 + packages/func/es/camera/index.js | 142 + packages/func/es/file/index.d.ts | 7 + packages/func/es/file/index.js | 34 + packages/func/es/index.d.ts | 2 + packages/func/es/index.js | 4 +- packages/func/es/utils/index.d.ts | 5 + packages/func/es/utils/index.js | 30 + packages/func/es/utils/isChrome.d.ts | 3 + packages/func/es/utils/isChrome.js | 17 + packages/func/lib/addEventListener/index.d.ts | 3 - packages/func/lib/camera/constants.d.ts | 41 + packages/func/lib/camera/constants.js | 90 + packages/func/lib/camera/index.d.ts | 40 + packages/func/lib/camera/index.js | 143 + packages/func/lib/file/index.d.ts | 7 + packages/func/lib/file/index.js | 28 + packages/func/lib/index.d.ts | 2 + packages/func/lib/index.js | 6 +- packages/func/lib/utils/index.d.ts | 5 + packages/func/lib/utils/index.js | 45 + packages/func/lib/utils/isChrome.d.ts | 3 + packages/func/lib/utils/isChrome.js | 42 + packages/func/package.json | 5 +- packages/func/src/addEventListener/index.ts | 21 - packages/func/src/camera/constants.ts | 54 + packages/func/src/camera/index.md | 50 + packages/func/src/camera/index.ts | 136 + packages/func/src/demo.md | 10 + packages/func/src/file/index.ts | 35 + packages/func/src/index.ts | 4 +- packages/func/src/utils/index.ts | 38 + packages/func/src/utils/isChrome.ts | 20 + packages/hooks/.fatherrc.ts | 3 - packages/hooks/CHANGELOG.md | 6 + packages/hooks/es/index.d.ts | 7 + packages/hooks/es/index.js | 9 +- .../hooks/es/useActivateWrapper/index.d.ts | 4 + packages/hooks/es/useActivateWrapper/index.js | 50 + .../hooks/es/useBoolLocalStorage/index.d.ts | 3 + .../hooks/es/useBoolLocalStorage/index.js | 25 + .../es/useCustomCompareEffect/index.d.ts | 4 + .../hooks/es/useCustomCompareEffect/index.js | 21 + packages/hooks/es/useDeepEffect/index.d.ts | 3 + packages/hooks/es/useDeepEffect/index.js | 8 + packages/hooks/es/useDeepMemo/index.d.ts | 2 + packages/hooks/es/useDeepMemo/index.js | 20 + packages/hooks/es/useDoubleCheck/index.d.ts | 3 + packages/hooks/es/useDoubleCheck/index.js | 19 + .../hooks/es/useIMEComposition/constants.d.ts | 0 .../hooks/es/useIMEComposition/constants.js | 0 .../hooks/es/useIMEComposition/index.d.ts | 3 + packages/hooks/es/useIMEComposition/index.js | 71 + .../hooks/es/useIMEComposition/interface.d.ts | 8 + .../hooks/es/useIMEComposition/interface.js | 1 + .../hooks/es/useIMEComposition/isBrowser.d.ts | 2 + .../hooks/es/useIMEComposition/isBrowser.js | 2 + .../hooks/es/useIMEComposition/isChrome.d.ts | 2 + .../hooks/es/useIMEComposition/isChrome.js | 16 + packages/hooks/es/useJump/constants.d.ts | 20 + packages/hooks/es/useJump/constants.js | 30 + packages/hooks/es/useJump/index.d.ts | 7 + packages/hooks/es/useJump/index.js | 67 + packages/hooks/es/useJump/interface.d.ts | 1 + packages/hooks/es/useJump/interface.js | 1 + packages/hooks/es/useSocket/index.d.ts | 1 + packages/hooks/es/useSocket/index.js | 1 + packages/hooks/lib/index.d.ts | 7 + packages/hooks/lib/index.js | 21 + .../hooks/lib/useActivateWrapper/index.d.ts | 4 + .../hooks/lib/useActivateWrapper/index.js | 74 + .../hooks/lib/useBoolLocalStorage/index.d.ts | 3 + .../hooks/lib/useBoolLocalStorage/index.js | 33 + .../lib/useCustomCompareEffect/index.d.ts | 4 + .../hooks/lib/useCustomCompareEffect/index.js | 46 + packages/hooks/lib/useDeepEffect/index.d.ts | 3 + .../lib => hooks/lib/useDeepEffect}/index.js | 23 +- packages/hooks/lib/useDeepMemo/index.d.ts | 2 + .../Demo => hooks/lib/useDeepMemo}/index.js | 27 +- packages/hooks/lib/useDoubleCheck/index.d.ts | 3 + packages/hooks/lib/useDoubleCheck/index.js | 38 + .../lib/useIMEComposition/constants.d.ts | 0 .../hooks/lib/useIMEComposition/constants.js | 0 .../hooks/lib/useIMEComposition/index.d.ts | 3 + packages/hooks/lib/useIMEComposition/index.js | 81 + .../lib/useIMEComposition/interface.d.ts | 8 + .../hooks/lib/useIMEComposition/interface.js | 17 + .../lib/useIMEComposition/isBrowser.d.ts | 2 + .../hooks/lib/useIMEComposition/isBrowser.js | 25 + .../hooks/lib/useIMEComposition/isChrome.d.ts | 2 + .../lib/useIMEComposition/isChrome.js} | 37 +- packages/hooks/lib/useJump/constants.d.ts | 20 + packages/hooks/lib/useJump/constants.js | 61 + packages/hooks/lib/useJump/index.d.ts | 7 + packages/hooks/lib/useJump/index.js | 90 + packages/hooks/lib/useJump/interface.d.ts | 1 + packages/hooks/lib/useJump/interface.js | 17 + packages/hooks/lib/useSocket/index.d.ts | 1 + packages/hooks/lib/useSocket/index.js | 0 packages/hooks/package.json | 12 +- packages/hooks/src/demo.md | 81 +- packages/hooks/src/index.tsx | 7 + .../hooks/src/useActivateWrapper/index.tsx | 50 + .../hooks/src/useBoolLocalStorage/index.tsx | 12 + .../src/useCustomCompareEffect/index.tsx | 37 + packages/hooks/src/useDeepEffect/index.tsx | 14 + packages/hooks/src/useDeepMemo/index.ts | 13 + packages/hooks/src/useDoubleCheck/index.tsx | 13 + .../hooks/src/useIMEComposition/index.tsx | 77 + .../hooks/src/useIMEComposition/interface.ts | 7 + .../hooks/src/useIMEComposition/isBrowser.ts | 2 + .../hooks/src/useIMEComposition/isChrome.ts | 20 + packages/hooks/src/useJump/constants.ts | 23 + packages/hooks/src/useJump/index.ts | 59 + packages/hooks/src/useJump/interface.ts | 7 + packages/hooks/src/useSocket/index.ts | 2 + packages/material/.fatherrc.ts | 7 + packages/material/CHANGELOG.md | 19 + packages/material/README.md | 16 + packages/material/package.json | 39 + packages/material/src/Demo/index.tsx | 12 + packages/material/src/changelog/index.md | 8 + packages/material/src/index.md | 8 + .../es/index.d.ts => material/src/index.tsx} | 0 packages/meta/.fatherrc.ts | 3 - packages/meta/CHANGELOG.md | 6 + packages/meta/README.md | 11 +- packages/meta/dist/umd/meta.min.js | 1 - .../es/ImageEditor/cropper/constants.d.ts | 26 + .../meta/es/ImageEditor/cropper/constants.js | 40 + .../meta/es/ImageEditor/cropper/event.d.ts | 9 + packages/meta/es/ImageEditor/cropper/event.js | 415 + .../meta/es/ImageEditor/cropper/index.d.ts | 34 + packages/meta/es/ImageEditor/cropper/index.js | 171 + .../es/ImageEditor/cropper/index.module.scss | 194 + .../meta/es/ImageEditor/cropper/preview.d.ts | 6 + .../meta/es/ImageEditor/cropper/preview.js | 54 + .../meta/es/ImageEditor/cropper/render.d.ts | 20 + .../meta/es/ImageEditor/cropper/render.js | 132 + .../meta/es/ImageEditor/cropper/template.js | 2 + .../es/ImageEditor/cropper/viewerBridge.d.ts | 7 + .../es/ImageEditor/cropper/viewerBridge.js | 92 + packages/meta/es/ImageEditor/index.d.ts | 4 + packages/meta/es/ImageEditor/index.js | 7 + packages/meta/es/ImageEditor/interface.d.ts | 3 + packages/meta/es/ImageEditor/utils.d.ts | 89 + packages/meta/es/ImageEditor/utils.js | 173 + .../meta/es/ImageEditor/viewer/constants.d.ts | 26 + .../meta/es/ImageEditor/viewer/constants.js | 42 + .../meta/es/ImageEditor/viewer/event.d.ts | 15 + packages/meta/es/ImageEditor/viewer/event.js | 197 + .../meta/es/ImageEditor/viewer/helper.d.ts | 43 + packages/meta/es/ImageEditor/viewer/helper.js | 208 + .../meta/es/ImageEditor/viewer/index.d.ts | 21 + packages/meta/es/ImageEditor/viewer/index.js | 107 + .../meta/es/ImageEditor/viewer/index.scss | 44 + .../meta/es/ImageEditor/viewer/render.d.ts | 35 + packages/meta/es/ImageEditor/viewer/render.js | 332 + .../meta/es/ImageEditor/viewer/shape.d.ts | 40 + packages/meta/es/ImageEditor/viewer/shape.js | 258 + .../components/CornerScore/index.d.ts | 7 + .../components/CornerScore/index.js | 15 + .../components/CornerScore/index.less | 0 .../es/ImagePreview/images/emptyImage.png | Bin 0 -> 5786 bytes .../images/percent_background.png | Bin 0 -> 514 bytes packages/meta/es/ImagePreview/index.d.ts | 12 + packages/meta/es/ImagePreview/index.js | 168 + packages/meta/es/{Button => Temp}/index.d.ts | 0 packages/meta/es/{Button => Temp}/index.js | 0 packages/meta/es/doubleClick/index.d.ts | 5 + packages/meta/es/doubleClick/index.js | 84 + packages/meta/es/iconfont/index.d.ts | 15 + packages/meta/es/iconfont/index.js | 41 + packages/meta/es/index.d.ts | 4 +- packages/meta/es/index.js | 4 +- packages/meta/es/utils/index.d.ts | 0 packages/meta/es/utils/index.js | 0 .../lib/ImageEditor/cropper/constants.d.ts | 26 + .../meta/lib/ImageEditor/cropper/constants.js | 105 + .../meta/lib/ImageEditor/cropper/event.d.ts | 9 + .../meta/lib/ImageEditor/cropper/event.js | 419 + .../meta/lib/ImageEditor/cropper/index.d.ts | 34 + .../meta/lib/ImageEditor/cropper/index.js | 136 + .../lib/ImageEditor/cropper/index.module.scss | 194 + .../meta/lib/ImageEditor/cropper/preview.d.ts | 6 + .../meta/lib/ImageEditor/cropper/preview.js | 75 + .../meta/lib/ImageEditor/cropper/render.d.ts | 20 + .../meta/lib/ImageEditor/cropper/render.js | 164 + .../meta/lib/ImageEditor/cropper/template.js | 46 + .../lib/ImageEditor/cropper/viewerBridge.d.ts | 7 + .../lib/ImageEditor/cropper/viewerBridge.js | 93 + packages/meta/lib/ImageEditor/index.d.ts | 4 + packages/meta/lib/ImageEditor/index.js | 60 + packages/meta/lib/ImageEditor/interface.d.ts | 3 + packages/meta/lib/ImageEditor/utils.d.ts | 89 + packages/meta/lib/ImageEditor/utils.js | 149 + .../lib/ImageEditor/viewer/constants.d.ts | 26 + .../meta/lib/ImageEditor/viewer/constants.js | 105 + .../meta/lib/ImageEditor/viewer/event.d.ts | 15 + packages/meta/lib/ImageEditor/viewer/event.js | 202 + .../meta/lib/ImageEditor/viewer/helper.d.ts | 43 + .../meta/lib/ImageEditor/viewer/helper.js | 161 + .../meta/lib/ImageEditor/viewer/index.d.ts | 21 + packages/meta/lib/ImageEditor/viewer/index.js | 93 + .../meta/lib/ImageEditor/viewer/index.scss | 44 + .../meta/lib/ImageEditor/viewer/render.d.ts | 35 + .../meta/lib/ImageEditor/viewer/render.js | 284 + .../meta/lib/ImageEditor/viewer/shape.d.ts | 40 + packages/meta/lib/ImageEditor/viewer/shape.js | 262 + .../components/CornerScore/index.d.ts | 7 + .../components/CornerScore/index.js | 52 + .../components/CornerScore/index.less | 0 .../lib/ImagePreview/images/emptyImage.png | Bin 0 -> 5786 bytes .../images/percent_background.png | Bin 0 -> 514 bytes packages/meta/lib/ImagePreview/index.d.ts | 12 + packages/meta/lib/ImagePreview/index.js | 164 + packages/meta/lib/{Button => Temp}/index.d.ts | 0 packages/meta/lib/{Button => Temp}/index.js | 12 +- packages/meta/lib/doubleClick/index.d.ts | 5 + packages/meta/lib/doubleClick/index.js | 70 + packages/meta/lib/iconfont/index.d.ts | 15 + packages/meta/lib/iconfont/index.js | 68 + packages/meta/lib/index.d.ts | 4 +- packages/meta/lib/index.js | 12 +- packages/meta/lib/utils/index.d.ts | 0 packages/meta/lib/utils/index.js | 0 packages/meta/package.json | 15 +- packages/meta/src/Button/index.md | 19 - .../meta/src/ImageEditor/cropper/constants.ts | 41 + .../meta/src/ImageEditor/cropper/event.ts | 493 + .../src/ImageEditor/cropper/index.module.scss | 194 + .../meta/src/ImageEditor/cropper/index.ts | 172 + .../meta/src/ImageEditor/cropper/preview.ts | 61 + .../meta/src/ImageEditor/cropper/render.ts | 175 + .../meta/src/ImageEditor/cropper/template.js | 23 + .../src/ImageEditor/cropper/viewerBridge.ts | 80 + packages/meta/src/ImageEditor/index.ts | 15 + packages/meta/src/ImageEditor/interface.d.ts | 3 + packages/meta/src/ImageEditor/utils.ts | 190 + .../meta/src/ImageEditor/viewer/constants.ts | 43 + packages/meta/src/ImageEditor/viewer/event.ts | 225 + .../meta/src/ImageEditor/viewer/helper.ts | 166 + .../meta/src/ImageEditor/viewer/index.scss | 44 + packages/meta/src/ImageEditor/viewer/index.ts | 101 + .../meta/src/ImageEditor/viewer/render.ts | 295 + packages/meta/src/ImageEditor/viewer/shape.ts | 271 + .../components/CornerScore/index.less | 22 + .../components/CornerScore/index.tsx | 25 + .../src/ImagePreview/images/emptyImage.png | Bin 0 -> 5786 bytes .../images/percent_background.png | Bin 0 -> 514 bytes packages/meta/src/ImagePreview/index.less | 147 + packages/meta/src/ImagePreview/index.md | 40 + packages/meta/src/ImagePreview/index.tsx | 166 + packages/meta/src/{Button => Temp}/index.tsx | 0 packages/meta/src/changelog/index.md | 2 +- packages/meta/src/doubleClick/index.md | 22 + packages/meta/src/doubleClick/index.tsx | 50 + packages/meta/src/iconfont/index.tsx | 48 + packages/meta/src/index.tsx | 4 +- packages/meta/src/utils/index.ts | 0 packages/types/CHANGELOG.md | 19 + packages/types/README.md | 15 + packages/types/index.d.ts | 0 packages/types/package.json | 32 + packages/types/src/index.md | 8 + packages/types/src/index.tsx | 0 pnpm-lock.yaml | 11682 ++-------------- 352 files changed, 23265 insertions(+), 10505 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 global.d.ts create mode 100644 packages/biz/es/BigImageModal/components/navigation/index.js create mode 100644 packages/biz/es/BigImageModal/components/navigation/index.less create mode 100644 packages/biz/es/BigImageModal/images/emptyImage.png create mode 100644 packages/biz/es/BigImageModal/images/percent_background.png create mode 100644 packages/biz/es/BigImageModal/index.js create mode 100644 packages/biz/es/BigImageModal/index.less create mode 100644 packages/biz/es/BigImageModal/index.temp.js create mode 100644 packages/biz/es/BigImageModal/mock.js delete mode 100644 packages/biz/es/Demo/index.d.ts create mode 100644 packages/biz/es/adapter/BigImageModalAdapter/index.js create mode 100644 packages/biz/es/adapter/BigImageModalAdapter/interface.d.ts create mode 100644 packages/biz/es/adapter/index.js create mode 100644 packages/biz/es/global.d.ts create mode 100644 packages/biz/es/hooks/useIntelligentTracking/index.js create mode 100644 packages/biz/es/hooks/useTaskState/index.js create mode 100644 packages/biz/es/useSocket/index.js create mode 100644 packages/biz/es/useSocket/onceChannel.js create mode 100644 packages/biz/es/useSocket/ws.js create mode 100644 packages/biz/es/utils/constants.js create mode 100644 packages/biz/es/utils/index.js create mode 100644 packages/biz/es/utils/request.js delete mode 100644 packages/biz/lib/Demo/index.d.ts delete mode 100644 packages/biz/lib/index.d.ts create mode 100644 packages/biz/src/BigImageModal/components/navigation/index.less create mode 100644 packages/biz/src/BigImageModal/components/navigation/index.tsx create mode 100644 packages/biz/src/BigImageModal/images/emptyImage.png create mode 100644 packages/biz/src/BigImageModal/images/percent_background.png create mode 100644 packages/biz/src/BigImageModal/index.less create mode 100644 packages/biz/src/BigImageModal/index.md create mode 100644 packages/biz/src/BigImageModal/index.temp.tsx create mode 100644 packages/biz/src/BigImageModal/index.tsx create mode 100644 packages/biz/src/BigImageModal/mock.ts create mode 100644 packages/biz/src/adapter/BigImageModalAdapter/index.tsx create mode 100644 packages/biz/src/adapter/BigImageModalAdapter/interface.d.ts create mode 100644 packages/biz/src/adapter/index.ts create mode 100644 packages/biz/src/global.d.ts create mode 100644 packages/biz/src/hooks/useIntelligentTracking/index.tsx create mode 100644 packages/biz/src/hooks/useTaskState/index.ts create mode 100644 packages/biz/src/useSocket/index.ts create mode 100644 packages/biz/src/useSocket/onceChannel.tsx create mode 100644 packages/biz/src/useSocket/ws.ts create mode 100644 packages/biz/src/utils/constants.ts create mode 100644 packages/biz/src/utils/index.ts create mode 100644 packages/biz/src/utils/request.ts create mode 100644 packages/constants/.fatherrc.ts create mode 100644 packages/constants/CHANGELOG.md create mode 100644 packages/constants/README.md create mode 100644 packages/constants/es/base/index.d.ts create mode 100644 packages/constants/es/base/index.js create mode 100644 packages/constants/es/camera/index.d.ts create mode 100644 packages/constants/es/camera/index.js create mode 100644 packages/constants/es/index.d.ts create mode 100644 packages/constants/es/index.js create mode 100644 packages/constants/lib/base/index.d.ts create mode 100644 packages/constants/lib/base/index.js create mode 100644 packages/constants/lib/camera/index.d.ts create mode 100644 packages/constants/lib/camera/index.js create mode 100644 packages/constants/lib/index.d.ts create mode 100644 packages/constants/lib/index.js create mode 100644 packages/constants/package.json create mode 100644 packages/constants/src/base/index.ts create mode 100644 packages/constants/src/camera/index.ts create mode 100644 packages/constants/src/changelog/index.md create mode 100644 packages/constants/src/index.md create mode 100644 packages/constants/src/index.tsx delete mode 100644 packages/func/es/addEventListener/index.d.ts delete mode 100644 packages/func/es/addEventListener/index.js create mode 100644 packages/func/es/camera/constants.d.ts create mode 100644 packages/func/es/camera/constants.js create mode 100644 packages/func/es/camera/index.d.ts create mode 100644 packages/func/es/camera/index.js create mode 100644 packages/func/es/utils/isChrome.d.ts create mode 100644 packages/func/es/utils/isChrome.js delete mode 100644 packages/func/lib/addEventListener/index.d.ts create mode 100644 packages/func/lib/camera/constants.d.ts create mode 100644 packages/func/lib/camera/constants.js create mode 100644 packages/func/lib/camera/index.d.ts create mode 100644 packages/func/lib/camera/index.js create mode 100644 packages/func/lib/utils/isChrome.d.ts create mode 100644 packages/func/lib/utils/isChrome.js delete mode 100644 packages/func/src/addEventListener/index.ts create mode 100644 packages/func/src/camera/constants.ts create mode 100644 packages/func/src/camera/index.md create mode 100644 packages/func/src/camera/index.ts create mode 100644 packages/func/src/utils/isChrome.ts create mode 100644 packages/hooks/es/useActivateWrapper/index.d.ts create mode 100644 packages/hooks/es/useActivateWrapper/index.js create mode 100644 packages/hooks/es/useBoolLocalStorage/index.d.ts create mode 100644 packages/hooks/es/useBoolLocalStorage/index.js create mode 100644 packages/hooks/es/useCustomCompareEffect/index.d.ts create mode 100644 packages/hooks/es/useCustomCompareEffect/index.js create mode 100644 packages/hooks/es/useDeepEffect/index.d.ts create mode 100644 packages/hooks/es/useDeepEffect/index.js create mode 100644 packages/hooks/es/useDeepMemo/index.d.ts create mode 100644 packages/hooks/es/useDeepMemo/index.js create mode 100644 packages/hooks/es/useDoubleCheck/index.d.ts create mode 100644 packages/hooks/es/useDoubleCheck/index.js create mode 100644 packages/hooks/es/useIMEComposition/constants.d.ts create mode 100644 packages/hooks/es/useIMEComposition/constants.js create mode 100644 packages/hooks/es/useIMEComposition/index.d.ts create mode 100644 packages/hooks/es/useIMEComposition/index.js create mode 100644 packages/hooks/es/useIMEComposition/interface.d.ts create mode 100644 packages/hooks/es/useIMEComposition/interface.js create mode 100644 packages/hooks/es/useIMEComposition/isBrowser.d.ts create mode 100644 packages/hooks/es/useIMEComposition/isBrowser.js create mode 100644 packages/hooks/es/useIMEComposition/isChrome.d.ts create mode 100644 packages/hooks/es/useIMEComposition/isChrome.js create mode 100644 packages/hooks/es/useJump/constants.d.ts create mode 100644 packages/hooks/es/useJump/constants.js create mode 100644 packages/hooks/es/useJump/index.d.ts create mode 100644 packages/hooks/es/useJump/index.js create mode 100644 packages/hooks/es/useJump/interface.d.ts create mode 100644 packages/hooks/es/useJump/interface.js create mode 100644 packages/hooks/es/useSocket/index.d.ts create mode 100644 packages/hooks/es/useSocket/index.js create mode 100644 packages/hooks/lib/useActivateWrapper/index.d.ts create mode 100644 packages/hooks/lib/useActivateWrapper/index.js create mode 100644 packages/hooks/lib/useBoolLocalStorage/index.d.ts create mode 100644 packages/hooks/lib/useBoolLocalStorage/index.js create mode 100644 packages/hooks/lib/useCustomCompareEffect/index.d.ts create mode 100644 packages/hooks/lib/useCustomCompareEffect/index.js create mode 100644 packages/hooks/lib/useDeepEffect/index.d.ts rename packages/{biz/lib => hooks/lib/useDeepEffect}/index.js (72%) create mode 100644 packages/hooks/lib/useDeepMemo/index.d.ts rename packages/{biz/lib/Demo => hooks/lib/useDeepMemo}/index.js (72%) create mode 100644 packages/hooks/lib/useDoubleCheck/index.d.ts create mode 100644 packages/hooks/lib/useDoubleCheck/index.js create mode 100644 packages/hooks/lib/useIMEComposition/constants.d.ts create mode 100644 packages/hooks/lib/useIMEComposition/constants.js create mode 100644 packages/hooks/lib/useIMEComposition/index.d.ts create mode 100644 packages/hooks/lib/useIMEComposition/index.js create mode 100644 packages/hooks/lib/useIMEComposition/interface.d.ts create mode 100644 packages/hooks/lib/useIMEComposition/interface.js create mode 100644 packages/hooks/lib/useIMEComposition/isBrowser.d.ts create mode 100644 packages/hooks/lib/useIMEComposition/isBrowser.js create mode 100644 packages/hooks/lib/useIMEComposition/isChrome.d.ts rename packages/{func/lib/addEventListener/index.js => hooks/lib/useIMEComposition/isChrome.js} (62%) create mode 100644 packages/hooks/lib/useJump/constants.d.ts create mode 100644 packages/hooks/lib/useJump/constants.js create mode 100644 packages/hooks/lib/useJump/index.d.ts create mode 100644 packages/hooks/lib/useJump/index.js create mode 100644 packages/hooks/lib/useJump/interface.d.ts create mode 100644 packages/hooks/lib/useJump/interface.js create mode 100644 packages/hooks/lib/useSocket/index.d.ts create mode 100644 packages/hooks/lib/useSocket/index.js create mode 100644 packages/hooks/src/useActivateWrapper/index.tsx create mode 100644 packages/hooks/src/useBoolLocalStorage/index.tsx create mode 100644 packages/hooks/src/useCustomCompareEffect/index.tsx create mode 100644 packages/hooks/src/useDeepEffect/index.tsx create mode 100644 packages/hooks/src/useDeepMemo/index.ts create mode 100644 packages/hooks/src/useDoubleCheck/index.tsx create mode 100644 packages/hooks/src/useIMEComposition/index.tsx create mode 100644 packages/hooks/src/useIMEComposition/interface.ts create mode 100644 packages/hooks/src/useIMEComposition/isBrowser.ts create mode 100644 packages/hooks/src/useIMEComposition/isChrome.ts create mode 100644 packages/hooks/src/useJump/constants.ts create mode 100644 packages/hooks/src/useJump/index.ts create mode 100644 packages/hooks/src/useJump/interface.ts create mode 100644 packages/hooks/src/useSocket/index.ts create mode 100644 packages/material/.fatherrc.ts create mode 100644 packages/material/CHANGELOG.md create mode 100644 packages/material/README.md create mode 100644 packages/material/package.json create mode 100644 packages/material/src/Demo/index.tsx create mode 100644 packages/material/src/changelog/index.md create mode 100644 packages/material/src/index.md rename packages/{biz/es/index.d.ts => material/src/index.tsx} (100%) delete mode 100644 packages/meta/dist/umd/meta.min.js create mode 100644 packages/meta/es/ImageEditor/cropper/constants.d.ts create mode 100644 packages/meta/es/ImageEditor/cropper/constants.js create mode 100644 packages/meta/es/ImageEditor/cropper/event.d.ts create mode 100644 packages/meta/es/ImageEditor/cropper/event.js create mode 100644 packages/meta/es/ImageEditor/cropper/index.d.ts create mode 100644 packages/meta/es/ImageEditor/cropper/index.js create mode 100644 packages/meta/es/ImageEditor/cropper/index.module.scss create mode 100644 packages/meta/es/ImageEditor/cropper/preview.d.ts create mode 100644 packages/meta/es/ImageEditor/cropper/preview.js create mode 100644 packages/meta/es/ImageEditor/cropper/render.d.ts create mode 100644 packages/meta/es/ImageEditor/cropper/render.js create mode 100644 packages/meta/es/ImageEditor/cropper/template.js create mode 100644 packages/meta/es/ImageEditor/cropper/viewerBridge.d.ts create mode 100644 packages/meta/es/ImageEditor/cropper/viewerBridge.js create mode 100644 packages/meta/es/ImageEditor/index.d.ts create mode 100644 packages/meta/es/ImageEditor/index.js create mode 100644 packages/meta/es/ImageEditor/interface.d.ts create mode 100644 packages/meta/es/ImageEditor/utils.d.ts create mode 100644 packages/meta/es/ImageEditor/utils.js create mode 100644 packages/meta/es/ImageEditor/viewer/constants.d.ts create mode 100644 packages/meta/es/ImageEditor/viewer/constants.js create mode 100644 packages/meta/es/ImageEditor/viewer/event.d.ts create mode 100644 packages/meta/es/ImageEditor/viewer/event.js create mode 100644 packages/meta/es/ImageEditor/viewer/helper.d.ts create mode 100644 packages/meta/es/ImageEditor/viewer/helper.js create mode 100644 packages/meta/es/ImageEditor/viewer/index.d.ts create mode 100644 packages/meta/es/ImageEditor/viewer/index.js create mode 100644 packages/meta/es/ImageEditor/viewer/index.scss create mode 100644 packages/meta/es/ImageEditor/viewer/render.d.ts create mode 100644 packages/meta/es/ImageEditor/viewer/render.js create mode 100644 packages/meta/es/ImageEditor/viewer/shape.d.ts create mode 100644 packages/meta/es/ImageEditor/viewer/shape.js create mode 100644 packages/meta/es/ImagePreview/components/CornerScore/index.d.ts create mode 100644 packages/meta/es/ImagePreview/components/CornerScore/index.js create mode 100644 packages/meta/es/ImagePreview/components/CornerScore/index.less create mode 100644 packages/meta/es/ImagePreview/images/emptyImage.png create mode 100644 packages/meta/es/ImagePreview/images/percent_background.png create mode 100644 packages/meta/es/ImagePreview/index.d.ts create mode 100644 packages/meta/es/ImagePreview/index.js rename packages/meta/es/{Button => Temp}/index.d.ts (100%) rename packages/meta/es/{Button => Temp}/index.js (100%) create mode 100644 packages/meta/es/doubleClick/index.d.ts create mode 100644 packages/meta/es/doubleClick/index.js create mode 100644 packages/meta/es/iconfont/index.d.ts create mode 100644 packages/meta/es/iconfont/index.js create mode 100644 packages/meta/es/utils/index.d.ts create mode 100644 packages/meta/es/utils/index.js create mode 100644 packages/meta/lib/ImageEditor/cropper/constants.d.ts create mode 100644 packages/meta/lib/ImageEditor/cropper/constants.js create mode 100644 packages/meta/lib/ImageEditor/cropper/event.d.ts create mode 100644 packages/meta/lib/ImageEditor/cropper/event.js create mode 100644 packages/meta/lib/ImageEditor/cropper/index.d.ts create mode 100644 packages/meta/lib/ImageEditor/cropper/index.js create mode 100644 packages/meta/lib/ImageEditor/cropper/index.module.scss create mode 100644 packages/meta/lib/ImageEditor/cropper/preview.d.ts create mode 100644 packages/meta/lib/ImageEditor/cropper/preview.js create mode 100644 packages/meta/lib/ImageEditor/cropper/render.d.ts create mode 100644 packages/meta/lib/ImageEditor/cropper/render.js create mode 100644 packages/meta/lib/ImageEditor/cropper/template.js create mode 100644 packages/meta/lib/ImageEditor/cropper/viewerBridge.d.ts create mode 100644 packages/meta/lib/ImageEditor/cropper/viewerBridge.js create mode 100644 packages/meta/lib/ImageEditor/index.d.ts create mode 100644 packages/meta/lib/ImageEditor/index.js create mode 100644 packages/meta/lib/ImageEditor/interface.d.ts create mode 100644 packages/meta/lib/ImageEditor/utils.d.ts create mode 100644 packages/meta/lib/ImageEditor/utils.js create mode 100644 packages/meta/lib/ImageEditor/viewer/constants.d.ts create mode 100644 packages/meta/lib/ImageEditor/viewer/constants.js create mode 100644 packages/meta/lib/ImageEditor/viewer/event.d.ts create mode 100644 packages/meta/lib/ImageEditor/viewer/event.js create mode 100644 packages/meta/lib/ImageEditor/viewer/helper.d.ts create mode 100644 packages/meta/lib/ImageEditor/viewer/helper.js create mode 100644 packages/meta/lib/ImageEditor/viewer/index.d.ts create mode 100644 packages/meta/lib/ImageEditor/viewer/index.js create mode 100644 packages/meta/lib/ImageEditor/viewer/index.scss create mode 100644 packages/meta/lib/ImageEditor/viewer/render.d.ts create mode 100644 packages/meta/lib/ImageEditor/viewer/render.js create mode 100644 packages/meta/lib/ImageEditor/viewer/shape.d.ts create mode 100644 packages/meta/lib/ImageEditor/viewer/shape.js create mode 100644 packages/meta/lib/ImagePreview/components/CornerScore/index.d.ts create mode 100644 packages/meta/lib/ImagePreview/components/CornerScore/index.js create mode 100644 packages/meta/lib/ImagePreview/components/CornerScore/index.less create mode 100644 packages/meta/lib/ImagePreview/images/emptyImage.png create mode 100644 packages/meta/lib/ImagePreview/images/percent_background.png create mode 100644 packages/meta/lib/ImagePreview/index.d.ts create mode 100644 packages/meta/lib/ImagePreview/index.js rename packages/meta/lib/{Button => Temp}/index.d.ts (100%) rename packages/meta/lib/{Button => Temp}/index.js (89%) create mode 100644 packages/meta/lib/doubleClick/index.d.ts create mode 100644 packages/meta/lib/doubleClick/index.js create mode 100644 packages/meta/lib/iconfont/index.d.ts create mode 100644 packages/meta/lib/iconfont/index.js create mode 100644 packages/meta/lib/utils/index.d.ts create mode 100644 packages/meta/lib/utils/index.js delete mode 100644 packages/meta/src/Button/index.md create mode 100644 packages/meta/src/ImageEditor/cropper/constants.ts create mode 100644 packages/meta/src/ImageEditor/cropper/event.ts create mode 100644 packages/meta/src/ImageEditor/cropper/index.module.scss create mode 100644 packages/meta/src/ImageEditor/cropper/index.ts create mode 100644 packages/meta/src/ImageEditor/cropper/preview.ts create mode 100644 packages/meta/src/ImageEditor/cropper/render.ts create mode 100644 packages/meta/src/ImageEditor/cropper/template.js create mode 100644 packages/meta/src/ImageEditor/cropper/viewerBridge.ts create mode 100644 packages/meta/src/ImageEditor/index.ts create mode 100644 packages/meta/src/ImageEditor/interface.d.ts create mode 100644 packages/meta/src/ImageEditor/utils.ts create mode 100644 packages/meta/src/ImageEditor/viewer/constants.ts create mode 100644 packages/meta/src/ImageEditor/viewer/event.ts create mode 100644 packages/meta/src/ImageEditor/viewer/helper.ts create mode 100644 packages/meta/src/ImageEditor/viewer/index.scss create mode 100644 packages/meta/src/ImageEditor/viewer/index.ts create mode 100644 packages/meta/src/ImageEditor/viewer/render.ts create mode 100644 packages/meta/src/ImageEditor/viewer/shape.ts create mode 100644 packages/meta/src/ImagePreview/components/CornerScore/index.less create mode 100644 packages/meta/src/ImagePreview/components/CornerScore/index.tsx create mode 100644 packages/meta/src/ImagePreview/images/emptyImage.png create mode 100644 packages/meta/src/ImagePreview/images/percent_background.png create mode 100644 packages/meta/src/ImagePreview/index.less create mode 100644 packages/meta/src/ImagePreview/index.md create mode 100644 packages/meta/src/ImagePreview/index.tsx rename packages/meta/src/{Button => Temp}/index.tsx (100%) create mode 100644 packages/meta/src/doubleClick/index.md create mode 100644 packages/meta/src/doubleClick/index.tsx create mode 100644 packages/meta/src/iconfont/index.tsx create mode 100644 packages/meta/src/utils/index.ts create mode 100644 packages/types/CHANGELOG.md create mode 100644 packages/types/README.md create mode 100644 packages/types/index.d.ts create mode 100644 packages/types/package.json create mode 100644 packages/types/src/index.md create mode 100644 packages/types/src/index.tsx diff --git a/.changeset/config.json b/.changeset/config.json index 36735f0..dcd3d8b 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -5,7 +5,7 @@ "fixed": [], "linked": [], "access": "public", - "baseBranch": "origin/master", + "baseBranch": "master", "updateInternalDependencies": "patch", "ignore": [] } diff --git a/.npmrc b/.npmrc index 64f955f..b4458c8 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,4 @@ +registry="https://registry.npm.taobao.org/" @zhst:registry="http://10.0.0.77:4874" strict-peer-dependencies=false ignore-workspace-root-check=true diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b9685e3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "cSpell.words": [ + "ahooks", + "antd", + "COMPATER", + "zhst" + ] +} diff --git a/docs/index.md b/docs/index.md index 465a724..d5e9a0a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,10 +4,10 @@ hero: description: 前端工具库合集 actions: - text: 快速上手 - link: /hooks + link: /bizs features: - title: biz - emoji: 🌈 + emoji: 🍑 description: 业务库 - title: hooks emoji: 💎 @@ -15,4 +15,49 @@ features: - title: func emoji: 🌈 description: 常用函数库 + - title: meta + emoji: 🧸 + description: 原子组件库 --- + +## 本文档食用说明 + +目前在开发中的项目为:@zhst/bizs、@zhst/hooks、@zhst/meta、@zhst/func。 + +bizs: 基于@zhst/hooks、@zhst/meta、@zhst/func 开发,基本贴近于业务。doing + +meta:基于 antd 开发,作为公司的定制化原子组件。doing + +hooks:基于 ahooks、@zhst/func 定制化二次开发。doing + +func:基于 lodash-es 定制化二次开发 (由于utils包名被使用了)doing + +## 后续构思 + +想做一个,基于智慧视通开发场景和业务场景的前端技术流程化方案,希望它能渗透到整个研发的所有流程中。 + +比如:代码规范、git提交规范、物料库、基于electron的前端工具客户端(可集成物料库、图片上传小工具)、api自动生成... + +:::info{title=@zhst/lint} +lint工具库,包含:eslint-config、eslint-plugin、commit-lint +::: + +:::info{title=@zhst/metarial} +物料库,可以直接通过 clone npm 仓库的形式生成模板页面 +::: + +:::info{title=@zhst/app} +基于 electron 的前端客户端工具,初期功能构思方案有:文件上传、git 仓库管理、物料库可视化页面一键生成 +::: + +:::info{title=@zhst/autoapi} +接口一键生成工具 +::: + +:::info{title=@zhst/types} +类型定义库 +::: + +:::info{title=@zhst/constants} +静态变量枚举库 +::: diff --git a/global.d.ts b/global.d.ts new file mode 100644 index 0000000..5ce6297 --- /dev/null +++ b/global.d.ts @@ -0,0 +1,3 @@ +declare module '@zhst/func'; +declare module '@zhst/hooks'; +declare module '@zhst/meta'; diff --git a/packages/biz/CHANGELOG.md b/packages/biz/CHANGELOG.md index 4d0f2d6..444b4f0 100644 --- a/packages/biz/CHANGELOG.md +++ b/packages/biz/CHANGELOG.md @@ -1,5 +1,15 @@ # @zhst/biz +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 +- Updated dependencies + - @zhst/func@0.2.4 + - @zhst/hooks@0.2.4 + - @zhst/meta@0.2.4 + ## 0.2.3 ### Patch Changes diff --git a/packages/biz/README.md b/packages/biz/README.md index 23ba41e..012e258 100644 --- a/packages/biz/README.md +++ b/packages/biz/README.md @@ -1,6 +1,6 @@ ## 介绍 -业务库 +基于 @zhst/meta(元组件)、 @zhst/hooks、@zhst/func 开发,内容上会更贴近业务. ## 安装 diff --git a/packages/biz/es/BigImageModal/components/navigation/index.js b/packages/biz/es/BigImageModal/components/navigation/index.js new file mode 100644 index 0000000..df9ed8d --- /dev/null +++ b/packages/biz/es/BigImageModal/components/navigation/index.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import classnames from 'classnames'; +import { Button } from 'antd'; +import { Icon } from '@zhst/meta'; +import "./index.less"; +var componentName = "zhst-image__nav"; +var Navigation = function Navigation(props) { + var show = props.show, + prev = props.prev, + next = props.next, + disabled = props.disabled, + onClick = props.onClick, + className = props.className, + color = props.color; + return /*#__PURE__*/React.createElement("div", { + className: classnames("".concat(componentName), prev && "".concat(componentName, "-prev"), next && "".concat(componentName, "-next"), disabled && "".concat(componentName, "--disable"), !show && "".concat(componentName, "--hide"), className) + }, /*#__PURE__*/React.createElement(Button, { + type: "text", + disabled: disabled, + onClick: onClick + }, /*#__PURE__*/React.createElement(Icon, { + size: 28, + color: color, + icon: prev ? 'icon-qiehuanzuo' : 'icon-qiehuanyou' + }))); +}; +export default Navigation; \ No newline at end of file diff --git a/packages/biz/es/BigImageModal/components/navigation/index.less b/packages/biz/es/BigImageModal/components/navigation/index.less new file mode 100644 index 0000000..0a834f9 --- /dev/null +++ b/packages/biz/es/BigImageModal/components/navigation/index.less @@ -0,0 +1,44 @@ +.zhst-image__nav { + position: absolute; + display: flex; + width: 48px; + height: 100%; + flex-shrink: 0; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 0; + + &>button { + & span { + display: flex; + } + } + + :global { + i:hover { + color: #f0f0f0 !important; + } + } + + &--disable { + :global { + i { + color: #f0f0f0; + cursor: not-allowed !important; + } + } + } + + &--hide { + display: none; + } + + &-prev { + left: 20px; + } + + &-next { + right: 20px; + } +} diff --git a/packages/biz/es/BigImageModal/images/emptyImage.png b/packages/biz/es/BigImageModal/images/emptyImage.png new file mode 100644 index 0000000000000000000000000000000000000000..97629573a5196529f63a8365baeeadab76209c1a GIT binary patch literal 5786 zcmV;L7G>#)P)Py0R7pfZRCodHooj4d$92bd`4%Zsq^uWZNtSHcN#rDoE!&A)M@k*V&ZCVHJ64LM ziBR`TjRFM<^g~g!sQWO`4@rs?MUf(n<6153SbhYF65Dke*sdEluLF4^-N4mbU^nvH#h&drKRON3l=PRCs*JK48*U%Hs_iQKw2+cxUe07d=Y;e zpjbg>lQEDV8y_FHXbheVkumt*21GyT?(Y6BX{T}wS3uy30t^7?I)DEBSLoy~G{xha znp;|y(8on>-~-0Tg8+oT0C;{0eX6IY=TYdW&v!Y+iyG^4Xe1rp#|ZK@I`JMlbtAry zc7<+pDZuzPqMi(+&oK0L=;K{oT~836^7-a+JhbuVLL)~q6!{tr{}UFd>oG`kJ&aJS&UymI*GT{ZJj2cL_>X#edmr%g zYZb36V1|Z*sRSWhDW279DYasjCqI%(CSSq`i#ir8$ZMWDDxFSiXEg?(9L-~>QKVjg$$=!3X<=&aL=V58 zF0jV=U}tCNks6sIS50mkJeN{~0AN`USf0laiwadIpa3K{+OVdHO-@Y2CMPFj3SX{{ zHmBKrJ`Y$%X?q;Hh{b-fZGs-`@kjw6MQ)y&1LoAJQ~iMD-)QXeu&u*z4m^}`z+rRF zjX+_`H!7b%f<9hCsN?=n7ioRx&YkNU9~*m_j{lHV zr1gqFC0Sl6Dgeo26t;b`rU0CDxaxD^;-@qg4z{9$SHP0zJ=6qNg)#MXM@aGssbR2@&rny=m z$x{>C-ogIWALb=S7^!4945bzgiXS_6Y$tQaR|*xVWJ)R|&rbtDQ~0+?ABA3z@Ar9% z#nHX2DM=tfmTrOD0Z62eErL4JrUd>bZngg>m>xwqa=@_H@-4vf2gQ_+8Zdsn7n1!%hablGVdxLi>3KWN#Q+0;lCl@^I=;2FdJH^xtMXZHbiTLqAY1W8cuY4l|442ZOLk}hg=S1TF*I}+ zBg@V(V3|=+9W&9rlSdOD<^0Vm76-kkGFQMNt8HXM@6V$$UsVBf{P^*Y@}%q;l&$Hx zm8gs(xl`=z%t80ZoC3Ht3cafa7^a~O=~U_`T%BD}C|WO>dI*|qz|Fv!>_H!B@&3=y zs*j9SIY)42XlP9$oqho&7thd;N#@lftZm+bXOJ!0LDAN>wzbfQ@D1y<5va8m(^JFh z=qm`EM?8|DqzsQ#=H1;@Ph~*1RR6$mX>$8vlv{mWXUmj z^deZEW0&%N8uw&gVuM5&U5>EmT`hG0wmWLkAgYB@1AFV?=2rG+UJX?s1QVA{252NL4)zGwJz*IwtxgsN(OuDIQE{rnhsF&xy$tK>jgmuibDsCPyWtve( zC^&;$W~th+0}MS!dK&*tHt&8BMXmFIDbuQ)7L27?%jgtf1Gx);<)1j``**w$HyEW} z^MIL!bv4S&_LSf(s++0EAVB#RcR~8>h)(fE?&bkA3lnQIPY2R@)-;RKl@|dV|HWcf z)6O%5BR$UGYda4Z-y$L7dXr&6XJ<(6>ac0iolYkAEL*W+b9E$^FJ&Gu<=f1a&~3Kc zo8i5wD4pujy2*h>?`p+jbvbfsZJY;;Sz;DcYZ;C{M6#J@fD}*^ZWK4GhmSNM&MPCI zWJ73Kqco&mdZ9jtYNF-vsj^hrqR|_mWS6Y1L%$d)fJ$rU-CHl?^FjV{(H0(L9 zuvckNV{S@RVwEz=>i7fC(#j}Nm{rpb-@b_@_y}XQ-|!Sjc!2sgef2E;_BQdYg|#T1 zS~g&)R7V$okBX^Wv+PAL&nNBxrK*^AX5#pdiQ=Mb^=w*J<1(6>+B;@GucQ%Vim6A_Ppuq% zb01#kdvhZSaaI3C{C_A=jw^eFp|abkK%p8@ z)%t{y#H~*Rl!(?RGuemr<@@QMYc(Te`^M9DAvhNUdPXe6N`p>)bVED|~3c#^a2&Doy%7~gLZ*w^n&+|rZ zfjiY#cw4`SPV>wf;tM@Hgubn20k=^VW}B%BG&x&E3UAEjO(PdCUR=RY-QU;O*YIDu z4l2)x8v23?maBJIcRyUfH!*r>bSdR}8I5j$X@4n3<%c#13fu@_Z2jU;OPZUKlnzp_ z-?L{=!AH03VtyCi7uhW84x?0~@StdMqS8xSyHK@Dy{^9CcKh9{vR?pb@E3dqg*uH(c zdl-d1&obiM^1+r427Z4zp)Zo24BLRvfB_S30hJZ(07BTUVFVV10fG?S#;DRoSReiC zLh;W-^#-1b>Wc^~0855+ZEWcesjMN&pLZcFfbBZuv0vXM)5l_4wrq)Ur#g}aDdNxm*#^@Zyr!r#N&XjHPf$3+zKwmX*>@U3CA+75RPIu95f>8Y)ymBMeW=f1iu^3G9B<7e}9Hn$kby zo?fwH#i*Ze@o6KBz;N{F(Z%?y077dPwGMeyv2<-JNw)j35 zsk_s}PHwaiRfEaTtymRzhRdcE%2%2>c(rz!pii}?arXD+QExZ)?`G5)=O1xTU3Jw} z(_W6t0}R{$3*US1J>A7z8Y0lilvTx4q(8YF!oN&M>M!;7GpxO39WEXt6M&5fbM7dW<{x8sleU|`e7Oex`)T++(8XE4NC@&Hk?RTF z%L4FmZ23Ix)LJFCh=tF!UsPq#r;y$3j#Vrc&hZ;4xEKYLN&Y(_#p|@TbjahUZ&Zh- zvUd1a@$H{6Mw{cvNJzMx36671wiJPjrIadBriDcvGwBM0#H9e{t2FX;u6(UsidvS6 zZ$|E?D5}-_9uWK-bVm8b@}+}0>TUr%+u+qd+iyk%C)4t)L6LcE^y0G z|0}lHZ}ubZ>?(@vl5-~#+17u)ed@`L=re3l}|*R5N3PHAq0 z;Z|7BdbCcNanWM}X@~f9H6&3a4G0`y07qP5Q3+QV_Xd1pq^(2Q9}C4OpzLYRM+ z?n?AK3}*GLhDRHkT^Rnwj2icHHSYzvdn}&{upV4mj|PGHUFh>rcMxN6}RQak$ zGJ^F5_4WBBpHU~pTIXjJ{~1^JGCFZPK>scB)<|YG9AF$_*nJvhk0}HCZ^&Cd8qRXzy6@kCf{gKH=2Yyj6Wzt;b0xsZll(2qo$Wp z<1=b}jGmKkzWL^`z#{P2+C*VpA#v`vJ2->eiBaO+-Q6+ft(d5sg+=B3e3uyb@%aN; zE?91PpTCrRzrL_>&K~!&-q9V_U85r-$#`?~BiQCe{v{-1I!Kmn2OXd6eG(!6UWtvx?6YJNn*T(F$ zwM{`Fn2j~!3=9mkg0@x~GwpWN2Z)s`MoSscFUPzY1GF(wISY%1apl(M%k<0p`Ik%k zIo_b#?*vqq_RH2BrA=+#yjg1#{n6>P(Zsip z;-LW(ESv>T6QfTv!+JC4X58X=`SRsDR~i$Qql4lYIU}k#Bb5${>+G*nt`xtO6;*lP zm6C6DiK?tG&oA%G_v3zfYpbYSsrJ;n{q$9eX)v{K-@cR`828&)Dn4zRDOEuESu|=t z-|guOK)ZJBYGU`diQ&yr@o9}fnxl&IEF#8{Kt~lisiDbEv7Ftj?bNNv#_WN`TEte{Q~FOwQKdr$GrB;3SM}*28IaCYJ>?P z*WGc!7k}xcmzr2eX~Rqp+9Injj82y;58DCSjLdA>v`OF)D5?UELiVa@2WF=->7jb9 zZlkd`-gqNUqcfs~l(jrj<(J|wB%_?PQuUR}_v?aRI>$t_PVG=zL$!x;0)(977p=yq z;Uvz*9|0=h*-Xut*Q+e@iW_Zu^2sM%STq>+%2^rXan#BLsmht0VAyz6cQ)VYW8pIL z^W+Egv~~t*&K7gAFB?i{4DF05r4%;hEL<$#_>30dH@T9T3x}0wa%Z5XtCK$iU&Cho YKZ_v3%v7MbF#rGn07*qoM6N<$g4h-+kpKVy literal 0 HcmV?d00001 diff --git a/packages/biz/es/BigImageModal/images/percent_background.png b/packages/biz/es/BigImageModal/images/percent_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ebde317c473fda46d686dce6ffba98db676f331e GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^1wgFB!3HGvuCY1Jz`%IY)5S5QBJS-RYky`#ffjXL z-6Hmn8Q4;CoAn~}k_ zgW(?Yj*eGfxmGY134fY$J=J!{$wg8RvLC#BaB-8+1Kx)0+#eg)F`bBcXZz`uXaHkP zhUL6}d}8k$87D|j?{9sbwY!$pLG5MvHtUET%B%<68GLRT^KfY}?0dT9sDodH(C3%j z_VYxH4H$aQhcZYV4co!x(7MWPHe-fJ^g}HM(N$8pYzqQ&T30iKtjO9T+2FQObRAQ` z!c`a3uqzH@PT6XzebLB=D}*_v_|#_2Z#x91h;EwFq$(<@#=0t9p?l^fp|mD<^QjEM zXHrQ%!{C#rY{sXUB^51Ds zIdG$NO36ay9Xn^w*y730@V1)ce=Kw5p+k}7MiGCy`Jd}IFq;2R{v>>$L0aa{GSdmO yCvV= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +// @ts-nocheck +import React, { useRef, useState } from 'react'; +import { Descriptions, Modal, Tabs } from 'antd'; +import classNames from 'classnames'; +import { get } from '@zhst/func'; +import "./index.less"; +import Navigation from "./components/navigation"; +var DescriptionsItem = Descriptions.Item; +export var componentPrefix = 'zhst-image'; +var initialStyle = { + fontSize: '12px' +}; +var BigImageModal = function BigImageModal(props) { + var _props$title = props.title, + title = _props$title === void 0 ? '-' : _props$title, + open = props.open, + visible = props.visible, + children = props.children, + _props$descriptionCon = props.descriptionConfig, + descriptionConfig = _props$descriptionCon === void 0 ? { + data: [] + } : _props$descriptionCon, + _props$tabsConfig = props.tabsConfig, + tabsConfig = _props$tabsConfig === void 0 ? { + data: [{ + label: '对比图模式', + key: '1', + children: '对比图组件' + }, { + label: '场景图模式', + key: '2', + children: '场景图组件' + }] + } : _props$tabsConfig, + _props$dataSource = props.dataSource, + dataSource = _props$dataSource === void 0 ? [] : _props$dataSource, + _props$imageData = props.imageData, + imageData = _props$imageData === void 0 ? [] : _props$imageData, + _props$relatedData = props.relatedData, + relatedData = _props$relatedData === void 0 ? [] : _props$relatedData; + var showCropRef = useRef(false); + var scaleRef = useRef(0); + + // ========================== 头切换 ========================= + var _useState = useState(get(tabsConfig, 'data[0].key')), + _useState2 = _slicedToArray(_useState, 2), + activeKey = _useState2[0], + setActiveKey = _useState2[1]; + + // ========================= 预览切换下标 ========================= + var _useState3 = useState(0), + _useState4 = _slicedToArray(_useState3, 2), + previewIndex = _useState4[0], + setPreviewIndex = _useState4[1]; + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + isRelated = _useState6[0], + setIsRelated = _useState6[1]; + return /*#__PURE__*/React.createElement(Modal, _extends({ + destroyOnClose: true, + open: open || visible, + footer: null, + className: componentPrefix, + title: title + }, props), descriptionConfig.data.map(function (descriptions) { + var _descriptions$childre; + return /*#__PURE__*/React.createElement(Descriptions, { + key: descriptions.title, + title: /*#__PURE__*/React.createElement("p", { + style: { + margin: '12px 0 0', + fontSize: initialStyle.fontSize + } + }, descriptions.title), + column: 8, + style: { + padding: '0 64px' + } + }, descriptions === null || descriptions === void 0 || (_descriptions$childre = descriptions.children) === null || _descriptions$childre === void 0 ? void 0 : _descriptions$childre.map(function (item) { + return /*#__PURE__*/React.createElement(DescriptionsItem, { + key: item.key, + label: item.label, + span: 1, + contentStyle: { + fontSize: initialStyle.fontSize + }, + labelStyle: { + fontSize: initialStyle.fontSize + } + }, item.children); + })); + }), /*#__PURE__*/React.createElement(Tabs, _extends({ + defaultActiveKey: activeKey, + centered: true, + tabBarStyle: { + fontSize: '18px' + }, + items: tabsConfig.data + }, tabsConfig)), /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentPrefix, "-view-container")), + style: activeKey === 'TRACK' ? { + height: '718px', + marginBottom: '0px' + } : {} + }, activeKey !== 'TRACK' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Navigation, { + className: classNames("".concat(componentPrefix, "-view-container__nav"), previewIndex <= 0 && "".concat(componentPrefix, "-view-container__nav--disabled"), "".concat(componentPrefix, "-view-container__nav--left")), + show: isRelated ? imageData.length > 1 : dataSource.length > 1, + disabled: previewIndex <= 0, + prev: true, + onClick: function onClick() { + setPreviewIndex(function (pre) { + return pre - 1; + }); + } + }), /*#__PURE__*/React.createElement(Navigation, { + className: classNames("".concat(componentPrefix, "-view-container__nav"), (previewIndex >= imageData.length - 1 || previewIndex >= dataSource.length - 1) && "".concat(componentPrefix, "-view-container__nav--disabled"), "".concat(componentPrefix, "-view-container__nav--right")), + show: isRelated ? imageData.length > 1 : dataSource.length > 1, + disabled: previewIndex >= imageData.length - 1 || previewIndex >= dataSource.length - 1, + next: true, + onClick: /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + setPreviewIndex(function (pre) { + return pre + 1; + }); + case 1: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function (_x) { + return _ref.apply(this, arguments); + }; + }() + })))); +}; +export default BigImageModal; \ No newline at end of file diff --git a/packages/biz/es/BigImageModal/index.less b/packages/biz/es/BigImageModal/index.less new file mode 100644 index 0000000..b26c6c8 --- /dev/null +++ b/packages/biz/es/BigImageModal/index.less @@ -0,0 +1,1145 @@ +.zhst-image { + + .zhst-dialog-content { + box-shadow: 0 4px 12px rgb(0 0 0 / 20%); + } + + + &-view-container { + position: relative; + width: 100%; + height: 532px; + margin-bottom: 16px; + + &__nav { + position: absolute; + z-index: 99; + top: 50%; + width: 40px !important; + height: 40px !important; + background: #d9d9d9; + border-radius: 100%; + cursor: pointer; + transform: translateY(-50%); + + &>button { + display: flex; + align-items: center; + color: #fff !important; + } + + &--disabled { + opacity: 0.3; + + &>button { + color: #fff !important; + } + } + } + + &__nav:hover { + background: #09f; + color: #fff !important; + } + } + + &-tool-container { + width: 100%; + height: 40px; + margin-bottom: 16px; + } + + &__face-score { + position: absolute; + right: 90px; + bottom: 80px; + color: red; + font-family: 'Microsoft YaHei'; + font-size: 19px; + font-weight: bold; + } + + &-carousel-container { + position: relative; + width: 100%; + height: 100px; + margin-top: 16px; + margin-bottom: 24px; + } +} +.zhst-image__img-view { + position: relative; + width: calc(100% - 46px - 46px - 20px - 20px); + height: 100%; + margin: 0 66px; + + &-opt { + position: absolute; + z-index: 99; + top: 0; + } + + &-crop-opt { + position: absolute; + z-index: 99; + top: 0; + right: 0; + } + + &-align { + position: absolute; + top: 0; + left: 0; + pointer-events: none; + } + + &-main { + // height: 532px; + width: 100%; + height: 100%; + + &--cursor { + & canvas { + cursor: pointer !important; + } + } + } + + &-screenshot { + position: absolute; + z-index: 10; + } + + &-attach { + position: absolute; + z-index: 11; + bottom: 0; + + // left: 78px; + left: 0; + min-width: 120px; + height: 202px; + transition: all 200ms; + + &--fixed { + width: 152px !important; + background-color: #fff; + } + + &--zoomin { + height: 532px; + + &--fixed { + width: 398px !important; + } + } + + &__tab { + position: absolute; + top: 0; + left: 0; + display: flex; + + &-item { + display: flex; + width: 30px; + height: 24px; + align-items: center; + justify-content: center; + background: #000; + color: #fff; + cursor: pointer; + font-size: 12px; + opacity: 0.5; + transition: all 200ms; + + &--select { + width: 48px; + height: 34px; + background: #09f; + opacity: 1; + } + } + } + + &__scale { + position: absolute; + top: 4px; + right: 4px; + display: flex; + width: 30px; + height: 30px; + align-items: center; + justify-content: center; + background: rgb(0 0 0 / 60%); + border-radius: 100%; + cursor: pointer; + line-height: 30px; + text-align: center; + } + + &__img { + height: 100%; + object-fit: contain; + + &--fixed { + width: 100%; + object-fit: contain; + } + } + } +} + +.zhst-image__video-view { + position: relative; + overflow: hidden; + width: 100%; + height: 532px; + background-color: #333; + + // &-flv { + // width: 85%; + // } + &-screenshot { + position: absolute; + z-index: 10; + } + + &-crop-container { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + + &-align { + position: absolute; + top: 0; + left: 0; + pointer-events: none; + } + + &-opt { + position: absolute; + z-index: 99; + bottom: 0; + display: flex; + width: 100%; + height: 32px; + box-sizing: border-box; + align-items: center; + padding: 0 12px; + background-color: rgb(0 0 0 / 80%); + line-height: 32px; + + &>div:first-child { + display: flex; + align-items: center; + margin-right: 12px; + } + + &>div:last-child { + display: flex; + align-items: center; + margin-left: 12px; + } + + &-range { + display: flex; + height: 32px; + flex: 1; + align-items: center; + line-height: 32px; + text-align: center; + + &>div:first-child { + flex: 1; + } + + &>div:last-child { + width: 100px; + margin-left: 8px; + color: #fff; + } + } + } + + &__player-mask { + position: absolute; + z-index: 99; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-color: rgb(4 4 4 / 70%); + + &--bg { + z-index: 999; + background-color: rgb(4 4 4 / 100%); + } + + i { + cursor: pointer; + } + + &-title { + margin-top: 12px; + color: #fff; + text-align: center; + + & a { + color: #09f; + cursor: pointer; + text-decoration: underline; + } + } + } + + &__icon-wraper { + display: flex; + width: 80px; + height: 80px; + align-items: center; + justify-content: center; + background-color: rgb(255 255 255 / 10%); + border-radius: 50%; + cursor: pointer; + line-height: 80px; + text-align: center; + + // &:hover { + // background: #0099ff; + // } + } +} + +.zhst-image__tool { + display: flex; + width: 100%; + align-items: center; + font-size: 14px; + + &-split { + width: 0; + height: 14px; + + &::before { + display: block; + height: 100%; + border-left: 1px solid #e6e7eb; + content: ''; + } + } + + &-zoom { + display: inline-flex; + align-items: center; + + &> :not(:last-child) { + margin-right: 14px; + } + + &__scale { + display: inline-block; + width: 38px; + height: 14px; + + // margin-left: 15px; + box-sizing: content-box; + border: 1px solid rgb(77 77 77 / 100%); + margin-top: 2px; //对齐 + background: rgb(255 255 255 / 100%); + border-radius: 2px; + color: #4d4d4d; + cursor: default; + font-size: 12px; + line-height: 14px; + text-align: center; + } + } + + &-switch { + display: flex; + width: 30px; + flex-shrink: 0; + align-items: center; + justify-content: center; + margin: 0 26px; + } + + &-left { + display: flex; + flex: 1; + align-items: center; + justify-content: flex-end; + + &> :not(:last-child) { + margin-right: 14px; + } + } + + &-right { + display: flex; + flex: 1; + align-items: center; + justify-content: flex-start; + + &> :not(:first-child) { + margin-left: 20px; + } + } + + &-icon-container { + font-size: 14px; + + &--active { + color: #5584ff !important; + } + + &> :first-child { + margin-right: 2px; + } + } +} + +.zhst-image__carousel { + position: relative; + display: flex; + width: 742px; + height: 100px; + align-items: center; + justify-content: center; + border: 1px solid #f0f0f0; + margin: 0 auto; + background: #fafafa; + border-radius: 2px; + user-select: none; + + &-container { + width: (58px + 8px) * 10; + } + + &-item { + display: flex; + width: 58px + 8px; + align-items: center; + justify-content: center; + } + + &-item-img { + /* 尝试消除transform 副作用 */ + position: relative; + z-index: 99; + + // width: 58px; + // height: 76px; + display: flex; + width: 66px; + height: 84px; + box-sizing: border-box; + align-items: center; + justify-content: center; + background: #fafafa; + cursor: pointer; + + /* 尝试消除transform 副作用 end */ + &--active { + border: 2px solid #09f; + border-radius: 1px; + } + + &>div { + /* 尝试消除transform 副作用 */ + position: relative; + z-index: 99; + overflow: hidden; + width: 58px; + height: 76px; + + /* 尝试消除transform 副作用 end */ + &>img { + width: 58px; + height: 76px; + object-fit: contain; + transition: all 0.2s; + + &:hover { + transform: scale(1.5); + } + } + } + } +} + +.zhst-image__header { + width: 100%; + // margin-top: 3px; + margin-bottom: 10px; + + &__pad0 { + padding: 0; + } + + &__pad66 { + padding: 0 66px; + } + + &__bar { + display: flex; + width: 100%; + background: #f6f6f6; + // box-shadow: 0px 0px 8px 0px rgba(172, 172, 172, 0.5); + justify-content: center; + // border-color: #f0f0f0; + // border-bottom-width: 1px; + // border-bottom-style: solid; + } + + &__barNoColor { + display: flex; + width: 100%; + justify-content: center; + + border-color: #f0f0f0; + border-bottom-width: 1px; + border-bottom-style: solid; + } + + &__item { + position: relative; + display: flex; + height: 40px; + align-items: center; + justify-content: center; + margin: 0 15px; + color: #999; + cursor: pointer; + font-size: 14px; + font-weight: bold; + line-height: 19px; + transition: font-size 0.3s ease; + + &:hover { + // font-size: 18px; + color: #333; + } + + &::before { + position: absolute; + bottom: 0; + left: 50%; + width: 0; + border-bottom: 2px solid #09f; + content: ''; + transition: all 0.3s ease; + } + + &--active { + background-color: transparent; + color: #333; + font-size: 18px; + + // color: #0099ff; + &::before { + left: 0; + width: 100%; + } + } + } +} + +.zhst-image__btn-group { + // display: flex; + width: 30px; + box-shadow: 0 2px 6px 0 rgb(0 0 0 / 40%); + + &__item { + display: flex; + width: 30px; + height: 30px; + align-items: center; + justify-content: center; + background: #000; + + &>button { + padding: 0; + color: #fff; + + &:hover { + color: #09f; + } + + &:active { + color: #09f; + } + + &:focus { + color: #fff; + } + + &>span { + display: flex; + } + } + + &--active { + &>button { + color: #09f; + } + } + } + + &--circle { + background-color: none; + box-shadow: none; + } + + &--circle &__item { + margin-bottom: 4px; + border-radius: 50%; + } +} + +.zhst-image__compater-view { + display: flex; + width: 100%; + align-items: center; + justify-content: center; + + &>div:first-child { + margin-right: 25px; + } + + &>div:last-child { + margin-left: 25px; + } + + &__container { + position: relative; + width: 345px; + height: 460px; + box-sizing: content-box; + border: 1px solid #f0f0f0; + } + + &__view { + width: 345px; + height: 460px; + } + + &__label { + position: absolute; + z-index: 99; + top: 0; + left: 0; + display: flex; + height: 34px; + align-items: center; + justify-content: center; + + // width: 48px; + padding: 0 6px; + background: #09f; + color: #fff; + } + + &__tool { + display: flex; + width: 345px; + height: 40px; + align-items: center; + justify-content: center; + background: #f9f9f9; + + i, + span { + color: #333 !important; + } + + i { + margin-right: 4px; + } + + &>*:not(:last-child) { + margin-right: 20px; + } + + &__scale { + display: inline-block; + width: 38px; + height: 16px; + + // margin-left: 15px; + box-sizing: content-box; + border: 1px solid rgb(77 77 77 / 100%); + background: rgb(255 255 255 / 100%); + border-radius: 2px; + color: #4d4d4d; + cursor: default; + font-size: 12px; + line-height: 16px; + text-align: center; + } + + &__line { + width: 1px; + height: 14px; + background: #e6e6e6; + } + } + + &__empty { + position: absolute; + z-index: 9; + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + background: #f9f9f9; + transform: translateY(-100%); + + &>img { + width: 140px; + height: 80px; + } + + &--text { + color: #999; + font-size: 14px; + line-height: 22px; + } + } + + &__scoll-module { + position: absolute; + top: 0%; + left: 0%; + display: flex; + width: 100%; + height: 100%; + align-items: flex-end; + justify-content: space-between; + pointer-events: none; + + &__btn { + display: flex; + width: 50px; + height: 50px; + align-items: center; + justify-content: center; + margin: 6px; + border-radius: 50%; + opacity: 0.5; + pointer-events: all; + + &>span { + display: flex; + align-items: center; + justify-content: center; + } + } + + &__btn:hover { + background-color: #09f !important; + color: #fff !important; + } + } +} + +.zhst-image__trackmodel { + &__panel { + position: relative; + z-index: 99; + top: 0; + right: 0; + width: 320px; + height: 100%; + background-color: #fff; + + &--head { + width: 100%; + height: 40px; + padding: 0 16px; + border-bottom: 1px solid #f0f0f0; + color: #333; + font-size: 14px; + font-weight: bold; + line-height: 40px; + text-align: left; + } + + &--track { + height: calc(100% - 40px); + } + + &-date { + padding: 10px 6px; + + // position: absolute; + } + } + + &--bigImage { + position: absolute; + z-index: 100; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + justify-content: center; + padding-top: 59px; + background: rgb(0 0 0 / 40%); + + &--image { + width: 946px; + height: 532px; + + &>img { + width: 946px; + height: 532px; + object-fit: contain; + } + } + + &--close { + margin-left: 16px; + color: #fff; + } + } + + &__flooter { + position: absolute; + z-index: 999; + bottom: -124px; + left: 0; + width: calc(100% - 320px - 10px); + height: 144px; + background: #fff; + box-shadow: 0 0 8px 0 rgb(172 172 172 / 50%); + + &--head { + display: flex; + height: 20px; + align-items: center; + justify-content: center; + background: #f6f6f6; + color: #999; + line-height: 16px; + } + + &--body { + display: flex; + height: calc(100% - 20px); + padding-left: 50px; + + &__title { + color: #333; + font-size: 12px; + font-weight: bold; + line-height: 16px; + } + + &__text { + overflow: hidden; + color: #333; + font-size: 12px; + line-height: 16px; + text-overflow: ellipsis; + white-space: nowrap; + } + + &--left { + display: flex; + width: 75px; + height: 100; + align-items: center; + + &>img { + width: 75px; + height: 100px; + object-fit: contain; + } + } + + &--middle { + display: grid; + width: 331px; + justify-content: flex-start; + padding: 8px 20px; + border-right: 1px solid #f0f0f0; + + &>div { + display: flex; + } + } + + &--right { + display: grid; + width: calc(100% - 331px - 75px); + padding: 8px 20px; + + &>div { + display: flex; + } + + &__button-list { + display: flex; + align-items: center; + + &>button { + margin-right: 20px; + + &>span { + color: #09f !important; + } + + &:hover { + &>span { + color: #247fdb !important; + } + } + } + } + } + } + + @keyframes close { + from { + bottom: 0; + } + + to { + bottom: -124px; + } + } + + @keyframes open { + from { + bottom: -124px; + } + + to { + bottom: 0; + } + } + + &--close { + bottom: -124px; + animation-duration: 1s; + animation-name: close; + } + + &--open { + bottom: 0; + animation-duration: 1s; + animation-name: open; + } + } +} + +.zhst-image__null { + display: flex; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + + &__text { + // margin-left: 105px; + margin-top: 8px; + color: #999; + font-size: 14px; + width: 100%; + text-align: center; + } +} + +.zhst-image__score { + display: flex; + flex-direction: column; + align-items: center; + + &-box { + position: relative; + display: flex; + box-sizing: border-box; + align-items: center; + justify-content: center; + margin-bottom: 12px; + border-radius: 50%; + + &-bg { + display: flex; + overflow: hidden; + box-sizing: border-box; + align-items: flex-end; + justify-content: center; + border: 2px solid #fff; + background-color: #fff; + border-radius: 50%; + + &-inner { + width: 100% !important; + height: 0; + } + } + } + + &-score { + position: absolute; + top: 50%; + left: 50%; + color: rgb(0 0 0 / 88%); + font-size: 28px; + transform: translate(-50%, -50%); + } + + &-text { + width: 54px; + height: 24px; + color: rgb(0 0 0 / 88%); + font-size: 18px; + line-height: 24px; + } +} + +.zhst-image__CornerScore { + position: absolute; + right: 0; + bottom: 0; + width: 56px; + height: 22px; + line-height: 22px; + text-align: right; + vertical-align: bottom; + padding-right: 1px; + background-size: 100%; + background-image: url('./images/percent_background.png'); + z-index: 99; + + &>span { + padding-right: 6px; + line-height: 22px; + font-size: 12px; + vertical-align: middle; + color: rgba(255, 255, 255, 1); + } +} + +.zhst-image__attributePanel { + margin: 0 66px; + background: #f6f6f6; + margin-top: 20px; + padding-top: 16px; + display: flex; + justify-content: center; + + &>div:first-child { + width: fit-content; + display: flex; + flex-direction: column; + } + + &-title { + color: rgb(0 0 0 / 88%); + font-weight: bold; + padding-bottom: 12px; + } + + &-item { + display: flex; + } + + &-label { + color: rgb(0 0 0 / 45%); + } + + &-value { + color: rgb(0 0 0 / 88%); + } +} + +.relatedWrapper { + width: 100%; + height: 100px; + padding: 0 30px; + margin-bottom: 30px; + box-sizing: border-box; + + .relatedTabs { + width: 100%; + height: 100px; + } + + .relatedContent { + width: 100%; + height: 100px; + + display: flex; + + .relatedPics { + width: 742px; + height: 100px; + // display: flex; + // box-sizing: border-box; + // background: #fafafa; + // border-radius: 2px; + // border: 1px solid #f0f0f0; + // .LeftBtn, + // .RighttBtn { + // width: 34px; + // height: 100%; + // display: flex; + // justify-content: center; + // align-items: center; + // } + // .ListContent { + // flex: 1; + // height: 100%; + // } + } + + .disabled { + color: rgba(0, 0, 0, 0.25); + } + + .relatedBtn { + flex: 1; + font-size: 14px; + color: #333333; + display: flex; + align-items: flex-end; + cursor: pointer; + + &:hover { + color: #0099ff; + } + } + } + + :global { + .ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane { + padding-left: 16px; + } + + .ant-tabs-tab { + padding: 8px 12px !important; + text-align: right !important; + } + + .ant-tabs .ant-tabs-tab { + font-size: 14px; + font-weight: bold; + text-align: right; + justify-content: flex-end; + } + } +} diff --git a/packages/biz/es/BigImageModal/index.temp.js b/packages/biz/es/BigImageModal/index.temp.js new file mode 100644 index 0000000..227915b --- /dev/null +++ b/packages/biz/es/BigImageModal/index.temp.js @@ -0,0 +1,789 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +// @ts-nocheck +import React, { useEffect, useRef, useState, useMemo } from 'react'; +import { useLatest, useThrottleFn } from 'ahooks'; +import { isFunction, pick, noop, get, isEmpty } from 'lodash-es'; +import classNames from 'classnames'; +import { message, Modal, Tabs as TabPane } from 'antd'; +import KeyCode from 'rc-util/lib/KeyCode'; +import { observer } from 'mobx-react-lite'; +import ImgView from "./ImgView"; +import VideoView from "./VideoView"; +import CompareView from "./CompareView"; +import Tool from "./Tool"; +import Header, { Tabs } from "./Header"; +import Navigation from "./Nav"; +import AttributePanel from "./AttributePanel"; +import { usePropState, cssPrefix, getSolt } from "./utils"; +import { screenshotButtonProp } from "../adapter/BigImageModalAdapter/interface"; +import NullView from "./NullDialog"; +import styles from "./index.module.scss"; +import { generateImg } from '@common/utils'; +import IconFont from "../iconfont/IconFont"; +import addEventListenerWrap from '@common/utils/addEventListener'; +import Carousel from "./Carousel"; +import { doubleClick } from '@common/components/doubleCheck'; +import { store } from '@store/index'; +import { store as achieveStore } from '@pages/archive/store'; +var componentName = cssPrefix; +//查看对比图和场景图组件 +var BigImageDialog = function BigImageDialog(props) { + var _props$hasPre = props.hasPre, + propHasPre = _props$hasPre === void 0 ? false : _props$hasPre, + _props$hasNext = props.hasNext, + propHasNext = _props$hasNext === void 0 ? false : _props$hasNext, + _props$loadNext = props.loadNext, + loadNext = _props$loadNext === void 0 ? noop : _props$loadNext, + _props$loadPre = props.loadPre, + loadPre = _props$loadPre === void 0 ? noop : _props$loadPre, + _props$visible = props.visible, + visible = _props$visible === void 0 ? true : _props$visible, + onClose = props.onClose, + _props$isLoading = props.isLoading, + propIsLoading = _props$isLoading === void 0 ? false : _props$isLoading, + _props$selectIndex = props.selectIndex, + propSelectIndex = _props$selectIndex === void 0 ? 0 : _props$selectIndex, + onSelectIndexChange = props.onSelectIndexChange, + _props$dataSource = props.dataSource, + dataSource = _props$dataSource === void 0 ? [] : _props$dataSource, + _props$relatedData = props.relatedData, + relatedData = _props$relatedData === void 0 ? [] : _props$relatedData, + screenshotButtonRender = props.screenshotButtonRender, + transformPropFunc = props.transformPropFunc, + transformVideoPropFunc = props.transformVideoPropFunc, + _props$defaultModel = props.defaultModel, + defaultModel = _props$defaultModel === void 0 ? 'IMAGE' : _props$defaultModel, + otherImgViewProp = props.imgViewProp, + otherVideoViewProp = props.videoViewProp, + otherCarouselProp = props.carouselProp, + otherToolProp = props.ToolProps, + _props$showTool = props.showTool, + showTool = _props$showTool === void 0 ? true : _props$showTool, + children = props.children, + nullDialogProp = props.nullDialogProp, + _props$showHeader = props.showHeader, + showHeader = _props$showHeader === void 0 ? true : _props$showHeader, + _props$tabsFilter = props.tabsFilter, + tabsFilter = _props$tabsFilter === void 0 ? ['COMPATER', 'NORMAL'] : _props$tabsFilter, + useVirtual = props.useVirtual, + _props$title = props.title, + title = _props$title === void 0 ? '查看大图' : _props$title, + _props$specialTitle = props.specialTitle, + specialTitle = _props$specialTitle === void 0 ? '' : _props$specialTitle, + _props$showCarousel = props.showCarousel, + showCarousel = _props$showCarousel === void 0 ? true : _props$showCarousel, + _props$isRelated = props.isRelated, + isRelated = _props$isRelated === void 0 ? false : _props$isRelated; + console.log('props', props); + //可观测值 + var showCrop$Ref = useRef(false); + var scale$Ref = useRef(0); + var showCrop$ = showCrop$Ref.current; + var scale$ = scale$Ref.current; + // ========================== 头切换 ========================= + var _useState = useState(tabsFilter.length > 1 ? Object.keys(Tabs)[0] : Object.keys(Tabs)[1]), + _useState2 = _slicedToArray(_useState, 2), + tab = _useState2[0], + setTab = _useState2[1]; + var _useState3 = useState('related'), + _useState4 = _slicedToArray(_useState3, 2), + activeKey = _useState4[0], + setActiveKey = _useState4[1]; + var _useState5 = useState(dataSource), + _useState6 = _slicedToArray(_useState5, 2), + similarList = _useState6[0], + setSimilarList = _useState6[1]; // 其他相似目标列表 + var _useState7 = useState(relatedData), + _useState8 = _slicedToArray(_useState7, 2), + relatedList = _useState8[0], + setRelatedList = _useState8[1]; // 已关联列表 + var _useState9 = useState(dataSource), + _useState10 = _slicedToArray(_useState9, 2), + imageData = _useState10[0], + setImageData = _useState10[1]; // 其他相似目标列表 + var lastSimData = useLatest(similarList); + var lastRelatedData = useLatest(relatedList); + + // ========================== 内部转换 ========================= + var _useState11 = useState(defaultModel), + _useState12 = _slicedToArray(_useState11, 2), + model = _useState12[0], + setModel = _useState12[1]; // 图片/视频模式 + useEffect(function () { + if (activeKey === 'unRlated') { + setImageData(lastSimData.current); + setSelectIndex(0); + } + if (activeKey === 'related') { + setImageData(lastRelatedData.current); + setSelectIndex(0); + } + }, [activeKey]); + useEffect(function () { + setSimilarList(dataSource); + if (activeKey === 'unRelated') { + setImageData(dataSource); + } + }, [dataSource]); + var carouseDataSource = useMemo(function () { + return imageData.map(function (v, index) { + return { + url: generateImg(get(v, 'passerbyImage.objectRects.0.fileKey')), + key: index, + passerbyId: get(v, 'passerbyId') + }; + }); + }, [imageData, dataSource]); + + //选择 + var _usePropState = usePropState(propSelectIndex), + _usePropState2 = _slicedToArray(_usePropState, 2), + selectIndex = _usePropState2[0], + setSelectIndex = _usePropState2[1]; + var hasPre = propHasPre ? true : selectIndex > 0; + var changeIndex = isRelated ? imageData.length - 1 : dataSource.length - 1; + var hasNext = propHasNext ? true : selectIndex < changeIndex; + //设置选中 + var latestSelectIndex = useLatest(selectIndex); + var latestDataSource = isRelated ? useLatest(imageData) : useLatest(dataSource); + //加一个防背推 + var seq = useRef(0); + var _useThrottleFn = useThrottleFn( /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(arg) { + var _seq, selectIndex, dataSource, newIndex; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _seq = ++seq.current; + selectIndex = latestSelectIndex.current; + dataSource = latestDataSource.current; + newIndex = isFunction(arg) ? arg(selectIndex) : arg; + if (!(newIndex > dataSource.length - 1)) { + _context.next = 11; + break; + } + if (!propHasNext) { + _context.next = 10; + break; + } + _context.next = 8; + return loadNext(newIndex); + case 8: + _context.next = 11; + break; + case 10: + newIndex = dataSource.length - 1; + case 11: + if (newIndex < 0) { + newIndex = 0; + } + if (!(_seq !== seq.current)) { + _context.next = 14; + break; + } + return _context.abrupt("return"); + case 14: + onSelectIndexChange && onSelectIndexChange(newIndex); + setSelectIndex(newIndex); + case 16: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function (_x) { + return _ref.apply(this, arguments); + }; + }(), { + wait: 500 + }), + setSelectIndexWrapper = _useThrottleFn.run; + + //异步获取数据 + var _useState13 = useState(null), + _useState14 = _slicedToArray(_useState13, 2), + selectItem = _useState14[0], + setSelectItem = _useState14[1]; + var _useState15 = useState(true), + _useState16 = _slicedToArray(_useState15, 2), + isFetching = _useState16[0], + setIsFetching = _useState16[1]; + //人员属性 + var _useState17 = useState([]), + _useState18 = _slicedToArray(_useState17, 2), + attributeList = _useState18[0], + setAttributeList = _useState18[1]; + var isLoading = useMemo(function () { + return propIsLoading || isFetching; + }, [propIsLoading, isFetching]); + useEffect(function () { + _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { + var data; + return _regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + setIsFetching(true); + data = {}; + if (!isRelated) { + _context2.next = 8; + break; + } + _context2.next = 5; + return transformPropFunc(imageData[selectIndex]); + case 5: + data = _context2.sent; + _context2.next = 11; + break; + case 8: + _context2.next = 10; + return transformPropFunc(dataSource[selectIndex]); + case 10: + data = _context2.sent; + case 11: + setAttributeList(get(data, 'attributeList', [])); + //防背推 + if (selectIndex === latestSelectIndex.current) { + setSelectItem(data); + setIsFetching(false); + } + case 13: + case "end": + return _context2.stop(); + } + }, _callee2); + }))(); + }, [selectIndex, dataSource, imageData, isRelated]); + var selectqualityScore = useMemo(function () { + return get(selectItem, 'qualityScore'); + }, [selectItem]); + //支持视频url异步获取 + var _useState19 = useState(null), + _useState20 = _slicedToArray(_useState19, 2), + flvUrl = _useState20[0], + setFlvUrl = _useState20[1]; + var _useState21 = useState(null), + _useState22 = _slicedToArray(_useState21, 2), + maxDuration = _useState22[0], + setMaxDuration = _useState22[1]; + useEffect(function () { + _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() { + var _yield$transformVideo, _flvUrl, _maxDuration; + return _regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (!(model === 'IMAGE')) { + _context3.next = 4; + break; + } + setFlvUrl(null); + setMaxDuration(null); + return _context3.abrupt("return"); + case 4: + if (!isFunction(transformVideoPropFunc)) { + _context3.next = 15; + break; + } + //先情空 + setFlvUrl(null); + setMaxDuration(null); + _context3.next = 9; + return transformVideoPropFunc(selectItem); + case 9: + _yield$transformVideo = _context3.sent; + _flvUrl = _yield$transformVideo.flvUrl; + _maxDuration = _yield$transformVideo.maxDuration; + //防背推 + if (selectIndex === latestSelectIndex.current) { + setMaxDuration(_maxDuration); + setFlvUrl(_flvUrl); + } + _context3.next = 17; + break; + case 15: + setFlvUrl(get(selectItem, 'flvUrl')); + setMaxDuration(get(selectItem, 'maxDuration')); + case 17: + case "end": + return _context3.stop(); + } + }, _callee3); + }))(); + }, [selectItem, model]); + + //切换选中index时候变更key 让组件走销毁逻辑 减少大图/视频组件内部逻辑复杂度 + var key = 0; + var imgCmpKey = useMemo(function () { + return "img-key-".concat(key); + }, [key]); + var videoCmpKey = useMemo(function () { + return "video-key-".concat(key); + }, [key]); + + // ========================== 分离参数 ========================= + var CompareViewProp = { + targertImg: generateImg(get(selectItem, 'imgSummary', '')), + // 对比图 + score: get(selectItem, 'score'), + similarScore: get(selectItem, 'similarScore'), + sourceImg: get(selectItem, 'constractKey', '') || get(selectItem, 'compaterImages.0') || generateImg(get(selectItem, 'imgSummary', '')), + compaterImages: get(selectItem, 'compaterImages', []), + specialTitle: specialTitle, + isRelated: isRelated + }; + var carouselProp = _objectSpread({ + selectIndex: selectIndex, + setSelectIndex: setSelectIndexWrapper, + hasPre: hasPre, + hasNext: hasNext, + dataSource: carouseDataSource + }, otherCarouselProp); + var imgViewProp = _objectSpread(_objectSpread(_objectSpread({}, pick(selectItem, ['imageKey', 'odRect', 'attachImg', 'score'])), {}, { + screenshotButtonRender: screenshotButtonRender + }, otherImgViewProp), {}, { + showCrop$: showCrop$, + scale$: scale$ + }); + var videoViewProp = _objectSpread(_objectSpread({ + flvUrl: flvUrl, + maxDuration: maxDuration, + screenshotButtonRender: screenshotButtonRender + }, otherVideoViewProp), {}, { + showCrop$: showCrop$ + }); + var ToolProps = _objectSpread(_objectSpread({}, otherToolProp), {}, { + isGray: true + }); + + // ========================== 插槽参数 ========================= + var imgViewRef = useRef(null); + var VideoViewRef = useRef(null); + scale$; + var param = { + tab: tab, + selectItem: selectItem, + imgViewRef: imgViewRef, + VideoViewRef: VideoViewRef, + model: model, + setModel: setModel, + showCrop$: showCrop$, + scale$: scale$ + }; + var slots = getSolt(children, param); + + // ========================== 监听键盘 ========================= + useEffect(function () { + var onKeyDown = function onKeyDown(event) { + var keyCode = event.keyCode; + if (keyCode === KeyCode.LEFT) { + setSelectIndexWrapper(function (pre) { + return --pre; + }); + } + if (keyCode === KeyCode.RIGHT) { + setSelectIndexWrapper(function (pre) { + return ++pre; + }); + } + }; + document.addEventListener('keydown', onKeyDown); + return function () { + document.removeEventListener('keydownm', onKeyDown); + }; + }, []); + + // ========================== 监听滚轮 ========================= + React.useEffect(function () { + var mousewheelListener = function mousewheelListener(e) { + e.preventDefault(); + var direction = 0; + if (e.wheelDelta) { + //IE/Opera/Chrome + if (e.wheelDelta > 0) { + //向上滚动事件 + direction = 1; + } else { + //向下滚动事件 + direction = -1; + } + } else if (e.detail) { + //Firefox + if (e.detail < 0) { + //向上滚动事件 + direction = 1; + } else { + //向下滚动事件 + direction = -1; + } + } + setSelectIndexWrapper(function (pre) { + return direction < 0 ? pre + 1 : pre - 1; + }); + }; + var handleMouseWheel; + if (store.bigImgScrollEmit) { + handleMouseWheel = addEventListenerWrap(document, 'mousewheel', mousewheelListener); + } else { + var _handleMouseWheel; + (_handleMouseWheel = handleMouseWheel) === null || _handleMouseWheel === void 0 || _handleMouseWheel.remove(); + } + return function () { + var _handleMouseWheel2; + (_handleMouseWheel2 = handleMouseWheel) === null || _handleMouseWheel2 === void 0 || _handleMouseWheel2.remove(); + }; + }, [store.bigImgScrollEmit]); + var tabList = [{ + key: 'related', + label: '关联的目标', + children: /*#__PURE__*/React.createElement("div", { + className: styles.relatedContent + }, showCarousel && /*#__PURE__*/React.createElement("div", { + className: classNames(styles.relatedPics) + }, /*#__PURE__*/React.createElement(Carousel, carouselProp)), /*#__PURE__*/React.createElement("div", { + style: isEmpty(relatedList) ? { + color: 'rgba(0, 0, 0, 0.25)', + cursor: 'not-allowed' + } : {}, + className: classNames(styles.relatedBtn), + onClick: /*#__PURE__*/function () { + var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(e) { + var archiveId, passerbyId; + return _regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + if (isEmpty(relatedList)) { + e.stopPropagation(); + } else { + try { + archiveId = selectItem.archiveId, passerbyId = selectItem.passerbyId; + if (archiveId && passerbyId) { + doubleClick({ + title: '确认取消关联,取消后可在“其他相似目标推荐”处再次关联', + checkboxLabel: '同时移除档案对应轨迹', + checked: true, + onOk: function () { + var _onOk = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() { + var _yield$achieveStore$a, relatedPassersby, _yield$achieveStore$a2, similarPassersby; + return _regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.prev = 0; + _context4.next = 3; + return achieveStore.archive.UnLinkTarget(passerbyId, archiveId); + case 3: + message.success('目标已成功取消关联!'); + // 更新已关联目标列表 + _context4.next = 6; + return achieveStore.archive.GetRelatedArchive(archiveId); + case 6: + _yield$achieveStore$a = _context4.sent; + relatedPassersby = _yield$achieveStore$a.relatedPassersby; + setRelatedList(relatedPassersby); + setImageData(relatedPassersby); + // 更新当前相似目标列表 + _context4.next = 12; + return achieveStore.archive.GetSimilarPasserbyList(archiveId); + case 12: + _yield$achieveStore$a2 = _context4.sent; + similarPassersby = _yield$achieveStore$a2.similarPassersby; + setSimilarList(similarPassersby); + setSelectIndex(function (pre) { + if (pre > 0) { + return pre - 1; + } else { + return 0; + } + }); + _context4.next = 22; + break; + case 18: + _context4.prev = 18; + _context4.t0 = _context4["catch"](0); + message.success('目标取消关联失败!'); + console.error(_context4.t0); + case 22: + case "end": + return _context4.stop(); + } + }, _callee4, null, [[0, 18]]); + })); + function onOk() { + return _onOk.apply(this, arguments); + } + return onOk; + }() + }); + } + } catch (e) { + console.error(e); + } + } + case 1: + case "end": + return _context5.stop(); + } + }, _callee5); + })); + return function (_x2) { + return _ref4.apply(this, arguments); + }; + }() + }, /*#__PURE__*/React.createElement(IconFont, { + icon: "icon-guanlian", + styles: { + fontWeight: 'bold', + margin: '0px 4px 0px 17px' + }, + size: 16 + }), "\u53D6\u6D88\u5173\u8054")) + }, { + key: 'unRlated', + label: '其他相似目标推荐', + children: /*#__PURE__*/React.createElement("div", { + className: styles.relatedContent + }, showCarousel && /*#__PURE__*/React.createElement("div", { + className: classNames(styles.relatedPics) + }, /*#__PURE__*/React.createElement(Carousel, carouselProp)), /*#__PURE__*/React.createElement("div", { + style: isEmpty(lastSimData.current) ? { + color: 'rgba(0, 0, 0, 0.25)', + cursor: 'not-allowed' + } : {}, + className: classNames(styles.relatedBtn), + onClick: /*#__PURE__*/function () { + var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(e) { + var archiveId, passerbyId, archiveGroupId, trajectoryId, _yield$achieveStore$a3, similarPassersby, _yield$achieveStore$a4, relatedPassersby; + return _regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + if (!isEmpty(lastSimData.current)) { + _context6.next = 4; + break; + } + e.stopPropagation(); + _context6.next = 28; + break; + case 4: + _context6.prev = 4; + archiveId = selectItem.archiveId, passerbyId = selectItem.passerbyId, archiveGroupId = selectItem.archiveGroupId, trajectoryId = selectItem.trajectoryId; + if (!(archiveId && passerbyId && archiveGroupId && trajectoryId)) { + _context6.next = 22; + break; + } + _context6.next = 9; + return achieveStore.archive.LinkTarget({ + passerbyId: passerbyId, + archiveId: archiveId, + archiveGroupId: archiveGroupId, + trajectoryId: trajectoryId + }); + case 9: + message.success('目标已成功关联!'); + // 更新当前相似目标列表 + _context6.next = 12; + return achieveStore.archive.GetSimilarPasserbyList(archiveId); + case 12: + _yield$achieveStore$a3 = _context6.sent; + similarPassersby = _yield$achieveStore$a3.similarPassersby; + setSimilarList(similarPassersby); + setImageData(similarPassersby); + + // 更新已关联目标列表 + _context6.next = 18; + return achieveStore.archive.GetRelatedArchive(archiveId); + case 18: + _yield$achieveStore$a4 = _context6.sent; + relatedPassersby = _yield$achieveStore$a4.relatedPassersby; + setRelatedList(relatedPassersby); + setSelectIndex(function (pre) { + if (pre > 0) { + return pre - 1; + } else { + return 0; + } + }); + case 22: + _context6.next = 28; + break; + case 24: + _context6.prev = 24; + _context6.t0 = _context6["catch"](4); + message.error('目标关联失败!'); + console.error(_context6.t0); + case 28: + case "end": + return _context6.stop(); + } + }, _callee6, null, [[4, 24]]); + })); + return function (_x3) { + return _ref5.apply(this, arguments); + }; + }() + }, /*#__PURE__*/React.createElement(IconFont, { + icon: "icon-guanlian", + styles: { + fontWeight: 'bold', + margin: '0px 4px 0px 17px' + }, + size: 16 + }), "\u5173\u8054")) + }]; + return /*#__PURE__*/React.createElement(Modal, { + open: visible, + onCancel: onClose, + footer: null, + className: classNames(componentName), + centered: true, + title: title + }, !isEmpty(attributeList) && /*#__PURE__*/React.createElement(AttributePanel, { + attributeList: attributeList + }), showHeader && /*#__PURE__*/React.createElement(Header, { + noBgColor: !isEmpty(attributeList), + value: tab, + onChange: setTab, + tabsFilter: tabsFilter + }), /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "-view-container")), + style: tab === 'TRACK' ? { + height: '718px', + marginBottom: '0px' + } : {} + }, tab !== 'TRACK' && /*#__PURE__*/React.createElement(React.Fragment, null, model == 'IMAGE' && tab === 'COMPATER' && !isEmpty(selectItem) && /*#__PURE__*/React.createElement(CompareView, CompareViewProp), !isLoading && model == 'IMAGE' && tab === 'NORMAL' && !isEmpty(selectItem === null || selectItem === void 0 ? void 0 : selectItem.rectList) && /*#__PURE__*/React.createElement(ImgView, _extends({ + key: imgCmpKey + }, imgViewProp, { + ref: imgViewRef + })), !isLoading && model == 'IMAGE' && isEmpty(selectItem) && tab === 'COMPATER' && /*#__PURE__*/React.createElement(NullView, nullDialogProp), !isLoading && model == 'IMAGE' && isEmpty(selectItem.rectList) && tab === 'NORMAL' && /*#__PURE__*/React.createElement(NullView, { + emptyText: isRelated ? '暂无匹配数据' : '暂无数据' + }), !isLoading && model == 'VIDEO' && /*#__PURE__*/React.createElement(VideoView, _extends({ + key: videoCmpKey + }, videoViewProp, { + ref: VideoViewRef + })), /*#__PURE__*/React.createElement(Navigation, { + className: classNames("".concat(componentName, "-view-container__nav"), !hasPre && "".concat(componentName, "-view-container__nav--disabled"), "".concat(componentName, "-view-container__nav--left")), + show: isRelated ? imageData.length !== 1 : dataSource.length !== 1, + disabled: !hasPre, + prev: true, + onClick: function onClick(e) { + if (useVirtual && selectIndex === 0) { + !!loadPre && loadPre(); + //都跳转到第一个 + setSelectIndexWrapper(0); + } else { + setSelectIndexWrapper(function (pre) { + return pre - 1; + }); + } + } + }), /*#__PURE__*/React.createElement(Navigation, { + className: classNames("".concat(componentName, "-view-container__nav"), !hasNext && "".concat(componentName, "-view-container__nav--disabled"), "".concat(componentName, "-view-container__nav--right")), + show: isRelated ? imageData.length !== 1 : dataSource.length !== 1, + disabled: !hasNext, + next: true, + onClick: /*#__PURE__*/function () { + var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(e) { + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (!isRelated) { + _context7.next = 12; + break; + } + if (!(useVirtual && selectIndex === imageData.length - 1)) { + _context7.next = 9; + break; + } + _context7.t0 = !!loadNext; + if (!_context7.t0) { + _context7.next = 6; + break; + } + _context7.next = 6; + return loadNext(); + case 6: + //都跳转到第一个 + setSelectIndexWrapper(0); + _context7.next = 10; + break; + case 9: + setSelectIndexWrapper(function (pre) { + return pre + 1; + }); + case 10: + _context7.next = 21; + break; + case 12: + if (!(useVirtual && selectIndex === dataSource.length - 1)) { + _context7.next = 20; + break; + } + _context7.t1 = !!loadNext; + if (!_context7.t1) { + _context7.next = 17; + break; + } + _context7.next = 17; + return loadNext(); + case 17: + //都跳转到第一个 + setSelectIndexWrapper(0); + _context7.next = 21; + break; + case 20: + setSelectIndexWrapper(function (pre) { + return pre + 1; + }); + case 21: + case "end": + return _context7.stop(); + } + }, _callee7); + })); + return function (_x4) { + return _ref6.apply(this, arguments); + }; + }() + }))), tab !== 'TRACK' && showTool && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "-tool-container")) + }, /*#__PURE__*/React.createElement(Tool, _extends({}, ToolProps, { + param: param + }))), slots['after-tool']), !!selectqualityScore && store.user.isfaceScore && model == 'IMAGE' && tab === 'NORMAL' && /*#__PURE__*/React.createElement("div", { + style: isRelated ? { + bottom: 220 + } : { + bottom: 90 + }, + slot: 'after-tool', + className: classNames("".concat(componentName, "__face-score")) + }, "\u4EBA\u8138\u8D28\u91CF\u5206\uFF1A".concat(selectqualityScore.toFixed(2))), isRelated && tab !== 'TRACK' && /*#__PURE__*/React.createElement("div", { + className: styles.relatedWrapper + }, /*#__PURE__*/React.createElement(TabPane, { + className: styles.relatedTabs, + tabPosition: 'left', + activeKey: activeKey, + onChange: function onChange(key) { + setActiveKey(key); + }, + items: tabList.map(function (item) { + return { + label: item.label, + key: item.key, + children: item.children + }; + }) + }))); +}; +export default observer(BigImageDialog); \ No newline at end of file diff --git a/packages/biz/es/BigImageModal/mock.js b/packages/biz/es/BigImageModal/mock.js new file mode 100644 index 0000000..1fec56f --- /dev/null +++ b/packages/biz/es/BigImageModal/mock.js @@ -0,0 +1,854 @@ +export var IMAGE_DATA = { + "enAbleDeleteFeature": true, + "tabsFilter": ["COMPATER", "NORMAL"], + "dataSources": [{ + "objectId": "1742110565582518272", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.7163062, + "timestamp": 1704186491979, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742110565582518272", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742110532019697664", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704186491979", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "24714687", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.603125, + "y": 0.3314815, + "w": 0.0578125, + "h": 0.2712963 + }, + "bboxExtInFrame": { + "x": 0.546875, + "y": 0.2638889, + "w": 0.17135416, + "h": 0.40648147 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "confidence": 0.817271, + "sourceObjectId": "1742110565603489792", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": ["OBJECT_TYPE_FACE"], + "subObjectIds": ["1742110532015503360"], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742110565582518272.jpg", + "compaterImages": ["http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg"], + "imgSummary": "singer-20240102/1/129533/1742110565582518272.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, { + "objectId": "1742092780462684161", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.70154816, + "timestamp": 1704182251640, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092780462684161", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092746237163520", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182251640", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "20474348", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.63177085, + "y": 0.38333333, + "w": 0.078125, + "h": 0.3537037 + }, + "bboxExtInFrame": { + "x": 0.55885416, + "y": 0.29537037, + "w": 0.22447917, + "h": 0.5314815 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780462684161.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780768868352.jpg", + "confidence": 0.888334, + "sourceObjectId": "1742092780768868352", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": ["OBJECT_TYPE_FACE"], + "subObjectIds": ["1742092746232969217"], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742092780462684161.jpg", + "compaterImages": ["http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg"], + "imgSummary": "singer-20240102/1/129533/1742092780462684161.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780462684161.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780768868352.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, { + "objectId": "1742092514409592832", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.703765, + "timestamp": 1704182186451, + "deviceId": "129529", + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092514409592832", + "solutionId": "1", + "deviceId": "129529", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092482440607744", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182186451", + "width": 0, + "height": 0, + "originWidth": 2560, + "originHeight": 1440, + "offsetTime": "20409182", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.6195313, + "y": 0.24583334, + "w": 0.09804688, + "h": 0.41944444 + }, + "bboxExtInFrame": { + "x": 0.53515625, + "y": 0.14027777, + "w": 0.26640624, + "h": 0.63125 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "confidence": 0.92494, + "sourceObjectId": "1742092515508500480", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": ["OBJECT_TYPE_FACE"], + "subObjectIds": ["1742092482432219136"], + "cameraInfo": { + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129529/1742092514409592832.jpg", + "compaterImages": ["http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg"], + "imgSummary": "singer-20240102/1/129529/1742092514409592832.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129529", + "cameraName": "4入口人脸" + }], + "selectIndex": 4, + "disableBtn": [0, 1, 4, 20], + "dataSource": [{ + "objectId": "1742110565582518272", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.7163062, + "timestamp": 1704186491979, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742110565582518272", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742110532019697664", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704186491979", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "24714687", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.603125, + "y": 0.3314815, + "w": 0.0578125, + "h": 0.2712963 + }, + "bboxExtInFrame": { + "x": 0.546875, + "y": 0.2638889, + "w": 0.17135416, + "h": 0.40648147 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "confidence": 0.817271, + "sourceObjectId": "1742110565603489792", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": ["OBJECT_TYPE_FACE"], + "subObjectIds": ["1742110532015503360"], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742110565582518272.jpg", + "compaterImages": ["http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg"], + "imgSummary": "singer-20240102/1/129533/1742110565582518272.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, { + "objectId": "1742092680994764802", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.7007122, + "timestamp": 1704182225679, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092680994764802", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092646219790337", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182225679", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "20448387", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.5265625, + "y": 0.49537036, + "w": 0.104166664, + "h": 0.35833332 + }, + "bboxExtInFrame": { + "x": 0.465625, + "y": 0.40648147, + "w": 0.22708334, + "h": 0.537963 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092680994764802.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092681720379392.jpg", + "confidence": 0.769764, + "sourceObjectId": "1742092681720379392", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 0, + "subObjectType": [], + "subObjectIds": [], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742092680994764802.jpg", + "compaterImages": ["http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg"], + "imgSummary": "singer-20240102/1/129533/1742092680994764802.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092680994764802.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092681720379392.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, { + "objectId": "1742092514409592832", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.703765, + "timestamp": 1704182186451, + "deviceId": "129529", + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092514409592832", + "solutionId": "1", + "deviceId": "129529", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092482440607744", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182186451", + "width": 0, + "height": 0, + "originWidth": 2560, + "originHeight": 1440, + "offsetTime": "20409182", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.6195313, + "y": 0.24583334, + "w": 0.09804688, + "h": 0.41944444 + }, + "bboxExtInFrame": { + "x": 0.53515625, + "y": 0.14027777, + "w": 0.26640624, + "h": 0.63125 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "confidence": 0.92494, + "sourceObjectId": "1742092515508500480", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": ["OBJECT_TYPE_FACE"], + "subObjectIds": ["1742092482432219136"], + "cameraInfo": { + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129529/1742092514409592832.jpg", + "compaterImages": ["http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg"], + "imgSummary": "singer-20240102/1/129529/1742092514409592832.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129529", + "cameraName": "4入口人脸" + }], + "isArchiveDetail": false, + "ToolProps": { + "renderVideoBtn": true, + "disableVideo": false + }, + "specialTitle": "" +}; \ No newline at end of file diff --git a/packages/biz/es/Demo/index.d.ts b/packages/biz/es/Demo/index.d.ts deleted file mode 100644 index bcc157c..0000000 --- a/packages/biz/es/Demo/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; -declare const _default: () => React.JSX.Element; -export default _default; diff --git a/packages/biz/es/Demo/index.js b/packages/biz/es/Demo/index.js index 0706129..8704995 100644 --- a/packages/biz/es/Demo/index.js +++ b/packages/biz/es/Demo/index.js @@ -1,15 +1,14 @@ import React from 'react'; -import { Button } from '@zhst/meta'; +import { Button } from 'antd'; import { useThrottleFn } from '@zhst/hooks'; export default (function () { - var ok = function ok() { - return useThrottleFn(function () { + var _useThrottleFn = useThrottleFn(function () { return console.log('123'); - }); - }; + }), + run = _useThrottleFn.run; return /*#__PURE__*/React.createElement(Button, { onClick: function onClick() { - return ok(); + return run(); } }, "\u6D4B\u8BD5"); }); \ No newline at end of file diff --git a/packages/biz/es/adapter/BigImageModalAdapter/index.js b/packages/biz/es/adapter/BigImageModalAdapter/index.js new file mode 100644 index 0000000..4f89db4 --- /dev/null +++ b/packages/biz/es/adapter/BigImageModalAdapter/index.js @@ -0,0 +1,8 @@ +/** + * 适配老的大屏组件数据格式传入 + */ + +export default (function (data) { + var newData = data; + return newData; +}); \ No newline at end of file diff --git a/packages/biz/es/adapter/BigImageModalAdapter/interface.d.ts b/packages/biz/es/adapter/BigImageModalAdapter/interface.d.ts new file mode 100644 index 0000000..6ba15d7 --- /dev/null +++ b/packages/biz/es/adapter/BigImageModalAdapter/interface.d.ts @@ -0,0 +1,217 @@ +export type CamerasStatusList = [string[], string[], string[]]; + +export type Rect = { x: number; y: number; w: number; h: number }; + +export type StatusList = { + taskOverview: any; + taskIndex: { + deviceId: string; + solutionId: string; + }; +}[]; + +export enum OperationType { + OPERATION_TYPE_UNKNOW, // 未知状态,传该值会报错 + OPERATION_TYPE_START, + OPERATION_TYPE_STOP +} + + +export enum AlgorithmVersion { + VERSION_MGN_BNN, // MGN+BNN算法 + VERSION_BNN_PRO, // BNNPRO算法 + VERSION_BNN_PRO_ATTR, // BNNPROATTR算法 + VERSION_BNN_PRO_ATTR_SCORE, // BNNPROATTR算法 + VERSION_FACE, // 人脸算法 + VERSION_HEAD, // 头肩算法 + VERSION_NON_MOTOR_VEHICLE, // 非机动车的算法 + VERSION_REID_HEAD_ATTR, // 形体头肩属性三种特征融合的算法 + VERSION_MOTOR_VEHICLE, // 机动车的算法 +} + +export enum AlgorithmVersionStr { + VERSION_MGN_BNN = 'VERSION_MGN_BNN', // MGN+BNN算法 + VERSION_BNN_PRO = 'VERSION_BNN_PRO', // BNNPRO算法 + VERSION_BNN_PRO_ATTR = 'VERSION_BNN_PRO_ATTR', // BNNPROATTR算法 + VERSION_BNN_PRO_ATTR_SCORE = 'VERSION_BNN_PRO_ATTR_SCORE', // BNNPROATTR算法 + VERSION_FACE = 'VERSION_FACE', // 人脸算法 + VERSION_HEAD = 'VERSION_HEAD', // 头肩算法 + VERSION_NON_MOTOR_VEHICLE = 'VERSION_NON_MOTOR_VEHICLE', // 非机动车的算法 + VERSION_REID_HEAD_ATTR = 'VERSION_REID_HEAD_ATTR', // 形体头肩属性三种特征融合的算法 + VERSION_MOTOR_VEHICLE = 'VERSION_MOTOR_VEHICLE', // 机动车的算法 +} + +类型枚举 +export enum ObjectType { + OBJECT_TYPE_NULL, + OBJECT_TYPE_PEDESTRAIN, + OBJECT_TYPE_BICYCLE, + OBJECT_TYPE_CAR, + OBJECT_TYPE_MOTORBIKE, + OBJECT_TYPE_AEROPLANE, + OBJECT_TYPE_BUS, + OBJECT_TYPE_TRAIN, + OBJECT_TYPE_TRUCK, + OBJECT_TYPE_MOTOR_RIDER, + OBJECT_TYPE_BIKE_RIDER, + OBJECT_TYPE_MAX, + OBJECT_TYPE_FACE = 101, +} + +// 性别 +export enum Gender { + GENDER_NONE = 'GENDER_NONE', + GENDER_MAN = 'GENDER_MAN', + GENDER_WOMAN = 'GENDER_WOMAN', +} + +// 年龄 +export enum Age { + AGE_ALL = 'AGE_ALL', + AGE_ZERO = 'AGE_ZERO', + AGE_OVERENGHTEEN = 'AGE_OVERENGHTEEN', + AGE_OVERSIXTY = 'AGE_OVERSIXTY', +} + +// 戴帽子状态 +export enum Hat { + HAT_ALL = 'HAT_ALL', + HAT_NONE = 'HAT_NONE', + HAT_OWNED = 'HAT_OWNED', +} + +// 颜色 +export enum Color { + COLOR_ALL = 'COLOR_ALL', + COLOR_BLACK = 'COLOR_BLACK', + COLOR_WHITE = 'COLOR_WHITE', + COLOR_GRAY = 'COLOR_GRAY', + COLOR_BROWN = 'COLOR_BROWN', + COLOR_PINK = 'COLOR_PINK', + COLOR_REDANDORANGE = 'COLOR_REDANDORANGE', + COLOR_YELLOW = 'COLOR_YELLOW', + COLOR_GREEN = 'COLOR_GREEN', + COLOR_BLUE = 'COLOR_BLUE', + COLOR_PURPLE = 'COLOR_PURPLE', +} + +// 背包 +export enum Package { + PACKAGE_ALL = 'PACKAGE_ALL', + PACKAGE_HANDBAG = 'PACKAGE_HANDBAG', + PACKAGE_BACKPACK = 'PACKAGE_BACKPACK', + PACKAGE_SHOULDERBAG = 'PACKAGE_SHOULDERBAG', + PACKAGE_OTHER = 'PACKAGE_OTHER', + PACKAGE_NONE = 'PACKAGE_NONE', +} + +// 行走模式 +export enum WalkPattern { + WALKPATTERN_ALL = 'WALKPATTERN_ALL', + WALKPATTERN_WALK = 'WALKPATTERN_WALK', + WALKPATTERN_RIDING = 'WALKPATTERN_RIDING', +} + +// 人类属性 +export interface HumanProperty { + age: Age; + downColor: Color; + gender: Gender; + hat: Hat; + package: Package; + upColor: Color; + walkPattern: WalkPattern; +} + +// 人类属性枚举 +export interface EnumHumanProperty { + Gender: typeof Gender; + Age: typeof Age; + Hat: typeof Hat; + Color: typeof Color; + Package: typeof Package; + WalkPattern: typeof WalkPattern; +} + +export interface IScreenshotButtonProp { + model: 'VIDEO' | 'IMAGE'; + getCropInfo: () => Promise; + setShowCrop: React.Dispatch>; + cropType: typeof cropType[number]; + selectAlgorithmVersion: number; +} + +export interface AlignType { + /** + * move point of source node to align with point of target node. + * Such as ['tr','cc'], align top right point of source node with center point of target node. + * Point can be 't'(top), 'b'(bottom), 'c'(center), 'l'(left), 'r'(right) */ + points?: AlignPoint[]; + /** + * offset source node by offset[0] in x and offset[1] in y. + * If offset contains percentage string value, it is relative to sourceNode region. + */ + offset?: number[]; + /** + * offset target node by offset[0] in x and offset[1] in y. + * If targetOffset contains percentage string value, it is relative to targetNode region. + */ + targetOffset?: number[]; + /** + * If adjustX field is true, will adjust source node in x direction if source node is invisible. + * If adjustY field is true, will adjust source node in y direction if source node is invisible. + */ + overflow?: { + adjustX?: boolean | number; + adjustY?: boolean | number; + }; + /** + * Whether use css right instead of left to position + */ + useCssRight?: boolean; + /** + * Whether use css bottom instead of top to position + */ + useCssBottom?: boolean; + /** + * Whether use css transform instead of left/top/right/bottom to position if browser supports. + * Defaults to false. + */ + useCssTransform?: boolean; + ignoreShake?: boolean; +} + +export type ODRECT = { + topleft: { + x: number; + y: number; + }; + width: number; + height: number; +}; + +export interface ViewOption { + /* 图片url */ + image?: string | HTMLImageElement; + + /* 缩放灵敏度(0,1],default: 0.1 */ + wheelZoomRatio?: number; + + /* + * 是否允许缩放 + * @default: true + */ + scaleAble?: boolean; + + /* + * 是否允许拖拽 + * @default: true + */ + dragAble?: boolean; + + /* + * fit scale 作为 最小缩放 + * @default: false + */ + fitScaleAsMinScale?: boolean; +} diff --git a/packages/biz/es/adapter/index.js b/packages/biz/es/adapter/index.js new file mode 100644 index 0000000..c32c897 --- /dev/null +++ b/packages/biz/es/adapter/index.js @@ -0,0 +1 @@ +export { default as BigImageModalAdapter } from "./BigImageModalAdapter"; \ No newline at end of file diff --git a/packages/biz/es/global.d.ts b/packages/biz/es/global.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/biz/es/hooks/useIntelligentTracking/index.js b/packages/biz/es/hooks/useIntelligentTracking/index.js new file mode 100644 index 0000000..a2a4caa --- /dev/null +++ b/packages/biz/es/hooks/useIntelligentTracking/index.js @@ -0,0 +1,618 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +//@ts-nocheck +import * as turf from '@turf/turf'; +import { getListTaskStatus, getCameraStatusFunc } from "../useTaskState"; +import Tree from '@common/components/CameraTree/Tree'; +import doRequest from "../../utils/request"; +import { message } from 'antd'; +import { SearchCamera } from '@common/components/CameraTree/utils'; +import { get, isEmpty } from '@zhst/func'; +//默认取值 +var defaultFaceThreshold = 0.68; +var defaultBodyThreshold = 0.7; +//下边栏人脸数量,默认为5 +var defaultFaceResultNum = 5; +//追踪圈半径长度(m),默认为150 +var defaultRadius = 0.15; +//查询周期(s)默认是10,,只负责保存做展示用 +var defaultQueryCycle = 10; + +//获取默认半径 +export var getDefaultRadius = function getDefaultRadius() { + return defaultRadius; +}; +//设置默认半径 +export var setDefaultRadius = function setDefaultRadius(radius) { + defaultRadius = radius; +}; +//检索间隔时长 +var searchIntervalDuration = 10; +//设置检索时长 +export var setSearchIntervalDuration = function setSearchIntervalDuration(duration) { + searchIntervalDuration = duration; +}; +//获取检索时长 +export var getSearchIntervalDuration = function getSearchIntervalDuration(time) { + return time; +}; + +//通过id停止或启动任务 +export var operateTrackById = /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(smartTrackId, operationType) { + var data; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.prev = 0; + data = { + operationType: operationType, + smartTrackId: smartTrackId + }; + _context.next = 4; + return doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/OperationSmartTrack', + data: data + }); + case 4: + message.success('操作成功'); + _context.next = 11; + break; + case 7: + _context.prev = 7; + _context.t0 = _context["catch"](0); + console.error(_context.t0); + message.success('操作失败'); + case 11: + case "end": + return _context.stop(); + } + }, _callee, null, [[0, 7]]); + })); + return function operateTrackById(_x, _x2) { + return _ref.apply(this, arguments); + }; +}(); +//通过id删除追踪任务 +export var deleteTrackById = /*#__PURE__*/function () { + var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(smartTrackId) { + return _regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.prev = 0; + _context2.next = 3; + return doRequest({ + method: 'DELETE', + url: '/singer.SmartTrackService/DeleteSmartTrack', + data: { + smartTrackId: smartTrackId + } + }); + case 3: + _context2.next = 8; + break; + case 5: + _context2.prev = 5; + _context2.t0 = _context2["catch"](0); + console.error(_context2.t0); + case 8: + case "end": + return _context2.stop(); + } + }, _callee2, null, [[0, 5]]); + })); + return function deleteTrackById(_x3) { + return _ref2.apply(this, arguments); + }; +}(); + +//编辑追踪任务图片 +export var modifyTrackImgs = /*#__PURE__*/function () { + var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(smartTrackId, images) { + return _regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.prev = 0; + _context3.next = 3; + return doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/ModifyTrackImg', + data: { + images: images, + smartTrackId: smartTrackId + } + }); + case 3: + _context3.next = 8; + break; + case 5: + _context3.prev = 5; + _context3.t0 = _context3["catch"](0); + console.log('err', _context3.t0); + case 8: + case "end": + return _context3.stop(); + } + }, _callee3, null, [[0, 5]]); + })); + return function modifyTrackImgs(_x4, _x5) { + return _ref3.apply(this, arguments); + }; +}(); +//编辑高级设置 +export var modifyTrackConf = /*#__PURE__*/function () { + var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(conf, smartTrackId) { + return _regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.prev = 0; + _context4.next = 3; + return doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/ModifyTrackConf', + data: { + conf: conf, + smartTrackId: smartTrackId + } + }); + case 3: + _context4.next = 8; + break; + case 5: + _context4.prev = 5; + _context4.t0 = _context4["catch"](0); + console.log('err', _context4.t0); + case 8: + case "end": + return _context4.stop(); + } + }, _callee4, null, [[0, 5]]); + })); + return function modifyTrackConf(_x6, _x7) { + return _ref4.apply(this, arguments); + }; +}(); +//通过id获取追踪任务 +export var getTrackTaskById = /*#__PURE__*/function () { + var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() { + var smartTrackId, + data, + req, + _args5 = arguments; + return _regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + smartTrackId = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : 0; + _context5.prev = 1; + data = smartTrackId ? { + smartTrackId: smartTrackId + } : {}; + _context5.next = 5; + return doRequest({ + method: 'POST', + url: '/singer.SmartTrackService/GetSmartTrack', + data: data + }); + case 5: + req = _context5.sent; + return _context5.abrupt("return", req); + case 9: + _context5.prev = 9; + _context5.t0 = _context5["catch"](1); + console.error(_context5.t0); + case 12: + case "end": + return _context5.stop(); + } + }, _callee5, null, [[1, 9]]); + })); + return function getTrackTaskById() { + return _ref5.apply(this, arguments); + }; +}(); + +//获取追踪实况 +export var getTackDetailInfo = /*#__PURE__*/function () { + var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() { + var smartTrackId, + data, + req, + _args6 = arguments; + return _regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + smartTrackId = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : 0; + data = smartTrackId ? { + smartTrackId: smartTrackId + } : {}; + _context6.next = 4; + return doRequest({ + method: 'POST', + url: '/singer.SmartTrackService/GetTrackOverView', + data: data + }); + case 4: + req = _context6.sent; + return _context6.abrupt("return", req); + case 6: + case "end": + return _context6.stop(); + } + }, _callee6); + })); + return function getTackDetailInfo() { + return _ref6.apply(this, arguments); + }; +}(); + +//根据传入的算力,圆心,摄像头信息计算出最后需要的摄像头信息 +export var getTaskCameraByCenterAndPower = /*#__PURE__*/function () { + var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(value) { + var realCameraInfos, realPreprocessInfos, _yield$getListTaskSta, taskStatus, runRealCameraInfos, from; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + realCameraInfos = value['cameraInfos']; //先通过摄像头id拿预处理信息 + realPreprocessInfos = []; + if (isEmpty(realCameraInfos)) { + _context7.next = 8; + break; + } + _context7.next = 5; + return getListTaskStatus(); + case 5: + _yield$getListTaskSta = _context7.sent; + taskStatus = _yield$getListTaskSta.taskStatus; + realPreprocessInfos = getCameraStatusFunc(taskStatus); + case 8: + //去除由实时开启的摄像头 + //缓存下已经开启的 + runRealCameraInfos = []; + realCameraInfos = realCameraInfos.filter(function (v) { + if (Tree.judgeOccupyPowerById(v['id'], realPreprocessInfos)) { + runRealCameraInfos.push(v); + } + return !Tree.judgeOccupyPowerById(v['id'], realPreprocessInfos); + }); + //算力不够时选择离中心点最近的 + from = turf.point(value['center']); + if (realCameraInfos.length > value['taskPower']['bodyPower']) { + realCameraInfos.map(function (v) { + var dis = turf.distance(from, turf.point([v['longitude'], v['latitude']])); + return _objectSpread(_objectSpread({}, v), {}, { + dis: dis + }); + }).sort(function (a, b) { + return a - b; + }); + realCameraInfos = realCameraInfos.slice(0, value['taskPower']['bodyPower']); + } + return _context7.abrupt("return", [].concat(runRealCameraInfos, _toConsumableArray(realCameraInfos))); + case 13: + case "end": + return _context7.stop(); + } + }, _callee7); + })); + return function getTaskCameraByCenterAndPower(_x8) { + return _ref7.apply(this, arguments); + }; +}(); + +/**创建追踪任务 */ +export var createIntelligentTrack = /*#__PURE__*/function () { + var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(value) { + var data, res; + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + data = { + images: value['images'], + type: value['model'], + normalComputerPower: value['bodyPower'] || 0, + faceComputerPower: value['facePower'] || 0, + // deviceIds: ['129537'], + deviceIds: value['deviceIds'], + conf: { + faceThreshold: defaultFaceThreshold, + bodyThreshold: defaultBodyThreshold, + faceResultNum: defaultFaceResultNum, + radius: value['circleRadius'] * 1000, + queryCycle: defaultQueryCycle + }, + centerConf: { + centerX: value['circleCenter'][0], + centerY: value['circleCenter'][1] + } + }; + _context8.next = 3; + return doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/CreateSmartTrack', + data: data + }); + case 3: + res = _context8.sent; + return _context8.abrupt("return", res); + case 5: + case "end": + return _context8.stop(); + } + }, _callee8); + })); + return function createIntelligentTrack(_x9) { + return _ref8.apply(this, arguments); + }; +}(); + +//发送心跳包 +export var emitHeartbeat = /*#__PURE__*/function () { + var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(smartTrackId) { + return _regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.prev = 0; + _context9.next = 3; + return doRequest({ + method: 'POST', + url: '/singer.SmartTrackService/SmartTrackHeartBeat', + data: { + smartTrackId: smartTrackId + } + }); + case 3: + _context9.next = 8; + break; + case 5: + _context9.prev = 5; + _context9.t0 = _context9["catch"](0); + console.error(_context9.t0); + case 8: + case "end": + return _context9.stop(); + } + }, _callee9, null, [[0, 5]]); + })); + return function emitHeartbeat(_x10) { + return _ref9.apply(this, arguments); + }; +}(); + +//更改任务摄像头信息 +export var ModifyTrackCameras = /*#__PURE__*/function () { + var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(value) { + return _regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + _context10.prev = 0; + _context10.next = 3; + return setIntelligentTrackCircleInfo(value['smartTrackId'], value['centerPoint']); + case 3: + _context10.next = 5; + return doRequest({ + url: '/singer.SmartTrackService/ModifyTrackCameras', + method: 'PUT', + data: { + smartTrackId: value['smartTrackId'], + deviceIds: value['deviceIds'] + } + }); + case 5: + _context10.next = 10; + break; + case 7: + _context10.prev = 7; + _context10.t0 = _context10["catch"](0); + message.error(_context10.t0); + case 10: + case "end": + return _context10.stop(); + } + }, _callee10, null, [[0, 7]]); + })); + return function ModifyTrackCameras(_x11) { + return _ref10.apply(this, arguments); + }; +}(); + +//保存智能追踪圆的信息 +export var setIntelligentTrackCircleInfo = /*#__PURE__*/function () { + var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(smartTrackId, circleCenter) { + return _regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + _context11.prev = 0; + _context11.next = 3; + return doRequest({ + url: '/singer.SmartTrackService/ModifyTrackScopeConf', + method: 'PUT', + data: { + smartTrackId: smartTrackId, + centerConf: { + centerX: get(circleCenter, '0'), + centerY: get(circleCenter, '1') + } + } + }); + case 3: + _context11.next = 8; + break; + case 5: + _context11.prev = 5; + _context11.t0 = _context11["catch"](0); + message.error(_context11.t0); + case 8: + case "end": + return _context11.stop(); + } + }, _callee11, null, [[0, 5]]); + })); + return function setIntelligentTrackCircleInfo(_x12, _x13) { + return _ref11.apply(this, arguments); + }; +}(); + +//智能追踪的获取摄像头 +export var getTackCameraInfo = /*#__PURE__*/function () { + var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(value) { + var circleCameraInfos; + return _regeneratorRuntime().wrap(function _callee12$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + _context12.next = 2; + return getCameraInfoByCircle(value['circleCenter'], value['radius'], value['zoom']); + case 2: + circleCameraInfos = _context12.sent; + return _context12.abrupt("return", circleCameraInfos); + case 4: + case "end": + return _context12.stop(); + } + }, _callee12); + })); + return function getTackCameraInfo(_x14) { + return _ref12.apply(this, arguments); + }; +}(); + +//通过圆心和半径获取摄像头 +export var getCameraInfoByCircle = /*#__PURE__*/function () { + var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(circleCenter, radius) { + var zoom, + centerFeature, + minx, + maxx, + miny, + maxy, + i, + point, + _yield$doRequest, + clusterPoint, + cameraIds, + _yield$SearchCamera, + cameras, + cameraInfos, + _args13 = arguments; + return _regeneratorRuntime().wrap(function _callee13$(_context13) { + while (1) switch (_context13.prev = _context13.next) { + case 0: + zoom = _args13.length > 2 && _args13[2] !== undefined ? _args13[2] : 16; + _context13.prev = 1; + centerFeature = turf.circle(turf.point(circleCenter), radius, { + units: 'kilometers', + steps: 64 + }); + minx = 0; + maxx = 0; + miny = 0; + maxy = 0; + for (i = 0; i < 4; i++) { + point = turf.destination(turf.point(circleCenter), radius, 90 * i, { + units: 'kilometers' + }).geometry.coordinates; + if (point[0] < minx || minx === 0) { + minx = point[0]; + } + if (point[0] > maxx || maxx === 0) { + maxx = point[0]; + } + if (point[1] < miny || miny === 0) { + miny = point[1]; + } + if (point[1] > maxy || maxy === 0) { + maxy = point[1]; + } + } + _context13.next = 10; + return doRequest({ + url: '/singer.DeviceService/GetClusters', + method: 'POST', + data: { + northEast: { + X: maxx, + Y: maxy + }, + southWest: { + X: minx, + Y: miny + }, + zoom: zoom + } + }); + case 10: + _yield$doRequest = _context13.sent; + clusterPoint = _yield$doRequest.clusterPoint; + cameraIds = []; + clusterPoint.forEach(function (v) { + cameraIds.push.apply(cameraIds, _toConsumableArray(v['cameraIDs'])); + }); + _context13.next = 16; + return SearchCamera({ + cameraId: cameraIds, + maxResults: cameraIds.length + }); + case 16: + _yield$SearchCamera = _context13.sent; + cameras = _yield$SearchCamera.cameras; + cameraInfos = cameras.filter(function (v) { + var cameraPoint = turf.point([get(v, 'longitude'), get(v, 'latitude')]); + return turf.booleanPointInPolygon(cameraPoint, centerFeature); + }); + return _context13.abrupt("return", cameraInfos); + case 22: + _context13.prev = 22; + _context13.t0 = _context13["catch"](1); + console.error(_context13.t0); + return _context13.abrupt("return", []); + case 26: + case "end": + return _context13.stop(); + } + }, _callee13, null, [[1, 22]]); + })); + return function getCameraInfoByCircle(_x15, _x16) { + return _ref13.apply(this, arguments); + }; +}(); + +//追踪任务转化为检索的格式 +export var taskInfoToSearchItem = function taskInfoToSearchItem(taskInfo) { + var imageList = []; + get(taskInfo, 'images', []).forEach(function (v) { + var url = get(v, 'conds.0.srcImageUrl'); + var objectId = get(v, 'conds.0.featureInfo.objectId'); + var imageItem = { + index: 0, + url: url, + objectId: objectId, + odRects: get(v, 'conds').map(function (item) { + return { + fileKey: get(item, 'objectImageUrl'), + extendRect: _objectSpread({ + algorithmVersion: get(item, 'alg', '') + }, get(item, 'rect', {})), + rect: { + algorithmVersion: get(item, 'alg', ''), + rect: get(item, 'rect', {}) + } + }; + }) + }; + imageList.push(imageItem); + }); + return imageList; +}; \ No newline at end of file diff --git a/packages/biz/es/hooks/useTaskState/index.js b/packages/biz/es/hooks/useTaskState/index.js new file mode 100644 index 0000000..3446bb4 --- /dev/null +++ b/packages/biz/es/hooks/useTaskState/index.js @@ -0,0 +1,153 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +import doRequest from "../../utils/request"; +import { NetworkType, useStores } from '@store/index'; +import { useMount, useUnmount } from '@zhst/hooks'; +import { useRef, useState } from 'react'; +var Streams = ['TASK_OVERVIEW_WAIT_START_STREAM', 'TASK_OVERVIEW_WAIT_STREAM', 'TASK_OVERVIEW_WAIT_START_SVINFER']; +var StreamsNum = [1, 2, 3]; +var RunsNum = [5, 9]; +var ErrorsNum = [7]; +var Runs = ['TASK_OVERVIEW_RUNNING', 'TASK_OVERVIEW_FINISH']; +var Errors = ['TASK_OVERVIEW_ERROR']; +export var getListTaskStatus = /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) { + var res; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return doRequest({ + url: '/singer.TaskManagerService/ListTaskStatusResponse', + method: 'POST', + data: data || {} + }); + case 2: + res = _context.sent; + return _context.abrupt("return", res); + case 4: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function getListTaskStatus(_x) { + return _ref.apply(this, arguments); + }; +}(); +export var getCameraStatusFunc = function getCameraStatusFunc(list) { + var useNum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var _Runs = useNum ? RunsNum : Runs; + var _Errors = useNum ? ErrorsNum : Errors; + var _Streams = useNum ? StreamsNum : Streams; + var res = list.reduce(function (res, cur) { + var cameraId = cur.taskIndex.deviceId; + var status = cur.taskOverview; + res.some(function (ids, i) { + if (ids.includes(cameraId)) { + res[i] = ids.filter(function (id) { + return id !== cameraId; + }); + return true; + } + return false; + }); + if (_Runs.includes(status)) { + res[0].push(cameraId); + } else if (_Errors.includes(status)) { + res[1].push(cameraId); + } else if (_Streams.includes(status)) { + res[2].push(cameraId); + } + return res; + }, [[], [], []]); + return _toConsumableArray(res); +}; +var camerasStatusStoreList = [[], [], []]; +var num = 0; +var useTaskState = function useTaskState() { + var _useStores = useStores(), + store = _useStores.store; + var _useState = useState(camerasStatusStoreList), + _useState2 = _slicedToArray(_useState, 2), + camerasStatusList = _useState2[0], + setCamerasStatusList = _useState2[1]; + var timerRef = useRef(null); + var getCameraStatus = function getCameraStatus(list) { + var useNum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var res = getCameraStatusFunc(list, useNum); + setCamerasStatusList(res); + }; + var request = function request(data) { + if (data) { + var list = []; + data.forEach(function (v) { + list.push.apply(list, _toConsumableArray(v.taskStatus)); + }); + getCameraStatus(list, store.networkType === NetworkType.NORMAL); + } + }; + useMount( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() { + var res; + return _regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + num++; + if (!(num - 1 > 0)) { + _context3.next = 3; + break; + } + return _context3.abrupt("return"); + case 3: + _context3.next = 5; + return getListTaskStatus(); + case 5: + res = _context3.sent; + getCameraStatus(res.taskStatus); + if (store.networkType === NetworkType.DUAL_NETWORK) { + timerRef.current = setInterval( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { + var res; + return _regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return getListTaskStatus(); + case 2: + res = _context2.sent; + request([res]); + case 4: + case "end": + return _context2.stop(); + } + }, _callee2); + })), 2000); + } + case 8: + case "end": + return _context3.stop(); + } + }, _callee3); + }))); + useUnmount(function () { + clearInterval(timerRef.current); + setCamerasStatusList([[], [], []]); + num--; + if (num === 0) { + camerasStatusStoreList = [[], [], []]; + } + }); + return camerasStatusList; +}; +export default useTaskState; \ No newline at end of file diff --git a/packages/biz/es/index.js b/packages/biz/es/index.js index dd020e4..aabde39 100644 --- a/packages/biz/es/index.js +++ b/packages/biz/es/index.js @@ -1 +1,3 @@ -export { default as Demo } from "./Demo"; \ No newline at end of file +export { default as Demo } from "./Demo"; +export * from "./adapter"; +export { default as BigImageModal } from "./BigImageModal"; \ No newline at end of file diff --git a/packages/biz/es/useSocket/index.js b/packages/biz/es/useSocket/index.js new file mode 100644 index 0000000..91e70c7 --- /dev/null +++ b/packages/biz/es/useSocket/index.js @@ -0,0 +1,101 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +import { useMemo } from 'react'; +import { throttle as loadshThrottle } from '@zhst/func'; +import { useDeepEffect, useLatest } from '@zhst/hooks'; +import ws from "./ws"; +var noop = function noop(v) { + return null; +}; +var getSelf = function getSelf(v) { + return v; +}; +export var SocketApi = { + CameraTaskStatue: 'singer.DeviceService/SubScribeCameraTaskStatus', + DeviceStatus: 'singer.TaskManagerService/SubscribeTaskStatus', + SubscribeSolutionDeploy: 'singer.SolutionManagerService/SubscribeSolutionDeploy', + SubscribeTasksSummary: 'singer.TaskManagerService/SubscribeTasksSummary', + MonitorSubscribeResult: 'singer.MonitorService/MonitorSubscribeResult', + MonitorSubscribeStatus: 'singer.MonitorService/MonitorSubscribeStatus', + SubscribeArchiveGroupUpload: 'singer.ArchiveGroupService/CreateArchiveByImport', + SubscribeJointTask: 'singer.JointTaskService/SubscribeJointTask', + SubscribeGroupFragment: 'singer.VideoService/SubscribeVideoFragmentStatus', + // 监听视频分片状态变化,包括新建、删除、变化 + SubscribeGroup: 'singer.VideoService/SubscribeGroup', + // 监听视频分组状态变化,列表变化也通知 + SubscribeStreamEvent: 'singer.MediaManagerService/SubscribeStreamEvent' // 监听视频分组状态变化,列表变化也通知 +}; + +export default (function (topic) { + var iterator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop; + var opt = arguments.length > 2 ? arguments[2] : undefined; + var _ref = opt || {}, + _ref$req = _ref.req, + req = _ref$req === void 0 ? {} : _ref$req, + _ref$throttle = _ref.throttle, + throttle = _ref$throttle === void 0 ? 0 : _ref$throttle, + _ref$parseData = _ref.parseData, + parseData = _ref$parseData === void 0 ? true : _ref$parseData, + _ref$beforeLoopTmp = _ref.beforeLoopTmp, + beforeLoopTmp = _ref$beforeLoopTmp === void 0 ? getSelf : _ref$beforeLoopTmp, + _ref$shouldBreak = _ref.shouldBreak, + shouldBreak = _ref$shouldBreak === void 0 ? false : _ref$shouldBreak, + forceRefresh = _ref.forceRefresh, + close = _ref.close; + + // 带上token + var reqstring = useMemo(function () { + var newReq = _objectSpread(_objectSpread({}, req), {}, { + extraHeaders: { + authorization: localStorage.getItem('USER-TOKEN') + } + }); + return JSON.stringify(newReq); + }, [req]); + var latestIterator = useLatest(iterator); + useDeepEffect(function () { + if (close) { + return; + } + //控制socket 请求发送 + if (shouldBreak) { + return; + } + //去抖动 + + var tmpData = []; + var throttleUpdate = loadshThrottle(function () { + if (tmpData.length == 0) { + return; + } + var _tmpData = beforeLoopTmp(tmpData); + latestIterator.current(_tmpData); //加了throttle 数据就变成数组 + tmpData = []; + }, throttle); + var unSubscribe = ws.subscribe(SocketApi[topic], reqstring, function (socketData) { + try { + if (!throttle) { + latestIterator.current(socketData); + } else { + tmpData.push(socketData); + throttleUpdate(); + } + } catch (error) { + console.error('useSocke:', error); + } + }); + return function () { + try { + unSubscribe(); + throttleUpdate.cancel(); + } catch (error) { + console.error(error); + throw error; + } + }; + }, [topic, reqstring, shouldBreak, forceRefresh, close]); +}); \ No newline at end of file diff --git a/packages/biz/es/useSocket/onceChannel.js b/packages/biz/es/useSocket/onceChannel.js new file mode 100644 index 0000000..ebb1e2e --- /dev/null +++ b/packages/biz/es/useSocket/onceChannel.js @@ -0,0 +1,24 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +//@ts-nocheck +import channel from "./ws"; +var startChannel = function startChannel(topic, req, callback) { + // 带上token + var reqstring = JSON.stringify(_objectSpread(_objectSpread({}, req), {}, { + extraHeaders: { + authorization: localStorage.getItem('USER-TOKEN') + } + })); + var unSubscribe = channel.subscribe(topic, reqstring, function (socketData) { + var shouldStop = callback(socketData); + if (shouldStop) { + unSubscribe === null || unSubscribe === void 0 || unSubscribe(); + } + }); + return unSubscribe; +}; +export default startChannel; \ No newline at end of file diff --git a/packages/biz/es/useSocket/ws.js b/packages/biz/es/useSocket/ws.js new file mode 100644 index 0000000..9e15735 --- /dev/null +++ b/packages/biz/es/useSocket/ws.js @@ -0,0 +1,243 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +import { v4 as uuidv4 } from 'uuid'; +import { has } from '@zhst/func'; +import io from 'socket.io-client'; +import { SOCKET_HOST } from '@common/constants'; +var EMITSTATE = { + NOT_CONNECT: 0, + WAITING: 1, + CONNECT: 2 +}; +var initRetryTime = 0; +var intervalTime = 5 * 1000; //下次重试增加时间 +var maxIntervalTime = 1 * 60 * 60 * 1000; //最大重试时间1小时 +var Channel = /*#__PURE__*/function () { + function Channel() { + var _this = this; + _classCallCheck(this, Channel); + /** + * io 实例化对象 + */ + _defineProperty(this, "ioIns", void 0); + /** + * 已存在的订阅列表 + */ + _defineProperty(this, "listeners", [ + // { + // topic: "", + // req: "", + // suInfo: {}, + // hasEmit: false,//是否已经订阅 + // lastRetryInterval: 0, + // handles: { + // } + // } + ]); + /** + * 调试信息 记录订阅/反订阅次数 + */ + _defineProperty(this, "subscribeListenerId", []); + _defineProperty(this, "unSubscribeListenerId", []); + _defineProperty(this, "init", function () { + var ioIns = _this.ioIns = io(SOCKET_HOST, { + reconnection: true, + transports: ['websocket'], + forceNew: true + }); + ioIns.on('connect', function () { + for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) { + arg[_key] = arguments[_key]; + } + console.debug('connect', arg); + _this.ioIns = ioIns; + _this.listeners.forEach(function (v) { + _this.doEmit(v['topic'], v['req'], v['id']); + }); + }); + ioIns.on('event', function () { + for (var _len2 = arguments.length, arg = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + arg[_key2] = arguments[_key2]; + } + console.debug('event', arg); + }); + ioIns.on('disconnect', function () { + for (var _len3 = arguments.length, arg = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + arg[_key3] = arguments[_key3]; + } + console.debug('disconnect', arg); + _this.subscribeListenerId = []; + _this.unSubscribeListenerId = []; + }); + ioIns.on('reconnect', function () { + for (var _len4 = arguments.length, arg = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { + arg[_key4] = arguments[_key4]; + } + console.debug('reconnect', arg); + _this.listeners.forEach(function (v) { + v['hasEmit'] = EMITSTATE.NOT_CONNECT; + _this.doEmit(v['topic'], v['req'], v['id']); + }); + }); + }); + _defineProperty(this, "retry", function (listener) { + //重试逻辑 + var intervalId = setTimeout(function () { + var hasExit = _this.listeners.find(function (v) { + return v['topic'] === (listener === null || listener === void 0 ? void 0 : listener['topic']) && v['req'] === listener['req']; + }); + if (!hasExit) return; + listener['hasEmit'] = EMITSTATE.NOT_CONNECT; + _this.doEmit(listener['topic'], listener['req'], listener['id']); + }, listener.lastRetryInterval); + listener.intervalId = intervalId; + listener.lastRetryInterval = intervalTime + listener.lastRetryInterval > maxIntervalTime ? maxIntervalTime : intervalTime + listener.lastRetryInterval; + }); + _defineProperty(this, "doEmit", function (topic, req, listenerId) { + var _this$ioIns, _this$ioIns$emit; + if (!_this.ioIns) { + _this.init(); + } + //订阅过就不订阅了 + var hasEmit = _this.listeners.find(function (v) { + return v['topic'] === topic && v['req'] === req && v['hasEmit'] !== EMITSTATE.NOT_CONNECT; + }); + if (hasEmit) { + return; + } + var listener = _this.listeners.find(function (v) { + return v['topic'] === topic && v['req'] === req; + }); + listener['hasEmit'] = EMITSTATE.WAITING; + (_this$ioIns = _this.ioIns) === null || _this$ioIns === void 0 || (_this$ioIns$emit = _this$ioIns.emit) === null || _this$ioIns$emit === void 0 || _this$ioIns$emit.call(_this$ioIns, topic, req, function (data) { + var _this$ioIns2, _this$ioIns2$on; + console.info('emit', topic, req, data); + var suInfo = JSON.parse(data); + if (has(suInfo, 'Error.code')) { + if (suInfo.Error.code === 500) { + //后端出错 + _this.retry(listener); + } + return; + } + // console.debug('SUBSCRIBE', listenerId, topic, req, suInfo); + _this.subscribeListenerId.push(listenerId); + // debugger + //重新找一遍topic + var currentTopicIndex = _this.listeners.findIndex(function (v) { + return v['topic'] === topic && v['req'] === req && v['id'] === listenerId; + }); + if (currentTopicIndex == -1) { + // 不存在说明listener取消了 直接反订阅 + _this.ioIns.emit('UnSubscribe', JSON.stringify(suInfo), function (data) { + _this.unSubscribeListenerId.push(listenerId); + console.debug('UNSUBSCRIBE', listenerId, topic, req, data); + }); + return; + } + if (!suInfo['SubscribeID']) { + _this.listeners.splice(currentTopicIndex, 0); + } else { + _this.listeners[currentTopicIndex]['suInfo'] = suInfo; + _this.listeners[currentTopicIndex]['hasEmit'] = EMITSTATE.CONNECT; + } + (_this$ioIns2 = _this.ioIns) === null || _this$ioIns2 === void 0 || (_this$ioIns2$on = _this$ioIns2.on) === null || _this$ioIns2$on === void 0 || _this$ioIns2$on.call(_this$ioIns2, suInfo['SubscribeID'], function (data) { + console.info('on', suInfo['SubscribeID'], data); + try { + var socketData = JSON.parse(data); + if (has(socketData, 'Error.code')) { + if (socketData.Error.code === 500) { + //后端出错 + _this.retry(listener); + } + return; + } + var _ref = _this.listeners.find(function (v) { + return v['topic'] === topic && v['req'] === req; + }) || {}, + _ref$handles = _ref.handles, + handles = _ref$handles === void 0 ? {} : _ref$handles; + Object.keys(handles).forEach(function (key) { + try { + //后面观察 为什么delete后在foreach + var func = handles[key]; + if (!func) return; + func(socketData); + } catch (error) { + console.error(error); + } + }); + } catch (error) { + console.debug('error', error); + } + }); + }); + }); + } + _createClass(Channel, [{ + key: "subscribe", + value: function subscribe(topic, req, handle) { + var handleId = uuidv4(); + var listenerId = uuidv4(); + var listener = this.listeners.find(function (v) { + return v['topic'] === topic && v['req'] === req; + }); + if (listener) { + listener['handles'][handleId] = handle; + } else { + this.listeners.push({ + topic: topic, + req: req, + suInfo: {}, + id: listenerId, + hasEmit: EMITSTATE.NOT_CONNECT, + lastRetryInterval: initRetryTime, + handles: _defineProperty({}, "".concat(handleId), handle) + }); + //未注册过 则去订阅 + this.doEmit(topic, req, listenerId); + } + return this.unSubscribe.bind(this, topic, req, handleId, listenerId); + } + }, { + key: "unSubscribe", + value: function unSubscribe(topic, req, handleId, listenerId) { + var _this2 = this; + var listener = this.listeners.find(function (v) { + return v['topic'] === topic && v['req'] === req && v['id'] === listenerId; + }); + var _ref2 = listener || {}, + _ref2$handles = _ref2.handles, + handles = _ref2$handles === void 0 ? {} : _ref2$handles, + suInfo = _ref2.suInfo; + if (handles[handleId]) { + delete handles[handleId]; + //如果没有其他订阅就删除 + if (Object.keys(handles).length === 0) { + if (this.intervalId) { + clearTimeout(this.intervalId); + } + if (listener['hasEmit'] === EMITSTATE['CONNECT']) { + this.ioIns.emit('UnSubscribe', JSON.stringify(suInfo), function (data) { + _this2.unSubscribeListenerId.push(listenerId); + console.debug('UNSUBSCRIBE', listener['id'], topic, req, data); + }); + } + this.listeners = this.listeners.filter(function (v) { + return !(v['topic'] === topic && v['req'] === req); + }); + } + } + } + }]); + return Channel; +}(); //单例 +var channelIns = new Channel(); +//暴露实例 调试用 +window.__channel__ = channelIns; +export default channelIns; \ No newline at end of file diff --git a/packages/biz/es/utils/constants.js b/packages/biz/es/utils/constants.js new file mode 100644 index 0000000..7cb4646 --- /dev/null +++ b/packages/biz/es/utils/constants.js @@ -0,0 +1,40 @@ +export var isDev = import.meta.env.DEV; +export var host = isDev ? 'http://10.0.0.7' : "".concat(location.protocol, "//").concat(location.hostname); +export var port = isDev ? '30003' : location.port; +export var ProjectUrl = "".concat(host, ":").concat(port); +export var MANAGER_URL = port ? ProjectUrl + '/manager' : host + '/manager'; +export var S3_HOST = location.port ? "".concat(host, ":").concat(port) : host; +export var MapUrl = port ? ProjectUrl + '/map' : host + '/map'; +export var S3_V3_HOST = host; //minio 地址 +export var SOCKET_HOST = port ? ProjectUrl : host; +export var OBJECT_GRNER_THRESHOLD = 0.8; //目标图判断性别阈值 +export var OBJECT_AGE_TYPE_THRESHOLD = 0.5; //目标图判断年龄段阈值 +export var MODE_KEY = 'test_mode'; +export var ROUTER_SHOULD_FILTER = isDev; //是否根据后台配置路由,开发环境全打开 +//业务约定 +export var SEARCH_IMG_COUNT = 10; //检索图片的最大个数 +export var GLOBAL_IS_ITEM_NUMBER_SHOW = false; //是否展示索引 +export var publicPath = 'hummingbird'; +export var ENTER_CIRCLE = 'MONITORTYPE_ENTER_CIRCLE'; +export var OUT_CIRCLE = 'MONITORTYPE_OUT_CIRCLE'; +export var TEMP = 'MONITORTYPE_TEMP'; +export var GLOBAL_IS_BOX_VMS_SHOW = true; //是否展示盒子vms + +export var BODY_SEARCH_THRESHOID = 0.45; //形体检索阈值 +export var RECORD_VERSION = '3.0.0'; //保存记录的版本号 + +export var DeviceTab = { + EMPTY: 0, + REAL_CAMERA: 1, + PREPROCESS_CAMERA: 2, + //摄像头列表 + TAG_CAMERA: 3, + //预案列表 + HISTORY_VIDEO_GROUP: 4, + //录像回放 + VIRTUAL_CAMERA: 5, + //离线视频 + REAL_CAMERA_NOFACE: 6, + REAL_CAMERA_ONLYFACE: 7, + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: 8 // 只有普通摄像头,没有人脸、没有盒子、直连 +}; \ No newline at end of file diff --git a/packages/biz/es/utils/index.js b/packages/biz/es/utils/index.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/biz/es/utils/request.js b/packages/biz/es/utils/request.js new file mode 100644 index 0000000..9eb1054 --- /dev/null +++ b/packages/biz/es/utils/request.js @@ -0,0 +1,121 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +import { extend } from 'umi-request'; +import { get } from '@zhst/func'; +import { message } from 'antd'; +import base64 from 'base-64'; +export var ResponseError = /*#__PURE__*/function (_Error) { + _inherits(ResponseError, _Error); + var _super = _createSuper(ResponseError); + function ResponseError(response, text, data, request) { + var _this; + var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'ResponseError'; + _classCallCheck(this, ResponseError); + _this = _super.call(this, text || response.statusText); + _defineProperty(_assertThisInitialized(_this), "name", void 0); + _defineProperty(_assertThisInitialized(_this), "data", void 0); + _defineProperty(_assertThisInitialized(_this), "response", void 0); + _defineProperty(_assertThisInitialized(_this), "request", void 0); + _defineProperty(_assertThisInitialized(_this), "type", void 0); + _this.name = 'ResponseError'; + _this.data = data; + _this.response = response; + _this.request = request; + _this.type = type; + return _this; + } + return _createClass(ResponseError); +}( /*#__PURE__*/_wrapNativeSuper(Error)); +export var request = extend({ + getResponse: true, + // timeout: 1000, + parseResponse: false +}); + +//错误处理中间件 +request.use( /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx, next) { + var req, _ref2, _ref2$toast, toast, res, d, isEmptyRes, body, errMsg, _window$utf; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + req = ctx.req; + _ref2 = (req === null || req === void 0 ? void 0 : req.options) || {}, _ref2$toast = _ref2.toast, toast = _ref2$toast === void 0 ? true : _ref2$toast; + _context.prev = 2; + _context.next = 5; + return next(); + case 5: + res = ctx.res; + _context.next = 8; + return res.text(); + case 8: + d = _context.sent; + if (!(res.status === 401)) { + _context.next = 12; + break; + } + message.warning('登录过期,请重新登录!'); + return _context.abrupt("return"); + case 12: + isEmptyRes = d === ''; //有些后端接口成功会返回空 做下兼容 + body = !isEmptyRes ? JSON.parse(d) : d; + if (!(res.status >= 200 && res.status < 300)) { + _context.next = 18; + break; + } + ctx.res = body; + _context.next = 22; + break; + case 18: + // 先判断Grpc-Metadata-Errorx-Message + errMsg = res.headers.get('Grpc-Metadata-Errorx-Message'); + if (errMsg) { + errMsg = (_window$utf = window.utf8) === null || _window$utf === void 0 ? void 0 : _window$utf.decode(base64.decode(errMsg)); + // 后判断 body中的message + } else if (!errMsg && get(body, 'message')) { + errMsg = "".concat(get(body, 'message')); + } else { + // 最后看状态码 + errMsg = '您的网络发生异常,无法连接服务器'; + } + toast && message.error(errMsg); + throw new ResponseError(res, errMsg, d, req, 'CustomError'); + case 22: + _context.next = 28; + break; + case 24: + _context.prev = 24; + _context.t0 = _context["catch"](2); + if (get(_context.t0, 'type') !== 'CustomError') { + toast && message.error('您的网络发生异常,无法连接服务器'); + } + throw _context.t0; + case 28: + case "end": + return _context.stop(); + } + }, _callee, null, [[2, 24]]); + })); + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; +}()); +export default request; \ No newline at end of file diff --git a/packages/biz/lib/Demo/index.d.ts b/packages/biz/lib/Demo/index.d.ts deleted file mode 100644 index bcc157c..0000000 --- a/packages/biz/lib/Demo/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; -declare const _default: () => React.JSX.Element; -export default _default; diff --git a/packages/biz/lib/index.d.ts b/packages/biz/lib/index.d.ts deleted file mode 100644 index 31f4c03..0000000 --- a/packages/biz/lib/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Demo } from './Demo'; diff --git a/packages/biz/package.json b/packages/biz/package.json index 051b309..75ab54b 100644 --- a/packages/biz/package.json +++ b/packages/biz/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/biz", - "version": "0.2.3", + "version": "0.2.4", "description": "业务库", "keywords": [ "business", @@ -18,6 +18,9 @@ "main": "lib/index.tsx", "module": "es/index.js", "typings": "es/index.d.ts", + "exports": { + "./package.json": "./package.json" + }, "files": [ "es", "lib" @@ -30,8 +33,13 @@ "registry": "http://10.0.0.77:4874" }, "dependencies": { + "@zhst/func": "workspace:^", "@zhst/hooks": "workspace:^", "@zhst/meta": "workspace:^", - "@zhst/func": "workspace:^" + "antd": "^5.12.5", + "base-64": "^1.0.0", + "classnames": "^2.5.1", + "rc-util": "^5.38.1", + "umi-request": "^1.4.0" } } diff --git a/packages/biz/src/BigImageModal/components/navigation/index.less b/packages/biz/src/BigImageModal/components/navigation/index.less new file mode 100644 index 0000000..0a834f9 --- /dev/null +++ b/packages/biz/src/BigImageModal/components/navigation/index.less @@ -0,0 +1,44 @@ +.zhst-image__nav { + position: absolute; + display: flex; + width: 48px; + height: 100%; + flex-shrink: 0; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 0; + + &>button { + & span { + display: flex; + } + } + + :global { + i:hover { + color: #f0f0f0 !important; + } + } + + &--disable { + :global { + i { + color: #f0f0f0; + cursor: not-allowed !important; + } + } + } + + &--hide { + display: none; + } + + &-prev { + left: 20px; + } + + &-next { + right: 20px; + } +} diff --git a/packages/biz/src/BigImageModal/components/navigation/index.tsx b/packages/biz/src/BigImageModal/components/navigation/index.tsx new file mode 100644 index 0000000..7c9700d --- /dev/null +++ b/packages/biz/src/BigImageModal/components/navigation/index.tsx @@ -0,0 +1,39 @@ +import * as React from 'react'; +import classnames from 'classnames'; +import { Button } from 'antd'; +import { Icon } from '@zhst/meta'; +import './index.less'; + +const componentName = `zhst-image__nav`; + +const Navigation: React.FC<{ + show?: boolean; + onClick?: React.MouseEventHandler; + prev?: boolean; + next?: boolean; + disabled?: boolean; + className?: string; + color?: string; + hoverColor?: string; +}> = (props) => { + const { show, prev, next, disabled, onClick, className, color } = props; + + return ( +
+ +
+ ); +}; + +export default Navigation; diff --git a/packages/biz/src/BigImageModal/images/emptyImage.png b/packages/biz/src/BigImageModal/images/emptyImage.png new file mode 100644 index 0000000000000000000000000000000000000000..97629573a5196529f63a8365baeeadab76209c1a GIT binary patch literal 5786 zcmV;L7G>#)P)Py0R7pfZRCodHooj4d$92bd`4%Zsq^uWZNtSHcN#rDoE!&A)M@k*V&ZCVHJ64LM ziBR`TjRFM<^g~g!sQWO`4@rs?MUf(n<6153SbhYF65Dke*sdEluLF4^-N4mbU^nvH#h&drKRON3l=PRCs*JK48*U%Hs_iQKw2+cxUe07d=Y;e zpjbg>lQEDV8y_FHXbheVkumt*21GyT?(Y6BX{T}wS3uy30t^7?I)DEBSLoy~G{xha znp;|y(8on>-~-0Tg8+oT0C;{0eX6IY=TYdW&v!Y+iyG^4Xe1rp#|ZK@I`JMlbtAry zc7<+pDZuzPqMi(+&oK0L=;K{oT~836^7-a+JhbuVLL)~q6!{tr{}UFd>oG`kJ&aJS&UymI*GT{ZJj2cL_>X#edmr%g zYZb36V1|Z*sRSWhDW279DYasjCqI%(CSSq`i#ir8$ZMWDDxFSiXEg?(9L-~>QKVjg$$=!3X<=&aL=V58 zF0jV=U}tCNks6sIS50mkJeN{~0AN`USf0laiwadIpa3K{+OVdHO-@Y2CMPFj3SX{{ zHmBKrJ`Y$%X?q;Hh{b-fZGs-`@kjw6MQ)y&1LoAJQ~iMD-)QXeu&u*z4m^}`z+rRF zjX+_`H!7b%f<9hCsN?=n7ioRx&YkNU9~*m_j{lHV zr1gqFC0Sl6Dgeo26t;b`rU0CDxaxD^;-@qg4z{9$SHP0zJ=6qNg)#MXM@aGssbR2@&rny=m z$x{>C-ogIWALb=S7^!4945bzgiXS_6Y$tQaR|*xVWJ)R|&rbtDQ~0+?ABA3z@Ar9% z#nHX2DM=tfmTrOD0Z62eErL4JrUd>bZngg>m>xwqa=@_H@-4vf2gQ_+8Zdsn7n1!%hablGVdxLi>3KWN#Q+0;lCl@^I=;2FdJH^xtMXZHbiTLqAY1W8cuY4l|442ZOLk}hg=S1TF*I}+ zBg@V(V3|=+9W&9rlSdOD<^0Vm76-kkGFQMNt8HXM@6V$$UsVBf{P^*Y@}%q;l&$Hx zm8gs(xl`=z%t80ZoC3Ht3cafa7^a~O=~U_`T%BD}C|WO>dI*|qz|Fv!>_H!B@&3=y zs*j9SIY)42XlP9$oqho&7thd;N#@lftZm+bXOJ!0LDAN>wzbfQ@D1y<5va8m(^JFh z=qm`EM?8|DqzsQ#=H1;@Ph~*1RR6$mX>$8vlv{mWXUmj z^deZEW0&%N8uw&gVuM5&U5>EmT`hG0wmWLkAgYB@1AFV?=2rG+UJX?s1QVA{252NL4)zGwJz*IwtxgsN(OuDIQE{rnhsF&xy$tK>jgmuibDsCPyWtve( zC^&;$W~th+0}MS!dK&*tHt&8BMXmFIDbuQ)7L27?%jgtf1Gx);<)1j``**w$HyEW} z^MIL!bv4S&_LSf(s++0EAVB#RcR~8>h)(fE?&bkA3lnQIPY2R@)-;RKl@|dV|HWcf z)6O%5BR$UGYda4Z-y$L7dXr&6XJ<(6>ac0iolYkAEL*W+b9E$^FJ&Gu<=f1a&~3Kc zo8i5wD4pujy2*h>?`p+jbvbfsZJY;;Sz;DcYZ;C{M6#J@fD}*^ZWK4GhmSNM&MPCI zWJ73Kqco&mdZ9jtYNF-vsj^hrqR|_mWS6Y1L%$d)fJ$rU-CHl?^FjV{(H0(L9 zuvckNV{S@RVwEz=>i7fC(#j}Nm{rpb-@b_@_y}XQ-|!Sjc!2sgef2E;_BQdYg|#T1 zS~g&)R7V$okBX^Wv+PAL&nNBxrK*^AX5#pdiQ=Mb^=w*J<1(6>+B;@GucQ%Vim6A_Ppuq% zb01#kdvhZSaaI3C{C_A=jw^eFp|abkK%p8@ z)%t{y#H~*Rl!(?RGuemr<@@QMYc(Te`^M9DAvhNUdPXe6N`p>)bVED|~3c#^a2&Doy%7~gLZ*w^n&+|rZ zfjiY#cw4`SPV>wf;tM@Hgubn20k=^VW}B%BG&x&E3UAEjO(PdCUR=RY-QU;O*YIDu z4l2)x8v23?maBJIcRyUfH!*r>bSdR}8I5j$X@4n3<%c#13fu@_Z2jU;OPZUKlnzp_ z-?L{=!AH03VtyCi7uhW84x?0~@StdMqS8xSyHK@Dy{^9CcKh9{vR?pb@E3dqg*uH(c zdl-d1&obiM^1+r427Z4zp)Zo24BLRvfB_S30hJZ(07BTUVFVV10fG?S#;DRoSReiC zLh;W-^#-1b>Wc^~0855+ZEWcesjMN&pLZcFfbBZuv0vXM)5l_4wrq)Ur#g}aDdNxm*#^@Zyr!r#N&XjHPf$3+zKwmX*>@U3CA+75RPIu95f>8Y)ymBMeW=f1iu^3G9B<7e}9Hn$kby zo?fwH#i*Ze@o6KBz;N{F(Z%?y077dPwGMeyv2<-JNw)j35 zsk_s}PHwaiRfEaTtymRzhRdcE%2%2>c(rz!pii}?arXD+QExZ)?`G5)=O1xTU3Jw} z(_W6t0}R{$3*US1J>A7z8Y0lilvTx4q(8YF!oN&M>M!;7GpxO39WEXt6M&5fbM7dW<{x8sleU|`e7Oex`)T++(8XE4NC@&Hk?RTF z%L4FmZ23Ix)LJFCh=tF!UsPq#r;y$3j#Vrc&hZ;4xEKYLN&Y(_#p|@TbjahUZ&Zh- zvUd1a@$H{6Mw{cvNJzMx36671wiJPjrIadBriDcvGwBM0#H9e{t2FX;u6(UsidvS6 zZ$|E?D5}-_9uWK-bVm8b@}+}0>TUr%+u+qd+iyk%C)4t)L6LcE^y0G z|0}lHZ}ubZ>?(@vl5-~#+17u)ed@`L=re3l}|*R5N3PHAq0 z;Z|7BdbCcNanWM}X@~f9H6&3a4G0`y07qP5Q3+QV_Xd1pq^(2Q9}C4OpzLYRM+ z?n?AK3}*GLhDRHkT^Rnwj2icHHSYzvdn}&{upV4mj|PGHUFh>rcMxN6}RQak$ zGJ^F5_4WBBpHU~pTIXjJ{~1^JGCFZPK>scB)<|YG9AF$_*nJvhk0}HCZ^&Cd8qRXzy6@kCf{gKH=2Yyj6Wzt;b0xsZll(2qo$Wp z<1=b}jGmKkzWL^`z#{P2+C*VpA#v`vJ2->eiBaO+-Q6+ft(d5sg+=B3e3uyb@%aN; zE?91PpTCrRzrL_>&K~!&-q9V_U85r-$#`?~BiQCe{v{-1I!Kmn2OXd6eG(!6UWtvx?6YJNn*T(F$ zwM{`Fn2j~!3=9mkg0@x~GwpWN2Z)s`MoSscFUPzY1GF(wISY%1apl(M%k<0p`Ik%k zIo_b#?*vqq_RH2BrA=+#yjg1#{n6>P(Zsip z;-LW(ESv>T6QfTv!+JC4X58X=`SRsDR~i$Qql4lYIU}k#Bb5${>+G*nt`xtO6;*lP zm6C6DiK?tG&oA%G_v3zfYpbYSsrJ;n{q$9eX)v{K-@cR`828&)Dn4zRDOEuESu|=t z-|guOK)ZJBYGU`diQ&yr@o9}fnxl&IEF#8{Kt~lisiDbEv7Ftj?bNNv#_WN`TEte{Q~FOwQKdr$GrB;3SM}*28IaCYJ>?P z*WGc!7k}xcmzr2eX~Rqp+9Injj82y;58DCSjLdA>v`OF)D5?UELiVa@2WF=->7jb9 zZlkd`-gqNUqcfs~l(jrj<(J|wB%_?PQuUR}_v?aRI>$t_PVG=zL$!x;0)(977p=yq z;Uvz*9|0=h*-Xut*Q+e@iW_Zu^2sM%STq>+%2^rXan#BLsmht0VAyz6cQ)VYW8pIL z^W+Egv~~t*&K7gAFB?i{4DF05r4%;hEL<$#_>30dH@T9T3x}0wa%Z5XtCK$iU&Cho YKZ_v3%v7MbF#rGn07*qoM6N<$g4h-+kpKVy literal 0 HcmV?d00001 diff --git a/packages/biz/src/BigImageModal/images/percent_background.png b/packages/biz/src/BigImageModal/images/percent_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ebde317c473fda46d686dce6ffba98db676f331e GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^1wgFB!3HGvuCY1Jz`%IY)5S5QBJS-RYky`#ffjXL z-6Hmn8Q4;CoAn~}k_ zgW(?Yj*eGfxmGY134fY$J=J!{$wg8RvLC#BaB-8+1Kx)0+#eg)F`bBcXZz`uXaHkP zhUL6}d}8k$87D|j?{9sbwY!$pLG5MvHtUET%B%<68GLRT^KfY}?0dT9sDodH(C3%j z_VYxH4H$aQhcZYV4co!x(7MWPHe-fJ^g}HM(N$8pYzqQ&T30iKtjO9T+2FQObRAQ` z!c`a3uqzH@PT6XzebLB=D}*_v_|#_2Z#x91h;EwFq$(<@#=0t9p?l^fp|mD<^QjEM zXHrQ%!{C#rY{sXUB^51Ds zIdG$NO36ay9Xn^w*y730@V1)ce=Kw5p+k}7MiGCy`Jd}IFq;2R{v>>$L0aa{GSdmO yCvVbutton { + display: flex; + align-items: center; + color: #fff !important; + } + + &--disabled { + opacity: 0.3; + + &>button { + color: #fff !important; + } + } + } + + &__nav:hover { + background: #09f; + color: #fff !important; + } + } + + &-tool-container { + width: 100%; + height: 40px; + margin-bottom: 16px; + } + + &__face-score { + position: absolute; + right: 90px; + bottom: 80px; + color: red; + font-family: 'Microsoft YaHei'; + font-size: 19px; + font-weight: bold; + } + + &-carousel-container { + position: relative; + width: 100%; + height: 100px; + margin-top: 16px; + margin-bottom: 24px; + } +} +.zhst-image__img-view { + position: relative; + width: calc(100% - 46px - 46px - 20px - 20px); + height: 100%; + margin: 0 66px; + + &-opt { + position: absolute; + z-index: 99; + top: 0; + } + + &-crop-opt { + position: absolute; + z-index: 99; + top: 0; + right: 0; + } + + &-align { + position: absolute; + top: 0; + left: 0; + pointer-events: none; + } + + &-main { + // height: 532px; + width: 100%; + height: 100%; + + &--cursor { + & canvas { + cursor: pointer !important; + } + } + } + + &-screenshot { + position: absolute; + z-index: 10; + } + + &-attach { + position: absolute; + z-index: 11; + bottom: 0; + + // left: 78px; + left: 0; + min-width: 120px; + height: 202px; + transition: all 200ms; + + &--fixed { + width: 152px !important; + background-color: #fff; + } + + &--zoomin { + height: 532px; + + &--fixed { + width: 398px !important; + } + } + + &__tab { + position: absolute; + top: 0; + left: 0; + display: flex; + + &-item { + display: flex; + width: 30px; + height: 24px; + align-items: center; + justify-content: center; + background: #000; + color: #fff; + cursor: pointer; + font-size: 12px; + opacity: 0.5; + transition: all 200ms; + + &--select { + width: 48px; + height: 34px; + background: #09f; + opacity: 1; + } + } + } + + &__scale { + position: absolute; + top: 4px; + right: 4px; + display: flex; + width: 30px; + height: 30px; + align-items: center; + justify-content: center; + background: rgb(0 0 0 / 60%); + border-radius: 100%; + cursor: pointer; + line-height: 30px; + text-align: center; + } + + &__img { + height: 100%; + object-fit: contain; + + &--fixed { + width: 100%; + object-fit: contain; + } + } + } +} + +.zhst-image__video-view { + position: relative; + overflow: hidden; + width: 100%; + height: 532px; + background-color: #333; + + // &-flv { + // width: 85%; + // } + &-screenshot { + position: absolute; + z-index: 10; + } + + &-crop-container { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + + &-align { + position: absolute; + top: 0; + left: 0; + pointer-events: none; + } + + &-opt { + position: absolute; + z-index: 99; + bottom: 0; + display: flex; + width: 100%; + height: 32px; + box-sizing: border-box; + align-items: center; + padding: 0 12px; + background-color: rgb(0 0 0 / 80%); + line-height: 32px; + + &>div:first-child { + display: flex; + align-items: center; + margin-right: 12px; + } + + &>div:last-child { + display: flex; + align-items: center; + margin-left: 12px; + } + + &-range { + display: flex; + height: 32px; + flex: 1; + align-items: center; + line-height: 32px; + text-align: center; + + &>div:first-child { + flex: 1; + } + + &>div:last-child { + width: 100px; + margin-left: 8px; + color: #fff; + } + } + } + + &__player-mask { + position: absolute; + z-index: 99; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-color: rgb(4 4 4 / 70%); + + &--bg { + z-index: 999; + background-color: rgb(4 4 4 / 100%); + } + + i { + cursor: pointer; + } + + &-title { + margin-top: 12px; + color: #fff; + text-align: center; + + & a { + color: #09f; + cursor: pointer; + text-decoration: underline; + } + } + } + + &__icon-wraper { + display: flex; + width: 80px; + height: 80px; + align-items: center; + justify-content: center; + background-color: rgb(255 255 255 / 10%); + border-radius: 50%; + cursor: pointer; + line-height: 80px; + text-align: center; + + // &:hover { + // background: #0099ff; + // } + } +} + +.zhst-image__tool { + display: flex; + width: 100%; + align-items: center; + font-size: 14px; + + &-split { + width: 0; + height: 14px; + + &::before { + display: block; + height: 100%; + border-left: 1px solid #e6e7eb; + content: ''; + } + } + + &-zoom { + display: inline-flex; + align-items: center; + + &> :not(:last-child) { + margin-right: 14px; + } + + &__scale { + display: inline-block; + width: 38px; + height: 14px; + + // margin-left: 15px; + box-sizing: content-box; + border: 1px solid rgb(77 77 77 / 100%); + margin-top: 2px; //对齐 + background: rgb(255 255 255 / 100%); + border-radius: 2px; + color: #4d4d4d; + cursor: default; + font-size: 12px; + line-height: 14px; + text-align: center; + } + } + + &-switch { + display: flex; + width: 30px; + flex-shrink: 0; + align-items: center; + justify-content: center; + margin: 0 26px; + } + + &-left { + display: flex; + flex: 1; + align-items: center; + justify-content: flex-end; + + &> :not(:last-child) { + margin-right: 14px; + } + } + + &-right { + display: flex; + flex: 1; + align-items: center; + justify-content: flex-start; + + &> :not(:first-child) { + margin-left: 20px; + } + } + + &-icon-container { + font-size: 14px; + + &--active { + color: #5584ff !important; + } + + &> :first-child { + margin-right: 2px; + } + } +} + +.zhst-image__carousel { + position: relative; + display: flex; + width: 742px; + height: 100px; + align-items: center; + justify-content: center; + border: 1px solid #f0f0f0; + margin: 0 auto; + background: #fafafa; + border-radius: 2px; + user-select: none; + + &-container { + width: (58px + 8px) * 10; + } + + &-item { + display: flex; + width: 58px + 8px; + align-items: center; + justify-content: center; + } + + &-item-img { + /* 尝试消除transform 副作用 */ + position: relative; + z-index: 99; + + // width: 58px; + // height: 76px; + display: flex; + width: 66px; + height: 84px; + box-sizing: border-box; + align-items: center; + justify-content: center; + background: #fafafa; + cursor: pointer; + + /* 尝试消除transform 副作用 end */ + &--active { + border: 2px solid #09f; + border-radius: 1px; + } + + &>div { + /* 尝试消除transform 副作用 */ + position: relative; + z-index: 99; + overflow: hidden; + width: 58px; + height: 76px; + + /* 尝试消除transform 副作用 end */ + &>img { + width: 58px; + height: 76px; + object-fit: contain; + transition: all 0.2s; + + &:hover { + transform: scale(1.5); + } + } + } + } +} + +.zhst-image__header { + width: 100%; + // margin-top: 3px; + margin-bottom: 10px; + + &__pad0 { + padding: 0; + } + + &__pad66 { + padding: 0 66px; + } + + &__bar { + display: flex; + width: 100%; + background: #f6f6f6; + // box-shadow: 0px 0px 8px 0px rgba(172, 172, 172, 0.5); + justify-content: center; + // border-color: #f0f0f0; + // border-bottom-width: 1px; + // border-bottom-style: solid; + } + + &__barNoColor { + display: flex; + width: 100%; + justify-content: center; + + border-color: #f0f0f0; + border-bottom-width: 1px; + border-bottom-style: solid; + } + + &__item { + position: relative; + display: flex; + height: 40px; + align-items: center; + justify-content: center; + margin: 0 15px; + color: #999; + cursor: pointer; + font-size: 14px; + font-weight: bold; + line-height: 19px; + transition: font-size 0.3s ease; + + &:hover { + // font-size: 18px; + color: #333; + } + + &::before { + position: absolute; + bottom: 0; + left: 50%; + width: 0; + border-bottom: 2px solid #09f; + content: ''; + transition: all 0.3s ease; + } + + &--active { + background-color: transparent; + color: #333; + font-size: 18px; + + // color: #0099ff; + &::before { + left: 0; + width: 100%; + } + } + } +} + +.zhst-image__btn-group { + // display: flex; + width: 30px; + box-shadow: 0 2px 6px 0 rgb(0 0 0 / 40%); + + &__item { + display: flex; + width: 30px; + height: 30px; + align-items: center; + justify-content: center; + background: #000; + + &>button { + padding: 0; + color: #fff; + + &:hover { + color: #09f; + } + + &:active { + color: #09f; + } + + &:focus { + color: #fff; + } + + &>span { + display: flex; + } + } + + &--active { + &>button { + color: #09f; + } + } + } + + &--circle { + background-color: none; + box-shadow: none; + } + + &--circle &__item { + margin-bottom: 4px; + border-radius: 50%; + } +} + +.zhst-image__compater-view { + display: flex; + width: 100%; + align-items: center; + justify-content: center; + + &>div:first-child { + margin-right: 25px; + } + + &>div:last-child { + margin-left: 25px; + } + + &__container { + position: relative; + width: 345px; + height: 460px; + box-sizing: content-box; + border: 1px solid #f0f0f0; + } + + &__view { + width: 345px; + height: 460px; + } + + &__label { + position: absolute; + z-index: 99; + top: 0; + left: 0; + display: flex; + height: 34px; + align-items: center; + justify-content: center; + + // width: 48px; + padding: 0 6px; + background: #09f; + color: #fff; + } + + &__tool { + display: flex; + width: 345px; + height: 40px; + align-items: center; + justify-content: center; + background: #f9f9f9; + + i, + span { + color: #333 !important; + } + + i { + margin-right: 4px; + } + + &>*:not(:last-child) { + margin-right: 20px; + } + + &__scale { + display: inline-block; + width: 38px; + height: 16px; + + // margin-left: 15px; + box-sizing: content-box; + border: 1px solid rgb(77 77 77 / 100%); + background: rgb(255 255 255 / 100%); + border-radius: 2px; + color: #4d4d4d; + cursor: default; + font-size: 12px; + line-height: 16px; + text-align: center; + } + + &__line { + width: 1px; + height: 14px; + background: #e6e6e6; + } + } + + &__empty { + position: absolute; + z-index: 9; + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + background: #f9f9f9; + transform: translateY(-100%); + + &>img { + width: 140px; + height: 80px; + } + + &--text { + color: #999; + font-size: 14px; + line-height: 22px; + } + } + + &__scoll-module { + position: absolute; + top: 0%; + left: 0%; + display: flex; + width: 100%; + height: 100%; + align-items: flex-end; + justify-content: space-between; + pointer-events: none; + + &__btn { + display: flex; + width: 50px; + height: 50px; + align-items: center; + justify-content: center; + margin: 6px; + border-radius: 50%; + opacity: 0.5; + pointer-events: all; + + &>span { + display: flex; + align-items: center; + justify-content: center; + } + } + + &__btn:hover { + background-color: #09f !important; + color: #fff !important; + } + } +} + +.zhst-image__trackmodel { + &__panel { + position: relative; + z-index: 99; + top: 0; + right: 0; + width: 320px; + height: 100%; + background-color: #fff; + + &--head { + width: 100%; + height: 40px; + padding: 0 16px; + border-bottom: 1px solid #f0f0f0; + color: #333; + font-size: 14px; + font-weight: bold; + line-height: 40px; + text-align: left; + } + + &--track { + height: calc(100% - 40px); + } + + &-date { + padding: 10px 6px; + + // position: absolute; + } + } + + &--bigImage { + position: absolute; + z-index: 100; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + justify-content: center; + padding-top: 59px; + background: rgb(0 0 0 / 40%); + + &--image { + width: 946px; + height: 532px; + + &>img { + width: 946px; + height: 532px; + object-fit: contain; + } + } + + &--close { + margin-left: 16px; + color: #fff; + } + } + + &__flooter { + position: absolute; + z-index: 999; + bottom: -124px; + left: 0; + width: calc(100% - 320px - 10px); + height: 144px; + background: #fff; + box-shadow: 0 0 8px 0 rgb(172 172 172 / 50%); + + &--head { + display: flex; + height: 20px; + align-items: center; + justify-content: center; + background: #f6f6f6; + color: #999; + line-height: 16px; + } + + &--body { + display: flex; + height: calc(100% - 20px); + padding-left: 50px; + + &__title { + color: #333; + font-size: 12px; + font-weight: bold; + line-height: 16px; + } + + &__text { + overflow: hidden; + color: #333; + font-size: 12px; + line-height: 16px; + text-overflow: ellipsis; + white-space: nowrap; + } + + &--left { + display: flex; + width: 75px; + height: 100; + align-items: center; + + &>img { + width: 75px; + height: 100px; + object-fit: contain; + } + } + + &--middle { + display: grid; + width: 331px; + justify-content: flex-start; + padding: 8px 20px; + border-right: 1px solid #f0f0f0; + + &>div { + display: flex; + } + } + + &--right { + display: grid; + width: calc(100% - 331px - 75px); + padding: 8px 20px; + + &>div { + display: flex; + } + + &__button-list { + display: flex; + align-items: center; + + &>button { + margin-right: 20px; + + &>span { + color: #09f !important; + } + + &:hover { + &>span { + color: #247fdb !important; + } + } + } + } + } + } + + @keyframes close { + from { + bottom: 0; + } + + to { + bottom: -124px; + } + } + + @keyframes open { + from { + bottom: -124px; + } + + to { + bottom: 0; + } + } + + &--close { + bottom: -124px; + animation-duration: 1s; + animation-name: close; + } + + &--open { + bottom: 0; + animation-duration: 1s; + animation-name: open; + } + } +} + +.zhst-image__null { + display: flex; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + + &__text { + // margin-left: 105px; + margin-top: 8px; + color: #999; + font-size: 14px; + width: 100%; + text-align: center; + } +} + +.zhst-image__score { + display: flex; + flex-direction: column; + align-items: center; + + &-box { + position: relative; + display: flex; + box-sizing: border-box; + align-items: center; + justify-content: center; + margin-bottom: 12px; + border-radius: 50%; + + &-bg { + display: flex; + overflow: hidden; + box-sizing: border-box; + align-items: flex-end; + justify-content: center; + border: 2px solid #fff; + background-color: #fff; + border-radius: 50%; + + &-inner { + width: 100% !important; + height: 0; + } + } + } + + &-score { + position: absolute; + top: 50%; + left: 50%; + color: rgb(0 0 0 / 88%); + font-size: 28px; + transform: translate(-50%, -50%); + } + + &-text { + width: 54px; + height: 24px; + color: rgb(0 0 0 / 88%); + font-size: 18px; + line-height: 24px; + } +} + +.zhst-image__CornerScore { + position: absolute; + right: 0; + bottom: 0; + width: 56px; + height: 22px; + line-height: 22px; + text-align: right; + vertical-align: bottom; + padding-right: 1px; + background-size: 100%; + background-image: url('./images/percent_background.png'); + z-index: 99; + + &>span { + padding-right: 6px; + line-height: 22px; + font-size: 12px; + vertical-align: middle; + color: rgba(255, 255, 255, 1); + } +} + +.zhst-image__attributePanel { + margin: 0 66px; + background: #f6f6f6; + margin-top: 20px; + padding-top: 16px; + display: flex; + justify-content: center; + + &>div:first-child { + width: fit-content; + display: flex; + flex-direction: column; + } + + &-title { + color: rgb(0 0 0 / 88%); + font-weight: bold; + padding-bottom: 12px; + } + + &-item { + display: flex; + } + + &-label { + color: rgb(0 0 0 / 45%); + } + + &-value { + color: rgb(0 0 0 / 88%); + } +} + +.relatedWrapper { + width: 100%; + height: 100px; + padding: 0 30px; + margin-bottom: 30px; + box-sizing: border-box; + + .relatedTabs { + width: 100%; + height: 100px; + } + + .relatedContent { + width: 100%; + height: 100px; + + display: flex; + + .relatedPics { + width: 742px; + height: 100px; + // display: flex; + // box-sizing: border-box; + // background: #fafafa; + // border-radius: 2px; + // border: 1px solid #f0f0f0; + // .LeftBtn, + // .RighttBtn { + // width: 34px; + // height: 100%; + // display: flex; + // justify-content: center; + // align-items: center; + // } + // .ListContent { + // flex: 1; + // height: 100%; + // } + } + + .disabled { + color: rgba(0, 0, 0, 0.25); + } + + .relatedBtn { + flex: 1; + font-size: 14px; + color: #333333; + display: flex; + align-items: flex-end; + cursor: pointer; + + &:hover { + color: #0099ff; + } + } + } + + :global { + .ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane { + padding-left: 16px; + } + + .ant-tabs-tab { + padding: 8px 12px !important; + text-align: right !important; + } + + .ant-tabs .ant-tabs-tab { + font-size: 14px; + font-weight: bold; + text-align: right; + justify-content: flex-end; + } + } +} diff --git a/packages/biz/src/BigImageModal/index.md b/packages/biz/src/BigImageModal/index.md new file mode 100644 index 0000000..621318d --- /dev/null +++ b/packages/biz/src/BigImageModal/index.md @@ -0,0 +1,76 @@ +--- +nav: + title: 业务组件 +group: + title: 数据展示 + order: 1 +--- + + +# 大图弹框 + +```jsx +import React from 'react'; +import { Button } from 'antd' +import { BigImageModal } from '@zhst/biz' +import { DescriptionsProps } from '@zhst/biz' +import { IMAGE_DATA } from './mock.ts' + +const descriptionList: DescriptionsProps['items'] = [ + { + title: '人员属性', + children: [ + { + key: '1', + label: '性别', + children: '男', + }, + { + key: '2', + label: '年龄', + children: '成年', + }, + { + key: '3', + label: '帽子', + children: '无', + }, + { + key: '4', + label: '上身颜色', + children: '灰', + }, + { + key: '5', + label: '下身颜色', + children: '蓝色', + }, + { + key: '6', + label: '附着物', + children: '无', + }, + { + key: '7', + label: '骑行', + children: '否', + }, + ] + } +]; + +export default () => { + console.log(IMAGE_DATA) + + return ( + + ) +} +``` diff --git a/packages/biz/src/BigImageModal/index.temp.tsx b/packages/biz/src/BigImageModal/index.temp.tsx new file mode 100644 index 0000000..0e861cc --- /dev/null +++ b/packages/biz/src/BigImageModal/index.temp.tsx @@ -0,0 +1,696 @@ +// @ts-nocheck +import React, { ReactElement, useEffect, useRef, useState, useMemo } from 'react'; +import { useLatest, useThrottleFn } from 'ahooks'; +import { isFunction, pick, noop, get, isEmpty } from 'lodash-es'; +import classNames from 'classnames'; +import { message, Modal, Tabs as TabPane } from 'antd'; +import KeyCode from 'rc-util/lib/KeyCode'; +import { observer } from 'mobx-react-lite'; +import ImgView, { ImgViewProps, ImgViewRef } from './ImgView'; +import VideoView, { VideoViewProps, VideoViewRef } from './VideoView'; +import CompareView from './CompareView'; +import Tool, { ToolProps } from './Tool'; +import Header, { Tabs, TabsType, tabsFilter } from './Header'; +import Navigation from './Nav'; +import AttributePanel from './AttributePanel'; +import { usePropState, cssPrefix, getSolt } from './utils'; +import { screenshotButtonProp, MODEL_TYPE, Rect } from '../adapter/BigImageModalAdapter/interface'; +import NullView, { NullDialogProp } from './NullDialog'; +import styles from './index.module.scss'; +import { generateImg } from '@common/utils'; +import IconFont from '../iconfont/IconFont'; +import addEventListenerWrap from '@common/utils/addEventListener'; +import Carousel, { CarouselProps } from './Carousel'; +import { doubleClick } from '@common/components/doubleCheck'; +import { store } from '@store/index'; +import { store as achieveStore } from '@pages/archive/store'; +import { ObjectType } from '@store/Monitor'; + +const componentName = cssPrefix; + +export type selecItem = Partial> & + Partial>; + +export interface ParamProps { + tab: string; + selectItem: selecItem; + imgViewRef: React.MutableRefObject; + VideoViewRef: React.MutableRefObject; + model: MODEL_TYPE; + setModel: React.Dispatch>; + /* 可观测值 */ + scale$: number; + showCrop$: boolean; +} + +export interface BigImageData { + //imageKey 小图 + extendRectList: (Rect & { algorithmVersion: AlgorithmVersionStr; imageKey: string })[]; + rectList: (Rect & { algorithmVersion: AlgorithmVersionStr; imageKey: string })[]; + attachImg: { url: string; label: '形体' | '人脸' }[]; + odRect: Rect; + imageKey: string; //大图 + imgSummary: string; //摘要图 + + objectExtImageKey: string; //比对到的目标图扩展图 === imgSummary + attributeList: { label: string; list: any[] }[]; + archiveImages?: any; + spaceName: string; + + objectType: ObjectType; + objectId: string; //这张摘要本身的Id + bodyObjectId?: string; + faceObjectId?: string; //这张摘要下的人脸Id(如果有) + sourceObjectId?: string; //这张摘要上游的形体Id(如果有) + cameraId: string; + cameraName: string; + selectIndex: number; + humanProperty: HumanProperty; + qualityScore?: number; //人脸质量分 + score: number; //相似度 + timestamp: string; + bodyImageUrl: string; + faceImageUrl: string; + algorithmVersion: AlgorithmVersionStr; + + bodySpaceName: string; + faceSpaceName: string; + + solutionId?: Solution; + [index: string]: any; +} + +export interface BigImageDialogProps { + visible?: boolean; + defaultModel?: MODEL_TYPE; + onClose?: () => void; + isLoading?: boolean; + hasPre?: boolean; + hasNext?: boolean; + selectIndex?: number; + onSelectIndexChange?: (index: number) => void; + dataSource: any[]; + relatedData?: any[]; + transformPropFunc: (item: any) => selecItem; + transformVideoPropFunc: ( + item: selecItem + ) => Promise>; + screenshotButtonRender?: (screenshotButtonProp: screenshotButtonProp) => ReactElement; + showTool?: boolean; + showCarousel?: boolean; + imgViewProp?: Partial; + videoViewProp?: Partial; + ToolProps?: Partial; + nullDialogProp?: Partial; + showHeader?: boolean; + tabsFilter?: tabsFilter; + useVirtual?: boolean; + loadNext?: (index: number) => Promise; + loadPre?: (index: number) => Promise; + children: React.ReactNode; + title?: string; + specialTitle?: string; + isRelated?: boolean; + carouselProp?: Partial; +} + +//查看对比图和场景图组件 +const BigImageDialog: React.FC = (props) => { + const { + hasPre: propHasPre = false, + hasNext: propHasNext = false, + loadNext = noop, + loadPre = noop, + visible = true, + onClose, + isLoading: propIsLoading = false, + selectIndex: propSelectIndex = 0, + onSelectIndexChange, + dataSource = [], + relatedData = [], + screenshotButtonRender, + transformPropFunc, + transformVideoPropFunc, + defaultModel = 'IMAGE', + imgViewProp: otherImgViewProp, + videoViewProp: otherVideoViewProp, + carouselProp: otherCarouselProp, + ToolProps: otherToolProp, + showTool = true, + children, + nullDialogProp, + showHeader = true, + tabsFilter = ['COMPATER', 'NORMAL'], + useVirtual, + title = '查看大图', + specialTitle = '', + showCarousel = true, + isRelated = false, + } = props; + + console.log('props', props) + //可观测值 + const showCrop$Ref = useRef(false); + const scale$Ref = useRef(0); + const showCrop$ = showCrop$Ref.current; + const scale$ = scale$Ref.current; + // ========================== 头切换 ========================= + const [tab, setTab] = useState( + tabsFilter.length > 1 ? (Object.keys(Tabs)[0] as TAB_TYPE) : (Object.keys(Tabs)[1] as TAB_TYPE) + ); + const [activeKey, setActiveKey] = useState('related'); + const [similarList, setSimilarList] = useState(dataSource); // 其他相似目标列表 + const [relatedList, setRelatedList] = useState(relatedData); // 已关联列表 + const [imageData, setImageData] = useState(dataSource); // 其他相似目标列表 + const lastSimData = useLatest(similarList); + const lastRelatedData = useLatest(relatedList); + + // ========================== 内部转换 ========================= + const [model, setModel] = useState(defaultModel); // 图片/视频模式 + useEffect(() => { + if (activeKey === 'unRlated') { + setImageData(lastSimData.current); + setSelectIndex(0); + } + if (activeKey === 'related') { + setImageData(lastRelatedData.current); + setSelectIndex(0); + } + }, [activeKey]); + useEffect(() => { + setSimilarList(dataSource); + if (activeKey === 'unRelated') { + setImageData(dataSource); + } + }, [dataSource]); + + const carouseDataSource = useMemo(() => { + return imageData.map((v: any, index: number) => { + return { + url: generateImg(get(v, 'passerbyImage.objectRects.0.fileKey')), + key: index, + passerbyId: get(v, 'passerbyId'), + }; + }); + }, [imageData, dataSource]); + + //选择 + const [selectIndex, setSelectIndex] = usePropState(propSelectIndex); + const hasPre = propHasPre ? true : selectIndex > 0; + const changeIndex = isRelated ? imageData.length - 1 : dataSource.length - 1; + const hasNext = propHasNext ? true : selectIndex < changeIndex; + //设置选中 + const latestSelectIndex = useLatest(selectIndex); + const latestDataSource = isRelated ? useLatest(imageData) : useLatest(dataSource); + //加一个防背推 + const seq = useRef(0); + const { run: setSelectIndexWrapper } = useThrottleFn( + async (arg: ((num: number) => void) | number) => { + const _seq = ++seq.current; + const selectIndex = latestSelectIndex.current; + const dataSource = latestDataSource.current; + let newIndex = isFunction(arg) ? arg(selectIndex) : arg; + if (newIndex > dataSource.length - 1) { + if (propHasNext) { + await loadNext(newIndex); + } else { + newIndex = dataSource.length - 1; + } + } + if (newIndex < 0) { + newIndex = 0; + } + if (_seq !== seq.current) { + return; + } + + onSelectIndexChange && onSelectIndexChange(newIndex); + setSelectIndex(newIndex); + }, + { wait: 500 } + ); + + //异步获取数据 + const [selectItem, setSelectItem] = useState(null); + const [isFetching, setIsFetching] = useState(true); + //人员属性 + const [attributeList, setAttributeList] = useState([]); + const isLoading = useMemo(() => propIsLoading || isFetching, [propIsLoading, isFetching]); + useEffect(() => { + (async () => { + setIsFetching(true); + let data: any = {}; + if (isRelated) { + data = await transformPropFunc(imageData[selectIndex]); + } else { + data = await transformPropFunc(dataSource[selectIndex]); + } + setAttributeList(get(data, 'attributeList', [])); + //防背推 + if (selectIndex === latestSelectIndex.current) { + setSelectItem(data); + setIsFetching(false); + } + })(); + }, [selectIndex, dataSource, imageData, isRelated]); + + const selectqualityScore = useMemo(() => { + return get(selectItem, 'qualityScore'); + }, [selectItem]); + //支持视频url异步获取 + const [flvUrl, setFlvUrl] = useState(null); + const [maxDuration, setMaxDuration] = useState(null); + useEffect(() => { + (async () => { + if (model === 'IMAGE') { + setFlvUrl(null); + setMaxDuration(null); + return; + } + + if (isFunction(transformVideoPropFunc)) { + //先情空 + setFlvUrl(null); + setMaxDuration(null); + const { flvUrl, maxDuration } = await transformVideoPropFunc(selectItem); + //防背推 + if (selectIndex === latestSelectIndex.current) { + setMaxDuration(maxDuration); + setFlvUrl(flvUrl); + } + } else { + setFlvUrl(get(selectItem, 'flvUrl')); + setMaxDuration(get(selectItem, 'maxDuration')); + } + })(); + }, [selectItem, model]); + + //切换选中index时候变更key 让组件走销毁逻辑 减少大图/视频组件内部逻辑复杂度 + const key = 0 + const imgCmpKey = useMemo(() => `img-key-${key}`, [key]); + const videoCmpKey = useMemo(() => `video-key-${key}`, [key]); + + // ========================== 分离参数 ========================= + const CompareViewProp = { + targertImg: generateImg(get(selectItem, 'imgSummary', '')), // 对比图 + score: get(selectItem, 'score'), + similarScore: get(selectItem, 'similarScore'), + sourceImg: + get(selectItem, 'constractKey', '') || + get(selectItem, 'compaterImages.0') || + generateImg(get(selectItem, 'imgSummary', '')), + compaterImages: get(selectItem, 'compaterImages', []), + specialTitle, + isRelated, + }; + const carouselProp = { + selectIndex, + setSelectIndex: setSelectIndexWrapper, + hasPre, + hasNext, + dataSource: carouseDataSource, + ...otherCarouselProp, + } as CarouselProps; + const imgViewProp = { + ...pick(selectItem, ['imageKey', 'odRect', 'attachImg', 'score']), + screenshotButtonRender, + ...otherImgViewProp, + showCrop$, + scale$, + } as ImgViewProps; + + const videoViewProp = { + flvUrl, + maxDuration, + screenshotButtonRender, + ...otherVideoViewProp, + showCrop$, + } as VideoViewProps; + + const ToolProps = { + ...otherToolProp, + isGray: true, + } as ToolProps; + + // ========================== 插槽参数 ========================= + const imgViewRef = useRef(null); + const VideoViewRef = useRef(null); + scale$; + const param: ParamProps = { + tab, + selectItem, + imgViewRef, + VideoViewRef, + model, + setModel, + showCrop$, + scale$, + }; + const slots = getSolt(children, param); + + // ========================== 监听键盘 ========================= + useEffect(() => { + const onKeyDown = (event) => { + const { keyCode } = event; + if (keyCode === KeyCode.LEFT) { + setSelectIndexWrapper((pre) => --pre); + } + if (keyCode === KeyCode.RIGHT) { + setSelectIndexWrapper((pre) => ++pre); + } + }; + document.addEventListener('keydown', onKeyDown); + return () => { + document.removeEventListener('keydownm', onKeyDown); + }; + }, []); + + // ========================== 监听滚轮 ========================= + React.useEffect(() => { + const mousewheelListener = (e) => { + e.preventDefault(); + let direction = 0; + if (e.wheelDelta) { + //IE/Opera/Chrome + if (e.wheelDelta > 0) { + //向上滚动事件 + direction = 1; + } else { + //向下滚动事件 + direction = -1; + } + } else if (e.detail) { + //Firefox + if (e.detail < 0) { + //向上滚动事件 + direction = 1; + } else { + //向下滚动事件 + direction = -1; + } + } + setSelectIndexWrapper((pre) => { + return direction < 0 ? pre + 1 : pre - 1; + }); + }; + let handleMouseWheel; + if (store.bigImgScrollEmit) { + handleMouseWheel = addEventListenerWrap(document, 'mousewheel', mousewheelListener); + } else { + handleMouseWheel?.remove(); + } + return () => { + handleMouseWheel?.remove(); + }; + }, [store.bigImgScrollEmit]); + + const tabList = [ + { + key: 'related', + label: '关联的目标', + children: ( +
+ {showCarousel && ( +
+ +
+ )} +
{ + if (isEmpty(relatedList)) { + e.stopPropagation(); + } else { + try { + const { archiveId, passerbyId } = selectItem; + if (archiveId && passerbyId) { + doubleClick({ + title: '确认取消关联,取消后可在“其他相似目标推荐”处再次关联', + checkboxLabel: '同时移除档案对应轨迹', + checked: true, + onOk: async () => { + try { + await achieveStore.archive.UnLinkTarget(passerbyId, archiveId); + message.success('目标已成功取消关联!'); + // 更新已关联目标列表 + const { relatedPassersby } = await achieveStore.archive.GetRelatedArchive( + archiveId + ); + setRelatedList(relatedPassersby); + setImageData(relatedPassersby); + // 更新当前相似目标列表 + const { similarPassersby } = + await achieveStore.archive.GetSimilarPasserbyList(archiveId); + setSimilarList(similarPassersby); + setSelectIndex((pre) => { + if (pre > 0) { + return pre - 1; + } else { + return 0; + } + }); + } catch (e) { + message.success('目标取消关联失败!'); + console.error(e); + } + }, + }); + } + } catch (e) { + console.error(e); + } + } + }} + > + + 取消关联 +
+
+ ), + }, + { + key: 'unRlated', + label: '其他相似目标推荐', + children: ( +
+ {showCarousel && ( +
+ +
+ )} + +
{ + if (isEmpty(lastSimData.current)) { + e.stopPropagation(); + } else { + try { + const { archiveId, passerbyId, archiveGroupId, trajectoryId } = selectItem; + + if (archiveId && passerbyId && archiveGroupId && trajectoryId) { + await achieveStore.archive.LinkTarget({ + passerbyId, + archiveId, + archiveGroupId, + trajectoryId, + }); + message.success('目标已成功关联!'); + // 更新当前相似目标列表 + const { similarPassersby } = await achieveStore.archive.GetSimilarPasserbyList( + archiveId + ); + setSimilarList(similarPassersby); + setImageData(similarPassersby); + + // 更新已关联目标列表 + const { relatedPassersby } = await achieveStore.archive.GetRelatedArchive( + archiveId + ); + setRelatedList(relatedPassersby); + setSelectIndex((pre) => { + if (pre > 0) { + return pre - 1; + } else { + return 0; + } + }); + } + } catch (e) { + message.error('目标关联失败!'); + console.error(e); + } + } + }} + > + + 关联 +
+
+ ), + }, + ]; + return ( + + {!isEmpty(attributeList) && } + {showHeader && ( +
+ )} +
+ {tab !== 'TRACK' && ( + <> + {/* ---------------------------------- 对比图模式 --------------------------------- */} + {model == 'IMAGE' && tab === 'COMPATER' && !isEmpty(selectItem) && ( + + )} + {/* ---------------------------------- 场景图模式 --------------------------------- */} + {!isLoading && + model == 'IMAGE' && + tab === 'NORMAL' && + !isEmpty(selectItem?.rectList) && ( + + )} + {/* -------------------------------- 暂无图片数据 -------------------------------- */} + {!isLoading && model == 'IMAGE' && isEmpty(selectItem) && tab === 'COMPATER' && ( + + )} + {!isLoading && model == 'IMAGE' && isEmpty(selectItem.rectList) && tab === 'NORMAL' && ( + + )} + {/* --------------------------------- 视频播放模式 --------------------------------- */} + {!isLoading && model == 'VIDEO' && ( + + )} + {/* ----------------------------------- 左导航 ---------------------------------- */} + { + if (useVirtual && selectIndex === 0) { + !!loadPre && loadPre(); + //都跳转到第一个 + setSelectIndexWrapper(0); + } else { + setSelectIndexWrapper((pre) => pre - 1); + } + }} + /> + {/* ----------------------------------- 右导航 ---------------------------------- */} + { + if (isRelated) { + if (useVirtual && selectIndex === imageData.length - 1) { + !!loadNext && (await loadNext()); + //都跳转到第一个 + setSelectIndexWrapper(0); + } else { + setSelectIndexWrapper((pre) => pre + 1); + } + } else { + if (useVirtual && selectIndex === dataSource.length - 1) { + !!loadNext && (await loadNext()); + //都跳转到第一个 + setSelectIndexWrapper(0); + } else { + setSelectIndexWrapper((pre) => pre + 1); + } + } + }} + /> + + )} +
+ {/* 工具集合 */} + {tab !== 'TRACK' && showTool && ( + <> +
+ +
+ {slots['after-tool']} + + )} + {/* 人脸质量分 */} + {!!selectqualityScore && store.user.isfaceScore && model == 'IMAGE' && tab === 'NORMAL' && ( +
{`人脸质量分:${(selectqualityScore as number).toFixed(2)}`}
+ )} + {/* --------------------------------- 模型碰撞组件 --------------------------------- */} + {isRelated && tab !== 'TRACK' && ( +
+ { + setActiveKey(key); + }} + items={tabList.map((item) => { + return { + label: item.label, + key: item.key, + children: item.children, + }; + })} + /> +
+ )} + + ); +}; + +export default observer(BigImageDialog); diff --git a/packages/biz/src/BigImageModal/index.tsx b/packages/biz/src/BigImageModal/index.tsx new file mode 100644 index 0000000..28ae31c --- /dev/null +++ b/packages/biz/src/BigImageModal/index.tsx @@ -0,0 +1,162 @@ +// @ts-nocheck +import React, { useRef, useState } from 'react' +import { Descriptions, Modal, Tabs } from 'antd'; +import classNames from 'classnames' +import type { ModalProps, DescriptionsProps, TabsProps } from 'antd' +import { get } from '@zhst/func'; +import './index.less' +import Navigation from './components/navigation'; + +const DescriptionsItem = Descriptions.Item + +export const componentPrefix = 'zhst-image' + +export interface BigImageModalProps extends ModalProps { + visible: boolean // 弹框显示隐藏 + descriptionConfig: { + data: { // 描述列表 + title: string; // 标题 + children: Pick // 描述项 + }[] + } + tabsConfig: { // 导航栏配置 + data: Pick & { + key: 'NORMAL' | 'COMPATER' | 'TRACK' + } // 导航栏列表 + } + dataSource: any + imageData: any + relatedData: any +} + +const initialStyle ={ + fontSize: '12px' +} + +const BigImageModal: React.FC = (props) => { + const { + title = '-', + open, + visible, + children, + descriptionConfig = { + data: [] + }, + tabsConfig = { + data: [ + { + label: '对比图模式', + key: '1', + children: '对比图组件', + }, + { + label: '场景图模式', + key: '2', + children: '场景图组件', + } + ], + }, + dataSource = [], + imageData = [], + relatedData = [], + } = props + + const showCropRef = useRef(false); + const scaleRef = useRef(0); + + // ========================== 头切换 ========================= + const [activeKey, setActiveKey] = useState(get(tabsConfig, 'data[0].key')); + + // ========================= 预览切换下标 ========================= + const [previewIndex, setPreviewIndex] = useState(0) + const [isRelated, setIsRelated] = useState(false) + + return ( + + {descriptionConfig.data.map(descriptions => ( + + {descriptions.title} +

+ } + column={8} + style={{ padding: '0 64px' }} + > + {descriptions?.children?.map(item => ( + {item.children} + ))} +
+ ))} + +
+ { + activeKey !== 'TRACK' && ( + <> + {/* ----------------------------------- 上一张按钮 ---------------------------------- */} + 1) : (dataSource.length > 1)} + disabled={previewIndex <= 0} + prev + onClick={() => { + setPreviewIndex((pre) => pre - 1); + }} + /> + {/* ----------------------------------- 下一张按钮 ---------------------------------- */} + = imageData.length - 1) || (previewIndex >= dataSource.length - 1)) && `${componentPrefix}-view-container__nav--disabled`, + `${componentPrefix}-view-container__nav--right` + )} + show={isRelated ? (imageData.length > 1) : (dataSource.length > 1)} + disabled={((previewIndex >= imageData.length - 1) || (previewIndex >= dataSource.length - 1))} + next + onClick={async (e) => { + setPreviewIndex((pre) => pre + 1); + }} + /> + + ) + } +
+
+ ) +} + +export default BigImageModal diff --git a/packages/biz/src/BigImageModal/mock.ts b/packages/biz/src/BigImageModal/mock.ts new file mode 100644 index 0000000..28f7a67 --- /dev/null +++ b/packages/biz/src/BigImageModal/mock.ts @@ -0,0 +1,902 @@ +export const IMAGE_DATA = { + "enAbleDeleteFeature": true, + "tabsFilter": [ + "COMPATER", + "NORMAL" + ], + "dataSources": [ + { + "objectId": "1742110565582518272", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.7163062, + "timestamp": 1704186491979, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742110565582518272", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742110532019697664", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704186491979", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "24714687", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.603125, + "y": 0.3314815, + "w": 0.0578125, + "h": 0.2712963 + }, + "bboxExtInFrame": { + "x": 0.546875, + "y": 0.2638889, + "w": 0.17135416, + "h": 0.40648147 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "confidence": 0.817271, + "sourceObjectId": "1742110565603489792", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": [ + "OBJECT_TYPE_FACE" + ], + "subObjectIds": [ + "1742110532015503360" + ], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742110565582518272.jpg", + "compaterImages": [ + "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg" + ], + "imgSummary": "singer-20240102/1/129533/1742110565582518272.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, + { + "objectId": "1742092780462684161", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.70154816, + "timestamp": 1704182251640, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092780462684161", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092746237163520", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182251640", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "20474348", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.63177085, + "y": 0.38333333, + "w": 0.078125, + "h": 0.3537037 + }, + "bboxExtInFrame": { + "x": 0.55885416, + "y": 0.29537037, + "w": 0.22447917, + "h": 0.5314815 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780462684161.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780768868352.jpg", + "confidence": 0.888334, + "sourceObjectId": "1742092780768868352", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": [ + "OBJECT_TYPE_FACE" + ], + "subObjectIds": [ + "1742092746232969217" + ], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742092780462684161.jpg", + "compaterImages": [ + "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg" + ], + "imgSummary": "singer-20240102/1/129533/1742092780462684161.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780462684161.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092780768868352.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, + { + "objectId": "1742092514409592832", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.703765, + "timestamp": 1704182186451, + "deviceId": "129529", + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092514409592832", + "solutionId": "1", + "deviceId": "129529", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092482440607744", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182186451", + "width": 0, + "height": 0, + "originWidth": 2560, + "originHeight": 1440, + "offsetTime": "20409182", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.6195313, + "y": 0.24583334, + "w": 0.09804688, + "h": 0.41944444 + }, + "bboxExtInFrame": { + "x": 0.53515625, + "y": 0.14027777, + "w": 0.26640624, + "h": 0.63125 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "confidence": 0.92494, + "sourceObjectId": "1742092515508500480", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": [ + "OBJECT_TYPE_FACE" + ], + "subObjectIds": [ + "1742092482432219136" + ], + "cameraInfo": { + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129529/1742092514409592832.jpg", + "compaterImages": [ + "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg" + ], + "imgSummary": "singer-20240102/1/129529/1742092514409592832.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129529", + "cameraName": "4入口人脸" + } + ], + "selectIndex": 4, + "disableBtn": [ + 0, + 1, + 4, + 20 + ], + "dataSource": [ + { + "objectId": "1742110565582518272", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.7163062, + "timestamp": 1704186491979, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742110565582518272", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742110532019697664", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704186491979", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "24714687", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.603125, + "y": 0.3314815, + "w": 0.0578125, + "h": 0.2712963 + }, + "bboxExtInFrame": { + "x": 0.546875, + "y": 0.2638889, + "w": 0.17135416, + "h": 0.40648147 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "confidence": 0.817271, + "sourceObjectId": "1742110565603489792", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": [ + "OBJECT_TYPE_FACE" + ], + "subObjectIds": [ + "1742110532015503360" + ], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742110565582518272.jpg", + "compaterImages": [ + "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg" + ], + "imgSummary": "singer-20240102/1/129533/1742110565582518272.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565582518272.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742110565603489792.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, + { + "objectId": "1742092680994764802", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.7007122, + "timestamp": 1704182225679, + "deviceId": "129533", + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092680994764802", + "solutionId": "1", + "deviceId": "129533", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092646219790337", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182225679", + "width": 0, + "height": 0, + "originWidth": 1920, + "originHeight": 1080, + "offsetTime": "20448387", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.5265625, + "y": 0.49537036, + "w": 0.104166664, + "h": 0.35833332 + }, + "bboxExtInFrame": { + "x": 0.465625, + "y": 0.40648147, + "w": 0.22708334, + "h": 0.537963 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092680994764802.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092681720379392.jpg", + "confidence": 0.769764, + "sourceObjectId": "1742092681720379392", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 0, + "subObjectType": [], + "subObjectIds": [], + "cameraInfo": { + "id": "129533", + "name": "4楼门口过道人脸", + "dirid": "0", + "status": "1", + "longitude": 120.125, + "latitude": 30.280500411987305, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "38", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129533/1742092680994764802.jpg", + "compaterImages": [ + "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg" + ], + "imgSummary": "singer-20240102/1/129533/1742092680994764802.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092680994764802.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129533/1742092681720379392.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129533", + "cameraName": "4楼门口过道人脸" + }, + { + "objectId": "1742092514409592832", + "condition": { + "featureInfo": null, + "featureData": "AAAAAAAAAAAAAAAAAAAAAAAA==", + "imageData": "", + "alg": "VERSION_REID_HEAD_ATTR", + "rect": { + "x": 0.271875, + "y": 0.32222223, + "w": 0.2859375, + "h": 0.67777777 + }, + "objectImageUrl": "singer-20240102/1/129529/1742047651878156288.jpg", + "srcImageUrl": "singer-20240102/1/129529/1742047652511496192.jpg" + }, + "score": 0.703765, + "timestamp": 1704182186451, + "deviceId": "129529", + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + }, + "objectIndex": { + "objectId": "1742092514409592832", + "solutionId": "1", + "deviceId": "129529", + "fragmentId": "0" + }, + "objectType": "OBJECT_TYPE_PEDESTRAIN", + "isObjectTrack": true, + "pathId": "1742092482440607744", + "frameInfo": { + "frameId": "0", + "frameTimestamp": "1704182186451", + "width": 0, + "height": 0, + "originWidth": 2560, + "originHeight": 1440, + "offsetTime": "20409182", + "skipNumber": "0" + }, + "level": 1, + "bboxInFrame": { + "x": 0.6195313, + "y": 0.24583334, + "w": 0.09804688, + "h": 0.41944444 + }, + "bboxExtInFrame": { + "x": 0.53515625, + "y": 0.14027777, + "w": 0.26640624, + "h": 0.63125 + }, + "objectImageKey": "", + "objectExtImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "frameImageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "confidence": 0.92494, + "sourceObjectId": "1742092515508500480", + "storeTimestamp": "0", + "gbNumber": "", + "qualityScore": 0, + "subObjectCount": 1, + "subObjectType": [ + "OBJECT_TYPE_FACE" + ], + "subObjectIds": [ + "1742092482432219136" + ], + "cameraInfo": { + "id": "129529", + "name": "4入口人脸", + "dirid": "0", + "status": "1", + "longitude": 120.12100219726562, + "latitude": 30.280099868774414, + "caseId": "0", + "caseGroup": "", + "isDeleted": "DEVICEMANAGER_BOOL_DEFAULT", + "extendInfo": { + "vmsPlatformId": "29", + "vmsChannel": "34", + "vmsCameraDecoderTag": "hikvision", + "platformPluginType": "PLATFORM_PLUGIN_TYPE_HAIKANG_NVR", + "deviceVender": "0", + "type": "DEVICEMANAGER_CAMERA_TYPE_NORMAL", + "ip": "", + "port": "0", + "username": "", + "passwd": "", + "rtspAddress": "", + "facesnapChannel": "", + "edgeDeviceSn": "", + "platform1400Id": 0, + "useRtspAddress": false, + "frameCheck": false, + "frameRectX": 0, + "frameRectY": 0, + "frameRectW": 0, + "frameRectH": 0, + "edgeNodeId": "0", + "processStatus": "FILTER_REALTIME_DEFAULT" + } + }, + "solutionId": "1", + "fragmentId": "0", + "contrastKey": "singer-20240102/1/129529/1742092514409592832.jpg", + "compaterImages": [ + "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742047651878156288.jpg" + ], + "imgSummary": "singer-20240102/1/129529/1742092514409592832.jpg", + "imageKey": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092514409592832.jpg", + "srcImageUrl": "http://10.0.0.7:30003/file/singer-20240102/1/129529/1742092515508500480.jpg", + "algorithmVersion": "VERSION_REID_HEAD_ATTR", + "cameraId": "129529", + "cameraName": "4入口人脸" + } + ], + "isArchiveDetail": false, + "ToolProps": { + "renderVideoBtn": true, + "disableVideo": false + }, + "specialTitle": "" +} diff --git a/packages/biz/src/Demo/index.tsx b/packages/biz/src/Demo/index.tsx index c596798..3e29618 100644 --- a/packages/biz/src/Demo/index.tsx +++ b/packages/biz/src/Demo/index.tsx @@ -1,12 +1,12 @@ import React from 'react' -import { Button } from '@zhst/meta' +import { Button } from 'antd' import { useThrottleFn } from '@zhst/hooks' export default () => { - const ok = () => useThrottleFn(() => console.log('123')) + const { run } = useThrottleFn(() => console.log('123')) return ( - + ) } diff --git a/packages/biz/src/adapter/BigImageModalAdapter/index.tsx b/packages/biz/src/adapter/BigImageModalAdapter/index.tsx new file mode 100644 index 0000000..a499b78 --- /dev/null +++ b/packages/biz/src/adapter/BigImageModalAdapter/index.tsx @@ -0,0 +1,177 @@ +/** + * 适配老的大屏组件数据格式传入 + */ +import React from 'react'; +import { AlgorithmVersionStr, HumanProperty, ObjectType, Rect, ViewOption, AlignType, IScreenshotButtonProp, ODRECT } from './interface' + +export type TAB_TYPE = 'COMPATER' | 'NORMAL' | 'TRACK'; +export type MODEL_TYPE = 'VIDEO' | 'IMAGE'; + +export interface ImgViewProps extends React.HTMLAttributes { + imageKey: string; //不在监听url变化 更新走销毁 + odRect: ODRECT; + attachImg?: Array<{ label: string; url: string }>; + showAttachImgLabel: boolean; + /* 截图渲染 */ + screenshotButtonAlign: AlignType; + screenshotButtonRender: (screenshotButtonProp: IScreenshotButtonProp) => React.ReactElement; + /* 可观测值 */ + scale$?: number; + showCrop$?: boolean; + hideLeftTopBtn?: boolean; + score?: number; + viewOption?: ViewOption; +} + +export interface VideoViewProps { + /* 播放地址 */ + flvUrl: string; + /* 播放总时间 */ + maxDuration?: number; + /* 截图渲染 */ + screenshotButtonAlign?: AlignType; + screenshotButtonRender?: (screenshotButtonProp: IScreenshotButtonProp) => React.ReactElement; + /* 默认截图框 */ + defautlNormalizationRect?: Rect; + /* 截图回调 */ + onCropChange?: (showCrop: boolean, normalizationRect: null | Rect) => void; + + /* 可观测值 */ + showCrop$?: boolean; +} + +export interface CarouselProps { + hasPre?: boolean; + hasNext?: boolean; + selectIndex: number; + setSelectIndex: React.Dispatch>; + dataSource: Array<{ + key: string; + url: string; + }>; +} + +export type ISelectItem = Partial> & + Partial>; + +export interface HeaderProps { + value: TAB_TYPE; + onChange: (type: TAB_TYPE) => void; + tabsFilter: TAB_TYPE[]; +} + +export interface ImgViewRef { + /* 图片实例 */ + imgInsRef: React.MutableRefObject; + /* 切换图片模式 */ + setShowCrop: React.Dispatch>; +} + + +export interface VideoViewRef { + /* 当前图片模式 */ + cropAble: boolean; + setShowCrop: React.Dispatch>; + downloadVideoframe: () => void; +} + +export interface ParamProps { + tab: string; + selectItem: ISelectItem; + imgViewRef: React.MutableRefObject; + VideoViewRef: React.MutableRefObject; + model: MODEL_TYPE; + setModel: React.Dispatch>; + /* 可观测值 */ + scale$: number; + showCrop$: boolean; +} + + +export interface BigImageData { + //imageKey 小图 + extendRectList: (Rect & { algorithmVersion: AlgorithmVersionStr; imageKey: string })[]; + rectList: (Rect & { algorithmVersion: AlgorithmVersionStr; imageKey: string })[]; + attachImg: { url: string; label: '形体' | '人脸' }[]; + odRect: Rect; + imageKey: string; //大图 + imgSummary: string; //摘要图 + + objectExtImageKey: string; //比对到的目标图扩展图 === imgSummary + attributeList: { label: string; list: any[] }[]; + archiveImages?: any; + spaceName: string; + + objectType: ObjectType; + objectId: string; //这张摘要本身的Id + bodyObjectId?: string; + faceObjectId?: string; //这张摘要下的人脸Id(如果有) + sourceObjectId?: string; //这张摘要上游的形体Id(如果有) + cameraId: string; + cameraName: string; + selectIndex: number; + humanProperty: HumanProperty; + qualityScore?: number; //人脸质量分 + score: number; //相似度 + timestamp: string; + bodyImageUrl: string; + faceImageUrl: string; + algorithmVersion: AlgorithmVersionStr; + + bodySpaceName: string; + faceSpaceName: string; + + solutionId?: string; + [index: string]: any; +} + +interface IOldImageData { + visible?: boolean; + defaultModel?: MODEL_TYPE; + onClose?: () => void; + isLoading?: boolean; + hasPre?: boolean; + hasNext?: boolean; + selectIndex?: number; + onSelectIndexChange?: (i: number) => void; + dataSource: any[]; + dataSources: any[]; + relatedData?: any[]; + transformPropFunc: (item: any) => ISelectItem; + transformVideoPropFunc: ( + item: ISelectItem + ) => Promise>; + screenshotButtonRender?: (screenshotButtonProp: IScreenshotButtonProp) => React.ReactElement; + showTool?: boolean; + showCarousel?: boolean; + imgViewProp?: Partial; + videoViewProp?: Partial; + ToolProps?: Partial; + nullDialogProp?: { + emptyText?: string; + }; + showHeader?: boolean; + tabsFilter?: TAB_TYPE[]; + useVirtual?: boolean; + loadNext?: (i: number) => Promise; + loadPre?: (i: number) => Promise; + children: React.ReactNode; + title?: string; + specialTitle?: string; + isRelated?: boolean; + carouselProp?: Partial; +} + +export interface ToolProps { + renderRight?: (props: ParamProps) => React.ReactNode; + renderLeft?: (props: ParamProps) => React.ReactNode; + renderVideoBtn?: boolean; + param: ParamProps; + disableVideo: boolean; +} + +export default (data: IOldImageData) => { + const newData = data + + return newData +} diff --git a/packages/biz/src/adapter/BigImageModalAdapter/interface.d.ts b/packages/biz/src/adapter/BigImageModalAdapter/interface.d.ts new file mode 100644 index 0000000..6ba15d7 --- /dev/null +++ b/packages/biz/src/adapter/BigImageModalAdapter/interface.d.ts @@ -0,0 +1,217 @@ +export type CamerasStatusList = [string[], string[], string[]]; + +export type Rect = { x: number; y: number; w: number; h: number }; + +export type StatusList = { + taskOverview: any; + taskIndex: { + deviceId: string; + solutionId: string; + }; +}[]; + +export enum OperationType { + OPERATION_TYPE_UNKNOW, // 未知状态,传该值会报错 + OPERATION_TYPE_START, + OPERATION_TYPE_STOP +} + + +export enum AlgorithmVersion { + VERSION_MGN_BNN, // MGN+BNN算法 + VERSION_BNN_PRO, // BNNPRO算法 + VERSION_BNN_PRO_ATTR, // BNNPROATTR算法 + VERSION_BNN_PRO_ATTR_SCORE, // BNNPROATTR算法 + VERSION_FACE, // 人脸算法 + VERSION_HEAD, // 头肩算法 + VERSION_NON_MOTOR_VEHICLE, // 非机动车的算法 + VERSION_REID_HEAD_ATTR, // 形体头肩属性三种特征融合的算法 + VERSION_MOTOR_VEHICLE, // 机动车的算法 +} + +export enum AlgorithmVersionStr { + VERSION_MGN_BNN = 'VERSION_MGN_BNN', // MGN+BNN算法 + VERSION_BNN_PRO = 'VERSION_BNN_PRO', // BNNPRO算法 + VERSION_BNN_PRO_ATTR = 'VERSION_BNN_PRO_ATTR', // BNNPROATTR算法 + VERSION_BNN_PRO_ATTR_SCORE = 'VERSION_BNN_PRO_ATTR_SCORE', // BNNPROATTR算法 + VERSION_FACE = 'VERSION_FACE', // 人脸算法 + VERSION_HEAD = 'VERSION_HEAD', // 头肩算法 + VERSION_NON_MOTOR_VEHICLE = 'VERSION_NON_MOTOR_VEHICLE', // 非机动车的算法 + VERSION_REID_HEAD_ATTR = 'VERSION_REID_HEAD_ATTR', // 形体头肩属性三种特征融合的算法 + VERSION_MOTOR_VEHICLE = 'VERSION_MOTOR_VEHICLE', // 机动车的算法 +} + +类型枚举 +export enum ObjectType { + OBJECT_TYPE_NULL, + OBJECT_TYPE_PEDESTRAIN, + OBJECT_TYPE_BICYCLE, + OBJECT_TYPE_CAR, + OBJECT_TYPE_MOTORBIKE, + OBJECT_TYPE_AEROPLANE, + OBJECT_TYPE_BUS, + OBJECT_TYPE_TRAIN, + OBJECT_TYPE_TRUCK, + OBJECT_TYPE_MOTOR_RIDER, + OBJECT_TYPE_BIKE_RIDER, + OBJECT_TYPE_MAX, + OBJECT_TYPE_FACE = 101, +} + +// 性别 +export enum Gender { + GENDER_NONE = 'GENDER_NONE', + GENDER_MAN = 'GENDER_MAN', + GENDER_WOMAN = 'GENDER_WOMAN', +} + +// 年龄 +export enum Age { + AGE_ALL = 'AGE_ALL', + AGE_ZERO = 'AGE_ZERO', + AGE_OVERENGHTEEN = 'AGE_OVERENGHTEEN', + AGE_OVERSIXTY = 'AGE_OVERSIXTY', +} + +// 戴帽子状态 +export enum Hat { + HAT_ALL = 'HAT_ALL', + HAT_NONE = 'HAT_NONE', + HAT_OWNED = 'HAT_OWNED', +} + +// 颜色 +export enum Color { + COLOR_ALL = 'COLOR_ALL', + COLOR_BLACK = 'COLOR_BLACK', + COLOR_WHITE = 'COLOR_WHITE', + COLOR_GRAY = 'COLOR_GRAY', + COLOR_BROWN = 'COLOR_BROWN', + COLOR_PINK = 'COLOR_PINK', + COLOR_REDANDORANGE = 'COLOR_REDANDORANGE', + COLOR_YELLOW = 'COLOR_YELLOW', + COLOR_GREEN = 'COLOR_GREEN', + COLOR_BLUE = 'COLOR_BLUE', + COLOR_PURPLE = 'COLOR_PURPLE', +} + +// 背包 +export enum Package { + PACKAGE_ALL = 'PACKAGE_ALL', + PACKAGE_HANDBAG = 'PACKAGE_HANDBAG', + PACKAGE_BACKPACK = 'PACKAGE_BACKPACK', + PACKAGE_SHOULDERBAG = 'PACKAGE_SHOULDERBAG', + PACKAGE_OTHER = 'PACKAGE_OTHER', + PACKAGE_NONE = 'PACKAGE_NONE', +} + +// 行走模式 +export enum WalkPattern { + WALKPATTERN_ALL = 'WALKPATTERN_ALL', + WALKPATTERN_WALK = 'WALKPATTERN_WALK', + WALKPATTERN_RIDING = 'WALKPATTERN_RIDING', +} + +// 人类属性 +export interface HumanProperty { + age: Age; + downColor: Color; + gender: Gender; + hat: Hat; + package: Package; + upColor: Color; + walkPattern: WalkPattern; +} + +// 人类属性枚举 +export interface EnumHumanProperty { + Gender: typeof Gender; + Age: typeof Age; + Hat: typeof Hat; + Color: typeof Color; + Package: typeof Package; + WalkPattern: typeof WalkPattern; +} + +export interface IScreenshotButtonProp { + model: 'VIDEO' | 'IMAGE'; + getCropInfo: () => Promise; + setShowCrop: React.Dispatch>; + cropType: typeof cropType[number]; + selectAlgorithmVersion: number; +} + +export interface AlignType { + /** + * move point of source node to align with point of target node. + * Such as ['tr','cc'], align top right point of source node with center point of target node. + * Point can be 't'(top), 'b'(bottom), 'c'(center), 'l'(left), 'r'(right) */ + points?: AlignPoint[]; + /** + * offset source node by offset[0] in x and offset[1] in y. + * If offset contains percentage string value, it is relative to sourceNode region. + */ + offset?: number[]; + /** + * offset target node by offset[0] in x and offset[1] in y. + * If targetOffset contains percentage string value, it is relative to targetNode region. + */ + targetOffset?: number[]; + /** + * If adjustX field is true, will adjust source node in x direction if source node is invisible. + * If adjustY field is true, will adjust source node in y direction if source node is invisible. + */ + overflow?: { + adjustX?: boolean | number; + adjustY?: boolean | number; + }; + /** + * Whether use css right instead of left to position + */ + useCssRight?: boolean; + /** + * Whether use css bottom instead of top to position + */ + useCssBottom?: boolean; + /** + * Whether use css transform instead of left/top/right/bottom to position if browser supports. + * Defaults to false. + */ + useCssTransform?: boolean; + ignoreShake?: boolean; +} + +export type ODRECT = { + topleft: { + x: number; + y: number; + }; + width: number; + height: number; +}; + +export interface ViewOption { + /* 图片url */ + image?: string | HTMLImageElement; + + /* 缩放灵敏度(0,1],default: 0.1 */ + wheelZoomRatio?: number; + + /* + * 是否允许缩放 + * @default: true + */ + scaleAble?: boolean; + + /* + * 是否允许拖拽 + * @default: true + */ + dragAble?: boolean; + + /* + * fit scale 作为 最小缩放 + * @default: false + */ + fitScaleAsMinScale?: boolean; +} diff --git a/packages/biz/src/adapter/index.ts b/packages/biz/src/adapter/index.ts new file mode 100644 index 0000000..bd39690 --- /dev/null +++ b/packages/biz/src/adapter/index.ts @@ -0,0 +1 @@ +export { default as BigImageModalAdapter } from './BigImageModalAdapter' diff --git a/packages/biz/src/global.d.ts b/packages/biz/src/global.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/biz/src/hooks/useIntelligentTracking/index.tsx b/packages/biz/src/hooks/useIntelligentTracking/index.tsx new file mode 100644 index 0000000..f9e0510 --- /dev/null +++ b/packages/biz/src/hooks/useIntelligentTracking/index.tsx @@ -0,0 +1,378 @@ +//@ts-nocheck +import * as turf from '@turf/turf'; +import { getListTaskStatus, getCameraStatusFunc } from '../useTaskState'; +import Tree from '@common/components/CameraTree/Tree'; +import doRequest from '../../utils/request'; +import { Dayjs as Moment } from 'dayjs'; +import { message } from 'antd'; +import { SearchCamera } from '@common/components/CameraTree/utils'; +import { get, isEmpty } from '@zhst/func'; +import type { OperationType } from '../../interface' + + +//默认取值 +let defaultFaceThreshold = 0.68; +let defaultBodyThreshold = 0.7; +//下边栏人脸数量,默认为5 +let defaultFaceResultNum = 5; +//追踪圈半径长度(m),默认为150 +let defaultRadius = 0.15; +//查询周期(s)默认是10,,只负责保存做展示用 +let defaultQueryCycle = 10; + +//获取默认半径 +export const getDefaultRadius = () => { + return defaultRadius; +}; +//设置默认半径 +export const setDefaultRadius = (radius: number) => { + defaultRadius = radius; +}; +//检索间隔时长 +let searchIntervalDuration = 10; +//设置检索时长 +export const setSearchIntervalDuration = (duration: number) => { + searchIntervalDuration = duration; +}; +//获取检索时长 +export const getSearchIntervalDuration = (time: number) => { + return time; +}; + +//通过id停止或启动任务 +export const operateTrackById = async (smartTrackId: number, operationType: OperationType) => { + try { + const data = { + operationType, + smartTrackId, + }; + await doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/OperationSmartTrack', + data, + }); + message.success('操作成功'); + } catch (err) { + console.error(err); + message.success('操作失败'); + } +}; +//通过id删除追踪任务 +export const deleteTrackById = async (smartTrackId: number) => { + try { + await doRequest({ + method: 'DELETE', + url: '/singer.SmartTrackService/DeleteSmartTrack', + data: { + smartTrackId, + }, + }); + } catch (err) { + console.error(err); + } +}; + +//编辑追踪任务图片 +export const modifyTrackImgs = async (smartTrackId: number, images: Array) => { + try { + await doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/ModifyTrackImg', + data: { + images, + smartTrackId, + }, + }); + } catch (err) { + console.log('err', err); + } +}; +//编辑高级设置 +export const modifyTrackConf = async (conf: any, smartTrackId: number) => { + try { + await doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/ModifyTrackConf', + data: { + conf, + smartTrackId, + }, + }); + } catch (err) { + console.log('err', err); + } +}; +//通过id获取追踪任务 +export const getTrackTaskById = async (smartTrackId = 0) => { + try { + const data = smartTrackId + ? { + smartTrackId, + } + : {}; + let req = await doRequest({ + method: 'POST', + url: '/singer.SmartTrackService/GetSmartTrack', + data, + }); + return req; + } catch (err) { + console.error(err); + } +}; + +//获取追踪实况 +export const getTackDetailInfo = async (smartTrackId = 0) => { + const data = smartTrackId + ? { + smartTrackId, + } + : {}; + let req = await doRequest({ + method: 'POST', + url: '/singer.SmartTrackService/GetTrackOverView', + data, + }); + return req; +}; + +//根据传入的算力,圆心,摄像头信息计算出最后需要的摄像头信息 +export const getTaskCameraByCenterAndPower = async (value: { + taskPower: { + facePower: number; + bodyPower: number; + }; + cameraInfos: Array; + center: [number, number]; +}) => { + let realCameraInfos = value['cameraInfos']; + //先通过摄像头id拿预处理信息 + let realPreprocessInfos = []; + if (!isEmpty(realCameraInfos)) { + const { taskStatus } = await getListTaskStatus(); + realPreprocessInfos = getCameraStatusFunc(taskStatus); + } + //去除由实时开启的摄像头 + //缓存下已经开启的 + const runRealCameraInfos: Object[] = []; + realCameraInfos = realCameraInfos.filter((v) => { + if (Tree.judgeOccupyPowerById(v['id'], realPreprocessInfos)) { + runRealCameraInfos.push(v); + } + return !Tree.judgeOccupyPowerById(v['id'], realPreprocessInfos); + }); + //算力不够时选择离中心点最近的 + let from = turf.point(value['center']); + if (realCameraInfos.length > value['taskPower']['bodyPower']) { + realCameraInfos + .map((v) => { + let dis = turf.distance(from, turf.point([v['longitude'], v['latitude']])); + return { + ...v, + dis, + }; + }) + .sort((a, b) => { + return a - b; + }); + realCameraInfos = realCameraInfos.slice(0, value['taskPower']['bodyPower']); + } + return [...runRealCameraInfos, ...realCameraInfos]; +}; + +/**创建追踪任务 */ +export const createIntelligentTrack = async (value: { + images: Array; + deviceIds: Array; + circleCenter: [number, number]; + model: number; + circleRadius: number; + facePower?: number; + bodyPower?: number; + historyTime?: [Moment, Moment]; + topping?: boolean; +}) => { + const data = { + images: value['images'], + type: value['model'], + normalComputerPower: value['bodyPower'] || 0, + faceComputerPower: value['facePower'] || 0, + // deviceIds: ['129537'], + deviceIds: value['deviceIds'], + conf: { + faceThreshold: defaultFaceThreshold, + bodyThreshold: defaultBodyThreshold, + faceResultNum: defaultFaceResultNum, + radius: value['circleRadius'] * 1000, + queryCycle: defaultQueryCycle, + }, + centerConf: { + centerX: value['circleCenter'][0], + centerY: value['circleCenter'][1], + }, + }; + const res = await doRequest({ + method: 'PUT', + url: '/singer.SmartTrackService/CreateSmartTrack', + data, + }); + return res; +}; + +//发送心跳包 +export const emitHeartbeat = async (smartTrackId: number) => { + try { + await doRequest({ + method: 'POST', + url: '/singer.SmartTrackService/SmartTrackHeartBeat', + data: { + smartTrackId: smartTrackId, + }, + }); + } catch (err) { + console.error(err); + } +}; + +//更改任务摄像头信息 +export const ModifyTrackCameras = async (value: { + smartTrackId: number; + deviceIds: Array; + centerPoint: [number, number]; +}) => { + try { + await setIntelligentTrackCircleInfo(value['smartTrackId'], value['centerPoint']); + await doRequest({ + url: '/singer.SmartTrackService/ModifyTrackCameras', + method: 'PUT', + data: { + smartTrackId: value['smartTrackId'], + deviceIds: value['deviceIds'], + }, + }); + } catch (err) { + message.error(err); + } +}; + +//保存智能追踪圆的信息 +export const setIntelligentTrackCircleInfo = async ( + smartTrackId: number, + circleCenter: [number, number] +) => { + try { + await doRequest({ + url: '/singer.SmartTrackService/ModifyTrackScopeConf', + method: 'PUT', + data: { + smartTrackId: smartTrackId, + centerConf: { + centerX: get(circleCenter, '0'), + centerY: get(circleCenter, '1'), + }, + }, + }); + } catch (err) { + message.error(err); + } +}; + +//智能追踪的获取摄像头 +export const getTackCameraInfo = async (value: { + circleCenter: [Moment, Moment]; + radius: number; + zoom: number; +}) => { + //通过圆心和半径拿取到摄像头 + let circleCameraInfos = await getCameraInfoByCircle( + value['circleCenter'], + value['radius'], + value['zoom'] + ); + return circleCameraInfos; +}; + +//通过圆心和半径获取摄像头 +export const getCameraInfoByCircle = async (circleCenter, radius, zoom = 16) => { + try { + let centerFeature = turf.circle(turf.point(circleCenter), radius, { + units: 'kilometers', + steps: 64, + }); + let minx = 0; + let maxx = 0; + let miny = 0; + let maxy = 0; + for (let i = 0; i < 4; i++) { + let point = turf.destination(turf.point(circleCenter), radius, 90 * i, { + units: 'kilometers', + }).geometry.coordinates; + if (point[0] < minx || minx === 0) { + minx = point[0]; + } + if (point[0] > maxx || maxx === 0) { + maxx = point[0]; + } + if (point[1] < miny || miny === 0) { + miny = point[1]; + } + if (point[1] > maxy || maxy === 0) { + maxy = point[1]; + } + } + let { clusterPoint }: any = await doRequest({ + url: '/singer.DeviceService/GetClusters', + method: 'POST', + data: { + northEast: { X: maxx, Y: maxy }, + southWest: { X: minx, Y: miny }, + zoom, + }, + }); + let cameraIds = []; + clusterPoint.forEach((v) => { + cameraIds.push(...v['cameraIDs']); + }); + const { cameras } = await SearchCamera({ + cameraId: cameraIds, + maxResults: cameraIds.length, + }); + const cameraInfos = cameras.filter((v) => { + let cameraPoint = turf.point([get(v, 'longitude'), get(v, 'latitude')]); + return turf.booleanPointInPolygon(cameraPoint, centerFeature); + }); + return cameraInfos; + } catch (err) { + console.error(err); + return []; + } +}; + +//追踪任务转化为检索的格式 +export const taskInfoToSearchItem = (taskInfo) => { + let imageList = []; + get(taskInfo, 'images', []).forEach((v) => { + const url = get(v, 'conds.0.srcImageUrl'); + const objectId = get(v, 'conds.0.featureInfo.objectId'); + let imageItem = { + index: 0, + url, + objectId, + odRects: get(v, 'conds').map((item) => { + return { + fileKey: get(item, 'objectImageUrl'), + extendRect: { + algorithmVersion: get(item, 'alg', ''), + ...get(item, 'rect', {}), + }, + rect: { + algorithmVersion: get(item, 'alg', ''), + rect: get(item, 'rect', {}), + }, + }; + }), + }; + imageList.push(imageItem); + }); + return imageList; +}; diff --git a/packages/biz/src/hooks/useTaskState/index.ts b/packages/biz/src/hooks/useTaskState/index.ts new file mode 100644 index 0000000..0f11dee --- /dev/null +++ b/packages/biz/src/hooks/useTaskState/index.ts @@ -0,0 +1,103 @@ +import doRequest from '../../utils/request'; +import { NetworkType, useStores } from '@store/index'; +import { useMount, useUnmount } from '@zhst/hooks'; +import { useRef, useState } from 'react'; +import type { CamerasStatusList, StatusList } from '../../interface' + +const Streams = [ + 'TASK_OVERVIEW_WAIT_START_STREAM', + 'TASK_OVERVIEW_WAIT_STREAM', + 'TASK_OVERVIEW_WAIT_START_SVINFER', +]; + +const StreamsNum = [1, 2, 3]; +const RunsNum = [5, 9]; +const ErrorsNum = [7]; + +const Runs = ['TASK_OVERVIEW_RUNNING', 'TASK_OVERVIEW_FINISH']; + +const Errors = ['TASK_OVERVIEW_ERROR']; + +export const getListTaskStatus = async (data?: { taskIndex: { deviceId: string }[] }) => { + const res = await doRequest<{ + taskStatus: StatusList; + }>({ + url: '/singer.TaskManagerService/ListTaskStatusResponse', + method: 'POST', + data: data || {} + }); + return res; +}; +export const getCameraStatusFunc = (list: StatusList, useNum = false) => { + const _Runs: any = useNum ? RunsNum : Runs; + const _Errors: any = useNum ? ErrorsNum : Errors; + const _Streams: any = useNum ? StreamsNum : Streams; + const res = list.reduce((res, cur) => { + const cameraId = cur.taskIndex.deviceId; + const status = cur.taskOverview; + res.some((ids, i) => { + if (ids.includes(cameraId)) { + res[i] = ids.filter((id) => id !== cameraId); + return true; + } + return false; + }); + if (_Runs.includes(status)) { + res[0].push(cameraId); + } else if (_Errors.includes(status)) { + res[1].push(cameraId); + } else if (_Streams.includes(status)) { + res[2].push(cameraId); + } + return res; + }, [[], [], []]); + return [...res]; +}; +let camerasStatusStoreList: CamerasStatusList = [[], [], []]; +let num = 0; +const useTaskState = () => { + const { store } = useStores(); + const [camerasStatusList, setCamerasStatusList] = + useState(camerasStatusStoreList); + const timerRef = useRef(null); + + const getCameraStatus = (list: StatusList, useNum = false) => { + const res = getCameraStatusFunc(list, useNum); + setCamerasStatusList(res); + }; + const request = (data: { taskStatus: StatusList }[]) => { + if (data) { + const list: StatusList = []; + data.forEach((v) => { + list.push(...v.taskStatus); + }); + getCameraStatus(list, store.networkType === NetworkType.NORMAL); + } + }; + useMount(async () => { + num++; + if (num - 1 > 0) { + return; + } + const res = await getListTaskStatus(); + getCameraStatus(res.taskStatus); + if (store.networkType === NetworkType.DUAL_NETWORK) { + timerRef.current = setInterval(async () => { + const res = await getListTaskStatus(); + request([res]); + }, 2000); + } + }); + useUnmount(() => { + clearInterval(timerRef.current); + setCamerasStatusList([[], [], []]); + num--; + if (num === 0) { + camerasStatusStoreList = [[], [], []]; + } + }); + + return camerasStatusList; +}; + +export default useTaskState; diff --git a/packages/biz/src/index.md b/packages/biz/src/index.md index a0f512a..6ee14d4 100644 --- a/packages/biz/src/index.md +++ b/packages/biz/src/index.md @@ -1,7 +1,7 @@ --- nav: title: 业务组件 - order: 1 +order: 1 title: 快速上手 --- diff --git a/packages/biz/src/index.tsx b/packages/biz/src/index.tsx index 31f4c03..905f00b 100644 --- a/packages/biz/src/index.tsx +++ b/packages/biz/src/index.tsx @@ -1 +1,3 @@ export { default as Demo } from './Demo'; +export * from './adapter' +export { default as BigImageModal } from './BigImageModal' diff --git a/packages/biz/src/useSocket/index.ts b/packages/biz/src/useSocket/index.ts new file mode 100644 index 0000000..cc3aefb --- /dev/null +++ b/packages/biz/src/useSocket/index.ts @@ -0,0 +1,101 @@ +import { useMemo } from 'react'; +import { throttle as loadshThrottle } from '@zhst/func'; +import { useDeepEffect, useLatest } from '@zhst/hooks'; +import ws from './ws'; + +const noop = (v: any) => null; +const getSelf = (v: any) => v; +export const SocketApi = { + CameraTaskStatue: 'singer.DeviceService/SubScribeCameraTaskStatus', + DeviceStatus: 'singer.TaskManagerService/SubscribeTaskStatus', + SubscribeSolutionDeploy: 'singer.SolutionManagerService/SubscribeSolutionDeploy', + SubscribeTasksSummary: 'singer.TaskManagerService/SubscribeTasksSummary', + MonitorSubscribeResult: 'singer.MonitorService/MonitorSubscribeResult', + MonitorSubscribeStatus: 'singer.MonitorService/MonitorSubscribeStatus', + SubscribeArchiveGroupUpload: 'singer.ArchiveGroupService/CreateArchiveByImport', + SubscribeJointTask: 'singer.JointTaskService/SubscribeJointTask', + SubscribeGroupFragment: 'singer.VideoService/SubscribeVideoFragmentStatus', // 监听视频分片状态变化,包括新建、删除、变化 + SubscribeGroup: 'singer.VideoService/SubscribeGroup', // 监听视频分组状态变化,列表变化也通知 + SubscribeStreamEvent: 'singer.MediaManagerService/SubscribeStreamEvent', // 监听视频分组状态变化,列表变化也通知 +}; +type ApiKeys = keyof typeof SocketApi; + +export default ( + topic: ApiKeys, + iterator: any = noop, + opt?: { + req?: { [key: string]: any }; + throttle?: number; + parseData?: boolean; + beforeLoopTmp?: Function; + shouldBreak: boolean; + forceRefresh: any; + close?: boolean; + } +) => { + const { + req = {}, + throttle = 0, + parseData = true, + beforeLoopTmp = getSelf, + shouldBreak = false, + forceRefresh, + close, + } = opt || {}; + + // 带上token + const reqstring = useMemo(() => { + const newReq = { + ...req, + extraHeaders: { + authorization: localStorage.getItem('USER-TOKEN'), + }, + }; + return JSON.stringify(newReq); + }, [req]); + + const latestIterator = useLatest(iterator); + useDeepEffect(() => { + if (close) { + return; + } + //控制socket 请求发送 + if (shouldBreak) { + return; + } + //去抖动 + + let tmpData: any = []; + const throttleUpdate = loadshThrottle(() => { + if (tmpData.length == 0) { + return; + } + const _tmpData = beforeLoopTmp(tmpData); + latestIterator.current(_tmpData); //加了throttle 数据就变成数组 + tmpData = []; + }, throttle); + + const unSubscribe = ws.subscribe(SocketApi[topic], reqstring, (socketData: any) => { + try { + if (!throttle) { + latestIterator.current(socketData); + } else { + tmpData.push(socketData); + throttleUpdate(); + } + } catch (error) { + console.error('useSocke:', error); + } + }); + + return () => { + try { + unSubscribe(); + throttleUpdate.cancel(); + } catch (error) { + console.error(error); + throw error; + } + }; + }, [topic, reqstring, shouldBreak, forceRefresh, close]); +}; diff --git a/packages/biz/src/useSocket/onceChannel.tsx b/packages/biz/src/useSocket/onceChannel.tsx new file mode 100644 index 0000000..1a488fe --- /dev/null +++ b/packages/biz/src/useSocket/onceChannel.tsx @@ -0,0 +1,23 @@ +//@ts-nocheck +import channel from './ws'; + +const startChannel = (topic, req, callback) => { + // 带上token + let reqstring = JSON.stringify({ + ...req, + extraHeaders: { + authorization: localStorage.getItem('USER-TOKEN'), + }, + }); + + let unSubscribe = channel.subscribe(topic, reqstring, (socketData) => { + let shouldStop = callback(socketData); + if (shouldStop) { + unSubscribe?.(); + } + }); + + return unSubscribe; +}; + +export default startChannel; diff --git a/packages/biz/src/useSocket/ws.ts b/packages/biz/src/useSocket/ws.ts new file mode 100644 index 0000000..8963eb1 --- /dev/null +++ b/packages/biz/src/useSocket/ws.ts @@ -0,0 +1,222 @@ +// @ts-nocheck +import { v4 as uuidv4 } from 'uuid'; +import { has } from '@zhst/func'; +import io from 'socket.io-client'; +import { SOCKET_HOST } from '@common/constants'; + +const EMITSTATE = { + NOT_CONNECT: 0, + WAITING: 1, + CONNECT: 2, +}; + +const initRetryTime = 0; +const intervalTime = 5 * 1000; //下次重试增加时间 +const maxIntervalTime = 1 * 60 * 60 * 1000; //最大重试时间1小时 + +class Channel { + /** + * io 实例化对象 + */ + ioIns; + /** + * 已存在的订阅列表 + */ + listeners = [ + // { + // topic: "", + // req: "", + // suInfo: {}, + // hasEmit: false,//是否已经订阅 + // lastRetryInterval: 0, + // handles: { + // } + // } + ]; + + /** + * 调试信息 记录订阅/反订阅次数 + */ + subscribeListenerId = []; + unSubscribeListenerId = []; + + init = () => { + const ioIns = (this.ioIns = io(SOCKET_HOST, { + reconnection: true, + transports: ['websocket'], + forceNew: true, + })); + ioIns.on('connect', (...arg: any) => { + console.debug('connect', arg); + this.ioIns = ioIns; + this.listeners.forEach((v) => { + this.doEmit(v['topic'], v['req'], v['id']); + }); + }); + + ioIns.on('event', (...arg: any) => { + console.debug('event', arg); + }); + + ioIns.on('disconnect', (...arg: any) => { + console.debug('disconnect', arg); + this.subscribeListenerId = []; + this.unSubscribeListenerId = []; + }); + + ioIns.on('reconnect', (...arg: any) => { + console.debug('reconnect', arg); + this.listeners.forEach((v) => { + v['hasEmit'] = EMITSTATE.NOT_CONNECT; + this.doEmit(v['topic'], v['req'], v['id']); + }); + }); + }; + + retry = (listener: { [x: string]: any; lastRetryInterval: number | undefined; intervalId: NodeJS.Timeout; } | undefined) => { + //重试逻辑 + const intervalId = setTimeout(() => { + const hasExit = this.listeners.find( + (v) => v['topic'] === listener?.['topic'] && v['req'] === listener['req'] + ); + if (!hasExit) return; + listener['hasEmit'] = EMITSTATE.NOT_CONNECT; + this.doEmit(listener['topic'], listener['req'], listener['id']); + }, listener.lastRetryInterval); + + listener.intervalId = intervalId; + listener.lastRetryInterval = + intervalTime + listener.lastRetryInterval > maxIntervalTime + ? maxIntervalTime + : intervalTime + listener.lastRetryInterval; + }; + + doEmit = (topic, req, listenerId) => { + if (!this.ioIns) { + this.init(); + } + //订阅过就不订阅了 + const hasEmit = this.listeners.find( + (v) => v['topic'] === topic && v['req'] === req && v['hasEmit'] !== EMITSTATE.NOT_CONNECT + ); + if (hasEmit) { + return; + } + const listener = this.listeners.find((v) => v['topic'] === topic && v['req'] === req); + listener['hasEmit'] = EMITSTATE.WAITING; + + this.ioIns?.emit?.(topic, req, (data) => { + console.info('emit', topic, req, data); + const suInfo = JSON.parse(data); + if (has(suInfo, 'Error.code')) { + if (suInfo.Error.code === 500) { + //后端出错 + this.retry(listener); + } + return; + } + // console.debug('SUBSCRIBE', listenerId, topic, req, suInfo); + this.subscribeListenerId.push(listenerId); + // debugger + //重新找一遍topic + const currentTopicIndex = this.listeners.findIndex( + (v) => v['topic'] === topic && v['req'] === req && v['id'] === listenerId + ); + if (currentTopicIndex == -1) { + // 不存在说明listener取消了 直接反订阅 + this.ioIns.emit('UnSubscribe', JSON.stringify(suInfo), (data) => { + this.unSubscribeListenerId.push(listenerId); + console.debug('UNSUBSCRIBE', listenerId, topic, req, data); + }); + return; + } + if (!suInfo['SubscribeID']) { + this.listeners.splice(currentTopicIndex, 0); + } else { + this.listeners[currentTopicIndex]['suInfo'] = suInfo; + this.listeners[currentTopicIndex]['hasEmit'] = EMITSTATE.CONNECT; + } + + this.ioIns?.on?.(suInfo['SubscribeID'], (data) => { + console.info('on', suInfo['SubscribeID'], data); + try { + const socketData = JSON.parse(data); + if (has(socketData, 'Error.code')) { + if (socketData.Error.code === 500) { + //后端出错 + this.retry(listener); + } + return; + } + const { handles = {} } = + this.listeners.find((v) => v['topic'] === topic && v['req'] === req) || {}; + Object.keys(handles).forEach((key) => { + try { + //后面观察 为什么delete后在foreach + const func = handles[key]; + if (!func) return; + func(socketData); + } catch (error) { + console.error(error); + } + }); + } catch (error) { + console.debug('error', error); + } + }); + }); + }; + + subscribe(topic, req, handle) { + const handleId = uuidv4(); + const listenerId = uuidv4(); + const listener = this.listeners.find((v) => v['topic'] === topic && v['req'] === req); + if (listener) { + listener['handles'][handleId] = handle; + } else { + this.listeners.push({ + topic: topic, + req: req, + suInfo: {}, + id: listenerId, + hasEmit: EMITSTATE.NOT_CONNECT, + lastRetryInterval: initRetryTime, + handles: { + [`${handleId}`]: handle, + }, + }); + //未注册过 则去订阅 + this.doEmit(topic, req, listenerId); + } + return this.unSubscribe.bind(this, topic, req, handleId, listenerId); + } + + unSubscribe(topic, req, handleId, listenerId) { + const listener = this.listeners.find( + (v) => v['topic'] === topic && v['req'] === req && v['id'] === listenerId + ); + const { handles = {}, suInfo } = listener || {}; + if (handles[handleId]) { + delete handles[handleId]; + //如果没有其他订阅就删除 + if (Object.keys(handles).length === 0) { + if (this.intervalId) { + clearTimeout(this.intervalId); + } + if (listener['hasEmit'] === EMITSTATE['CONNECT']) { + this.ioIns.emit('UnSubscribe', JSON.stringify(suInfo), (data) => { + this.unSubscribeListenerId.push(listenerId); + console.debug('UNSUBSCRIBE', listener['id'], topic, req, data); + }); + } + this.listeners = this.listeners.filter((v) => !(v['topic'] === topic && v['req'] === req)); + } + } + } +} +//单例 +const channelIns = new Channel(); +//暴露实例 调试用 +window.__channel__ = channelIns; + +export default channelIns; diff --git a/packages/biz/src/utils/constants.ts b/packages/biz/src/utils/constants.ts new file mode 100644 index 0000000..a4836c1 --- /dev/null +++ b/packages/biz/src/utils/constants.ts @@ -0,0 +1,28 @@ +export const OBJECT_GRNER_THRESHOLD = 0.8; //目标图判断性别阈值 +export const OBJECT_AGE_TYPE_THRESHOLD = 0.5; //目标图判断年龄段阈值 +export const MODE_KEY = 'test_mode'; +export const ROUTER_SHOULD_FILTER = isDev; //是否根据后台配置路由,开发环境全打开 +//业务约定 +export const SEARCH_IMG_COUNT = 10; //检索图片的最大个数 +export const GLOBAL_IS_ITEM_NUMBER_SHOW = false; //是否展示索引 +export const publicPath = 'hummingbird'; + +export const ENTER_CIRCLE = 'MONITORTYPE_ENTER_CIRCLE'; +export const OUT_CIRCLE = 'MONITORTYPE_OUT_CIRCLE'; +export const TEMP = 'MONITORTYPE_TEMP'; +export const GLOBAL_IS_BOX_VMS_SHOW = true; //是否展示盒子vms + +export const BODY_SEARCH_THRESHOID = 0.45; //形体检索阈值 +export const RECORD_VERSION = '3.0.0'; //保存记录的版本号 + +export const DeviceTab = { + EMPTY: 0, + REAL_CAMERA: 1, + PREPROCESS_CAMERA: 2, //摄像头列表 + TAG_CAMERA: 3, //预案列表 + HISTORY_VIDEO_GROUP: 4, //录像回放 + VIRTUAL_CAMERA: 5, //离线视频 + REAL_CAMERA_NOFACE: 6, + REAL_CAMERA_ONLYFACE: 7, + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: 8, // 只有普通摄像头,没有人脸、没有盒子、直连 +}; diff --git a/packages/biz/src/utils/index.ts b/packages/biz/src/utils/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/biz/src/utils/request.ts b/packages/biz/src/utils/request.ts new file mode 100644 index 0000000..2681359 --- /dev/null +++ b/packages/biz/src/utils/request.ts @@ -0,0 +1,77 @@ +import { extend } from 'umi-request'; +import type { RequestOptionsInit } from 'umi-request'; +import { get } from '@zhst/func'; +import { message } from 'antd'; +import base64 from 'base-64'; + +export class ResponseError extends Error { + name; + data; + response; + request; + type; + constructor( + response: Response, + text: string, + data: D, + request: { + url: string; + options: RequestOptionsInit; + }, + type = 'ResponseError' + ) { + super(text || response.statusText); + this.name = 'ResponseError'; + this.data = data; + this.response = response; + this.request = request; + this.type = type; + } +} + +export const request = extend({ + getResponse: true, + // timeout: 1000, + parseResponse: false, +}); + +//错误处理中间件 +request.use(async (ctx, next) => { + const { req } = ctx; + const { toast = true } = req?.options || {}; + try { + await next(); + const { res } = ctx; + const d = await res.text(); + if (res.status === 401) { + message.warning('登录过期,请重新登录!'); + return; + } + const isEmptyRes = d === ''; //有些后端接口成功会返回空 做下兼容 + const body = !isEmptyRes ? JSON.parse(d) : d; + if (res.status >= 200 && res.status < 300) { + ctx.res = body; + } else { + // 先判断Grpc-Metadata-Errorx-Message + let errMsg = res.headers.get('Grpc-Metadata-Errorx-Message'); + if (errMsg) { + errMsg = window.utf8?.decode(base64.decode(errMsg)); + // 后判断 body中的message + } else if (!errMsg && get(body, 'message')) { + errMsg = `${get(body, 'message')}`; + } else { + // 最后看状态码 + errMsg = '您的网络发生异常,无法连接服务器'; + } + toast && message.error(errMsg); + throw new ResponseError(res, errMsg, d, req, 'CustomError'); + } + } catch (error) { + if (get(error, 'type') !== 'CustomError') { + toast && message.error('您的网络发生异常,无法连接服务器'); + } + throw error; + } +}); + +export default request diff --git a/packages/constants/.fatherrc.ts b/packages/constants/.fatherrc.ts new file mode 100644 index 0000000..9e3a0ef --- /dev/null +++ b/packages/constants/.fatherrc.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'father'; + +export default defineConfig({ + // more father config: https://github.com/umijs/father/blob/master/docs/config.md + esm: { output: 'es' }, + cjs: { output: 'lib' }, +}); diff --git a/packages/constants/CHANGELOG.md b/packages/constants/CHANGELOG.md new file mode 100644 index 0000000..444b4f0 --- /dev/null +++ b/packages/constants/CHANGELOG.md @@ -0,0 +1,19 @@ +# @zhst/biz + +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 +- Updated dependencies + - @zhst/func@0.2.4 + - @zhst/hooks@0.2.4 + - @zhst/meta@0.2.4 + +## 0.2.3 + +### Patch Changes + +- fix: 调试包 link +- Updated dependencies + - @zhst/hooks@0.2.3 diff --git a/packages/constants/README.md b/packages/constants/README.md new file mode 100644 index 0000000..0ca9437 --- /dev/null +++ b/packages/constants/README.md @@ -0,0 +1,15 @@ +## 介绍 + +业务库 + +## 安装 + +> pnpm install @zhst/constants + +## 使用 + +```js +import React from 'react'; +import { TYPE } from '@zhst/constants' + +``` diff --git a/packages/constants/es/base/index.d.ts b/packages/constants/es/base/index.d.ts new file mode 100644 index 0000000..45a9a99 --- /dev/null +++ b/packages/constants/es/base/index.d.ts @@ -0,0 +1,23 @@ +export declare const OBJECT_GRNER_THRESHOLD = 0.8; +export declare const OBJECT_AGE_TYPE_THRESHOLD = 0.5; +export declare const MODE_KEY = "test_mode"; +export declare const SEARCH_IMG_COUNT = 10; +export declare const GLOBAL_IS_ITEM_NUMBER_SHOW = false; +export declare const publicPath = "hummingbird"; +export declare const ENTER_CIRCLE = "MONITORTYPE_ENTER_CIRCLE"; +export declare const OUT_CIRCLE = "MONITORTYPE_OUT_CIRCLE"; +export declare const TEMP = "MONITORTYPE_TEMP"; +export declare const GLOBAL_IS_BOX_VMS_SHOW = true; +export declare const BODY_SEARCH_THRESHOID = 0.45; +export declare const RECORD_VERSION = "3.0.0"; +export declare const DeviceTab: { + EMPTY: number; + REAL_CAMERA: number; + PREPROCESS_CAMERA: number; + TAG_CAMERA: number; + HISTORY_VIDEO_GROUP: number; + VIRTUAL_CAMERA: number; + REAL_CAMERA_NOFACE: number; + REAL_CAMERA_ONLYFACE: number; + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: number; +}; diff --git a/packages/constants/es/base/index.js b/packages/constants/es/base/index.js new file mode 100644 index 0000000..1ad86ba --- /dev/null +++ b/packages/constants/es/base/index.js @@ -0,0 +1,30 @@ +export var OBJECT_GRNER_THRESHOLD = 0.8; //目标图判断性别阈值 +export var OBJECT_AGE_TYPE_THRESHOLD = 0.5; //目标图判断年龄段阈值 +export var MODE_KEY = 'test_mode'; +//业务约定 +export var SEARCH_IMG_COUNT = 10; //检索图片的最大个数 +export var GLOBAL_IS_ITEM_NUMBER_SHOW = false; //是否展示索引 +export var publicPath = 'hummingbird'; +export var ENTER_CIRCLE = 'MONITORTYPE_ENTER_CIRCLE'; +export var OUT_CIRCLE = 'MONITORTYPE_OUT_CIRCLE'; +export var TEMP = 'MONITORTYPE_TEMP'; +export var GLOBAL_IS_BOX_VMS_SHOW = true; //是否展示盒子vms + +export var BODY_SEARCH_THRESHOID = 0.45; //形体检索阈值 +export var RECORD_VERSION = '3.0.0'; //保存记录的版本号 + +export var DeviceTab = { + EMPTY: 0, + REAL_CAMERA: 1, + PREPROCESS_CAMERA: 2, + //摄像头列表 + TAG_CAMERA: 3, + //预案列表 + HISTORY_VIDEO_GROUP: 4, + //录像回放 + VIRTUAL_CAMERA: 5, + //离线视频 + REAL_CAMERA_NOFACE: 6, + REAL_CAMERA_ONLYFACE: 7, + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: 8 // 只有普通摄像头,没有人脸、没有盒子、直连 +}; \ No newline at end of file diff --git a/packages/constants/es/camera/index.d.ts b/packages/constants/es/camera/index.d.ts new file mode 100644 index 0000000..5151b76 --- /dev/null +++ b/packages/constants/es/camera/index.d.ts @@ -0,0 +1 @@ +export declare const TYPE = ""; diff --git a/packages/constants/es/camera/index.js b/packages/constants/es/camera/index.js new file mode 100644 index 0000000..cc5d960 --- /dev/null +++ b/packages/constants/es/camera/index.js @@ -0,0 +1 @@ +export var TYPE = ''; \ No newline at end of file diff --git a/packages/constants/es/index.d.ts b/packages/constants/es/index.d.ts new file mode 100644 index 0000000..463479f --- /dev/null +++ b/packages/constants/es/index.d.ts @@ -0,0 +1,2 @@ +export * from './camera'; +export * from './base'; diff --git a/packages/constants/es/index.js b/packages/constants/es/index.js new file mode 100644 index 0000000..73a4956 --- /dev/null +++ b/packages/constants/es/index.js @@ -0,0 +1,2 @@ +export * from "./camera"; +export * from "./base"; \ No newline at end of file diff --git a/packages/constants/lib/base/index.d.ts b/packages/constants/lib/base/index.d.ts new file mode 100644 index 0000000..45a9a99 --- /dev/null +++ b/packages/constants/lib/base/index.d.ts @@ -0,0 +1,23 @@ +export declare const OBJECT_GRNER_THRESHOLD = 0.8; +export declare const OBJECT_AGE_TYPE_THRESHOLD = 0.5; +export declare const MODE_KEY = "test_mode"; +export declare const SEARCH_IMG_COUNT = 10; +export declare const GLOBAL_IS_ITEM_NUMBER_SHOW = false; +export declare const publicPath = "hummingbird"; +export declare const ENTER_CIRCLE = "MONITORTYPE_ENTER_CIRCLE"; +export declare const OUT_CIRCLE = "MONITORTYPE_OUT_CIRCLE"; +export declare const TEMP = "MONITORTYPE_TEMP"; +export declare const GLOBAL_IS_BOX_VMS_SHOW = true; +export declare const BODY_SEARCH_THRESHOID = 0.45; +export declare const RECORD_VERSION = "3.0.0"; +export declare const DeviceTab: { + EMPTY: number; + REAL_CAMERA: number; + PREPROCESS_CAMERA: number; + TAG_CAMERA: number; + HISTORY_VIDEO_GROUP: number; + VIRTUAL_CAMERA: number; + REAL_CAMERA_NOFACE: number; + REAL_CAMERA_ONLYFACE: number; + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: number; +}; diff --git a/packages/constants/lib/base/index.js b/packages/constants/lib/base/index.js new file mode 100644 index 0000000..c4bcc93 --- /dev/null +++ b/packages/constants/lib/base/index.js @@ -0,0 +1,80 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/base/index.ts +var base_exports = {}; +__export(base_exports, { + BODY_SEARCH_THRESHOID: () => BODY_SEARCH_THRESHOID, + DeviceTab: () => DeviceTab, + ENTER_CIRCLE: () => ENTER_CIRCLE, + GLOBAL_IS_BOX_VMS_SHOW: () => GLOBAL_IS_BOX_VMS_SHOW, + GLOBAL_IS_ITEM_NUMBER_SHOW: () => GLOBAL_IS_ITEM_NUMBER_SHOW, + MODE_KEY: () => MODE_KEY, + OBJECT_AGE_TYPE_THRESHOLD: () => OBJECT_AGE_TYPE_THRESHOLD, + OBJECT_GRNER_THRESHOLD: () => OBJECT_GRNER_THRESHOLD, + OUT_CIRCLE: () => OUT_CIRCLE, + RECORD_VERSION: () => RECORD_VERSION, + SEARCH_IMG_COUNT: () => SEARCH_IMG_COUNT, + TEMP: () => TEMP, + publicPath: () => publicPath +}); +module.exports = __toCommonJS(base_exports); +var OBJECT_GRNER_THRESHOLD = 0.8; +var OBJECT_AGE_TYPE_THRESHOLD = 0.5; +var MODE_KEY = "test_mode"; +var SEARCH_IMG_COUNT = 10; +var GLOBAL_IS_ITEM_NUMBER_SHOW = false; +var publicPath = "hummingbird"; +var ENTER_CIRCLE = "MONITORTYPE_ENTER_CIRCLE"; +var OUT_CIRCLE = "MONITORTYPE_OUT_CIRCLE"; +var TEMP = "MONITORTYPE_TEMP"; +var GLOBAL_IS_BOX_VMS_SHOW = true; +var BODY_SEARCH_THRESHOID = 0.45; +var RECORD_VERSION = "3.0.0"; +var DeviceTab = { + EMPTY: 0, + REAL_CAMERA: 1, + PREPROCESS_CAMERA: 2, + //摄像头列表 + TAG_CAMERA: 3, + //预案列表 + HISTORY_VIDEO_GROUP: 4, + //录像回放 + VIRTUAL_CAMERA: 5, + //离线视频 + REAL_CAMERA_NOFACE: 6, + REAL_CAMERA_ONLYFACE: 7, + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: 8 + // 只有普通摄像头,没有人脸、没有盒子、直连 +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + BODY_SEARCH_THRESHOID, + DeviceTab, + ENTER_CIRCLE, + GLOBAL_IS_BOX_VMS_SHOW, + GLOBAL_IS_ITEM_NUMBER_SHOW, + MODE_KEY, + OBJECT_AGE_TYPE_THRESHOLD, + OBJECT_GRNER_THRESHOLD, + OUT_CIRCLE, + RECORD_VERSION, + SEARCH_IMG_COUNT, + TEMP, + publicPath +}); diff --git a/packages/constants/lib/camera/index.d.ts b/packages/constants/lib/camera/index.d.ts new file mode 100644 index 0000000..5151b76 --- /dev/null +++ b/packages/constants/lib/camera/index.d.ts @@ -0,0 +1 @@ +export declare const TYPE = ""; diff --git a/packages/constants/lib/camera/index.js b/packages/constants/lib/camera/index.js new file mode 100644 index 0000000..19931cc --- /dev/null +++ b/packages/constants/lib/camera/index.js @@ -0,0 +1,29 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/camera/index.ts +var camera_exports = {}; +__export(camera_exports, { + TYPE: () => TYPE +}); +module.exports = __toCommonJS(camera_exports); +var TYPE = ""; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + TYPE +}); diff --git a/packages/constants/lib/index.d.ts b/packages/constants/lib/index.d.ts new file mode 100644 index 0000000..463479f --- /dev/null +++ b/packages/constants/lib/index.d.ts @@ -0,0 +1,2 @@ +export * from './camera'; +export * from './base'; diff --git a/packages/constants/lib/index.js b/packages/constants/lib/index.js new file mode 100644 index 0000000..f19b0bf --- /dev/null +++ b/packages/constants/lib/index.js @@ -0,0 +1,25 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.tsx +var src_exports = {}; +module.exports = __toCommonJS(src_exports); +__reExport(src_exports, require("./camera"), module.exports); +__reExport(src_exports, require("./base"), module.exports); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ...require("./camera"), + ...require("./base") +}); diff --git a/packages/constants/package.json b/packages/constants/package.json new file mode 100644 index 0000000..423601e --- /dev/null +++ b/packages/constants/package.json @@ -0,0 +1,38 @@ +{ + "name": "@zhst/constants", + "version": "0.2.4", + "description": "常量库", + "keywords": [ + "constants", + "biz", + "zhst", + "常量" + ], + "license": "ISC", + "author": "dev", + "sideEffects": [ + "dist/*", + "es/**/style/*", + "lib/**/style/*", + "*.less" + ], + "main": "lib/index.tsx", + "module": "es/index.js", + "typings": "es/index.d.ts", + "exports": { + "./package.json": "./package.json" + }, + "files": [ + "es", + "lib" + ], + "scripts": { + "build": "father build" + }, + "publishConfig": { + "access": "public", + "registry": "http://10.0.0.77:4874" + }, + "dependencies": { + } +} diff --git a/packages/constants/src/base/index.ts b/packages/constants/src/base/index.ts new file mode 100644 index 0000000..465736f --- /dev/null +++ b/packages/constants/src/base/index.ts @@ -0,0 +1,27 @@ +export const OBJECT_GRNER_THRESHOLD = 0.8; //目标图判断性别阈值 +export const OBJECT_AGE_TYPE_THRESHOLD = 0.5; //目标图判断年龄段阈值 +export const MODE_KEY = 'test_mode'; +//业务约定 +export const SEARCH_IMG_COUNT = 10; //检索图片的最大个数 +export const GLOBAL_IS_ITEM_NUMBER_SHOW = false; //是否展示索引 +export const publicPath = 'hummingbird'; + +export const ENTER_CIRCLE = 'MONITORTYPE_ENTER_CIRCLE'; +export const OUT_CIRCLE = 'MONITORTYPE_OUT_CIRCLE'; +export const TEMP = 'MONITORTYPE_TEMP'; +export const GLOBAL_IS_BOX_VMS_SHOW = true; //是否展示盒子vms + +export const BODY_SEARCH_THRESHOID = 0.45; //形体检索阈值 +export const RECORD_VERSION = '3.0.0'; //保存记录的版本号 + +export const DeviceTab = { + EMPTY: 0, + REAL_CAMERA: 1, + PREPROCESS_CAMERA: 2, //摄像头列表 + TAG_CAMERA: 3, //预案列表 + HISTORY_VIDEO_GROUP: 4, //录像回放 + VIRTUAL_CAMERA: 5, //离线视频 + REAL_CAMERA_NOFACE: 6, + REAL_CAMERA_ONLYFACE: 7, + REAL_CAMERA_NOFACE_NOBOX_NODIRECONNECT: 8, // 只有普通摄像头,没有人脸、没有盒子、直连 +}; diff --git a/packages/constants/src/camera/index.ts b/packages/constants/src/camera/index.ts new file mode 100644 index 0000000..d1237c4 --- /dev/null +++ b/packages/constants/src/camera/index.ts @@ -0,0 +1 @@ +export const TYPE = '' diff --git a/packages/constants/src/changelog/index.md b/packages/constants/src/changelog/index.md new file mode 100644 index 0000000..d4333e4 --- /dev/null +++ b/packages/constants/src/changelog/index.md @@ -0,0 +1,8 @@ +--- +nav: + title: 元组件 +title: 版本更新日志 +order: 99 +--- + + diff --git a/packages/constants/src/index.md b/packages/constants/src/index.md new file mode 100644 index 0000000..6ee14d4 --- /dev/null +++ b/packages/constants/src/index.md @@ -0,0 +1,8 @@ +--- +nav: + title: 业务组件 +order: 1 +title: 快速上手 +--- + + diff --git a/packages/constants/src/index.tsx b/packages/constants/src/index.tsx new file mode 100644 index 0000000..ac0e8bf --- /dev/null +++ b/packages/constants/src/index.tsx @@ -0,0 +1,2 @@ +export * from './camera' +export * from './base' diff --git a/packages/func/.fatherrc.ts b/packages/func/.fatherrc.ts index 4f50452..9e3a0ef 100644 --- a/packages/func/.fatherrc.ts +++ b/packages/func/.fatherrc.ts @@ -4,7 +4,4 @@ export default defineConfig({ // more father config: https://github.com/umijs/father/blob/master/docs/config.md esm: { output: 'es' }, cjs: { output: 'lib' }, - umd: { - name: 'zhst-func', - }, }); diff --git a/packages/func/CHANGELOG.md b/packages/func/CHANGELOG.md index ba7125c..19b1dcf 100644 --- a/packages/func/CHANGELOG.md +++ b/packages/func/CHANGELOG.md @@ -1,5 +1,11 @@ # @zhst/utils +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 + ## 0.2.3 ### Patch Changes diff --git a/packages/func/dist/umd/func.min.js b/packages/func/dist/umd/func.min.js index 368ea2b..fa702eb 100644 --- a/packages/func/dist/umd/func.min.js +++ b/packages/func/dist/umd/func.min.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["zhst-func"]=e():t["zhst-func"]=e()}(self,(function(){return function(){var t={868:function(t,e,r){var n;t=r.nmd(t);var i=r(273).default;!function(o){var a="object"==i(e)&&e,s="object"==i(t)&&t&&t.exports==a&&t,u="object"==(void 0===r.g?"undefined":i(r.g))&&r.g;u.global!==u&&u.window!==u||(o=u);var f=function(t){this.message=t};(f.prototype=new Error).name="InvalidCharacterError";var h=function(t){throw new f(t)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,d={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&h("The string to be encoded contains characters outside of the Latin1 range.");for(var e,r,n,i,o=t.length%3,a="",s=-1,u=t.length-o;++s>18&63)+c.charAt(i>>12&63)+c.charAt(i>>6&63)+c.charAt(63&i);return 2==o?(e=t.charCodeAt(s)<<8,r=t.charCodeAt(++s),a+=c.charAt((i=e+r)>>10)+c.charAt(i>>4&63)+c.charAt(i<<2&63)+"="):1==o&&(i=t.charCodeAt(s),a+=c.charAt(i>>2)+c.charAt(i<<4&63)+"=="),a},decode:function(t){var e=(t=String(t).replace(l,"")).length;e%4==0&&(e=(t=t.replace(/==?$/,"")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&h("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,i=0,o="",a=-1;++a>(-2*i&6)));return o},version:"1.0.0"};if("object"==i(r.amdO)&&r.amdO)void 0===(n=function(){return d}.call(e,r,e,t))||(t.exports=n);else if(a&&!a.nodeType)if(s)s.exports=d;else for(var p in d)d.hasOwnProperty(p)&&(a[p]=d[p]);else o.base64=d}(this)},70:function(t,e){"use strict";e.byteLength=function(t){var e=u(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,o=u(t),a=o[0],s=o[1],f=new i(function(t,e,r){return 3*(e+r)/4-r}(0,a,s)),h=0,c=s>0?a-4:a;for(r=0;r>16&255,f[h++]=e>>8&255,f[h++]=255&e;2===s&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,f[h++]=255&e);1===s&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,f[h++]=e>>8&255,f[h++]=255&e);return f},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],a=16383,s=0,u=n-i;su?u:s+a));1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function f(t,e,n){for(var i,o,a=[],s=e;s>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},483:function(t,e,r){"use strict";var n=r(273).default,i=r(70),o=r(970),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.lW=f,e.h2=50;var s=2147483647;function u(t){if(t>s)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,f.prototype),e}function f(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return h(t,e,r)}function h(t,e,r){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!f.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|g(t,e),n=u(r),i=n.write(t,e);i!==r&&(n=n.slice(0,i));return n}(t,e);if(ArrayBuffer.isView(t))return function(t){if($(t,Uint8Array)){var e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return d(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+n(t));if($(t,ArrayBuffer)||t&&$(t.buffer,ArrayBuffer))return p(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&($(t,SharedArrayBuffer)||t&&$(t.buffer,SharedArrayBuffer)))return p(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var i=t.valueOf&&t.valueOf();if(null!=i&&i!==t)return f.from(i,e,r);var o=function(t){if(f.isBuffer(t)){var e=0|m(t.length),r=u(e);return 0===r.length||t.copy(r,0,0,e),r}if(void 0!==t.length)return"number"!=typeof t.length||W(t.length)?u(0):d(t);if("Buffer"===t.type&&Array.isArray(t.data))return d(t.data)}(t);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return f.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+n(t))}function c(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function l(t){return c(t),u(t<0?0:0|m(t))}function d(t){for(var e=t.length<0?0:0|m(t.length),r=u(e),n=0;n=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function g(t,e){if(f.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||$(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+n(t));var r=t.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===r)return 0;for(var o=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return M(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return P(t).length;default:if(o)return i?-1:M(t).length;e=(""+e).toLowerCase(),o=!0}}function y(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return B(this,e,r);case"utf8":case"utf-8":return C(this,e,r);case"ascii":return z(this,e,r);case"latin1":case"binary":return I(this,e,r);case"base64":return A(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function _(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),W(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=f.from(e,n)),f.isBuffer(e))return 0===e.length?-1:w(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):w(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function w(t,e,r,n,i){var o,a=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function f(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var h=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var c=!0,l=0;li&&(n=i):n=i;var o=e.length;n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function A(t,e,r){return 0===e&&r===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,r))}function C(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:f>223?3:f>191?2:1;if(i+c<=r)switch(c){case 1:f<128&&(h=f);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&f)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(u=(15&f)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&f)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(h=u)}null===h?(h=65533,c=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=c}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);var r="",n=0;for(;nn.length?f.from(o).copy(n,i):Uint8Array.prototype.set.call(n,o,i);else{if(!f.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,i)}i+=o.length}return n},f.byteLength=g,f.prototype._isBuffer=!0,f.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;er&&(t+=" ... "),""},a&&(f.prototype[a]=f.prototype.inspect),f.prototype.compare=function(t,e,r,i,o){if($(t,Uint8Array)&&(t=f.from(t,t.offset,t.byteLength)),!f.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+n(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),e<0||r>t.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&e>=r)return 0;if(i>=o)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(o>>>=0)-(i>>>=0),s=(r>>>=0)-(e>>>=0),u=Math.min(a,s),h=this.slice(i,o),c=t.slice(e,r),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return b(this,t,e,r);case"utf8":case"utf-8":return k(this,t,e,r);case"ascii":case"latin1":case"binary":return x(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function z(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function L(t,e,r,n,i,o){if(!f.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function D(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,4),o.write(t,e,r,n,23,4),r+4}function j(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,8),o.write(t,e,r,n,52,8),r+8}f.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||R(t,e,this.length);for(var n=this[t],i=1,o=0;++o>>=0,e>>>=0,r||R(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},f.prototype.readUint8=f.prototype.readUInt8=function(t,e){return t>>>=0,e||R(t,1,this.length),this[t]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(t,e){return t>>>=0,e||R(t,2,this.length),this[t]|this[t+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(t,e){return t>>>=0,e||R(t,2,this.length),this[t]<<8|this[t+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(t,e){return t>>>=0,e||R(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(t,e){return t>>>=0,e||R(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},f.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||R(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},f.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||R(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},f.prototype.readInt8=function(t,e){return t>>>=0,e||R(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},f.prototype.readInt16LE=function(t,e){t>>>=0,e||R(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt16BE=function(t,e){t>>>=0,e||R(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt32LE=function(t,e){return t>>>=0,e||R(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},f.prototype.readInt32BE=function(t,e){return t>>>=0,e||R(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},f.prototype.readFloatLE=function(t,e){return t>>>=0,e||R(t,4,this.length),o.read(this,t,!0,23,4)},f.prototype.readFloatBE=function(t,e){return t>>>=0,e||R(t,4,this.length),o.read(this,t,!1,23,4)},f.prototype.readDoubleLE=function(t,e){return t>>>=0,e||R(t,8,this.length),o.read(this,t,!0,52,8)},f.prototype.readDoubleBE=function(t,e){return t>>>=0,e||R(t,8,this.length),o.read(this,t,!1,52,8)},f.prototype.writeUintLE=f.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||L(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n)||L(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},f.prototype.writeUint8=f.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,1,255,0),this[e]=255&t,e+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},f.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);L(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},f.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);L(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},f.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},f.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},f.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},f.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},f.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},f.prototype.writeFloatLE=function(t,e,r){return D(this,t,e,!0,r)},f.prototype.writeFloatBE=function(t,e,r){return D(this,t,e,!1,r)},f.prototype.writeDoubleLE=function(t,e,r){return j(this,t,e,!0,r)},f.prototype.writeDoubleBE=function(t,e,r){return j(this,t,e,!1,r)},f.prototype.copy=function(t,e,r,n){if(!f.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function P(t){return i.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(F,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function N(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function $(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function W(t){return t!=t}var Z=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}()},408:function(t,e,r){var n,i,o,a=r(273).default;o=function(){"use strict";var t=6e4,e=36e5,r="millisecond",n="second",i="minute",o="hour",s="day",u="week",f="month",h="quarter",c="year",l="date",d="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],r=t%100;return"["+t+(e[(r-20)%10]||e[r]||e[0])+"]"}},y=function(t,e,r){var n=String(t);return!n||n.length>=e?t:""+Array(e+1-n.length).join(r)+t},v={s:y,z:function(t){var e=-t.utcOffset(),r=Math.abs(e),n=Math.floor(r/60),i=r%60;return(e<=0?"+":"-")+y(n,2,"0")+":"+y(i,2,"0")},m:function t(e,r){if(e.date()1)return t(a[0])}else{var s=e.name;w[s]=e,i=s}return!n&&i&&(_=i),i||!n&&_},E=function(t,e){if(k(t))return t.clone();var r="object"==a(e)?e:{};return r.date=t,r.args=arguments,new A(r)},S=v;S.l=x,S.i=k,S.w=function(t,e){return E(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var A=function(){function a(t){this.$L=x(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[b]=!0}var g=a.prototype;return g.parse=function(t){this.$d=function(t){var e=t.date,r=t.utc;if(null===e)return new Date(NaN);if(S.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var n=e.match(p);if(n){var i=n[2]-1||0,o=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)}}return new Date(e)}(t),this.init()},g.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},g.$utils=function(){return S},g.isValid=function(){return!(this.$d.toString()===d)},g.isSame=function(t,e){var r=E(t);return this.startOf(e)<=r&&r<=this.endOf(e)},g.isAfter=function(t,e){return E(t)=e.status}function o(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(r){var e=document.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var s="object"==("undefined"==typeof window?"undefined":a(window))&&window.window===window?window:"object"==("undefined"==typeof self?"undefined":a(self))&&self.self===self?self:"object"==(void 0===r.g?"undefined":a(r.g))&&r.g.global===r.g?r.g:void 0,u=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),f=s.saveAs||("object"!=("undefined"==typeof window?"undefined":a(window))||window!==s?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,e,r){var a=s.URL||s.webkitURL,u=document.createElement("a");e=e||t.name||"download",u.download=e,u.rel="noopener","string"==typeof t?(u.href=t,u.origin===location.origin?o(u):i(u.href)?n(t,e,r):o(u,u.target="_blank")):(u.href=a.createObjectURL(t),setTimeout((function(){a.revokeObjectURL(u.href)}),4e4),setTimeout((function(){o(u)}),0))}:"msSaveOrOpenBlob"in navigator?function(t,r,a){if(r=r||t.name||"download","string"!=typeof t)navigator.msSaveOrOpenBlob(e(t,a),r);else if(i(t))n(t,r,a);else{var s=document.createElement("a");s.href=t,s.target="_blank",setTimeout((function(){o(s)}))}}:function(t,e,r,i){if((i=i||open("","_blank"))&&(i.document.title=i.document.body.innerText="downloading..."),"string"==typeof t)return n(t,e,r);var o="application/octet-stream"===t.type,a=/constructor/i.test(s.HTMLElement)||s.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||o&&a||u)&&"undefined"!=typeof FileReader){var h=new FileReader;h.onloadend=function(){var t=h.result;t=f?t:t.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=t:location=t,i=null},h.readAsDataURL(t)}else{var c=s.URL||s.webkitURL,l=c.createObjectURL(t);i?i.location=l:location.href=l,i=null,setTimeout((function(){c.revokeObjectURL(l)}),4e4)}});s.saveAs=f.saveAs=f,t.exports=f})?n.apply(e,i):n)||(t.exports=o)},970:function(t,e){e.read=function(t,e,r,n,i){var o,a,s=8*i-n-1,u=(1<>1,h=-7,c=r?i-1:0,l=r?-1:1,d=t[e+c];for(c+=l,o=d&(1<<-h)-1,d>>=-h,h+=s;h>0;o=256*o+t[e+c],c+=l,h-=8);for(a=o&(1<<-h)-1,o>>=-h,h+=n;h>0;a=256*a+t[e+c],c+=l,h-=8);if(0===o)o=1-f;else{if(o===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=f}return(d?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,u,f=8*o-i-1,h=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+c>=1?l/u:l*Math.pow(2,1-c))*u>=2&&(a++,u/=2),a+c>=h?(s=0,a=h):a+c>=1?(s=(e*u-1)*Math.pow(2,i),a+=c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;t[r+d]=255&a,d+=p,a/=256,f-=8);t[r+d-p]|=128*m}},292:function(t,e,r){var n,i,o,a,s=r(483).lW,u=r(784),f=r(273).default;a=function(){return function t(e,r,n){function i(a,s){if(!r[a]){if(!e[a]){if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var f=r[a]={exports:{}};e[a][0].call(f.exports,(function(t){return i(e[a][1][t]||t)}),f,f.exports,t,e,r,n)}return r[a].exports}for(var o=void 0,a=0;a>2,s=(3&e)<<4|r>>4,u=1>6:64,f=2>4,r=(15&a)<<4|(s=o.indexOf(t.charAt(f++)))>>2,n=(3&s)<<6|(u=o.indexOf(t.charAt(f++))),l[h++]=e,64!==s&&(l[h++]=r),64!==u&&(l[h++]=n);return l}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";var n=t("./external"),i=t("./stream/DataWorker"),o=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");function s(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}s.prototype={getContentWorker:function(){var t=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},s.createWorkerFrom=function(t,e,r){return t.pipe(new o).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=s},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var n=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var n=t("./utils"),i=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==n.getTypeOf(t)?function(t,e,r,n){var o=i,a=0+r;t^=-1;for(var s=0;s>>8^o[255&(t^e[s])];return-1^t}(0|e,t,t.length):function(t,e,r,n){var o=i,a=0+r;t^=-1;for(var s=0;s>>8^o[255&(t^e.charCodeAt(s))];return-1^t}(0|e,t,t.length):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var n;n="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:n}},{lie:37}],7:[function(t,e,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako"),o=t("./utils"),a=t("./stream/GenericWorker"),s=n?"uint8array":"array";function u(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic="\b\0",o.inherits(u,a),u.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(o.transformTo(s,t.data),!1)},u.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},u.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},u.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(t){return new u("Deflate",t)},r.uncompressWorker=function(){return new u("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function n(t,e){var r,n="";for(r=0;r>>=8;return n}function i(t,e,r,i,a,h){var c,l,d=t.file,p=t.compression,m=h!==s.utf8encode,g=o.transformTo("string",h(d.name)),y=o.transformTo("string",s.utf8encode(d.name)),v=d.comment,_=o.transformTo("string",h(v)),w=o.transformTo("string",s.utf8encode(v)),b=y.length!==d.name.length,k=w.length!==v.length,x="",E="",S="",A=d.dir,C=d.date,O={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(O.crc32=t.crc32,O.compressedSize=t.compressedSize,O.uncompressedSize=t.uncompressedSize);var z=0;e&&(z|=8),m||!b&&!k||(z|=2048);var I=0,B=0;A&&(I|=16),"UNIX"===a?(B=798,I|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(d.unixPermissions,A)):(B=20,I|=function(t){return 63&(t||0)}(d.dosPermissions)),c=C.getUTCHours(),c<<=6,c|=C.getUTCMinutes(),c<<=5,c|=C.getUTCSeconds()/2,l=C.getUTCFullYear()-1980,l<<=4,l|=C.getUTCMonth()+1,l<<=5,l|=C.getUTCDate(),b&&(E=n(1,1)+n(u(g),4)+y,x+="up"+n(E.length,2)+E),k&&(S=n(1,1)+n(u(_),4)+w,x+="uc"+n(S.length,2)+S);var T="";return T+="\n\0",T+=n(z,2),T+=p.magic,T+=n(c,2),T+=n(l,2),T+=n(O.crc32,4),T+=n(O.compressedSize,4),T+=n(O.uncompressedSize,4),T+=n(g.length,2),T+=n(x.length,2),{fileRecord:f.LOCAL_FILE_HEADER+T+g+x,dirRecord:f.CENTRAL_FILE_HEADER+n(B,2)+T+n(_.length,2)+"\0\0\0\0"+n(I,4)+n(i,4)+g+x+_}}var o=t("../utils"),a=t("../stream/GenericWorker"),s=t("../utf8"),u=t("../crc32"),f=t("../signature");function h(t,e,r,n){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(h,a),h.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,a.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},h.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},h.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return f.DATA_DESCRIPTOR+n(t.crc32,4)+n(t.compressedSize,4)+n(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},h.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return n.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=i},{"../utils":32}],19:[function(t,e,r){"use strict";var n=t("./Uint8ArrayReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";var n=t("./DataReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},i.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},i.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";var n=t("./ArrayReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var n=t("../utils"),i=t("../support"),o=t("./ArrayReader"),a=t("./StringReader"),s=t("./NodeBufferReader"),u=t("./Uint8ArrayReader");e.exports=function(t){var e=n.getTypeOf(t);return n.checkSupport(e),"string"!==e||i.uint8array?"nodebuffer"===e?new s(t):i.uint8array?new u(n.transformTo("uint8array",t)):new o(n.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";var n=t("./GenericWorker"),i=t("../utils");function o(t){n.call(this,"ConvertWorker to "+t),this.destType=t}i.inherits(o,n),o.prototype.processChunk=function(t){this.push({data:i.transformTo(this.destType,t.data),meta:t.meta})},e.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";var n=t("./GenericWorker"),i=t("../crc32");function o(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(o,n),o.prototype.processChunk=function(t){this.streamInfo.crc32=i(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";var n=t("../utils"),i=t("./GenericWorker");function o(t){i.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}n.inherits(o,i),o.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}i.prototype.processChunk.call(this,t)},e.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";var n=t("../utils"),i=t("./GenericWorker");function o(t){i.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then((function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=n.getTypeOf(t),e.isPaused||e._tickAndRepeat()}),(function(t){e.error(t)}))}n.inherits(o,i),o.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function n(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=n},{}],29:[function(t,e,r){"use strict";var n=t("../utils"),i=t("./ConvertWorker"),o=t("./GenericWorker"),a=t("../base64"),u=t("../support"),f=t("../external"),h=null;if(u.nodestream)try{h=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function c(t,e,r){var a=e;switch(e){case"blob":case"arraybuffer":a="uint8array";break;case"base64":a="string"}try{this._internalType=a,this._outputType=e,this._mimeType=r,n.checkSupport(a),this._worker=t.pipe(new i(a)),t.lock()}catch(t){this._worker=new o("error"),this._worker.error(t)}}c.prototype={accumulate:function(t){return function(t,e){return new f.Promise((function(r,i){var o=[],u=t._internalType,f=t._outputType,h=t._mimeType;t.on("data",(function(t,r){o.push(t),e&&e(r)})).on("error",(function(t){o=[],i(t)})).on("end",(function(){try{var t=function(t,e,r){switch(t){case"blob":return n.newBlob(n.transformTo("arraybuffer",e),r);case"base64":return a.encode(e);default:return n.transformTo(t,e)}}(f,function(t,e){var r,n=0,i=null,o=0;for(r=0;r>>6:(r<65536?e[a++]=224|r>>>12:(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63),e[a++]=128|r>>>6&63),e[a++]=128|63&r);return e}(t)},r.utf8decode=function(t){return i.nodebuffer?n.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,o,a=t.length,u=new Array(2*a);for(e=r=0;e>10&1023,u[r++]=56320|1023&i)}return u.length!==r&&(u.subarray?u=u.subarray(0,r):u.length=r),n.applyFromCharCode(u)}(t=n.transformTo(i.uint8array?"uint8array":"array",t))},n.inherits(f,a),f.prototype.processChunk=function(t){var e=n.transformTo(i.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var o=e;(e=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),e.set(o,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var a=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0||0===r?e:r+s[t[r]]>e?r:e}(e),u=e;a!==e.length&&(i.uint8array?(u=e.subarray(0,a),this.leftOver=e.subarray(a,e.length)):(u=e.slice(0,a),this.leftOver=e.slice(a,e.length))),this.push({data:r.utf8decode(u),meta:t.meta})},f.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=f,n.inherits(h,a),h.prototype.processChunk=function(t){this.push({data:r.utf8encode(t.data),meta:t.meta})},r.Utf8EncodeWorker=h},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,r){"use strict";var n=t("./support"),i=t("./base64"),o=t("./nodejsUtils"),a=t("./external");function s(t){return t}function u(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[a++]=224|r>>>12:(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63),e[a++]=128|r>>>6&63),e[a++]=128|63&r);return e},r.buf2binstring=function(t){return u(t,t.length)},r.binstring2buf=function(t){for(var e=new n.Buf8(t.length),r=0,i=e.length;r>10&1023,f[n++]=56320|1023&i)}return u(f,n)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var o=n,a=i+r;t^=-1;for(var s=i;s>>8^o[255&(t^e[s])];return-1^t}},{}],46:[function(t,e,r){"use strict";var n,i=t("../utils/common"),o=t("./trees"),a=t("./adler32"),s=t("./crc32"),u=t("./messages"),f=-2,h=258,c=262,l=113;function d(t,e){return t.msg=u[e],e}function p(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(i.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function y(t,e){o._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,g(t.strm)}function v(t,e){t.pending_buf[t.pending++]=e}function _(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function w(t,e){var r,n,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-c?t.strstart-(t.w_size-c):0,f=t.window,l=t.w_mask,d=t.prev,p=t.strstart+h,m=f[o+a-1],g=f[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(f[(r=e)+a]===g&&f[r+a-1]===m&&f[r]===f[o]&&f[++r]===f[o+1]){o+=2,r++;do{}while(f[++o]===f[++r]&&f[++o]===f[++r]&&f[++o]===f[++r]&&f[++o]===f[++r]&&f[++o]===f[++r]&&f[++o]===f[++r]&&f[++o]===f[++r]&&f[++o]===f[++r]&&ou&&0!=--i);return a<=t.lookahead?a:t.lookahead}function b(t){var e,r,n,o,u,f,h,l,d,p,m=t.w_size;do{if(o=t.window_size-t.lookahead-t.strstart,t.strstart>=m+(m-c)){for(i.arraySet(t.window,t.window,m,m,0),t.match_start-=m,t.strstart-=m,t.block_start-=m,e=r=t.hash_size;n=t.head[--e],t.head[e]=m<=n?n-m:0,--r;);for(e=r=m;n=t.prev[--e],t.prev[e]=m<=n?n-m:0,--r;);o+=m}if(0===t.strm.avail_in)break;if(f=t.strm,h=t.window,l=t.strstart+t.lookahead,p=void 0,(d=o)<(p=f.avail_in)&&(p=d),r=0===p?0:(f.avail_in-=p,i.arraySet(h,f.input,f.next_in,p,l),1===f.state.wrap?f.adler=a(f.adler,h,p,l):2===f.state.wrap&&(f.adler=s(f.adler,h,p,l)),f.next_in+=p,f.total_in+=p,p),t.lookahead+=r,t.lookahead+t.insert>=3)for(u=t.strstart-t.insert,t.ins_h=t.window[u],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(n=o._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3&&t.match_length<=t.prev_length){for(i=t.strstart+t.lookahead-3,n=o._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=i&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(b(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,y(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-c&&(y(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(y(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(y(t,!1),t.strm.avail_out),1)})),new E(4,4,8,4,k),new E(4,5,16,8,k),new E(4,6,32,32,k),new E(4,4,16,16,x),new E(8,16,32,32,x),new E(8,16,128,128,x),new E(8,32,128,256,x),new E(32,128,258,1024,x),new E(32,258,258,4096,x)],r.deflateInit=function(t,e){return O(t,e,8,15,8,0)},r.deflateInit2=O,r.deflateReset=C,r.deflateResetKeep=A,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?f:(t.state.gzhead=e,0):f},r.deflate=function(t,e){var r,i,a,u;if(!t||!t.state||5>8&255),v(i,i.gzhead.time>>16&255),v(i,i.gzhead.time>>24&255),v(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),v(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(v(i,255&i.gzhead.extra.length),v(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=s(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(v(i,0),v(i,0),v(i,0),v(i,0),v(i,0),v(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),v(i,3),i.status=l);else{var c=8+(i.w_bits-8<<4)<<8;c|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(c|=32),c+=31-c%31,i.status=l,_(i,c),0!==i.strstart&&(_(i,t.adler>>>16),_(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(a=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),g(t),a=i.pending,i.pending!==i.pending_buf_size));)v(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),g(t),a=i.pending,i.pending===i.pending_buf_size)){u=1;break}u=i.gzindexa&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),0===u&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),g(t),a=i.pending,i.pending===i.pending_buf_size)){u=1;break}u=i.gzindexa&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),0===u&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&g(t),i.pending+2<=i.pending_buf_size&&(v(i,255&t.adler),v(i,t.adler>>8&255),t.adler=0,i.status=l)):i.status=l),0!==i.pending){if(g(t),0===t.avail_out)return i.last_flush=-1,0}else if(0===t.avail_in&&p(e)<=p(r)&&4!==e)return d(t,-5);if(666===i.status&&0!==t.avail_in)return d(t,-5);if(0!==t.avail_in||0!==i.lookahead||0!==e&&666!==i.status){var w=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(b(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(y(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(y(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(y(t,!1),0===t.strm.avail_out)?1:2}(i,e):3===i.strategy?function(t,e){for(var r,n,i,a,s=t.window;;){if(t.lookahead<=h){if(b(t),t.lookahead<=h&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=o._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(y(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(y(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(y(t,!1),0===t.strm.avail_out)?1:2}(i,e):n[i.level].func(i,e);if(3!==w&&4!==w||(i.status=666),1===w||3===w)return 0===t.avail_out&&(i.last_flush=-1),0;if(2===w&&(1===e?o._tr_align(i):5!==e&&(o._tr_stored_block(i,0,0,!1),3===e&&(m(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),g(t),0===t.avail_out))return i.last_flush=-1,0}return 4!==e?0:i.wrap<=0?1:(2===i.wrap?(v(i,255&t.adler),v(i,t.adler>>8&255),v(i,t.adler>>16&255),v(i,t.adler>>24&255),v(i,255&t.total_in),v(i,t.total_in>>8&255),v(i,t.total_in>>16&255),v(i,t.total_in>>24&255)):(_(i,t.adler>>>16),_(i,65535&t.adler)),g(t),0=r.w_size&&(0===s&&(m(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new i.Buf8(r.w_size),i.arraySet(l,e,d-r.w_size,r.w_size,0),e=l,d=r.w_size),u=t.avail_in,h=t.next_in,c=t.input,t.avail_in=d,t.next_in=0,t.input=e,b(r);r.lookahead>=3;){for(n=r.strstart,o=r.lookahead-2;r.ins_h=(r.ins_h<>>=w=_>>>24,p-=w,0==(w=_>>>16&255))A[o++]=65535&_;else{if(!(16&w)){if(0==(64&w)){_=m[(65535&_)+(d&(1<>>=w,p-=w),p<15&&(d+=S[n++]<>>=w=_>>>24,p-=w,!(16&(w=_>>>16&255))){if(0==(64&w)){_=g[(65535&_)+(d&(1<>>=w,p-=w,(w=o-a)>3,d&=(1<<(p-=b<<3))-1,t.next_in=n,t.next_out=o,t.avail_in=n>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function h(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function c(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new n.Buf32(852),e.distcode=e.distdyn=new n.Buf32(592),e.sane=1,e.back=-1,0):u}function l(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,c(t)):u}function d(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=a.wsize?(n.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i<(o=a.wsize-a.wnext)&&(o=i),n.arraySet(a.window,e,r-i,o,a.wnext),(i-=o)?(n.arraySet(a.window,e,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=o,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=o(r.check,D,2,0),y=g=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&g)<<8)+(g>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&g)){t.msg="unknown compression method",r.mode=30;break}if(y-=4,B=8+(15&(g>>>=4)),0===r.wbits)r.wbits=B;else if(B>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(D[0]=255&g,D[1]=g>>>8&255,r.check=o(r.check,D,2,0)),y=g=0,r.mode=3;case 3:for(;y<32;){if(0===p)break t;p--,g+=h[l++]<>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,r.check=o(r.check,D,4,0)),y=g=0,r.mode=4;case 4:for(;y<16;){if(0===p)break t;p--,g+=h[l++]<>8),512&r.flags&&(D[0]=255&g,D[1]=g>>>8&255,r.check=o(r.check,D,2,0)),y=g=0,r.mode=5;case 5:if(1024&r.flags){for(;y<16;){if(0===p)break t;p--,g+=h[l++]<>>8&255,r.check=o(r.check,D,2,0)),y=g=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p<(k=r.length)&&(k=p),k&&(r.head&&(B=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,h,l,k,B)),512&r.flags&&(r.check=o(r.check,h,k,l)),p-=k,l+=k,r.length-=k),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===p)break t;for(k=0;B=h[l+k++],r.head&&B&&r.length<65536&&(r.head.name+=String.fromCharCode(B)),B&&k>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;y<32;){if(0===p)break t;p--,g+=h[l++]<>>=7&y,y-=7&y,r.mode=27;break}for(;y<3;){if(0===p)break t;p--,g+=h[l++]<>>=1)){case 0:r.mode=14;break;case 1:if(v(r),r.mode=20,6!==e)break;g>>>=2,y-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}g>>>=2,y-=2;break;case 14:for(g>>>=7&y,y-=7&y;y<32;){if(0===p)break t;p--,g+=h[l++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&g,y=g=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(k=r.length){if(p>>=5,y-=5,r.ndist=1+(31&g),g>>>=5,y-=5,r.ncode=4+(15&g),g>>>=4,y-=4,286>>=3,y-=3}for(;r.have<19;)r.lens[j[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,R={bits:r.lenbits},T=s(0,r.lens,0,19,r.lencode,0,r.work,R),r.lenbits=R.bits,T){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,C=65535&U,!((S=U>>>24)<=y);){if(0===p)break t;p--,g+=h[l++]<>>=S,y-=S,r.lens[r.have++]=C;else{if(16===C){for(L=S+2;y>>=S,y-=S,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}B=r.lens[r.have-1],k=3+(3&g),g>>>=2,y-=2}else if(17===C){for(L=S+3;y>>=S)),g>>>=3,y-=3}else{for(L=S+7;y>>=S)),g>>>=7,y-=7}if(r.have+k>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;k--;)r.lens[r.have++]=B}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,R={bits:r.lenbits},T=s(1,r.lens,0,r.nlen,r.lencode,0,r.work,R),r.lenbits=R.bits,T){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,R={bits:r.distbits},T=s(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,R),r.distbits=R.bits,T){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=p&&258<=m){t.next_out=d,t.avail_out=m,t.next_in=l,t.avail_in=p,r.hold=g,r.bits=y,a(t,b),d=t.next_out,c=t.output,m=t.avail_out,l=t.next_in,h=t.input,p=t.avail_in,g=r.hold,y=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;A=(U=r.lencode[g&(1<>>16&255,C=65535&U,!((S=U>>>24)<=y);){if(0===p)break t;p--,g+=h[l++]<>O)])>>>16&255,C=65535&U,!(O+(S=U>>>24)<=y);){if(0===p)break t;p--,g+=h[l++]<>>=O,y-=O,r.back+=O}if(g>>>=S,y-=S,r.back+=S,r.length=C,0===A){r.mode=26;break}if(32&A){r.back=-1,r.mode=12;break}if(64&A){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&A,r.mode=22;case 22:if(r.extra){for(L=r.extra;y>>=r.extra,y-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;A=(U=r.distcode[g&(1<>>16&255,C=65535&U,!((S=U>>>24)<=y);){if(0===p)break t;p--,g+=h[l++]<>O)])>>>16&255,C=65535&U,!(O+(S=U>>>24)<=y);){if(0===p)break t;p--,g+=h[l++]<>>=O,y-=O,r.back+=O}if(g>>>=S,y-=S,r.back+=S,64&A){t.msg="invalid distance code",r.mode=30;break}r.offset=C,r.extra=15&A,r.mode=24;case 24:if(r.extra){for(L=r.extra;y>>=r.extra,y-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===m)break t;if(k=b-m,r.offset>k){if((k=r.offset-k)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}x=k>r.wnext?(k-=r.wnext,r.wsize-k):r.wnext-k,k>r.length&&(k=r.length),E=r.window}else E=c,x=d-r.offset,k=r.length;for(mv?(w=j[F+c[E]],R[L+c[E]]):(w=96,0),d=1<>z)+(p-=d)]=_<<24|w<<16|b|0,0!==p;);for(d=1<>=1;if(0!==d?(T&=d-1,T+=d):T=0,E++,0==--U[x]){if(x===A)break;x=e[r+c[E]]}if(C>>7)]}function S(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function A(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function z(t,e,r){var n,i,o=new Array(16),a=0;for(n=1;n<=u;n++)o[n]=a=a+r[n-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=O(o[s]++,s))}}function I(t){var e;for(e=0;e>1;1<=r;r--)R(t,o,r);for(i=f;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],R(t,o,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,o[2*i]=o[2*r]+o[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,o[2*r+1]=o[2*n+1]=i,t.heap[1]=i++,R(t,o,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,o,a,s,f=e.dyn_tree,h=e.max_code,c=e.stat_desc.static_tree,l=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,p=e.stat_desc.extra_base,m=e.stat_desc.max_length,g=0;for(o=0;o<=u;o++)t.bl_count[o]=0;for(f[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)m<(o=f[2*f[2*(n=t.heap[r])+1]+1]+1)&&(o=m,g++),f[2*n+1]=o,h>=7;n>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e>>3,(a=t.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==e?M(t,e,r,n):4===t.strategy||a===i?(A(t,2+(n?1:0),3),L(t,d,p)):(A(t,4+(n?1:0),3),function(t,e,r,n){var i;for(A(t,e-257,5),A(t,r-1,5),A(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(g[r]+o+1)]++,t.dyn_dtree[2*E(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){A(t,2,3),C(t,256,d),function(t){16===t.bi_valid?(S(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,n){(function(t){!function(t,e){"use strict";if(!t.setImmediate){var r,n,i,o,a=1,s={},f=!1,h=t.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(t);c=c&&c.setTimeout?c:t,r="[object process]"==={}.toString.call(t.process)?function(t){u.nextTick((function(){d(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}}()?(o="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),function(e){t.postMessage(o+e,"*")}):t.MessageChannel?((i=new MessageChannel).port1.onmessage=function(t){d(t.data)},function(t){i.port2.postMessage(t)}):h&&"onreadystatechange"in h.createElement("script")?(n=h.documentElement,function(t){var e=h.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,n.removeChild(e),e=null},n.appendChild(e)}):function(t){setTimeout(d,0,t)},c.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var r=1;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=a.call(o,"catchLoc"),f=a.call(o,"finallyLoc");if(u&&f){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),B(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;B(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:R(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},r}t.exports=i,t.exports.__esModule=!0,t.exports.default=t.exports},673:function(t,e,r){var n=r(263),i=r(612),o=r(330),a=r(945);t.exports=function(t){return n(t)||i(t)||o(t)||a()},t.exports.__esModule=!0,t.exports.default=t.exports},273:function(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},330:function(t,e,r){var n=r(671);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}},t.exports.__esModule=!0,t.exports.default=t.exports}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.amdO={},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t};var n={};return function(){"use strict";r.r(n),r.d(n,{base64DecodeImageKey:function(){return Yt},base64toBlob:function(){return Qt},cutStr:function(){return se},dataURLToBlob:function(){return re},downloadPackageImages:function(){return te},fileToBase64:function(){return Vt},fixedLngLat:function(){return ne},formateDuration:function(){return ce},generateTime:function(){return le},getBase64ByImage:function(){return qt},getBase64ByUrl:function(){return Kt},getBase64Image:function(){return Xt},getChromeVersion:function(){return y},getFileSize:function(){return ee},getFileSuffix:function(){return m},getImageSuffixByFileType:function(){return g},getStrLength:function(){return ae},matchS3Prefix:function(){return p},nextTick:function(){return v},setNumberAccuracy:function(){return ue},speedConvert:function(){return oe},transformLngLat:function(){return ie},urlToBase64V2:function(){return Jt},urlToImg:function(){return Gt}});var t=r(416),e=r.n(t),i=r(682),o=r.n(i),a=r(673),s=r.n(a),u=r(868),f=r.n(u),h=r(292),c=r.n(h),l=r(11),d=r.n(l),p=function(t){return/^v[0-9]_/.test(t)},m=function(t){var e=t.split(".");return e.length<2?"":e[e.length-1]},g=function(t){var e="";switch(t){case"jpeg":e=".jpg";break;case"gif":e=".gif";break;case"png":e=".png";break;case"vnd.wap.wbmp":e=".wbmp";break;case"x-up-wpng":e=".wpng";break;case"nbmp":e=".nbmp"}return e};function y(){for(var t=navigator.userAgent.split(" "),e="",r=0;r-1};var _t=function(t,e){var r=this.__data__,n=pt(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function wt(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e1&&void 0!==arguments[1]?arguments[1]:"image/png";return new Promise((function(r,n){var i=new XMLHttpRequest;i.open("GET",t,!0),i.responseType="arraybuffer",i.onload=function(t){if(200===Number(i.status)){for(var o=new Uint8Array(i.response),a=o.length,s=new Array(a);a--;)s[a]=String.fromCharCode(o[a]);var u=s.join(""),f=window.btoa(u);r("data:"+(e||"image/png")+";base64,"+f)}else n(t)},i.onerror=function(t){n(t)},i.send()}))},Vt=function(t){return new Promise((function(e,r){var n=new FileReader;n.readAsDataURL(t),n.onload=function(t){e(null==t?void 0:t.target.result)},n.onerror=function(t){r(t)}}))},Xt=function(t,e,r){var n=document.createElement("canvas");n.width=void 0!==e?e:t.width,n.height=void 0!==r?r:t.height;var i=n.getContext("2d");null==i||i.drawImage(t,0,0,n.width,n.height);var o=t.src.substring(t.src.lastIndexOf(".")+1).toLowerCase();return n.toDataURL("image/"+o)},qt=function(t){return new Promise((function(e,r){var n=new Image,i=(new Date).getTime(),o=t+"?"+i;n.src=o,n.onload=function(){var t=function(t){var e=document.createElement("canvas");e.width=t.width,e.height=t.height;var r=e.getContext("2d");null==r||r.drawImage(t,0,0,t.width,t.height);var n=t.src.substring(t.src.lastIndexOf(".")+1).toLowerCase();return e.toDataURL("image/"+n)}(n);e(t)},n.onerror=function(t){r(t)}}))},Jt=function(t){return new Promise((function(e,r){var n=new Image;n.onload=function(){var t,r=document.createElement("canvas");r.width=n.naturalWidth,r.height=n.naturalHeight,null==r||null===(t=r.getContext("2d"))||void 0===t||t.drawImage(n,0,0);var i=r.toDataURL("image/png");e(i)};var i=t;n.setAttribute("crossOrigin","Anonymous"),n.src=i,n.onerror=function(){r(new Error("Images fail to load"))}})).catch((function(t){throw new Error(t)}))};function Qt(t){if(t){for(var e=t.split(","),r=e[0].match(/:(.*?);/)[1],n=atob(e[1]),i=n.length,o=new Uint8Array(i);i--;)o[i]=n.charCodeAt(i);return new Blob([o],{type:r})}}var te=function(){var t=o()(e()().mark((function t(r,n){var i,o,a,s,u,f,h,l,p,m,g;return e()().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],o=[],a=[],s=new(c()),u=s.folder(n),t.prev=5,f=0;case 7:if(!(f0)for(g=0;g1&&void 0!==arguments[1]?arguments[1]:8;if(void 0===t)return"0KB/s";var r=t/e;return t>1073741824?"".concat((r/1024/1024/1024).toFixed(2),"GB/s"):r>1048576?"".concat((r/1024/1024).toFixed(2),"MB/s"):"".concat(r>1024?(r/1024).toFixed(2):r,"KB/s")},ae=function(t){for(var e=0,r=t.length,n=-1,i=0;i=0&&n<=128?1:2;return e},se=function(t,e){var r,n=0,i=new String;r=t.length;for(var o=0;o4&&n++,i=i.concat(a),n>=e)return i=i.concat("...")}if(n1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(0===t)return 0;var n=0;return n=r?Math.ceil(t/Math.pow(10,e))*Math.pow(10,e):Math.floor(t/Math.pow(10,e))*Math.pow(10,e),n=Number(e<0?n.toFixed(-e):n.toFixed(0))},fe=r(408),he=r.n(fe),ce=function(t){var e=Math.floor(t/864e5),r=t%864e5,n=Math.floor(r/36e5),i=r%36e5,o=Math.floor(i/6e4),a=i%6e4,s=Math.round(a/1e3)+"秒";return o>0&&(s=o+"分"),n>0&&(s=n+"小时"),e>0&&(s=e+"天"),s};function le(){var t=he()().endOf("day").unix();return{startDateTime:he()().startOf("day").unix(),endDateTime:t}}}(),n}()})); \ No newline at end of file +!function(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports["zhst-func"]=r():t["zhst-func"]=r()}(self,(function(){return function(){var t={868:function(t,r,e){var n;t=e.nmd(t);var i=e(273).default;!function(o){var a="object"==i(r)&&r,u="object"==i(t)&&t&&t.exports==a&&t,s="object"==(void 0===e.g?"undefined":i(e.g))&&e.g;s.global!==s&&s.window!==s||(o=s);var f=function(t){this.message=t};(f.prototype=new Error).name="InvalidCharacterError";var c=function(t){throw new f(t)},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=/[\t\n\f\r ]/g,d={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var r,e,n,i,o=t.length%3,a="",u=-1,s=t.length-o;++u>18&63)+l.charAt(i>>12&63)+l.charAt(i>>6&63)+l.charAt(63&i);return 2==o?(r=t.charCodeAt(u)<<8,e=t.charCodeAt(++u),a+=l.charAt((i=r+e)>>10)+l.charAt(i>>4&63)+l.charAt(i<<2&63)+"="):1==o&&(i=t.charCodeAt(u),a+=l.charAt(i>>2)+l.charAt(i<<4&63)+"=="),a},decode:function(t){var r=(t=String(t).replace(h,"")).length;r%4==0&&(r=(t=t.replace(/==?$/,"")).length),(r%4==1||/[^+a-zA-Z0-9/]/.test(t))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var e,n,i=0,o="",a=-1;++a>(-2*i&6)));return o},version:"1.0.0"};if("object"==i(e.amdO)&&e.amdO)void 0===(n=function(){return d}.call(r,e,r,t))||(t.exports=n);else if(a&&!a.nodeType)if(u)u.exports=d;else for(var p in d)d.hasOwnProperty(p)&&(a[p]=d[p]);else o.base64=d}(this)},70:function(t,r){"use strict";r.byteLength=function(t){var r=s(t),e=r[0],n=r[1];return 3*(e+n)/4-n},r.toByteArray=function(t){var r,e,o=s(t),a=o[0],u=o[1],f=new i(function(t,r,e){return 3*(r+e)/4-e}(0,a,u)),c=0,l=u>0?a-4:a;for(e=0;e>16&255,f[c++]=r>>8&255,f[c++]=255&r;2===u&&(r=n[t.charCodeAt(e)]<<2|n[t.charCodeAt(e+1)]>>4,f[c++]=255&r);1===u&&(r=n[t.charCodeAt(e)]<<10|n[t.charCodeAt(e+1)]<<4|n[t.charCodeAt(e+2)]>>2,f[c++]=r>>8&255,f[c++]=255&r);return f},r.fromByteArray=function(t){for(var r,n=t.length,i=n%3,o=[],a=16383,u=0,s=n-i;us?s:u+a));1===i?(r=t[n-1],o.push(e[r>>2]+e[r<<4&63]+"==")):2===i&&(r=(t[n-2]<<8)+t[n-1],o.push(e[r>>10]+e[r>>4&63]+e[r<<2&63]+"="));return o.join("")};for(var e=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var e=t.indexOf("=");return-1===e&&(e=r),[e,e===r?0:4-e%4]}function f(t,r,n){for(var i,o,a=[],u=r;u>18&63]+e[o>>12&63]+e[o>>6&63]+e[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},483:function(t,r,e){"use strict";var n=e(273).default,i=e(70),o=e(970),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;r.lW=f,r.h2=50;var u=2147483647;function s(t){if(t>u)throw new RangeError('The value "'+t+'" is invalid for option "size"');var r=new Uint8Array(t);return Object.setPrototypeOf(r,f.prototype),r}function f(t,r,e){if("number"==typeof t){if("string"==typeof r)throw new TypeError('The "string" argument must be of type string. Received type number');return h(t)}return c(t,r,e)}function c(t,r,e){if("string"==typeof t)return function(t,r){"string"==typeof r&&""!==r||(r="utf8");if(!f.isEncoding(r))throw new TypeError("Unknown encoding: "+r);var e=0|g(t,r),n=s(e),i=n.write(t,r);i!==e&&(n=n.slice(0,i));return n}(t,r);if(ArrayBuffer.isView(t))return function(t){if(W(t,Uint8Array)){var r=new Uint8Array(t);return p(r.buffer,r.byteOffset,r.byteLength)}return d(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+n(t));if(W(t,ArrayBuffer)||t&&W(t.buffer,ArrayBuffer))return p(t,r,e);if("undefined"!=typeof SharedArrayBuffer&&(W(t,SharedArrayBuffer)||t&&W(t.buffer,SharedArrayBuffer)))return p(t,r,e);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var i=t.valueOf&&t.valueOf();if(null!=i&&i!==t)return f.from(i,r,e);var o=function(t){if(f.isBuffer(t)){var r=0|v(t.length),e=s(r);return 0===e.length||t.copy(e,0,0,r),e}if(void 0!==t.length)return"number"!=typeof t.length||$(t.length)?s(0):d(t);if("Buffer"===t.type&&Array.isArray(t.data))return d(t.data)}(t);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return f.from(t[Symbol.toPrimitive]("string"),r,e);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+n(t))}function l(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function h(t){return l(t),s(t<0?0:0|v(t))}function d(t){for(var r=t.length<0?0:0|v(t.length),e=s(r),n=0;n=u)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+u.toString(16)+" bytes");return 0|t}function g(t,r){if(f.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||W(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+n(t));var e=t.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===e)return 0;for(var o=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return F(t).length;default:if(o)return i?-1:U(t).length;r=(""+r).toLowerCase(),o=!0}}function m(t,r,e){var n=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return I(this,r,e);case"utf8":case"utf-8":return S(this,r,e);case"ascii":return C(this,r,e);case"latin1":case"binary":return T(this,r,e);case"base64":return O(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,r,e);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function y(t,r,e){var n=t[r];t[r]=t[e],t[e]=n}function _(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),$(e=+e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof r&&(r=f.from(r,n)),f.isBuffer(r))return 0===r.length?-1:b(t,r,e,n,i);if("number"==typeof r)return r&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):b(t,[r],e,n,i);throw new TypeError("val must be string, number or Buffer")}function b(t,r,e,n,i){var o,a=1,u=t.length,s=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return-1;a=2,u/=2,s/=2,e/=2}function f(t,r){return 1===a?t[r]:t.readUInt16BE(r*a)}if(i){var c=-1;for(o=e;ou&&(e=u-s),o=e;o>=0;o--){for(var l=!0,h=0;hi&&(n=i):n=i;var o=r.length;n>o/2&&(n=o/2);for(var a=0;a>8,i=e%256,o.push(i),o.push(n);return o}(r,t.length-e),t,e,n)}function O(t,r,e){return 0===r&&e===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(r,e))}function S(t,r,e){e=Math.min(t.length,e);for(var n=[],i=r;i239?4:f>223?3:f>191?2:1;if(i+l<=e)switch(l){case 1:f<128&&(c=f);break;case 2:128==(192&(o=t[i+1]))&&(s=(31&f)<<6|63&o)>127&&(c=s);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(s=(15&f)<<12|(63&o)<<6|63&a)>2047&&(s<55296||s>57343)&&(c=s);break;case 4:o=t[i+1],a=t[i+2],u=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&u)&&(s=(15&f)<<18|(63&o)<<12|(63&a)<<6|63&u)>65535&&s<1114112&&(c=s)}null===c?(c=65533,l=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=l}return function(t){var r=t.length;if(r<=j)return String.fromCharCode.apply(String,t);var e="",n=0;for(;nn.length?f.from(o).copy(n,i):Uint8Array.prototype.set.call(n,o,i);else{if(!f.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,i)}i+=o.length}return n},f.byteLength=g,f.prototype._isBuffer=!0,f.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;re&&(t+=" ... "),""},a&&(f.prototype[a]=f.prototype.inspect),f.prototype.compare=function(t,r,e,i,o){if(W(t,Uint8Array)&&(t=f.from(t,t.offset,t.byteLength)),!f.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+n(t));if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||e>t.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&r>=e)return 0;if(i>=o)return-1;if(r>=e)return 1;if(this===t)return 0;for(var a=(o>>>=0)-(i>>>=0),u=(e>>>=0)-(r>>>=0),s=Math.min(a,u),c=this.slice(i,o),l=t.slice(r,e),h=0;h>>=0,isFinite(e)?(e>>>=0,void 0===n&&(n="utf8")):(n=e,e=void 0)}var i=this.length-r;if((void 0===e||e>i)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return w(this,t,r,e);case"utf8":case"utf-8":return x(this,t,r,e);case"ascii":case"latin1":case"binary":return A(this,t,r,e);case"base64":return k(this,t,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,r,e);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var j=4096;function C(t,r,e){var n="";e=Math.min(t.length,e);for(var i=r;in)&&(e=n);for(var i="",o=r;oe)throw new RangeError("Trying to access beyond buffer length")}function B(t,r,e,n,i,o){if(!f.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>i||rt.length)throw new RangeError("Index out of range")}function M(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function L(t,r,e,n,i){return r=+r,e>>>=0,i||M(t,0,e,4),o.write(t,r,e,n,23,4),e+4}function D(t,r,e,n,i){return r=+r,e>>>=0,i||M(t,0,e,8),o.write(t,r,e,n,52,8),e+8}f.prototype.slice=function(t,r){var e=this.length;(t=~~t)<0?(t+=e)<0&&(t=0):t>e&&(t=e),(r=void 0===r?e:~~r)<0?(r+=e)<0&&(r=0):r>e&&(r=e),r>>=0,r>>>=0,e||z(t,r,this.length);for(var n=this[t],i=1,o=0;++o>>=0,r>>>=0,e||z(t,r,this.length);for(var n=this[t+--r],i=1;r>0&&(i*=256);)n+=this[t+--r]*i;return n},f.prototype.readUint8=f.prototype.readUInt8=function(t,r){return t>>>=0,r||z(t,1,this.length),this[t]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(t,r){return t>>>=0,r||z(t,2,this.length),this[t]|this[t+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(t,r){return t>>>=0,r||z(t,2,this.length),this[t]<<8|this[t+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(t,r){return t>>>=0,r||z(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(t,r){return t>>>=0,r||z(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},f.prototype.readIntLE=function(t,r,e){t>>>=0,r>>>=0,e||z(t,r,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*r)),n},f.prototype.readIntBE=function(t,r,e){t>>>=0,r>>>=0,e||z(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},f.prototype.readInt8=function(t,r){return t>>>=0,r||z(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},f.prototype.readInt16LE=function(t,r){t>>>=0,r||z(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},f.prototype.readInt16BE=function(t,r){t>>>=0,r||z(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},f.prototype.readInt32LE=function(t,r){return t>>>=0,r||z(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},f.prototype.readInt32BE=function(t,r){return t>>>=0,r||z(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},f.prototype.readFloatLE=function(t,r){return t>>>=0,r||z(t,4,this.length),o.read(this,t,!0,23,4)},f.prototype.readFloatBE=function(t,r){return t>>>=0,r||z(t,4,this.length),o.read(this,t,!1,23,4)},f.prototype.readDoubleLE=function(t,r){return t>>>=0,r||z(t,8,this.length),o.read(this,t,!0,52,8)},f.prototype.readDoubleBE=function(t,r){return t>>>=0,r||z(t,8,this.length),o.read(this,t,!1,52,8)},f.prototype.writeUintLE=f.prototype.writeUIntLE=function(t,r,e,n){(t=+t,r>>>=0,e>>>=0,n)||B(this,t,r,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[r]=255&t;++o>>=0,e>>>=0,n)||B(this,t,r,e,Math.pow(2,8*e)-1,0);var i=e-1,o=1;for(this[r+i]=255&t;--i>=0&&(o*=256);)this[r+i]=t/o&255;return r+e},f.prototype.writeUint8=f.prototype.writeUInt8=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,1,255,0),this[r]=255&t,r+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,2,65535,0),this[r]=255&t,this[r+1]=t>>>8,r+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,2,65535,0),this[r]=t>>>8,this[r+1]=255&t,r+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,4,4294967295,0),this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t,r+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,4,4294967295,0),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t,r+4},f.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r>>>=0,!n){var i=Math.pow(2,8*e-1);B(this,t,r,e,i-1,-i)}var o=0,a=1,u=0;for(this[r]=255&t;++o>0)-u&255;return r+e},f.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r>>>=0,!n){var i=Math.pow(2,8*e-1);B(this,t,r,e,i-1,-i)}var o=e-1,a=1,u=0;for(this[r+o]=255&t;--o>=0&&(a*=256);)t<0&&0===u&&0!==this[r+o+1]&&(u=1),this[r+o]=(t/a>>0)-u&255;return r+e},f.prototype.writeInt8=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,1,127,-128),t<0&&(t=255+t+1),this[r]=255&t,r+1},f.prototype.writeInt16LE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,2,32767,-32768),this[r]=255&t,this[r+1]=t>>>8,r+2},f.prototype.writeInt16BE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,2,32767,-32768),this[r]=t>>>8,this[r+1]=255&t,r+2},f.prototype.writeInt32LE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,4,2147483647,-2147483648),this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24,r+4},f.prototype.writeInt32BE=function(t,r,e){return t=+t,r>>>=0,e||B(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t,r+4},f.prototype.writeFloatLE=function(t,r,e){return L(this,t,r,!0,e)},f.prototype.writeFloatBE=function(t,r,e){return L(this,t,r,!1,e)},f.prototype.writeDoubleLE=function(t,r,e){return D(this,t,r,!0,e)},f.prototype.writeDoubleBE=function(t,r,e){return D(this,t,r,!1,e)},f.prototype.copy=function(t,r,e,n){if(!f.isBuffer(t))throw new TypeError("argument should be a Buffer");if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),"number"==typeof t)for(o=r;o55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320)}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function F(t){return i.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(P,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function N(t,r,e,n){for(var i=0;i=r.length||i>=t.length);++i)r[i+e]=t[i];return i}function W(t,r){return t instanceof r||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===r.name}function $(t){return t!=t}var Z=function(){for(var t="0123456789abcdef",r=new Array(256),e=0;e<16;++e)for(var n=16*e,i=0;i<16;++i)r[n+i]=t[e]+t[i];return r}()},408:function(t,r,e){var n,i,o,a=e(273).default;o=function(){"use strict";var t=6e4,r=36e5,e="millisecond",n="second",i="minute",o="hour",u="day",s="week",f="month",c="quarter",l="year",h="date",d="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var r=["th","st","nd","rd"],e=t%100;return"["+t+(r[(e-20)%10]||r[e]||r[0])+"]"}},m=function(t,r,e){var n=String(t);return!n||n.length>=r?t:""+Array(r+1-n.length).join(e)+t},y={s:m,z:function(t){var r=-t.utcOffset(),e=Math.abs(r),n=Math.floor(e/60),i=e%60;return(r<=0?"+":"-")+m(n,2,"0")+":"+m(i,2,"0")},m:function t(r,e){if(r.date()1)return t(a[0])}else{var u=r.name;b[u]=r,i=u}return!n&&i&&(_=i),i||!n&&_},k=function(t,r){if(x(t))return t.clone();var e="object"==a(r)?r:{};return e.date=t,e.args=arguments,new O(e)},E=y;E.l=A,E.i=x,E.w=function(t,r){return k(t,{locale:r.$L,utc:r.$u,x:r.$x,$offset:r.$offset})};var O=function(){function a(t){this.$L=A(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[w]=!0}var g=a.prototype;return g.parse=function(t){this.$d=function(t){var r=t.date,e=t.utc;if(null===r)return new Date(NaN);if(E.u(r))return new Date;if(r instanceof Date)return new Date(r);if("string"==typeof r&&!/Z$/i.test(r)){var n=r.match(p);if(n){var i=n[2]-1||0,o=(n[7]||"0").substring(0,3);return e?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)}}return new Date(r)}(t),this.init()},g.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},g.$utils=function(){return E},g.isValid=function(){return!(this.$d.toString()===d)},g.isSame=function(t,r){var e=k(t);return this.startOf(r)<=e&&e<=this.endOf(r)},g.isAfter=function(t,r){return k(t)=r.status}function o(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(e){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var u="object"==("undefined"==typeof window?"undefined":a(window))&&window.window===window?window:"object"==("undefined"==typeof self?"undefined":a(self))&&self.self===self?self:"object"==(void 0===e.g?"undefined":a(e.g))&&e.g.global===e.g?e.g:void 0,s=u.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),f=u.saveAs||("object"!=("undefined"==typeof window?"undefined":a(window))||window!==u?function(){}:"download"in HTMLAnchorElement.prototype&&!s?function(t,r,e){var a=u.URL||u.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener","string"==typeof t?(s.href=t,s.origin===location.origin?o(s):i(s.href)?n(t,r,e):o(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout((function(){a.revokeObjectURL(s.href)}),4e4),setTimeout((function(){o(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(t,e,a){if(e=e||t.name||"download","string"!=typeof t)navigator.msSaveOrOpenBlob(r(t,a),e);else if(i(t))n(t,e,a);else{var u=document.createElement("a");u.href=t,u.target="_blank",setTimeout((function(){o(u)}))}}:function(t,r,e,i){if((i=i||open("","_blank"))&&(i.document.title=i.document.body.innerText="downloading..."),"string"==typeof t)return n(t,r,e);var o="application/octet-stream"===t.type,a=/constructor/i.test(u.HTMLElement)||u.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||o&&a||s)&&"undefined"!=typeof FileReader){var c=new FileReader;c.onloadend=function(){var t=c.result;t=f?t:t.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=t:location=t,i=null},c.readAsDataURL(t)}else{var l=u.URL||u.webkitURL,h=l.createObjectURL(t);i?i.location=h:location.href=h,i=null,setTimeout((function(){l.revokeObjectURL(h)}),4e4)}});u.saveAs=f.saveAs=f,t.exports=f})?n.apply(r,i):n)||(t.exports=o)},970:function(t,r){r.read=function(t,r,e,n,i){var o,a,u=8*i-n-1,s=(1<>1,c=-7,l=e?i-1:0,h=e?-1:1,d=t[r+l];for(l+=h,o=d&(1<<-c)-1,d>>=-c,c+=u;c>0;o=256*o+t[r+l],l+=h,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[r+l],l+=h,c-=8);if(0===o)o=1-f;else{if(o===s)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=f}return(d?-1:1)*a*Math.pow(2,o-n)},r.write=function(t,r,e,n,i,o){var a,u,s,f=8*o-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,v=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(u=isNaN(r)?1:0,a=c):(a=Math.floor(Math.log(r)/Math.LN2),r*(s=Math.pow(2,-a))<1&&(a--,s*=2),(r+=a+l>=1?h/s:h*Math.pow(2,1-l))*s>=2&&(a++,s/=2),a+l>=c?(u=0,a=c):a+l>=1?(u=(r*s-1)*Math.pow(2,i),a+=l):(u=r*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[e+d]=255&u,d+=p,u/=256,i-=8);for(a=a<0;t[e+d]=255&a,d+=p,a/=256,f-=8);t[e+d-p]|=128*v}},292:function(t,r,e){var n,i,o,a,u=e(483).lW,s=e(784),f=e(273).default;a=function(){return function t(r,e,n){function i(a,u){if(!e[a]){if(!r[a]){if(o)return o(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var f=e[a]={exports:{}};r[a][0].call(f.exports,(function(t){return i(r[a][1][t]||t)}),f,f.exports,t,r,e,n)}return e[a].exports}for(var o=void 0,a=0;a>2,u=(3&r)<<4|e>>4,s=1>6:64,f=2>4,e=(15&a)<<4|(u=o.indexOf(t.charAt(f++)))>>2,n=(3&u)<<6|(s=o.indexOf(t.charAt(f++))),h[c++]=r,64!==u&&(h[c++]=e),64!==s&&(h[c++]=n);return h}},{"./support":30,"./utils":32}],2:[function(t,r,e){"use strict";var n=t("./external"),i=t("./stream/DataWorker"),o=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");function u(t,r,e,n,i){this.compressedSize=t,this.uncompressedSize=r,this.crc32=e,this.compression=n,this.compressedContent=i}u.prototype={getContentWorker:function(){var t=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),r=this;return t.on("end",(function(){if(this.streamInfo.data_length!==r.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},u.createWorkerFrom=function(t,r,e){return t.pipe(new o).pipe(new a("uncompressedSize")).pipe(r.compressWorker(e)).pipe(new a("compressedSize")).withStreamInfo("compression",r)},r.exports=u},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,r,e){"use strict";var n=t("./stream/GenericWorker");e.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},e.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,r,e){"use strict";var n=t("./utils"),i=function(){for(var t,r=[],e=0;e<256;e++){t=e;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;r[e]=t}return r}();r.exports=function(t,r){return void 0!==t&&t.length?"string"!==n.getTypeOf(t)?function(t,r,e,n){var o=i,a=0+e;t^=-1;for(var u=0;u>>8^o[255&(t^r[u])];return-1^t}(0|r,t,t.length):function(t,r,e,n){var o=i,a=0+e;t^=-1;for(var u=0;u>>8^o[255&(t^r.charCodeAt(u))];return-1^t}(0|r,t,t.length):0}},{"./utils":32}],5:[function(t,r,e){"use strict";e.base64=!1,e.binary=!1,e.dir=!1,e.createFolders=!0,e.date=null,e.compression=null,e.compressionOptions=null,e.comment=null,e.unixPermissions=null,e.dosPermissions=null},{}],6:[function(t,r,e){"use strict";var n;n="undefined"!=typeof Promise?Promise:t("lie"),r.exports={Promise:n}},{lie:37}],7:[function(t,r,e){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako"),o=t("./utils"),a=t("./stream/GenericWorker"),u=n?"uint8array":"array";function s(t,r){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=r,this.meta={}}e.magic="\b\0",o.inherits(s,a),s.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(o.transformTo(u,t.data),!1)},s.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},s.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},s.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(r){t.push({data:r,meta:t.meta})}},e.compressWorker=function(t){return new s("Deflate",t)},e.uncompressWorker=function(){return new s("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,r,e){"use strict";function n(t,r){var e,n="";for(e=0;e>>=8;return n}function i(t,r,e,i,a,c){var l,h,d=t.file,p=t.compression,v=c!==u.utf8encode,g=o.transformTo("string",c(d.name)),m=o.transformTo("string",u.utf8encode(d.name)),y=d.comment,_=o.transformTo("string",c(y)),b=o.transformTo("string",u.utf8encode(y)),w=m.length!==d.name.length,x=b.length!==y.length,A="",k="",E="",O=d.dir,S=d.date,j={crc32:0,compressedSize:0,uncompressedSize:0};r&&!e||(j.crc32=t.crc32,j.compressedSize=t.compressedSize,j.uncompressedSize=t.uncompressedSize);var C=0;r&&(C|=8),v||!w&&!x||(C|=2048);var T=0,I=0;O&&(T|=16),"UNIX"===a?(I=798,T|=function(t,r){var e=t;return t||(e=r?16893:33204),(65535&e)<<16}(d.unixPermissions,O)):(I=20,T|=function(t){return 63&(t||0)}(d.dosPermissions)),l=S.getUTCHours(),l<<=6,l|=S.getUTCMinutes(),l<<=5,l|=S.getUTCSeconds()/2,h=S.getUTCFullYear()-1980,h<<=4,h|=S.getUTCMonth()+1,h<<=5,h|=S.getUTCDate(),w&&(k=n(1,1)+n(s(g),4)+m,A+="up"+n(k.length,2)+k),x&&(E=n(1,1)+n(s(_),4)+b,A+="uc"+n(E.length,2)+E);var R="";return R+="\n\0",R+=n(C,2),R+=p.magic,R+=n(l,2),R+=n(h,2),R+=n(j.crc32,4),R+=n(j.compressedSize,4),R+=n(j.uncompressedSize,4),R+=n(g.length,2),R+=n(A.length,2),{fileRecord:f.LOCAL_FILE_HEADER+R+g+A,dirRecord:f.CENTRAL_FILE_HEADER+n(I,2)+R+n(_.length,2)+"\0\0\0\0"+n(T,4)+n(i,4)+g+A+_}}var o=t("../utils"),a=t("../stream/GenericWorker"),u=t("../utf8"),s=t("../crc32"),f=t("../signature");function c(t,r,e,n){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=r,this.zipPlatform=e,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(c,a),c.prototype.push=function(t){var r=t.meta.percent||0,e=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,a.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:e?(r+100*(e-n-1))/e:100}}))},c.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var r=this.streamFiles&&!t.file.dir;if(r){var e=i(t,r,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:e.fileRecord,meta:{percent:0}})}else this.accumulate=!0},c.prototype.closedSource=function(t){this.accumulate=!1;var r=this.streamFiles&&!t.file.dir,e=i(t,r,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(e.dirRecord),r)this.push({data:function(t){return f.DATA_DESCRIPTOR+n(t.crc32,4)+n(t.compressedSize,4)+n(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:e.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},c.prototype.flush=function(){for(var t=this.bytesWritten,r=0;r=this.index;r--)e=(e<<8)+this.byteAt(r);return this.index+=t,e},readString:function(t){return n.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},r.exports=i},{"../utils":32}],19:[function(t,r,e){"use strict";var n=t("./Uint8ArrayReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.readData=function(t){this.checkOffset(t);var r=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,r},r.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,r,e){"use strict";var n=t("./DataReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},i.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},i.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},i.prototype.readData=function(t){this.checkOffset(t);var r=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,r},r.exports=i},{"../utils":32,"./DataReader":18}],21:[function(t,r,e){"use strict";var n=t("./ArrayReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var r=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,r},r.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(t,r,e){"use strict";var n=t("../utils"),i=t("../support"),o=t("./ArrayReader"),a=t("./StringReader"),u=t("./NodeBufferReader"),s=t("./Uint8ArrayReader");r.exports=function(t){var r=n.getTypeOf(t);return n.checkSupport(r),"string"!==r||i.uint8array?"nodebuffer"===r?new u(t):i.uint8array?new s(n.transformTo("uint8array",t)):new o(n.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,r,e){"use strict";e.LOCAL_FILE_HEADER="PK",e.CENTRAL_FILE_HEADER="PK",e.CENTRAL_DIRECTORY_END="PK",e.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",e.ZIP64_CENTRAL_DIRECTORY_END="PK",e.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,r,e){"use strict";var n=t("./GenericWorker"),i=t("../utils");function o(t){n.call(this,"ConvertWorker to "+t),this.destType=t}i.inherits(o,n),o.prototype.processChunk=function(t){this.push({data:i.transformTo(this.destType,t.data),meta:t.meta})},r.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(t,r,e){"use strict";var n=t("./GenericWorker"),i=t("../crc32");function o(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(o,n),o.prototype.processChunk=function(t){this.streamInfo.crc32=i(t.data,this.streamInfo.crc32||0),this.push(t)},r.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,r,e){"use strict";var n=t("../utils"),i=t("./GenericWorker");function o(t){i.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}n.inherits(o,i),o.prototype.processChunk=function(t){if(t){var r=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=r+t.data.length}i.prototype.processChunk.call(this,t)},r.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(t,r,e){"use strict";var n=t("../utils"),i=t("./GenericWorker");function o(t){i.call(this,"DataWorker");var r=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then((function(t){r.dataIsReady=!0,r.data=t,r.max=t&&t.length||0,r.type=n.getTypeOf(t),r.isPaused||r._tickAndRepeat()}),(function(t){r.error(t)}))}n.inherits(o,i),o.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,r=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,r);break;case"uint8array":t=this.data.subarray(this.index,r);break;case"array":case"nodebuffer":t=this.data.slice(this.index,r)}return this.index=r,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},r.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(t,r,e){"use strict";function n(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,r){return this._listeners[t].push(r),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,r){if(this._listeners[t])for(var e=0;e "+t:t}},r.exports=n},{}],29:[function(t,r,e){"use strict";var n=t("../utils"),i=t("./ConvertWorker"),o=t("./GenericWorker"),a=t("../base64"),s=t("../support"),f=t("../external"),c=null;if(s.nodestream)try{c=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function l(t,r,e){var a=r;switch(r){case"blob":case"arraybuffer":a="uint8array";break;case"base64":a="string"}try{this._internalType=a,this._outputType=r,this._mimeType=e,n.checkSupport(a),this._worker=t.pipe(new i(a)),t.lock()}catch(t){this._worker=new o("error"),this._worker.error(t)}}l.prototype={accumulate:function(t){return function(t,r){return new f.Promise((function(e,i){var o=[],s=t._internalType,f=t._outputType,c=t._mimeType;t.on("data",(function(t,e){o.push(t),r&&r(e)})).on("error",(function(t){o=[],i(t)})).on("end",(function(){try{var t=function(t,r,e){switch(t){case"blob":return n.newBlob(n.transformTo("arraybuffer",r),e);case"base64":return a.encode(r);default:return n.transformTo(t,r)}}(f,function(t,r){var e,n=0,i=null,o=0;for(e=0;e>>6:(e<65536?r[a++]=224|e>>>12:(r[a++]=240|e>>>18,r[a++]=128|e>>>12&63),r[a++]=128|e>>>6&63),r[a++]=128|63&e);return r}(t)},e.utf8decode=function(t){return i.nodebuffer?n.transformTo("nodebuffer",t).toString("utf-8"):function(t){var r,e,i,o,a=t.length,s=new Array(2*a);for(r=e=0;r>10&1023,s[e++]=56320|1023&i)}return s.length!==e&&(s.subarray?s=s.subarray(0,e):s.length=e),n.applyFromCharCode(s)}(t=n.transformTo(i.uint8array?"uint8array":"array",t))},n.inherits(f,a),f.prototype.processChunk=function(t){var r=n.transformTo(i.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var o=r;(r=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),r.set(o,this.leftOver.length)}else r=this.leftOver.concat(r);this.leftOver=null}var a=function(t,r){var e;for((r=r||t.length)>t.length&&(r=t.length),e=r-1;0<=e&&128==(192&t[e]);)e--;return e<0||0===e?r:e+u[t[e]]>r?e:r}(r),s=r;a!==r.length&&(i.uint8array?(s=r.subarray(0,a),this.leftOver=r.subarray(a,r.length)):(s=r.slice(0,a),this.leftOver=r.slice(a,r.length))),this.push({data:e.utf8decode(s),meta:t.meta})},f.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:e.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},e.Utf8DecodeWorker=f,n.inherits(c,a),c.prototype.processChunk=function(t){this.push({data:e.utf8encode(t.data),meta:t.meta})},e.Utf8EncodeWorker=c},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,r,e){"use strict";var n=t("./support"),i=t("./base64"),o=t("./nodejsUtils"),a=t("./external");function u(t){return t}function s(t,r){for(var e=0;e>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var r,e,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(e<65536?r[a++]=224|e>>>12:(r[a++]=240|e>>>18,r[a++]=128|e>>>12&63),r[a++]=128|e>>>6&63),r[a++]=128|63&e);return r},e.buf2binstring=function(t){return s(t,t.length)},e.binstring2buf=function(t){for(var r=new n.Buf8(t.length),e=0,i=r.length;e>10&1023,f[n++]=56320|1023&i)}return s(f,n)},e.utf8border=function(t,r){var e;for((r=r||t.length)>t.length&&(r=t.length),e=r-1;0<=e&&128==(192&t[e]);)e--;return e<0||0===e?r:e+a[t[e]]>r?e:r}},{"./common":41}],43:[function(t,r,e){"use strict";r.exports=function(t,r,e,n){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==e;){for(e-=a=2e3>>1:t>>>1;r[e]=t}return r}();r.exports=function(t,r,e,i){var o=n,a=i+e;t^=-1;for(var u=i;u>>8^o[255&(t^r[u])];return-1^t}},{}],46:[function(t,r,e){"use strict";var n,i=t("../utils/common"),o=t("./trees"),a=t("./adler32"),u=t("./crc32"),s=t("./messages"),f=-2,c=258,l=262,h=113;function d(t,r){return t.msg=s[r],r}function p(t){return(t<<1)-(4t.avail_out&&(e=t.avail_out),0!==e&&(i.arraySet(t.output,r.pending_buf,r.pending_out,e,t.next_out),t.next_out+=e,r.pending_out+=e,t.total_out+=e,t.avail_out-=e,r.pending-=e,0===r.pending&&(r.pending_out=0))}function m(t,r){o._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,r),t.block_start=t.strstart,g(t.strm)}function y(t,r){t.pending_buf[t.pending++]=r}function _(t,r){t.pending_buf[t.pending++]=r>>>8&255,t.pending_buf[t.pending++]=255&r}function b(t,r){var e,n,i=t.max_chain_length,o=t.strstart,a=t.prev_length,u=t.nice_match,s=t.strstart>t.w_size-l?t.strstart-(t.w_size-l):0,f=t.window,h=t.w_mask,d=t.prev,p=t.strstart+c,v=f[o+a-1],g=f[o+a];t.prev_length>=t.good_match&&(i>>=2),u>t.lookahead&&(u=t.lookahead);do{if(f[(e=r)+a]===g&&f[e+a-1]===v&&f[e]===f[o]&&f[++e]===f[o+1]){o+=2,e++;do{}while(f[++o]===f[++e]&&f[++o]===f[++e]&&f[++o]===f[++e]&&f[++o]===f[++e]&&f[++o]===f[++e]&&f[++o]===f[++e]&&f[++o]===f[++e]&&f[++o]===f[++e]&&os&&0!=--i);return a<=t.lookahead?a:t.lookahead}function w(t){var r,e,n,o,s,f,c,h,d,p,v=t.w_size;do{if(o=t.window_size-t.lookahead-t.strstart,t.strstart>=v+(v-l)){for(i.arraySet(t.window,t.window,v,v,0),t.match_start-=v,t.strstart-=v,t.block_start-=v,r=e=t.hash_size;n=t.head[--r],t.head[r]=v<=n?n-v:0,--e;);for(r=e=v;n=t.prev[--r],t.prev[r]=v<=n?n-v:0,--e;);o+=v}if(0===t.strm.avail_in)break;if(f=t.strm,c=t.window,h=t.strstart+t.lookahead,p=void 0,(d=o)<(p=f.avail_in)&&(p=d),e=0===p?0:(f.avail_in-=p,i.arraySet(c,f.input,f.next_in,p,h),1===f.state.wrap?f.adler=a(f.adler,c,p,h):2===f.state.wrap&&(f.adler=u(f.adler,c,p,h)),f.next_in+=p,f.total_in+=p,p),t.lookahead+=e,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(n=o._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3&&t.match_length<=t.prev_length){for(i=t.strstart+t.lookahead-3,n=o._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=i&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(e=t.pending_buf_size-5);;){if(t.lookahead<=1){if(w(t),0===t.lookahead&&0===r)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+e;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,m(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-l&&(m(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===r?(m(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(m(t,!1),t.strm.avail_out),1)})),new k(4,4,8,4,x),new k(4,5,16,8,x),new k(4,6,32,32,x),new k(4,4,16,16,A),new k(8,16,32,32,A),new k(8,16,128,128,A),new k(8,32,128,256,A),new k(32,128,258,1024,A),new k(32,258,258,4096,A)],e.deflateInit=function(t,r){return j(t,r,8,15,8,0)},e.deflateInit2=j,e.deflateReset=S,e.deflateResetKeep=O,e.deflateSetHeader=function(t,r){return t&&t.state?2!==t.state.wrap?f:(t.state.gzhead=r,0):f},e.deflate=function(t,r){var e,i,a,s;if(!t||!t.state||5>8&255),y(i,i.gzhead.time>>16&255),y(i,i.gzhead.time>>24&255),y(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),y(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(y(i,255&i.gzhead.extra.length),y(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=u(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(y(i,0),y(i,0),y(i,0),y(i,0),y(i,0),y(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),y(i,3),i.status=h);else{var l=8+(i.w_bits-8<<4)<<8;l|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(l|=32),l+=31-l%31,i.status=h,_(i,l),0!==i.strstart&&(_(i,t.adler>>>16),_(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(a=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>a&&(t.adler=u(t.adler,i.pending_buf,i.pending-a,a)),g(t),a=i.pending,i.pending!==i.pending_buf_size));)y(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>a&&(t.adler=u(t.adler,i.pending_buf,i.pending-a,a)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=u(t.adler,i.pending_buf,i.pending-a,a)),g(t),a=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexa&&(t.adler=u(t.adler,i.pending_buf,i.pending-a,a)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=u(t.adler,i.pending_buf,i.pending-a,a)),g(t),a=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexa&&(t.adler=u(t.adler,i.pending_buf,i.pending-a,a)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&g(t),i.pending+2<=i.pending_buf_size&&(y(i,255&t.adler),y(i,t.adler>>8&255),t.adler=0,i.status=h)):i.status=h),0!==i.pending){if(g(t),0===t.avail_out)return i.last_flush=-1,0}else if(0===t.avail_in&&p(r)<=p(e)&&4!==r)return d(t,-5);if(666===i.status&&0!==t.avail_in)return d(t,-5);if(0!==t.avail_in||0!==i.lookahead||0!==r&&666!==i.status){var b=2===i.strategy?function(t,r){for(var e;;){if(0===t.lookahead&&(w(t),0===t.lookahead)){if(0===r)return 1;break}if(t.match_length=0,e=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,e&&(m(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===r?(m(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(m(t,!1),0===t.strm.avail_out)?1:2}(i,r):3===i.strategy?function(t,r){for(var e,n,i,a,u=t.window;;){if(t.lookahead<=c){if(w(t),t.lookahead<=c&&0===r)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(e=o._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(e=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),e&&(m(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===r?(m(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(m(t,!1),0===t.strm.avail_out)?1:2}(i,r):n[i.level].func(i,r);if(3!==b&&4!==b||(i.status=666),1===b||3===b)return 0===t.avail_out&&(i.last_flush=-1),0;if(2===b&&(1===r?o._tr_align(i):5!==r&&(o._tr_stored_block(i,0,0,!1),3===r&&(v(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),g(t),0===t.avail_out))return i.last_flush=-1,0}return 4!==r?0:i.wrap<=0?1:(2===i.wrap?(y(i,255&t.adler),y(i,t.adler>>8&255),y(i,t.adler>>16&255),y(i,t.adler>>24&255),y(i,255&t.total_in),y(i,t.total_in>>8&255),y(i,t.total_in>>16&255),y(i,t.total_in>>24&255)):(_(i,t.adler>>>16),_(i,65535&t.adler)),g(t),0=e.w_size&&(0===u&&(v(e.head),e.strstart=0,e.block_start=0,e.insert=0),h=new i.Buf8(e.w_size),i.arraySet(h,r,d-e.w_size,e.w_size,0),r=h,d=e.w_size),s=t.avail_in,c=t.next_in,l=t.input,t.avail_in=d,t.next_in=0,t.input=r,w(e);e.lookahead>=3;){for(n=e.strstart,o=e.lookahead-2;e.ins_h=(e.ins_h<>>=b=_>>>24,p-=b,0==(b=_>>>16&255))O[o++]=65535&_;else{if(!(16&b)){if(0==(64&b)){_=v[(65535&_)+(d&(1<>>=b,p-=b),p<15&&(d+=E[n++]<>>=b=_>>>24,p-=b,!(16&(b=_>>>16&255))){if(0==(64&b)){_=g[(65535&_)+(d&(1<>>=b,p-=b,(b=o-a)>3,d&=(1<<(p-=w<<3))-1,t.next_in=n,t.next_out=o,t.avail_in=n>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function l(t){var r;return t&&t.state?(r=t.state,t.total_in=t.total_out=r.total=0,t.msg="",r.wrap&&(t.adler=1&r.wrap),r.mode=1,r.last=0,r.havedict=0,r.dmax=32768,r.head=null,r.hold=0,r.bits=0,r.lencode=r.lendyn=new n.Buf32(852),r.distcode=r.distdyn=new n.Buf32(592),r.sane=1,r.back=-1,0):s}function h(t){var r;return t&&t.state?((r=t.state).wsize=0,r.whave=0,r.wnext=0,l(t)):s}function d(t,r){var e,n;return t&&t.state?(n=t.state,r<0?(e=0,r=-r):(e=1+(r>>4),r<48&&(r&=15)),r&&(r<8||15=a.wsize?(n.arraySet(a.window,r,e-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i<(o=a.wsize-a.wnext)&&(o=i),n.arraySet(a.window,r,e-i,o,a.wnext),(i-=o)?(n.arraySet(a.window,r,e-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=o,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,e.check=o(e.check,L,2,0),m=g=0,e.mode=2;break}if(e.flags=0,e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&g)<<8)+(g>>8))%31){t.msg="incorrect header check",e.mode=30;break}if(8!=(15&g)){t.msg="unknown compression method",e.mode=30;break}if(m-=4,I=8+(15&(g>>>=4)),0===e.wbits)e.wbits=I;else if(I>e.wbits){t.msg="invalid window size",e.mode=30;break}e.dmax=1<>8&1),512&e.flags&&(L[0]=255&g,L[1]=g>>>8&255,e.check=o(e.check,L,2,0)),m=g=0,e.mode=3;case 3:for(;m<32;){if(0===p)break t;p--,g+=c[h++]<>>8&255,L[2]=g>>>16&255,L[3]=g>>>24&255,e.check=o(e.check,L,4,0)),m=g=0,e.mode=4;case 4:for(;m<16;){if(0===p)break t;p--,g+=c[h++]<>8),512&e.flags&&(L[0]=255&g,L[1]=g>>>8&255,e.check=o(e.check,L,2,0)),m=g=0,e.mode=5;case 5:if(1024&e.flags){for(;m<16;){if(0===p)break t;p--,g+=c[h++]<>>8&255,e.check=o(e.check,L,2,0)),m=g=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(1024&e.flags&&(p<(x=e.length)&&(x=p),x&&(e.head&&(I=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Array(e.head.extra_len)),n.arraySet(e.head.extra,c,h,x,I)),512&e.flags&&(e.check=o(e.check,c,x,h)),p-=x,h+=x,e.length-=x),e.length))break t;e.length=0,e.mode=7;case 7:if(2048&e.flags){if(0===p)break t;for(x=0;I=c[h+x++],e.head&&I&&e.length<65536&&(e.head.name+=String.fromCharCode(I)),I&&x>9&1,e.head.done=!0),t.adler=e.check=0,e.mode=12;break;case 10:for(;m<32;){if(0===p)break t;p--,g+=c[h++]<>>=7&m,m-=7&m,e.mode=27;break}for(;m<3;){if(0===p)break t;p--,g+=c[h++]<>>=1)){case 0:e.mode=14;break;case 1:if(y(e),e.mode=20,6!==r)break;g>>>=2,m-=2;break t;case 2:e.mode=17;break;case 3:t.msg="invalid block type",e.mode=30}g>>>=2,m-=2;break;case 14:for(g>>>=7&m,m-=7&m;m<32;){if(0===p)break t;p--,g+=c[h++]<>>16^65535)){t.msg="invalid stored block lengths",e.mode=30;break}if(e.length=65535&g,m=g=0,e.mode=15,6===r)break t;case 15:e.mode=16;case 16:if(x=e.length){if(p>>=5,m-=5,e.ndist=1+(31&g),g>>>=5,m-=5,e.ncode=4+(15&g),g>>>=4,m-=4,286>>=3,m-=3}for(;e.have<19;)e.lens[D[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,z={bits:e.lenbits},R=u(0,e.lens,0,19,e.lencode,0,e.work,z),e.lenbits=z.bits,R){t.msg="invalid code lengths set",e.mode=30;break}e.have=0,e.mode=19;case 19:for(;e.have>>16&255,S=65535&M,!((E=M>>>24)<=m);){if(0===p)break t;p--,g+=c[h++]<>>=E,m-=E,e.lens[e.have++]=S;else{if(16===S){for(B=E+2;m>>=E,m-=E,0===e.have){t.msg="invalid bit length repeat",e.mode=30;break}I=e.lens[e.have-1],x=3+(3&g),g>>>=2,m-=2}else if(17===S){for(B=E+3;m>>=E)),g>>>=3,m-=3}else{for(B=E+7;m>>=E)),g>>>=7,m-=7}if(e.have+x>e.nlen+e.ndist){t.msg="invalid bit length repeat",e.mode=30;break}for(;x--;)e.lens[e.have++]=I}}if(30===e.mode)break;if(0===e.lens[256]){t.msg="invalid code -- missing end-of-block",e.mode=30;break}if(e.lenbits=9,z={bits:e.lenbits},R=u(1,e.lens,0,e.nlen,e.lencode,0,e.work,z),e.lenbits=z.bits,R){t.msg="invalid literal/lengths set",e.mode=30;break}if(e.distbits=6,e.distcode=e.distdyn,z={bits:e.distbits},R=u(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,z),e.distbits=z.bits,R){t.msg="invalid distances set",e.mode=30;break}if(e.mode=20,6===r)break t;case 20:e.mode=21;case 21:if(6<=p&&258<=v){t.next_out=d,t.avail_out=v,t.next_in=h,t.avail_in=p,e.hold=g,e.bits=m,a(t,w),d=t.next_out,l=t.output,v=t.avail_out,h=t.next_in,c=t.input,p=t.avail_in,g=e.hold,m=e.bits,12===e.mode&&(e.back=-1);break}for(e.back=0;O=(M=e.lencode[g&(1<>>16&255,S=65535&M,!((E=M>>>24)<=m);){if(0===p)break t;p--,g+=c[h++]<>j)])>>>16&255,S=65535&M,!(j+(E=M>>>24)<=m);){if(0===p)break t;p--,g+=c[h++]<>>=j,m-=j,e.back+=j}if(g>>>=E,m-=E,e.back+=E,e.length=S,0===O){e.mode=26;break}if(32&O){e.back=-1,e.mode=12;break}if(64&O){t.msg="invalid literal/length code",e.mode=30;break}e.extra=15&O,e.mode=22;case 22:if(e.extra){for(B=e.extra;m>>=e.extra,m-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=23;case 23:for(;O=(M=e.distcode[g&(1<>>16&255,S=65535&M,!((E=M>>>24)<=m);){if(0===p)break t;p--,g+=c[h++]<>j)])>>>16&255,S=65535&M,!(j+(E=M>>>24)<=m);){if(0===p)break t;p--,g+=c[h++]<>>=j,m-=j,e.back+=j}if(g>>>=E,m-=E,e.back+=E,64&O){t.msg="invalid distance code",e.mode=30;break}e.offset=S,e.extra=15&O,e.mode=24;case 24:if(e.extra){for(B=e.extra;m>>=e.extra,m-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){t.msg="invalid distance too far back",e.mode=30;break}e.mode=25;case 25:if(0===v)break t;if(x=w-v,e.offset>x){if((x=e.offset-x)>e.whave&&e.sane){t.msg="invalid distance too far back",e.mode=30;break}A=x>e.wnext?(x-=e.wnext,e.wsize-x):e.wnext-x,x>e.length&&(x=e.length),k=e.window}else k=l,A=d-e.offset,x=e.length;for(vy?(b=D[P+l[k]],z[B+l[k]]):(b=96,0),d=1<>C)+(p-=d)]=_<<24|b<<16|w|0,0!==p;);for(d=1<>=1;if(0!==d?(R&=d-1,R+=d):R=0,k++,0==--M[A]){if(A===O)break;A=r[e+l[k]]}if(S>>7)]}function E(t,r){t.pending_buf[t.pending++]=255&r,t.pending_buf[t.pending++]=r>>>8&255}function O(t,r,e){t.bi_valid>16-e?(t.bi_buf|=r<>16-t.bi_valid,t.bi_valid+=e-16):(t.bi_buf|=r<>>=1,e<<=1,0<--r;);return e>>>1}function C(t,r,e){var n,i,o=new Array(16),a=0;for(n=1;n<=s;n++)o[n]=a=a+e[n-1]<<1;for(i=0;i<=r;i++){var u=t[2*i+1];0!==u&&(t[2*i]=j(o[u]++,u))}}function T(t){var r;for(r=0;r>1;1<=e;e--)z(t,o,e);for(i=f;e=t.heap[1],t.heap[1]=t.heap[t.heap_len--],z(t,o,1),n=t.heap[1],t.heap[--t.heap_max]=e,t.heap[--t.heap_max]=n,o[2*i]=o[2*e]+o[2*n],t.depth[i]=(t.depth[e]>=t.depth[n]?t.depth[e]:t.depth[n])+1,o[2*e+1]=o[2*n+1]=i,t.heap[1]=i++,z(t,o,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,r){var e,n,i,o,a,u,f=r.dyn_tree,c=r.max_code,l=r.stat_desc.static_tree,h=r.stat_desc.has_stree,d=r.stat_desc.extra_bits,p=r.stat_desc.extra_base,v=r.stat_desc.max_length,g=0;for(o=0;o<=s;o++)t.bl_count[o]=0;for(f[2*t.heap[t.heap_max]+1]=0,e=t.heap_max+1;e<573;e++)v<(o=f[2*f[2*(n=t.heap[e])+1]+1]+1)&&(o=v,g++),f[2*n+1]=o,c>=7;n>>=1)if(1&e&&0!==t.dyn_ltree[2*r])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(r=32;r>>3,(a=t.static_len+3+7>>>3)<=i&&(i=a)):i=a=e+5,e+4<=i&&-1!==r?U(t,r,e,n):4===t.strategy||a===i?(O(t,2+(n?1:0),3),B(t,d,p)):(O(t,4+(n?1:0),3),function(t,r,e,n){var i;for(O(t,r-257,5),O(t,e-1,5),O(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&r,t.pending_buf[t.l_buf+t.last_lit]=255&e,t.last_lit++,0===r?t.dyn_ltree[2*e]++:(t.matches++,r--,t.dyn_ltree[2*(g[e]+o+1)]++,t.dyn_dtree[2*k(r)]++),t.last_lit===t.lit_bufsize-1},e._tr_align=function(t){O(t,2,3),S(t,256,d),function(t){16===t.bi_valid?(E(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,r,e){"use strict";r.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,r,n){(function(t){!function(t,r){"use strict";if(!t.setImmediate){var e,n,i,o,a=1,u={},f=!1,c=t.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(t);l=l&&l.setTimeout?l:t,e="[object process]"==={}.toString.call(t.process)?function(t){s.nextTick((function(){d(t)}))}:function(){if(t.postMessage&&!t.importScripts){var r=!0,e=t.onmessage;return t.onmessage=function(){r=!1},t.postMessage("","*"),t.onmessage=e,r}}()?(o="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),function(r){t.postMessage(o+r,"*")}):t.MessageChannel?((i=new MessageChannel).port1.onmessage=function(t){d(t.data)},function(t){i.port2.postMessage(t)}):c&&"onreadystatechange"in c.createElement("script")?(n=c.documentElement,function(t){var r=c.createElement("script");r.onreadystatechange=function(){d(t),r.onreadystatechange=null,n.removeChild(r),r=null},n.appendChild(r)}):function(t){setTimeout(d,0,t)},l.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var r=new Array(arguments.length-1),n=0;n1)for(var e=1;et.length)&&(r=t.length);for(var e=0,n=new Array(r);e=0;--i){var o=this.tryEntries[i],u=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),f=a.call(o,"finallyLoc");if(s&&f){if(this.prev=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),I(e),y}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var i=n.arg;I(e)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:z(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),y}},e}t.exports=i,t.exports.__esModule=!0,t.exports.default=t.exports},689:function(t,r,e){var n=e(263),i=e(461),o=e(330),a=e(945);t.exports=function(t,r){return n(t)||i(t,r)||o(t,r)||a()},t.exports.__esModule=!0,t.exports.default=t.exports},673:function(t,r,e){var n=e(263),i=e(612),o=e(330),a=e(945);t.exports=function(t){return n(t)||i(t)||o(t)||a()},t.exports.__esModule=!0,t.exports.default=t.exports},273:function(t){function r(e){return t.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,r(e)}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports},330:function(t,r,e){var n=e(671);t.exports=function(t,r){if(t){if("string"==typeof t)return n(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?n(t,r):void 0}},t.exports.__esModule=!0,t.exports.default=t.exports}},r={};function e(n){var i=r[n];if(void 0!==i)return i.exports;var o=r[n]={id:n,loaded:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}e.amdO={},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t};var n={};return function(){"use strict";e.r(n),e.d(n,{add:function(){return E},after:function(){return U},ary:function(){return gr},assign:function(){return ae},assignIn:function(){return le},assignInWith:function(){return he},assignWith:function(){return de},at:function(){return hn},attempt:function(){return wn},base64DecodeImageKey:function(){return Nv},base64toBlob:function(){return Vv},before:function(){return xn},bind:function(){return kn},bindAll:function(){return En},bindKey:function(){return Sn},camelCase:function(){return zi},capitalize:function(){return Kn},castArray:function(){return Bi},ceil:function(){return Pi},chain:function(){return Ui},chunk:function(){return Wi},clamp:function(){return Zi},clone:function(){return na},cloneDeep:function(){return ia},cloneDeepWith:function(){return oa},cloneWith:function(){return aa},commit:function(){return ua},compact:function(){return sa},concat:function(){return fa},cond:function(){return $a},conforms:function(){return Ha},conformsTo:function(){return Va},constant:function(){return Nt},countBy:function(){return iu},create:function(){return ou},curry:function(){return uu},curryRight:function(){return fu},cutStr:function(){return rg},dataURLToBlob:function(){return qv},debounce:function(){return du},deburr:function(){return ri},defaultTo:function(){return pu},defaults:function(){return mu},defaultsDeep:function(){return Ou},defer:function(){return ju},delay:function(){return Cu},deviceIDToDeviceKey:function(){return mg},deviceKeyToDeviceId:function(){return _g},deviceToDeviceKey:function(){return yg},difference:function(){return zu},differenceBy:function(){return Lu},differenceWith:function(){return Pu},divide:function(){return Uu},downloadPackageImages:function(){return Yv},drop:function(){return Fu},dropRight:function(){return Nu},dropRightWhile:function(){return $u},dropWhile:function(){return Zu},each:function(){return Hu},eachRight:function(){return Xu},endsWith:function(){return Ju},entries:function(){return es},entriesIn:function(){return ns},eq:function(){return yr},escape:function(){return us},escapeRegExp:function(){return cs},every:function(){return ds},extend:function(){return le},extendWith:function(){return he},fileToBase64:function(){return $v},fill:function(){return gs},filter:function(){return ys},find:function(){return xs},findCamerasByInDeviceTree:function(){return wg},findIndex:function(){return ws},findKey:function(){return ks},findLast:function(){return js},findLastIndex:function(){return Ss},findLastKey:function(){return Cs},first:function(){return Ts},fixedLngLat:function(){return Xv},flatMap:function(){return zs},flatMapDeep:function(){return Bs},flatMapDepth:function(){return Ms},flatten:function(){return cn},flattenDeep:function(){return Ls},flattenDepth:function(){return Ds},flip:function(){return Ps},floor:function(){return Us},flow:function(){return Ns},flowRight:function(){return Ws},forEach:function(){return Hu},forEachRight:function(){return Xu},forIn:function(){return $s},forInRight:function(){return Zs},forOwn:function(){return Gs},forOwnRight:function(){return Hs},formateDuration:function(){return og},fromPairs:function(){return Vs},functions:function(){return Ks},functionsIn:function(){return qs},generateTime:function(){return ag},get:function(){return nn},getBase64ByImage:function(){return Gv},getBase64ByUrl:function(){return Wv},getBase64Image:function(){return Zv},getChromeVersion:function(){return Dv},getDeviceType:function(){return gg},getFileSize:function(){return Kv},getFileSuffix:function(){return Mv},getImageSuffixByFileType:function(){return Lv},getStrLength:function(){return tg},getVmsIdByDeviceId:function(){return bg},groupBy:function(){return Qs},gt:function(){return ef},gte:function(){return nf},has:function(){return uf},hasIn:function(){return Da},head:function(){return Ts},identity:function(){return F},inRange:function(){return lf},includes:function(){return gf},indexOf:function(){return yf},initial:function(){return _f},intersection:function(){return Af},intersectionBy:function(){return Ef},intersectionWith:function(){return Of},invert:function(){return If},invertBy:function(){return Lf},invoke:function(){return Uf},invokeMap:function(){return Nf},isArguments:function(){return Dr},isArray:function(){return b},isArrayBuffer:function(){return Zf},isArrayLike:function(){return Or},isArrayLikeObject:function(){return _u},isBoolean:function(){return Gf},isBuffer:function(){return Wr},isChrome:function(){return zv},isDate:function(){return Yf},isElement:function(){return Kf},isEmpty:function(){return Xf},isEqual:function(){return Jf},isEqualWith:function(){return Qf},isError:function(){return bn},isFaceCamera:function(){return vg},isFinite:function(){return rc},isFunction:function(){return W},isInteger:function(){return ec},isLength:function(){return Er},isMap:function(){return Yo},isMatch:function(){return nc},isMatchWith:function(){return ic},isNaN:function(){return ac},isNative:function(){return sc},isNil:function(){return fc},isNull:function(){return cc},isNumber:function(){return oc},isObject:function(){return T},isObjectLike:function(){return g},isPlainObject:function(){return _n},isRegExp:function(){return dc},isSafeInteger:function(){return vc},isSet:function(){return Xo},isString:function(){return hf},isSymbol:function(){return m},isTypedArray:function(){return Xr},isUndefined:function(){return gc},isWeakMap:function(){return mc},isWeakSet:function(){return yc},iteratee:function(){return _c},join:function(){return wc},kebabCase:function(){return Ac},keyBy:function(){return Ec},keys:function(){return ie},keysIn:function(){return ce},last:function(){return Bu},lastIndexOf:function(){return Cc},lodash:function(){return It},loop:function(){return Uv},lowerCase:function(){return Ic},lowerFirst:function(){return Rc},lt:function(){return Bc},lte:function(){return Mc},map:function(){return Rs},mapKeys:function(){return Lc},mapValues:function(){return Dc},matchS3Prefix:function(){return Bv},matches:function(){return Pc},matchesProperty:function(){return Uc},max:function(){return Nc},maxBy:function(){return Wc},mean:function(){return Gc},meanBy:function(){return Hc},memoize:function(){return Ve},merge:function(){return Vc},mergeWith:function(){return Eu},method:function(){return Yc},methodOf:function(){return Kc},min:function(){return qc},minBy:function(){return Xc},mixin:function(){return Jc},multiply:function(){return Qc},negate:function(){return tl},next:function(){return il},nextTick:function(){return Pv},noop:function(){return bt},now:function(){return cu},nth:function(){return al},nthArg:function(){return ul},omit:function(){return ll},omitBy:function(){return vl},once:function(){return gl},orderBy:function(){return wl},over:function(){return Al},overArgs:function(){return Ol},overEvery:function(){return Sl},overSome:function(){return jl},pad:function(){return ql},padEnd:function(){return Xl},padStart:function(){return Jl},parseInt:function(){return rh},partial:function(){return nh},partialRight:function(){return oh},partition:function(){return uh},pick:function(){return fh},pickBy:function(){return pl},plant:function(){return ch},property:function(){return Na},propertyOf:function(){return lh},pull:function(){return gh},pullAll:function(){return vh},pullAllBy:function(){return mh},pullAllWith:function(){return yh},pullAt:function(){return xh},random:function(){return Ch},range:function(){return Bh},rangeRight:function(){return Mh},rearg:function(){return Lh},reduce:function(){return Ph},reduceRight:function(){return Fh},reject:function(){return Nh},remove:function(){return Wh},repeat:function(){return $h},replace:function(){return Zh},rest:function(){return Gh},result:function(){return Hh},reverse:function(){return Yh},round:function(){return Kh},sample:function(){return Jh},sampleSize:function(){return ed},set:function(){return nd},setNumberAccuracy:function(){return eg},setWith:function(){return id},shuffle:function(){return ud},size:function(){return sd},slice:function(){return fd},snakeCase:function(){return ld},some:function(){return dd},sortBy:function(){return pd},sortedIndex:function(){return _d},sortedIndexBy:function(){return bd},sortedIndexOf:function(){return wd},sortedLastIndex:function(){return xd},sortedLastIndexBy:function(){return Ad},sortedLastIndexOf:function(){return kd},sortedUniq:function(){return Od},sortedUniqBy:function(){return Sd},speedConvert:function(){return Qv},split:function(){return jd},spread:function(){return Td},startCase:function(){return Rd},startsWith:function(){return zd},stubArray:function(){return ao},stubFalse:function(){return Pr},stubObject:function(){return Bd},stubString:function(){return Md},stubTrue:function(){return Ld},subtract:function(){return Dd},sum:function(){return Pd},sumBy:function(){return Ud},tail:function(){return Fd},take:function(){return Nd},takeRight:function(){return Wd},takeRightWhile:function(){return $d},takeWhile:function(){return Zd},tap:function(){return Gd},template:function(){return up},templateSettings:function(){return Jd},throttle:function(){return sp},thru:function(){return fp},times:function(){return hp},toArray:function(){return nl},toFinite:function(){return D},toInteger:function(){return P},toIterator:function(){return dp},toJSON:function(){return vp},toLength:function(){return ps},toLower:function(){return gp},toNumber:function(){return M},toPairs:function(){return es},toPairsIn:function(){return ns},toPath:function(){return mp},toPlainObject:function(){return wu},toSafeInteger:function(){return _p},toString:function(){return Qe},toUpper:function(){return bp},transform:function(){return wp},transformLngLat:function(){return Jv},trim:function(){return kp},trimEnd:function(){return Ep},trimStart:function(){return Sp},truncate:function(){return Cp},unary:function(){return Tp},unescape:function(){return Bp},union:function(){return Pp},unionBy:function(){return Fp},unionWith:function(){return Np},uniq:function(){return Wp},uniqBy:function(){return $p},uniqWith:function(){return Zp},uniqueId:function(){return Hp},unset:function(){return Vp},unzip:function(){return Kp},unzipWith:function(){return qp},update:function(){return Jp},updateWith:function(){return Qp},upperCase:function(){return rv},upperFirst:function(){return Yn},urlToBase64V2:function(){return Hv},urlToImg:function(){return Fv},value:function(){return vp},valueOf:function(){return vp},values:function(){return pf},valuesIn:function(){return ev},without:function(){return iv},words:function(){return Ci},wrap:function(){return ov},wrapperAt:function(){return av},wrapperChain:function(){return uv},wrapperCommit:function(){return ua},wrapperLodash:function(){return It},wrapperNext:function(){return il},wrapperPlant:function(){return ch},wrapperReverse:function(){return sv},wrapperToIterator:function(){return dp},wrapperValue:function(){return vp},xor:function(){return cv},xorBy:function(){return hv},xorWith:function(){return dv},zip:function(){return pv},zipObject:function(){return gv},zipObjectDeep:function(){return mv},zipWith:function(){return _v}});var t=e(273),r="object"==("undefined"==typeof global?"undefined":t(global))&&global&&global.Object===Object&&global,i="object"==("undefined"==typeof self?"undefined":t(self))&&self&&self.Object===Object&&self,o=r||i||Function("return this")(),a=o.Symbol,u=Object.prototype,s=u.hasOwnProperty,f=u.toString,c=a?a.toStringTag:void 0;var l=function(t){var r=s.call(t,c),e=t[c];try{t[c]=void 0;var n=!0}catch(t){}var i=f.call(t);return n&&(r?t[c]=e:delete t[c]),i},h=Object.prototype.toString;var d=function(t){return h.call(t)},p=a?a.toStringTag:void 0;var v=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":p&&p in Object(t)?l(t):d(t)};var g=function(r){return null!=r&&"object"==t(r)};var m=function(r){return"symbol"==t(r)||g(r)&&"[object Symbol]"==v(r)};var y=function(t){return"number"==typeof t?t:m(t)?NaN:+t};var _=function(t,r){for(var e=-1,n=null==t?0:t.length,i=Array(n);++e0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}},Mt=Bt(ot),Lt=/\{\n\/\* \[wrapped with (.+)\] \*/,Dt=/,? & /;var Pt=function(t){var r=t.match(Lt);return r?r[1].split(Dt):[]},Ut=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;var Ft=function(t,r){var e=r.length;if(!e)return t;var n=e-1;return r[n]=(e>1?"& ":"")+r[n],r=r.join(e>2?", ":" "),t.replace(Ut,"{\n/* [wrapped with "+r+"] */\n")};var Nt=function(t){return function(){return t}},Wt=function(){try{var t=et(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),$t=Bt(Wt?function(t,r){return Wt(t,"toString",{configurable:!0,enumerable:!1,value:Nt(r),writable:!0})}:F);var Zt=function(t,r){for(var e=-1,n=null==t?0:t.length;++e-1},qt=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];var Xt=function(t,r){return Zt(qt,(function(e){var n="_."+e[0];r&e[1]&&!Kt(t,n)&&t.push(n)})),t.sort()};var Jt=function(t,r,e){var n=r+"";return $t(t,Ft(n,Xt(Pt(n),e)))};var Qt=function(t,r,e,n,i,o,a,u,s,f){var c=8&r;r|=c?32:64,4&(r&=~(c?64:32))||(r&=-4);var l=[t,r,i,c?o:void 0,c?a:void 0,c?void 0:o,c?void 0:a,u,s,f],h=e.apply(void 0,l);return Rt(t)&&Mt(h,l),h.placeholder=n,Jt(h,t,r)};var tr=function(t){return t.placeholder},rr=/^(?:0|[1-9]\d*)$/;var er=function(r,e){var n=t(r);return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&rr.test(r))&&r>-1&&r%1==0&&r1&&b.reverse(),h&&c<_&&(b.length=c),this&&this!==o&&this instanceof y&&(O=m||ft(O)),O.apply(E,b)}};var sr=function(t,r,e){var n=ft(t);return function i(){for(var a=arguments.length,u=Array(a),s=a,f=tr(i);s--;)u[s]=arguments[s];var c=a<3&&u[0]!==f&&u[a-1]!==f?[]:ar(u,f);if((a-=c.length)-1&&t%1==0&&t<=9007199254740991};var Or=function(t){return null!=t&&Er(t.length)&&!W(t)};var Sr=function(r,e,n){if(!T(n))return!1;var i=t(e);return!!("number"==i?Or(n)&&er(e,n.length):"string"==i&&e in n)&&yr(n[e],r)};var jr=function(t){return kr((function(r,e){var n=-1,i=e.length,o=i>1?e[i-1]:void 0,a=i>2?e[2]:void 0;for(o=t.length>3&&"function"==typeof o?(i--,o):void 0,a&&Sr(e[0],e[1],a)&&(o=i<3?void 0:o,i=1),r=Object(r);++n-1};var ze=function(t,r){var e=this.__data__,n=je(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};function Be(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r0&&n(s)?e>1?t(s,e-1,n,i,o):an(o,s):i||(o[o.length]=s)}return o};var cn=function(t){return(null==t?0:t.length)?fn(t,1):[]};var ln=function(t){return $t(Ar(t,void 0,cn),t+"")},hn=ln(on),dn=te(Object.getPrototypeOf,Object),pn=Function.prototype,vn=Object.prototype,gn=pn.toString,mn=vn.hasOwnProperty,yn=gn.call(Object);var _n=function(t){if(!g(t)||"[object Object]"!=v(t))return!1;var r=dn(t);if(null===r)return!0;var e=mn.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&gn.call(e)==yn};var bn=function(t){if(!g(t))return!1;var r=v(t);return"[object Error]"==r||"[object DOMException]"==r||"string"==typeof t.message&&"string"==typeof t.name&&!_n(t)},wn=kr((function(t,r){try{return lt(t,void 0,r)}catch(t){return bn(t)?t:new Error(t)}}));var xn=function(t,r){var e;if("function"!=typeof r)throw new TypeError("Expected a function");return t=P(t),function(){return--t>0&&(e=r.apply(this,arguments)),t<=1&&(r=void 0),e}},An=kr((function(t,r,e){var n=1;if(e.length){var i=ar(e,tr(An));n|=32}return vr(t,n,r,e,i)}));An.placeholder={};var kn=An,En=ln((function(t,r){return Zt(r,(function(r){r=rn(r),mr(t,r,kn(t[r],t))})),t})),On=kr((function(t,r,e){var n=3;if(e.length){var i=ar(e,tr(On));n|=32}return vr(r,n,t,e,i)}));On.placeholder={};var Sn=On;var jn=function(t,r,e){var n=-1,i=t.length;r<0&&(r=-r>i?0:i+r),(e=e>i?i:e)<0&&(e+=i),i=r>e?0:e-r>>>0,r>>>=0;for(var o=Array(i);++n=n?t:jn(t,r,e)},Tn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var In=function(t){return Tn.test(t)};var Rn=function(t){return t.split("")},zn="\\ud800-\\udfff",Bn="["+zn+"]",Mn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ln="\\ud83c[\\udffb-\\udfff]",Dn="[^"+zn+"]",Pn="(?:\\ud83c[\\udde6-\\uddff]){2}",Un="[\\ud800-\\udbff][\\udc00-\\udfff]",Fn="(?:"+Mn+"|"+Ln+")"+"?",Nn="[\\ufe0e\\ufe0f]?",Wn=Nn+Fn+("(?:\\u200d(?:"+[Dn,Pn,Un].join("|")+")"+Nn+Fn+")*"),$n="(?:"+[Dn+Mn+"?",Mn,Pn,Un,Bn].join("|")+")",Zn=RegExp(Ln+"(?="+Ln+")|"+$n+Wn,"g");var Gn=function(t){return t.match(Zn)||[]};var Hn=function(t){return In(t)?Gn(t):Rn(t)};var Vn=function(t){return function(r){r=Qe(r);var e=In(r)?Hn(r):void 0,n=e?e[0]:r.charAt(0),i=e?Cn(e,1).join(""):r.slice(1);return n[t]()+i}},Yn=Vn("toUpperCase");var Kn=function(t){return Yn(Qe(t).toLowerCase())};var qn=function(t,r,e,n){var i=-1,o=null==t?0:t.length;for(n&&o&&(e=t[++i]);++i=r?t:r)),t};var Zi=function(t,r,e){return void 0===e&&(e=r,r=void 0),void 0!==e&&(e=(e=M(e))==e?e:0),void 0!==r&&(r=(r=M(r))==r?r:0),$i(M(t),r,e)};var Gi=function(){this.__data__=new Me,this.size=0};var Hi=function(t){var r=this.__data__,e=r.delete(t);return this.size=r.size,e};var Vi=function(t){return this.__data__.get(t)};var Yi=function(t){return this.__data__.has(t)};var Ki=function(t,r){var e=this.__data__;if(e instanceof Me){var n=e.__data__;if(!Le||n.length<199)return n.push([t,r]),this.size=++e.size,this;e=this.__data__=new Ge(n)}return e.set(t,r),this.size=e.size,this};function qi(t){var r=this.__data__=new Me(t);this.size=r.size}qi.prototype.clear=Gi,qi.prototype.delete=Hi,qi.prototype.get=Vi,qi.prototype.has=Yi,qi.prototype.set=Ki;var Xi=qi;var Ji=function(t,r){return t&&wr(r,ie(r),t)};var Qi=function(t,r){return t&&wr(r,ce(r),t)},to="object"==("undefined"==typeof exports?"undefined":t(exports))&&exports&&!exports.nodeType&&exports,ro=to&&"object"==("undefined"==typeof module?"undefined":t(module))&&module&&!module.nodeType&&module,eo=ro&&ro.exports===to?o.Buffer:void 0,no=eo?eo.allocUnsafe:void 0;var io=function(t,r){if(r)return t.slice();var e=t.length,n=no?no(e):new t.constructor(e);return t.copy(n),n};var oo=function(t,r){for(var e=-1,n=null==t?0:t.length,i=0,o=[];++eu))return!1;var f=o.get(t),c=o.get(r);if(f&&c)return f==r&&c==t;var l=-1,h=!0,d=2&e?new da:void 0;for(o.set(t,r),o.set(r,t);++l=r||e<0||l&&t-f>=o}function g(){var t=cu();if(v(t))return m(t);u=setTimeout(g,function(t){var e=r-(t-s);return l?hu(e,o-(t-f)):e}(t))}function m(t){return u=void 0,h&&n?d(t):(n=i=void 0,a)}function y(){var t=cu(),e=v(t);if(n=arguments,i=this,s=t,e){if(void 0===u)return p(s);if(l)return clearTimeout(u),u=setTimeout(g,r),d(s)}return void 0===u&&(u=setTimeout(g,r)),a}return r=M(r)||0,T(e)&&(c=!!e.leading,o=(l="maxWait"in e)?lu(M(e.maxWait)||0,r):o,h="trailing"in e?!!e.trailing:h),y.cancel=function(){void 0!==u&&clearTimeout(u),f=0,n=s=i=u=void 0},y.flush=function(){return void 0===u?a:m(cu())},y};var pu=function(t,r){return null==t||t!=t?r:t},vu=Object.prototype,gu=vu.hasOwnProperty,mu=kr((function(t,r){t=Object(t);var e=-1,n=r.length,i=n>2?r[2]:void 0;for(i&&Sr(r[0],r[1],i)&&(n=1);++e=200&&(o=va,a=!1,r=new da(r));t:for(;++i=0&&t.slice(e,i)==r};var Qu=function(t,r){return _(r,(function(r){return[r,t[r]]}))};var ts=function(t){var r=-1,e=Array(t.size);return t.forEach((function(t){e[++r]=[t,t]})),e};var rs=function(t){return function(r){var e=Ro(r);return"[object Map]"==e?ma(r):"[object Set]"==e?ts(r):Qu(r,t(r))}},es=rs(ie),ns=rs(ce),is=Xn({"&":"&","<":"<",">":">",'"':""","'":"'"}),os=/[&<>"']/g,as=RegExp(os.source);var us=function(t){return(t=Qe(t))&&as.test(t)?t.replace(os,is):t},ss=/[\\^$.*+?()[\]{}|]/g,fs=RegExp(ss.source);var cs=function(t){return(t=Qe(t))&&fs.test(t)?t.replace(ss,"\\$&"):t};var ls=function(t,r){for(var e=-1,n=null==t?0:t.length;++ei?0:i+e),(n=void 0===n||n>i?i:P(n))<0&&(n+=i),n=e>n?0:ps(n);e-1?i[o?r[a]:a]:void 0}},bs=Math.max;var ws=function(t,r,e){var n=null==t?0:t.length;if(!n)return-1;var i=null==e?0:P(e);return i<0&&(i=bs(n+i,0)),Gt(t,Wa(r,3),i)},xs=_s(ws);var As=function(t,r,e){var n;return e(t,(function(t,e,i){if(r(t,e,i))return n=e,!1})),n};var ks=function(t,r){return As(t,Wa(r,3),Xa)},Es=Math.max,Os=Math.min;var Ss=function(t,r,e){var n=null==t?0:t.length;if(!n)return-1;var i=n-1;return void 0!==e&&(i=P(e),i=e<0?Es(n+i,0):Os(i,n-1)),Gt(t,Wa(r,3),i,!0)},js=_s(Ss);var Cs=function(t,r){return As(t,Wa(r,3),Ku)};var Ts=function(t){return t&&t.length?t[0]:void 0};var Is=function(t,r){var e=-1,n=Or(t)?Array(t.length):[];return Qa(t,(function(t,i,o){n[++e]=r(t,i,o)})),n};var Rs=function(t,r){return(b(t)?_:Is)(t,Wa(r,3))};var zs=function(t,r){return fn(Rs(t,r),1)};var Bs=function(t,r){return fn(Rs(t,r),Infinity)};var Ms=function(t,r,e){return e=void 0===e?1:P(e),fn(Rs(t,r),e)};var Ls=function(t){return(null==t?0:t.length)?fn(t,Infinity):[]};var Ds=function(t,r){return(null==t?0:t.length)?(r=void 0===r?1:P(r),fn(t,r)):[]};var Ps=function(t){return vr(t,512)},Us=Di("floor");var Fs=function(t){return ln((function(r){var e=r.length,n=e,i=Ot.prototype.thru;for(t&&r.reverse();n--;){var o=r[n];if("function"!=typeof o)throw new TypeError("Expected a function");if(i&&!a&&"wrapper"==kt(o))var a=new Ot([],!0)}for(n=a?n:e;++nr};var rf=function(t){return function(r,e){return"string"==typeof r&&"string"==typeof e||(r=M(r),e=M(e)),t(r,e)}},ef=rf(tf),nf=rf((function(t,r){return t>=r})),of=Object.prototype.hasOwnProperty;var af=function(t,r){return null!=t&&of.call(t,r)};var uf=function(t,r){return null!=t&&La(t,r,af)},sf=Math.max,ff=Math.min;var cf=function(t,r,e){return t>=ff(r,e)&&t-1:!!i&&Yt(t,r,e)>-1},mf=Math.max;var yf=function(t,r,e){var n=null==t?0:t.length;if(!n)return-1;var i=null==e?0:P(e);return i<0&&(i=mf(n+i,0)),Yt(t,r,i)};var _f=function(t){return(null==t?0:t.length)?jn(t,0,-1):[]},bf=Math.min;var wf=function(t,r,e){for(var n=e?Tu:Kt,i=t[0].length,o=t.length,a=o,u=Array(o),s=1/0,f=[];a--;){var c=t[a];a&&r&&(c=_(c,Gr(r))),s=bf(c.length,s),u[a]=!e&&(r||i>=120&&c.length>=120)?new da(a&&c):void 0}c=t[0];var l=-1,h=u[0];t:for(;++l=-9007199254740991&&t<=pc};var gc=function(t){return void 0===t};var mc=function(t){return g(t)&&"[object WeakMap]"==Ro(t)};var yc=function(t){return g(t)&&"[object WeakSet]"==v(t)};var _c=function(t){return Wa("function"==typeof t?t:ea(t,1))},bc=Array.prototype.join;var wc=function(t,r){return null==t?"":bc.call(t,r)},xc=Ii((function(t,r,e){return t+(e?"-":"")+r.toLowerCase()})),Ac=xc,kc=ru((function(t,r,e){mr(t,e,r)})),Ec=kc;var Oc=function(t,r,e){for(var n=e+1;n--;)if(t[n]===r)return n;return n},Sc=Math.max,jc=Math.min;var Cc=function(t,r,e){var n=null==t?0:t.length;if(!n)return-1;var i=n;return void 0!==e&&(i=(i=P(e))<0?Sc(n+i,0):jc(i,n-1)),r==r?Oc(t,r,i):Gt(t,Ht,i,!0)},Tc=Ii((function(t,r,e){return t+(e?" ":"")+r.toLowerCase()})),Ic=Tc,Rc=Vn("toLowerCase");var zc=function(t,r){return t=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}};var ol=function(t,r){var e=t.length;if(e)return er(r+=r<0?e:0,e)?t[r]:void 0};var al=function(t,r){return t&&t.length?ol(t,P(r)):void 0};var ul=function(t){return t=P(t),kr((function(r){return ol(r,t)}))};var sl=function(t,r){return r=tn(r,t),null==(t=Df(t,r))||delete t[rn(Bu(r))]};var fl=function(t){return _n(t)?void 0:t},cl=ln((function(t,r){var e={};if(null==t)return e;var n=!1;r=_(r,(function(r){return r=tn(r,t),n||(n=r.length>1),r})),wr(t,mo(t),e),n&&(e=ea(e,7,fl));for(var i=r.length;i--;)sl(e,r[i]);return e})),ll=cl;var hl=function(t,r,e,n){if(!T(t))return t;for(var i=-1,o=(r=tn(r,t)).length,a=o-1,u=t;null!=u&&++ir||o&&a&&s&&!u&&!f||n&&a&&s||!e&&s||!i)return 1;if(!n&&!o&&!f&&t=u?s:s*("desc"==e[n]?-1:1)}return t.index-r.index};var bl=function(t,r,e){r=r.length?_(r,(function(t){return b(t)?function(r){return en(r,1===t.length?t[0]:t)}:t})):[F];var n=-1;r=_(r,Gr(Wa));var i=Is(t,(function(t,e,i){var o=_(r,(function(r){return r(t)}));return{criteria:o,index:++n,value:t}}));return ml(i,(function(t,r){return _l(t,r,e)}))};var wl=function(t,r,e,n){return null==t?[]:(b(r)||(r=null==r?[]:[r]),b(e=n?void 0:e)||(e=null==e?[]:[e]),bl(t,r,e))};var xl=function(t){return ln((function(r){return r=_(r,Gr(Wa)),kr((function(e){var n=this;return t(r,(function(t){return lt(t,n,e)}))}))}))},Al=xl(_),kl=kr,El=Math.min,Ol=kl((function(t,r){var e=(r=1==r.length&&b(r[0])?_(r[0],Gr(Wa)):_(fn(r,1),Gr(Wa))).length;return kr((function(n){for(var i=-1,o=El(n.length,e);++i9007199254740991)return e;do{r%2&&(e+=t),(r=Cl(r/2))&&(t+=t)}while(r);return e},Il=Ua("length"),Rl="\\ud800-\\udfff",zl="["+Rl+"]",Bl="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ml="\\ud83c[\\udffb-\\udfff]",Ll="[^"+Rl+"]",Dl="(?:\\ud83c[\\udde6-\\uddff]){2}",Pl="[\\ud800-\\udbff][\\udc00-\\udfff]",Ul="(?:"+Bl+"|"+Ml+")"+"?",Fl="[\\ufe0e\\ufe0f]?",Nl=Fl+Ul+("(?:\\u200d(?:"+[Ll,Dl,Pl].join("|")+")"+Fl+Ul+")*"),Wl="(?:"+[Ll+Bl+"?",Bl,Dl,Pl,zl].join("|")+")",$l=RegExp(Ml+"(?="+Ml+")|"+Wl+Nl,"g");var Zl=function(t){for(var r=$l.lastIndex=0;$l.test(t);)++r;return r};var Gl=function(t){return In(t)?Zl(t):Il(t)},Hl=Math.ceil;var Vl=function(t,r){var e=(r=void 0===r?" ":A(r)).length;if(e<2)return e?Tl(r,t):r;var n=Tl(r,Hl(t/Gl(r)));return In(r)?Cn(Hn(n),0,t).join(""):n.slice(0,t)},Yl=Math.ceil,Kl=Math.floor;var ql=function(t,r,e){t=Qe(t);var n=(r=P(r))?Gl(t):0;if(!r||n>=r)return t;var i=(r-n)/2;return Vl(Kl(i),e)+t+Vl(Yl(i),e)};var Xl=function(t,r,e){t=Qe(t);var n=(r=P(r))?Gl(t):0;return r&&n-1;)u!==t&&dh.call(u,s,1),dh.call(t,s,1);return t};var vh=function(t,r){return t&&t.length&&r&&r.length?ph(t,r):t},gh=kr(vh);var mh=function(t,r,e){return t&&t.length&&r&&r.length?ph(t,r,Wa(e,2)):t};var yh=function(t,r,e){return t&&t.length&&r&&r.length?ph(t,r,void 0,e):t},_h=Array.prototype.splice;var bh=function(t,r){for(var e=t?r.length:0,n=e-1;e--;){var i=r[e];if(e==n||i!==o){var o=i;er(i)?_h.call(t,i,1):sl(t,i)}}return t},wh=ln((function(t,r){var e=null==t?0:t.length,n=on(t,r);return bh(t,_(r,(function(t){return er(t,e)?+t:t})).sort(yl)),n})),xh=wh,Ah=Math.floor,kh=Math.random;var Eh=function(t,r){return t+Ah(kh()*(r-t+1))},Oh=parseFloat,Sh=Math.min,jh=Math.random;var Ch=function(t,r,e){if(e&&"boolean"!=typeof e&&Sr(t,r,e)&&(r=e=void 0),void 0===e&&("boolean"==typeof r?(e=r,r=void 0):"boolean"==typeof t&&(e=t,t=void 0)),void 0===t&&void 0===r?(t=0,r=1):(t=D(t),void 0===r?(r=t,t=0):r=D(r)),t>r){var n=t;t=r,r=n}if(e||t%1||r%1){var i=jh();return Sh(t+i*(r-t+Oh("1e-"+((i+"").length-1))),r)}return Eh(t,r)},Th=Math.ceil,Ih=Math.max;var Rh=function(t,r,e,n){for(var i=-1,o=Ih(Th((r-t)/(e||1)),0),a=Array(o);o--;)a[n?o:++i]=t,t+=e;return a};var zh=function(t){return function(r,e,n){return n&&"number"!=typeof n&&Sr(r,e,n)&&(e=n=void 0),r=D(r),void 0===e?(e=r,r=0):e=D(e),n=void 0===n?r1&&Sr(t,r[0],r[1])?r=[]:e>2&&Sr(r[0],r[1],r[2])&&(r=[r[0]]),bl(t,fn(r,1),[])})),vd=Math.floor,gd=Math.min;var md=function(t,r,e,n){var i=0,o=null==t?0:t.length;if(0===o)return 0;for(var a=(r=e(r))!=r,u=null===r,s=m(r),f=void 0===r;i>>1,a=t[o];null!==a&&!m(a)&&(e?a<=r:a>>0)?(t=Qe(t))&&("string"==typeof r||null!=r&&!dc(r))&&!(r=A(r))&&In(t)?Cn(Hn(t),0,e):t.split(r,e):[]},Cd=Math.max;var Td=function(t,r){if("function"!=typeof t)throw new TypeError("Expected a function");return r=null==r?0:Cd(P(r),0),kr((function(e){var n=e[r],i=Cn(e,0,r);return n&&an(i,n),lt(t,this,i)}))},Id=Ii((function(t,r,e){return t+(e?" ":"")+Yn(r)})),Rd=Id;var zd=function(t,r,e){return t=Qe(t),e=null==e?0:$i(P(e),0,t.length),r=A(r),t.slice(e,e+r.length)==r};var Bd=function(){return{}};var Md=function(){return""};var Ld=function(){return!0},Dd=k((function(t,r){return t-r}),0);var Pd=function(t){return t&&t.length?$c(t,F):0};var Ud=function(t,r){return t&&t.length?$c(t,Wa(r,2)):0};var Fd=function(t){var r=null==t?0:t.length;return r?jn(t,1,r):[]};var Nd=function(t,r,e){return t&&t.length?(r=e||void 0===r?1:P(r),jn(t,0,r<0?0:r)):[]};var Wd=function(t,r,e){var n=null==t?0:t.length;return n?(r=e||void 0===r?1:P(r),jn(t,(r=n-r)<0?0:r,n)):[]};var $d=function(t,r){return t&&t.length?Wu(t,Wa(r,3),!1,!0):[]};var Zd=function(t,r){return t&&t.length?Wu(t,Wa(r,3)):[]};var Gd=function(t,r){return r(t),t},Hd=Object.prototype,Vd=Hd.hasOwnProperty;var Yd=function(t,r,e,n){return void 0===t||yr(t,Hd[e])&&!Vd.call(n,e)?r:t},Kd={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var qd=function(t){return"\\"+Kd[t]},Xd=/<%=([\s\S]+?)%>/g,Jd={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:Xd,variable:"",imports:{_:{escape:us}}},Qd=/\b__p \+= '';/g,tp=/\b(__p \+=) '' \+/g,rp=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ep=/[()=,{}\[\]\/\s]/,np=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ip=/($^)/,op=/['\n\r\u2028\u2029\\]/g,ap=Object.prototype.hasOwnProperty;var up=function(t,r,e){var n=Jd.imports._.templateSettings||Jd;e&&Sr(t,r,e)&&(r=void 0),t=Qe(t),r=he({},r,n,Yd);var i,o,a=he({},r.imports,n.imports,Yd),u=ie(a),s=df(a,u),f=0,c=r.interpolate||ip,l="__p += '",h=RegExp((r.escape||ip).source+"|"+c.source+"|"+(c===Xd?np:ip).source+"|"+(r.evaluate||ip).source+"|$","g"),d=ap.call(r,"sourceURL")?"//# sourceURL="+(r.sourceURL+"").replace(/\s/g," ")+"\n":"";t.replace(h,(function(r,e,n,a,u,s){return n||(n=a),l+=t.slice(f,s).replace(op,qd),e&&(i=!0,l+="' +\n__e("+e+") +\n'"),u&&(o=!0,l+="';\n"+u+";\n__p += '"),n&&(l+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),f=s+r.length,r})),l+="';\n";var p=ap.call(r,"variable")&&r.variable;if(p){if(ep.test(p))throw new Error("Invalid `variable` option passed into `_.template`")}else l="with (obj) {\n"+l+"\n}\n";l=(o?l.replace(Qd,""):l).replace(tp,"$1").replace(rp,"$1;"),l="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var v=wn((function(){return Function(u,d+"return "+l).apply(void 0,s)}));if(v.source=l,bn(v))throw v;return v};var sp=function(t,r,e){var n=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return T(e)&&(n="leading"in e?!!e.leading:n,i="trailing"in e?!!e.trailing:i),du(t,r,{leading:n,maxWait:r,trailing:i})};var fp=function(t,r){return r(t)},cp=4294967295,lp=Math.min;var hp=function(t,r){if((t=P(t))<1||t>9007199254740991)return[];var e=cp,n=lp(t,cp);r=Gu(r),t-=cp;for(var i=Ir(n,r);++e-1;);return e};var Ap=function(t,r){for(var e=-1,n=t.length;++e-1;);return e};var kp=function(t,r,e){if((t=Qe(t))&&(e||void 0===r))return C(t);if(!t||!(r=A(r)))return t;var n=Hn(t),i=Hn(r),o=Ap(n,i),a=xp(n,i)+1;return Cn(n,o,a).join("")};var Ep=function(t,r,e){if((t=Qe(t))&&(e||void 0===r))return t.slice(0,S(t)+1);if(!t||!(r=A(r)))return t;var n=Hn(t),i=xp(n,Hn(r))+1;return Cn(n,0,i).join("")},Op=/^\s+/;var Sp=function(t,r,e){if((t=Qe(t))&&(e||void 0===r))return t.replace(Op,"");if(!t||!(r=A(r)))return t;var n=Hn(t),i=Ap(n,Hn(r));return Cn(n,i).join("")},jp=/\w*$/;var Cp=function(t,r){var e=30,n="...";if(T(r)){var i="separator"in r?r.separator:i;e="length"in r?P(r.length):e,n="omission"in r?A(r.omission):n}var o=(t=Qe(t)).length;if(In(t)){var a=Hn(t);o=a.length}if(e>=o)return t;var u=e-Gl(n);if(u<1)return n;var s=a?Cn(a,0,u).join(""):t.slice(0,u);if(void 0===i)return s+n;if(a&&(u+=s.length-u),dc(i)){if(t.slice(u).search(i)){var f,c=s;for(i.global||(i=RegExp(i.source,Qe(jp.exec(i))+"g")),i.lastIndex=0;f=i.exec(c);)var l=f.index;s=s.slice(0,void 0===l?u:l)}}else if(t.indexOf(A(i),u)!=u){var h=s.lastIndexOf(i);h>-1&&(s=s.slice(0,h))}return s+n};var Tp=function(t){return gr(t,1)},Ip=Xn({"&":"&","<":"<",">":">",""":'"',"'":"'"}),Rp=/&(?:amp|lt|gt|quot|#39);/g,zp=RegExp(Rp.source);var Bp=function(t){return(t=Qe(t))&&zp.test(t)?t.replace(Rp,Ip):t},Mp=bo&&1/ya(new bo([,-0]))[1]==1/0?function(t){return new bo(t)}:bt,Lp=Mp;var Dp=function(t,r,e){var n=-1,i=Kt,o=t.length,a=!0,u=[],s=u;if(e)a=!1,i=Tu;else if(o>=200){var f=r?null:Lp(t);if(f)return ya(f);a=!1,i=va,s=new da}else s=r?[]:u;t:for(;++n1||this.__actions__.length)&&n instanceof _t&&er(e)?((n=n.slice(e,+e+(r?1:0))).__actions__.push({func:fp,args:[i],thisArg:void 0}),new Ot(n,this.__chain__).thru((function(t){return r&&!t.length&&t.push(void 0),t}))):this.thru(i)}));var uv=function(){return Ui(this)};var sv=function(){var t=this.__wrapped__;if(t instanceof _t){var r=t;return this.__actions__.length&&(r=new _t(this)),(r=r.reverse()).__actions__.push({func:fp,args:[Yh],thisArg:void 0}),new Ot(r,this.__chain__)}return this.thru(Yh)};var fv=function(t,r,e){var n=t.length;if(n<2)return n?Dp(t[0]):[];for(var i=-1,o=Array(n);++i1?t[r-1]:void 0;return e="function"==typeof e?(t.pop(),e):void 0,qp(t,e)})),_v=yv,bv=e(416),wv=e.n(bv),xv=e(682),Av=e.n(xv),kv=e(673),Ev=e.n(kv),Ov=e(868),Sv=e.n(Ov),jv=e(292),Cv=e.n(jv),Tv=e(11),Iv=e.n(Tv),Rv=!("undefined"==typeof window||!window),zv=function(){var t=Rv&&window.navigator,r=t&&t.vendor,e=t&&t.userAgent,n=Rv&&"undefined"!=typeof chrome,i=Rv&&"undefined"!=typeof opr,o=e&&e.indexOf("Edge")>-1;return!(!e||!e.match("CriOS"))||n&&"Google Inc."===r&&!i&&!o},Bv=function(t){return/^v[0-9]_/.test(t)},Mv=function(t){var r=t.split(".");return r.length<2?"":r[r.length-1]},Lv=function(t){var r="";switch(t){case"jpeg":r=".jpg";break;case"gif":r=".gif";break;case"png":r=".png";break;case"vnd.wap.wbmp":r=".wbmp";break;case"x-up-wpng":r=".wpng";break;case"nbmp":r=".nbmp"}return r};function Dv(){for(var t=navigator.userAgent.split(" "),r="",e=0;e1&&void 0!==arguments[1]?arguments[1]:"image/png";return new Promise((function(e,n){var i=new XMLHttpRequest;i.open("GET",t,!0),i.responseType="arraybuffer",i.onload=function(t){if(200===Number(i.status)){for(var o=new Uint8Array(i.response),a=o.length,u=new Array(a);a--;)u[a]=String.fromCharCode(o[a]);var s=u.join(""),f=window.btoa(s);e("data:"+(r||"image/png")+";base64,"+f)}else n(t)},i.onerror=function(t){n(t)},i.send()}))},$v=function(t){return new Promise((function(r,e){var n=new FileReader;n.readAsDataURL(t),n.onload=function(t){r(null==t?void 0:t.target.result)},n.onerror=function(t){e(t)}}))},Zv=function(t,r,e){var n=document.createElement("canvas");n.width=void 0!==r?r:t.width,n.height=void 0!==e?e:t.height;var i=n.getContext("2d");null==i||i.drawImage(t,0,0,n.width,n.height);var o=t.src.substring(t.src.lastIndexOf(".")+1).toLowerCase();return n.toDataURL("image/"+o)},Gv=function(t){return new Promise((function(r,e){var n=new Image,i=(new Date).getTime(),o=t+"?"+i;n.src=o,n.onload=function(){var t=function(t){var r=document.createElement("canvas");r.width=t.width,r.height=t.height;var e=r.getContext("2d");null==e||e.drawImage(t,0,0,t.width,t.height);var n=t.src.substring(t.src.lastIndexOf(".")+1).toLowerCase();return r.toDataURL("image/"+n)}(n);r(t)},n.onerror=function(t){e(t)}}))},Hv=function(t){return new Promise((function(r,e){var n=new Image;n.onload=function(){var t,e=document.createElement("canvas");e.width=n.naturalWidth,e.height=n.naturalHeight,null==e||null===(t=e.getContext("2d"))||void 0===t||t.drawImage(n,0,0);var i=e.toDataURL("image/png");r(i)};var i=t;n.setAttribute("crossOrigin","Anonymous"),n.src=i,n.onerror=function(){e(new Error("Images fail to load"))}})).catch((function(t){throw new Error(t)}))};function Vv(t){if(t){for(var r=t.split(","),e=r[0].match(/:(.*?);/)[1],n=atob(r[1]),i=n.length,o=new Uint8Array(i);i--;)o[i]=n.charCodeAt(i);return new Blob([o],{type:e})}}var Yv=function(){var t=Av()(wv()().mark((function t(r,e){var n,i,o,a,u,s,f,c,l,h,d;return wv()().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=[],i=[],o=[],a=new(Cv()),u=a.folder(e),t.prev=5,s=0;case 7:if(!(s0)for(d=0;d1&&void 0!==arguments[1]?arguments[1]:8;if(void 0===t)return"0KB/s";var e=t/r;return t>1073741824?"".concat((e/1024/1024/1024).toFixed(2),"GB/s"):e>1048576?"".concat((e/1024/1024).toFixed(2),"MB/s"):"".concat(e>1024?(e/1024).toFixed(2):e,"KB/s")},tg=function(t){for(var r=0,e=t.length,n=-1,i=0;i=0&&n<=128?1:2;return r},rg=function(t,r){var e,n=0,i=new String;e=t.length;for(var o=0;o4&&n++,i=i.concat(a),n>=r)return i=i.concat("...")}if(n1&&void 0!==arguments[1]?arguments[1]:0,e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(0===t)return 0;var n=0;return n=e?Math.ceil(t/Math.pow(10,r))*Math.pow(10,r):Math.floor(t/Math.pow(10,r))*Math.pow(10,r),n=Number(r<0?n.toFixed(-r):n.toFixed(0))},ng=e(408),ig=e.n(ng),og=function(t){var r=Math.floor(t/864e5),e=t%864e5,n=Math.floor(e/36e5),i=e%36e5,o=Math.floor(i/6e4),a=i%6e4,u=Math.round(a/1e3)+"秒";return o>0&&(u=o+"分"),n>0&&(u=n+"小时"),r>0&&(u=r+"天"),u};function ag(){var t=ig()().endOf("day").unix();return{startDateTime:ig()().startOf("day").unix(),endDateTime:t}}var ug=e(689),sg=e.n(ug),fg="vms",cg="dir",lg="camera",hg=function(t){return t[t.VMSPLATFORMOPT_ID=0]="VMSPLATFORMOPT_ID",t[t.VMSPLATFORMOPT_PLATFORMNAME=1]="VMSPLATFORMOPT_PLATFORMNAME",t[t.VMSPLATFORMOPT_PLUGINNAME=2]="VMSPLATFORMOPT_PLUGINNAME",t[t.VMSPLATFORMOPT_IP=3]="VMSPLATFORMOPT_IP",t[t.VMSPLATFORMOPT_PORT=4]="VMSPLATFORMOPT_PORT",t[t.VMSPLATFORMOPT_USERNAME=5]="VMSPLATFORMOPT_USERNAME",t[t.VMSPLATFORMOPT_PASSWORD=6]="VMSPLATFORMOPT_PASSWORD",t}({}),dg=function(t){return t[t.OR=0]="OR",t[t.AND=1]="AND",t[t.ORNOT=2]="ORNOT",t[t.ANDNOT=3]="ANDNOT",t}({}),pg=function(t){return t[t.DEVICEMANAGER_CAMERA_TYPE_DEFAULT=0]="DEVICEMANAGER_CAMERA_TYPE_DEFAULT",t[t.DEVICEMANAGER_CAMERA_TYPE_NORMAL=1]="DEVICEMANAGER_CAMERA_TYPE_NORMAL",t[t.DEVICEMANAGER_CAMERA_TYPE_1400=97]="DEVICEMANAGER_CAMERA_TYPE_1400",t[t.DEVICEMANAGER_CAMERA_TYPE_DHGRABBER=98]="DEVICEMANAGER_CAMERA_TYPE_DHGRABBER",t[t.DEVICEMANAGER_CAMERA_TYPE_HKGRABBER=99]="DEVICEMANAGER_CAMERA_TYPE_HKGRABBER",t[t.DEVICEMANAGER_CAMERA_TYPE_LOCAL=100]="DEVICEMANAGER_CAMERA_TYPE_LOCAL",t}({}),vg=(dg.OR,hg.VMSPLATFORMOPT_PLATFORMNAME,dg.OR,hg.VMSPLATFORMOPT_PLATFORMNAME,function(t){return[pg.DEVICEMANAGER_CAMERA_TYPE_1400,pg.DEVICEMANAGER_CAMERA_TYPE_HKGRABBER,pg.DEVICEMANAGER_CAMERA_TYPE_DHGRABBER].includes(t)});function gg(t){var r;return hf(t)?r=t.split("_")[0]:(uf(t,"longitude")&&(r=lg),uf(t,"ip")&&(r=fg),r||(r=cg)),r}function mg(t,r,e){return r==cg?"".concat(r,"_").concat(t,"_").concat(e):"".concat(r,"_").concat(t)}function yg(t){var r="",e=gg(t);switch(e||console.error("device type is null!"),e){case cg:var n=t.dirid||t.dirId;n||0===n||console.error("dirId type is null!");var i=nn(t,"extendInfo.vmsPlatformId");i||0===i||console.error("vmsId type is null!"),r="".concat(e,"_").concat(n,"_").concat(i);break;case fg:r="".concat(e,"_").concat(t.id);break;case lg:var o=nn(t,"extendInfo.vmsPlatformId");o||0===o||console.error("vmsId type is null!"),r="".concat(e,"_").concat(t.id)}return r}function _g(t){var r=t.split("_"),e=sg()(r,2),n=e[0],i=e[1];return n===cg?i:Number(i)}var bg=function(t){var r="";switch(gg(t)){case lg:case cg:r=t.split("_")[2];break;case fg:r=t.split("_")[1]}return r||console.error("vmsid is null!"),r},wg=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1?arguments[1]:void 0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"id",n=[],i=t.map((function(t){return String(t)}));return Uv(r,(function(t){var r=gg(nn(t,"key",""))===lg,o="key"===e?i.includes(nn(t,"key")):i.includes("".concat(nn(t,"origin.id")));r&&o&&n.push(t)})),n}}(),n}()})); \ No newline at end of file diff --git a/packages/func/es/addEventListener/index.d.ts b/packages/func/es/addEventListener/index.d.ts deleted file mode 100644 index 7561ea9..0000000 --- a/packages/func/es/addEventListener/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function addEventListener(target: any, eventType: string, cb: any, option: any): { - remove: () => void; -}; diff --git a/packages/func/es/addEventListener/index.js b/packages/func/es/addEventListener/index.js deleted file mode 100644 index 2fd2841..0000000 --- a/packages/func/es/addEventListener/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import ReactDOM from 'react-dom'; -export default function addEventListener(target, eventType, cb, option) { - /* eslint camelcase: 2 */ - var callback = ReactDOM.unstable_batchedUpdates ? function run(e) { - ReactDOM.unstable_batchedUpdates(cb, e); - } : cb; - if (target.addEventListener) { - target.addEventListener(eventType, callback, option); - } - return { - remove: function remove() { - if (target.removeEventListener) { - target.removeEventListener(eventType, callback); - } - } - }; -} \ No newline at end of file diff --git a/packages/func/es/camera/constants.d.ts b/packages/func/es/camera/constants.d.ts new file mode 100644 index 0000000..0658bd8 --- /dev/null +++ b/packages/func/es/camera/constants.d.ts @@ -0,0 +1,41 @@ +/** + * 设备类型枚举 + */ +export declare const DeviceType: { + VMS: string; + DIR: string; + CAMERA: string; +}; +export declare const LOCAL_KEY = "local"; +export declare const DIRE_CONNECT_KEY = "direconnect"; +export declare const BOX_LIST_KEY = "boxlist"; +export declare enum VmsplatformOpt { + VMSPLATFORMOPT_ID = 0, + VMSPLATFORMOPT_PLATFORMNAME = 1, + VMSPLATFORMOPT_PLUGINNAME = 2, + VMSPLATFORMOPT_IP = 3, + VMSPLATFORMOPT_PORT = 4, + VMSPLATFORMOPT_USERNAME = 5, + VMSPLATFORMOPT_PASSWORD = 6 +} +export declare enum OPT { + OR = 0, + AND = 1, + ORNOT = 2, + ANDNOT = 3 +} +export declare enum DevicemanagerCameraType { + DEVICEMANAGER_CAMERA_TYPE_DEFAULT = 0, + DEVICEMANAGER_CAMERA_TYPE_NORMAL = 1, + DEVICEMANAGER_CAMERA_TYPE_1400 = 97, + DEVICEMANAGER_CAMERA_TYPE_DHGRABBER = 98, + DEVICEMANAGER_CAMERA_TYPE_HKGRABBER = 99, + DEVICEMANAGER_CAMERA_TYPE_LOCAL = 100 +} +export declare const BOX_DIRECONNECT_PLATFORM_FILTER: { + filtervmsplatformList: { + opt: OPT; + vmsplatformOpt: VmsplatformOpt; + value: string; + }[]; +}; diff --git a/packages/func/es/camera/constants.js b/packages/func/es/camera/constants.js new file mode 100644 index 0000000..1a313b4 --- /dev/null +++ b/packages/func/es/camera/constants.js @@ -0,0 +1,50 @@ +/** + * 设备类型枚举 + */ +export var DeviceType = { + VMS: 'vms', + DIR: 'dir', + CAMERA: 'camera' +}; +export var LOCAL_KEY = 'local'; //离线摄像头key 约定 +export var DIRE_CONNECT_KEY = 'direconnect'; +export var BOX_LIST_KEY = 'boxlist'; +export var VmsplatformOpt = /*#__PURE__*/function (VmsplatformOpt) { + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_ID"] = 0] = "VMSPLATFORMOPT_ID"; + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_PLATFORMNAME"] = 1] = "VMSPLATFORMOPT_PLATFORMNAME"; + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_PLUGINNAME"] = 2] = "VMSPLATFORMOPT_PLUGINNAME"; + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_IP"] = 3] = "VMSPLATFORMOPT_IP"; + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_PORT"] = 4] = "VMSPLATFORMOPT_PORT"; + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_USERNAME"] = 5] = "VMSPLATFORMOPT_USERNAME"; + VmsplatformOpt[VmsplatformOpt["VMSPLATFORMOPT_PASSWORD"] = 6] = "VMSPLATFORMOPT_PASSWORD"; + return VmsplatformOpt; +}({}); +export var OPT = /*#__PURE__*/function (OPT) { + OPT[OPT["OR"] = 0] = "OR"; + OPT[OPT["AND"] = 1] = "AND"; + OPT[OPT["ORNOT"] = 2] = "ORNOT"; + OPT[OPT["ANDNOT"] = 3] = "ANDNOT"; + return OPT; +}({}); +export var DevicemanagerCameraType = /*#__PURE__*/function (DevicemanagerCameraType) { + DevicemanagerCameraType[DevicemanagerCameraType["DEVICEMANAGER_CAMERA_TYPE_DEFAULT"] = 0] = "DEVICEMANAGER_CAMERA_TYPE_DEFAULT"; + DevicemanagerCameraType[DevicemanagerCameraType["DEVICEMANAGER_CAMERA_TYPE_NORMAL"] = 1] = "DEVICEMANAGER_CAMERA_TYPE_NORMAL"; + DevicemanagerCameraType[DevicemanagerCameraType["DEVICEMANAGER_CAMERA_TYPE_1400"] = 97] = "DEVICEMANAGER_CAMERA_TYPE_1400"; + DevicemanagerCameraType[DevicemanagerCameraType["DEVICEMANAGER_CAMERA_TYPE_DHGRABBER"] = 98] = "DEVICEMANAGER_CAMERA_TYPE_DHGRABBER"; + DevicemanagerCameraType[DevicemanagerCameraType["DEVICEMANAGER_CAMERA_TYPE_HKGRABBER"] = 99] = "DEVICEMANAGER_CAMERA_TYPE_HKGRABBER"; + DevicemanagerCameraType[DevicemanagerCameraType["DEVICEMANAGER_CAMERA_TYPE_LOCAL"] = 100] = "DEVICEMANAGER_CAMERA_TYPE_LOCAL"; + return DevicemanagerCameraType; +}({}); + +// 盒子 直连 平台 +export var BOX_DIRECONNECT_PLATFORM_FILTER = { + filtervmsplatformList: [{ + opt: OPT.OR, + vmsplatformOpt: VmsplatformOpt.VMSPLATFORMOPT_PLATFORMNAME, + value: 'direconnect' + }, { + opt: OPT.OR, + vmsplatformOpt: VmsplatformOpt.VMSPLATFORMOPT_PLATFORMNAME, + value: 'boxlist' + }] +}; \ No newline at end of file diff --git a/packages/func/es/camera/index.d.ts b/packages/func/es/camera/index.d.ts new file mode 100644 index 0000000..c47dcdd --- /dev/null +++ b/packages/func/es/camera/index.d.ts @@ -0,0 +1,40 @@ +import { DevicemanagerCameraType } from './constants'; +export declare const isFaceCamera: (type: DevicemanagerCameraType) => boolean; +/** + * + * @param value 传入的数据 可以是 item(camera/vms/dirs)/ deviceID + * @param isId + */ +export declare function getDeviceType(value: { + [x: string]: any; + id: any; +} | string): any; +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param id 设备id + * @param type 设备类型 + */ +export declare function deviceIDToDeviceKey(id: any, type: string, vmsId?: any): string; +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param item camera/vms/dirs + */ +export declare function deviceToDeviceKey(item: { + [x: string]: any; + id: any; +}): string; +/** + * 设备树key 转 后端设备原始id dirid是string/vms&camera 是number 和后端保持一致 + * @param deviceKey 设备树的id + */ +export declare function deviceKeyToDeviceId(deviceKey: { + split: (arg0: string) => [any, any]; +}): any; +export declare const getVmsIdByDeviceId: (key: string) => string; +/** + * 通过设备id或设备key在树里面找摄像头 + * @param ids cameraId + * @param deviceTree 树 + * @param type "id" | "key" + */ +export declare const findCamerasByInDeviceTree: (ids: never[] | undefined, deviceTree: any, type?: string) => any[]; diff --git a/packages/func/es/camera/index.js b/packages/func/es/camera/index.js new file mode 100644 index 0000000..9184f3f --- /dev/null +++ b/packages/func/es/camera/index.js @@ -0,0 +1,142 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +import { get, has, isString } from 'lodash-es'; +import { loop } from "../utils"; +import { DevicemanagerCameraType, DeviceType } from "./constants"; +export var isFaceCamera = function isFaceCamera(type) { + return [DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_1400, DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_HKGRABBER, DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_DHGRABBER].includes(type); +}; + +/** + * + * @param value 传入的数据 可以是 item(camera/vms/dirs)/ deviceID + * @param isId + */ +export function getDeviceType(value) { + var type; + var isDeviceKey = isString(value); + if (isDeviceKey) { + type = value.split('_')[0]; + } else { + if (has(value, 'longitude')) { + type = DeviceType['CAMERA']; + } + if (has(value, 'ip')) { + type = DeviceType['VMS']; + } + if (!type) { + type = DeviceType['DIR']; + } + } + return type; +} + +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param id 设备id + * @param type 设备类型 + */ +export function deviceIDToDeviceKey(id, type, vmsId) { + if (type == DeviceType['DIR']) { + return "".concat(type, "_").concat(id, "_").concat(vmsId); + } else { + return "".concat(type, "_").concat(id); + } +} + +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param item camera/vms/dirs + */ +export function deviceToDeviceKey(item) { + var deviceKey = ''; + var type = getDeviceType(item); + if (!type) { + console.error('device type is null!'); + } + switch (type) { + case DeviceType['DIR']: + { + var dirId = item['dirid'] || item['dirId']; + if (!dirId && dirId !== 0) { + console.error('dirId type is null!'); + } + var vmsId = get(item, 'extendInfo.vmsPlatformId'); + if (!vmsId && vmsId !== 0) { + console.error('vmsId type is null!'); + } + deviceKey = "".concat(type, "_").concat(dirId, "_").concat(vmsId); + } + break; + case DeviceType['VMS']: + deviceKey = "".concat(type, "_").concat(item['id']); + break; + case DeviceType['CAMERA']: + { + var _vmsId = get(item, 'extendInfo.vmsPlatformId'); + if (!_vmsId && _vmsId !== 0) { + console.error('vmsId type is null!'); + } + deviceKey = "".concat(type, "_").concat(item.id); + } + break; + } + return deviceKey; +} + +/** + * 设备树key 转 后端设备原始id dirid是string/vms&camera 是number 和后端保持一致 + * @param deviceKey 设备树的id + */ +export function deviceKeyToDeviceId(deviceKey) { + var _deviceKey$split = deviceKey.split('_'), + _deviceKey$split2 = _slicedToArray(_deviceKey$split, 2), + type = _deviceKey$split2[0], + id = _deviceKey$split2[1]; + return type === DeviceType['DIR'] ? id : Number(id); +} +export var getVmsIdByDeviceId = function getVmsIdByDeviceId(key) { + var type = getDeviceType(key); + var vmsId = ''; + switch (type) { + case DeviceType['CAMERA']: + case DeviceType['DIR']: + vmsId = key.split('_')[2]; + break; + case DeviceType['VMS']: + vmsId = key.split('_')[1]; + break; + } + if (!vmsId) { + console.error('vmsid is null!'); + } + return vmsId; +}; + +/** + * 通过设备id或设备key在树里面找摄像头 + * @param ids cameraId + * @param deviceTree 树 + * @param type "id" | "key" + */ +export var findCamerasByInDeviceTree = function findCamerasByInDeviceTree() { + var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var deviceTree = arguments.length > 1 ? arguments[1] : undefined; + var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'id'; + var cameraInfoList = []; + var _ids = ids.map(function (v) { + return String(v); + }); //都转string在做判断 保证格式一致 + loop(deviceTree, function (item) { + var isCamera = getDeviceType(get(item, 'key', '')) === DeviceType['CAMERA']; + var isMatch = type === 'key' ? _ids.includes(get(item, 'key')) : _ids.includes("".concat(get(item, 'origin.id'))); + if (isCamera && isMatch) { + cameraInfoList.push(item); + } + }); + return cameraInfoList; +}; \ No newline at end of file diff --git a/packages/func/es/file/index.d.ts b/packages/func/es/file/index.d.ts index f4bd630..09e2615 100644 --- a/packages/func/es/file/index.d.ts +++ b/packages/func/es/file/index.d.ts @@ -52,3 +52,10 @@ export declare function base64toBlob(base64: string): Blob | undefined; export declare const downloadPackageImages: (imgDataList: string | any[], zipName: string) => Promise; export declare function getFileSize(size: number): string; export declare const dataURLToBlob: (dataurl: string) => Blob; +/** + * key 转 http 链接 + * @param originImgkey 图片的值 ,可以是 base64 也可以是 http链接 + * @param host 图片的域值 + * @returns {string} + */ +export declare const generateImg: (imgKey: string, host?: string) => string; diff --git a/packages/func/es/file/index.js b/packages/func/es/file/index.js index 677b4ee..474136a 100644 --- a/packages/func/es/file/index.js +++ b/packages/func/es/file/index.js @@ -309,4 +309,38 @@ export var dataURLToBlob = function dataURLToBlob(dataurl) { return new Blob([u8arr], { type: mime }); +}; + +/** + * key 转 http 链接 + * @param originImgkey 图片的值 ,可以是 base64 也可以是 http链接 + * @param host 图片的域值 + * @returns {string} + */ +export var generateImg = function generateImg(_imgKey) { + var host = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'http://10.0.0.120'; + var imgKey = _imgKey; + var imgUrl = ''; + //判空 + if (!imgKey) return ''; + if (/^(http:|https:)/.test(imgKey)) { + return imgKey; + } + try { + if (matchS3Prefix(imgKey)) { + imgKey = base64DecodeImageKey(imgKey); + if (imgKey.endsWith('/')) { + var i = imgKey.substring(0, imgKey.length - 1); + imgKey = i; + } + } + imgUrl = "".concat(host, "/file/").concat(imgKey); + if (_imgKey.includes('v3')) { + imgUrl = "".concat(host, "/minio/").concat(imgKey); + } + } catch (error) { + console.error(error); + imgUrl = ''; + } + return imgUrl; }; \ No newline at end of file diff --git a/packages/func/es/index.d.ts b/packages/func/es/index.d.ts index 5de4fac..b792dee 100644 --- a/packages/func/es/index.d.ts +++ b/packages/func/es/index.d.ts @@ -1,3 +1,4 @@ +export * from 'lodash-es'; export * from './file'; export * from './map'; export * from './performance'; @@ -5,3 +6,4 @@ export * from './string'; export * from './number'; export * from './time'; export * from './utils'; +export * from './camera'; diff --git a/packages/func/es/index.js b/packages/func/es/index.js index 95eaee3..6267c03 100644 --- a/packages/func/es/index.js +++ b/packages/func/es/index.js @@ -1,7 +1,9 @@ +export * from 'lodash-es'; export * from "./file"; export * from "./map"; export * from "./performance"; export * from "./string"; export * from "./number"; export * from "./time"; -export * from "./utils"; \ No newline at end of file +export * from "./utils"; +export * from "./camera"; \ No newline at end of file diff --git a/packages/func/es/utils/index.d.ts b/packages/func/es/utils/index.d.ts index 44c87e8..2ae2b65 100644 --- a/packages/func/es/utils/index.d.ts +++ b/packages/func/es/utils/index.d.ts @@ -1,3 +1,4 @@ +export { default as isChrome } from './isChrome'; export declare const matchS3Prefix: (str: string) => boolean; /** * 通过文件名获取文件类型 @@ -13,3 +14,7 @@ export declare const getFileSuffix: (fileName: string) => string; export declare const getImageSuffixByFileType: (type: string) => string; export declare function getChromeVersion(): number | false; export declare const nextTick: (func: (value: void) => void | PromiseLike) => void; +export declare const loop: (items: string | any[], callback: (arg0: any) => any) => void; +export declare const addEventListener: (target: any, eventType: string, cb: any, option?: any) => { + remove: () => void; +}; diff --git a/packages/func/es/utils/index.js b/packages/func/es/utils/index.js index 1c36720..6a087d6 100644 --- a/packages/func/es/utils/index.js +++ b/packages/func/es/utils/index.js @@ -1,3 +1,5 @@ +import ReactDOM from 'react-dom'; +export { default as isChrome } from "./isChrome"; export var matchS3Prefix = function matchS3Prefix(str) { return /^v[0-9]_/.test(str); }; @@ -73,4 +75,32 @@ export var nextTick = function nextTick(func) { return; } Promise.resolve().then(func); +}; +export var loop = function loop(items, callback) { + for (var i = 0; i < items.length; i++) { + var element = items[i]; + var isBreak = callback(element); + if (isBreak) { + return; + } + if (element['children']) { + loop(element['children'], callback); + } + } +}; +export var addEventListener = function addEventListener(target, eventType, cb, option) { + /* eslint camelcase: 2 */ + var callback = ReactDOM.unstable_batchedUpdates ? function run(e) { + ReactDOM.unstable_batchedUpdates(cb, e); + } : cb; + if (target.addEventListener) { + target.addEventListener(eventType, callback, option); + } + return { + remove: function remove() { + if (target.removeEventListener) { + target.removeEventListener(eventType, callback); + } + } + }; }; \ No newline at end of file diff --git a/packages/func/es/utils/isChrome.d.ts b/packages/func/es/utils/isChrome.d.ts new file mode 100644 index 0000000..2d07ceb --- /dev/null +++ b/packages/func/es/utils/isChrome.d.ts @@ -0,0 +1,3 @@ +export declare const isBrowser: boolean; +declare const isChrome: () => boolean; +export default isChrome; diff --git a/packages/func/es/utils/isChrome.js b/packages/func/es/utils/isChrome.js new file mode 100644 index 0000000..7cfe2e3 --- /dev/null +++ b/packages/func/es/utils/isChrome.js @@ -0,0 +1,17 @@ +export var isBrowser = !!(typeof window !== 'undefined' && window); +var isChrome = function isChrome() { + var winNav = isBrowser && window.navigator; + var vendorName = winNav && winNav.vendor; + var userAgent = winNav && winNav.userAgent; + + //@ts-ignore + var isChromium = isBrowser && typeof chrome !== 'undefined'; + + //@ts-ignore + var isOpera = isBrowser && typeof opr !== 'undefined'; + var isIEedge = userAgent && userAgent.indexOf('Edge') > -1; + var isIOSChrome = !!(userAgent && userAgent.match('CriOS')); + var isDesktopChrome = isChromium && vendorName === 'Google Inc.' && !isOpera && !isIEedge; + return isIOSChrome || isDesktopChrome; +}; +export default isChrome; \ No newline at end of file diff --git a/packages/func/lib/addEventListener/index.d.ts b/packages/func/lib/addEventListener/index.d.ts deleted file mode 100644 index 7561ea9..0000000 --- a/packages/func/lib/addEventListener/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function addEventListener(target: any, eventType: string, cb: any, option: any): { - remove: () => void; -}; diff --git a/packages/func/lib/camera/constants.d.ts b/packages/func/lib/camera/constants.d.ts new file mode 100644 index 0000000..0658bd8 --- /dev/null +++ b/packages/func/lib/camera/constants.d.ts @@ -0,0 +1,41 @@ +/** + * 设备类型枚举 + */ +export declare const DeviceType: { + VMS: string; + DIR: string; + CAMERA: string; +}; +export declare const LOCAL_KEY = "local"; +export declare const DIRE_CONNECT_KEY = "direconnect"; +export declare const BOX_LIST_KEY = "boxlist"; +export declare enum VmsplatformOpt { + VMSPLATFORMOPT_ID = 0, + VMSPLATFORMOPT_PLATFORMNAME = 1, + VMSPLATFORMOPT_PLUGINNAME = 2, + VMSPLATFORMOPT_IP = 3, + VMSPLATFORMOPT_PORT = 4, + VMSPLATFORMOPT_USERNAME = 5, + VMSPLATFORMOPT_PASSWORD = 6 +} +export declare enum OPT { + OR = 0, + AND = 1, + ORNOT = 2, + ANDNOT = 3 +} +export declare enum DevicemanagerCameraType { + DEVICEMANAGER_CAMERA_TYPE_DEFAULT = 0, + DEVICEMANAGER_CAMERA_TYPE_NORMAL = 1, + DEVICEMANAGER_CAMERA_TYPE_1400 = 97, + DEVICEMANAGER_CAMERA_TYPE_DHGRABBER = 98, + DEVICEMANAGER_CAMERA_TYPE_HKGRABBER = 99, + DEVICEMANAGER_CAMERA_TYPE_LOCAL = 100 +} +export declare const BOX_DIRECONNECT_PLATFORM_FILTER: { + filtervmsplatformList: { + opt: OPT; + vmsplatformOpt: VmsplatformOpt; + value: string; + }[]; +}; diff --git a/packages/func/lib/camera/constants.js b/packages/func/lib/camera/constants.js new file mode 100644 index 0000000..efd28fa --- /dev/null +++ b/packages/func/lib/camera/constants.js @@ -0,0 +1,90 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/camera/constants.ts +var constants_exports = {}; +__export(constants_exports, { + BOX_DIRECONNECT_PLATFORM_FILTER: () => BOX_DIRECONNECT_PLATFORM_FILTER, + BOX_LIST_KEY: () => BOX_LIST_KEY, + DIRE_CONNECT_KEY: () => DIRE_CONNECT_KEY, + DeviceType: () => DeviceType, + DevicemanagerCameraType: () => DevicemanagerCameraType, + LOCAL_KEY: () => LOCAL_KEY, + OPT: () => OPT, + VmsplatformOpt: () => VmsplatformOpt +}); +module.exports = __toCommonJS(constants_exports); +var DeviceType = { + VMS: "vms", + DIR: "dir", + CAMERA: "camera" +}; +var LOCAL_KEY = "local"; +var DIRE_CONNECT_KEY = "direconnect"; +var BOX_LIST_KEY = "boxlist"; +var VmsplatformOpt = /* @__PURE__ */ ((VmsplatformOpt2) => { + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_ID"] = 0] = "VMSPLATFORMOPT_ID"; + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_PLATFORMNAME"] = 1] = "VMSPLATFORMOPT_PLATFORMNAME"; + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_PLUGINNAME"] = 2] = "VMSPLATFORMOPT_PLUGINNAME"; + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_IP"] = 3] = "VMSPLATFORMOPT_IP"; + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_PORT"] = 4] = "VMSPLATFORMOPT_PORT"; + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_USERNAME"] = 5] = "VMSPLATFORMOPT_USERNAME"; + VmsplatformOpt2[VmsplatformOpt2["VMSPLATFORMOPT_PASSWORD"] = 6] = "VMSPLATFORMOPT_PASSWORD"; + return VmsplatformOpt2; +})(VmsplatformOpt || {}); +var OPT = /* @__PURE__ */ ((OPT2) => { + OPT2[OPT2["OR"] = 0] = "OR"; + OPT2[OPT2["AND"] = 1] = "AND"; + OPT2[OPT2["ORNOT"] = 2] = "ORNOT"; + OPT2[OPT2["ANDNOT"] = 3] = "ANDNOT"; + return OPT2; +})(OPT || {}); +var DevicemanagerCameraType = /* @__PURE__ */ ((DevicemanagerCameraType2) => { + DevicemanagerCameraType2[DevicemanagerCameraType2["DEVICEMANAGER_CAMERA_TYPE_DEFAULT"] = 0] = "DEVICEMANAGER_CAMERA_TYPE_DEFAULT"; + DevicemanagerCameraType2[DevicemanagerCameraType2["DEVICEMANAGER_CAMERA_TYPE_NORMAL"] = 1] = "DEVICEMANAGER_CAMERA_TYPE_NORMAL"; + DevicemanagerCameraType2[DevicemanagerCameraType2["DEVICEMANAGER_CAMERA_TYPE_1400"] = 97] = "DEVICEMANAGER_CAMERA_TYPE_1400"; + DevicemanagerCameraType2[DevicemanagerCameraType2["DEVICEMANAGER_CAMERA_TYPE_DHGRABBER"] = 98] = "DEVICEMANAGER_CAMERA_TYPE_DHGRABBER"; + DevicemanagerCameraType2[DevicemanagerCameraType2["DEVICEMANAGER_CAMERA_TYPE_HKGRABBER"] = 99] = "DEVICEMANAGER_CAMERA_TYPE_HKGRABBER"; + DevicemanagerCameraType2[DevicemanagerCameraType2["DEVICEMANAGER_CAMERA_TYPE_LOCAL"] = 100] = "DEVICEMANAGER_CAMERA_TYPE_LOCAL"; + return DevicemanagerCameraType2; +})(DevicemanagerCameraType || {}); +var BOX_DIRECONNECT_PLATFORM_FILTER = { + filtervmsplatformList: [ + { + opt: 0 /* OR */, + vmsplatformOpt: 1 /* VMSPLATFORMOPT_PLATFORMNAME */, + value: "direconnect" + }, + { + opt: 0 /* OR */, + vmsplatformOpt: 1 /* VMSPLATFORMOPT_PLATFORMNAME */, + value: "boxlist" + } + ] +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + BOX_DIRECONNECT_PLATFORM_FILTER, + BOX_LIST_KEY, + DIRE_CONNECT_KEY, + DeviceType, + DevicemanagerCameraType, + LOCAL_KEY, + OPT, + VmsplatformOpt +}); diff --git a/packages/func/lib/camera/index.d.ts b/packages/func/lib/camera/index.d.ts new file mode 100644 index 0000000..c47dcdd --- /dev/null +++ b/packages/func/lib/camera/index.d.ts @@ -0,0 +1,40 @@ +import { DevicemanagerCameraType } from './constants'; +export declare const isFaceCamera: (type: DevicemanagerCameraType) => boolean; +/** + * + * @param value 传入的数据 可以是 item(camera/vms/dirs)/ deviceID + * @param isId + */ +export declare function getDeviceType(value: { + [x: string]: any; + id: any; +} | string): any; +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param id 设备id + * @param type 设备类型 + */ +export declare function deviceIDToDeviceKey(id: any, type: string, vmsId?: any): string; +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param item camera/vms/dirs + */ +export declare function deviceToDeviceKey(item: { + [x: string]: any; + id: any; +}): string; +/** + * 设备树key 转 后端设备原始id dirid是string/vms&camera 是number 和后端保持一致 + * @param deviceKey 设备树的id + */ +export declare function deviceKeyToDeviceId(deviceKey: { + split: (arg0: string) => [any, any]; +}): any; +export declare const getVmsIdByDeviceId: (key: string) => string; +/** + * 通过设备id或设备key在树里面找摄像头 + * @param ids cameraId + * @param deviceTree 树 + * @param type "id" | "key" + */ +export declare const findCamerasByInDeviceTree: (ids: never[] | undefined, deviceTree: any, type?: string) => any[]; diff --git a/packages/func/lib/camera/index.js b/packages/func/lib/camera/index.js new file mode 100644 index 0000000..b7ae6f1 --- /dev/null +++ b/packages/func/lib/camera/index.js @@ -0,0 +1,143 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/camera/index.ts +var camera_exports = {}; +__export(camera_exports, { + deviceIDToDeviceKey: () => deviceIDToDeviceKey, + deviceKeyToDeviceId: () => deviceKeyToDeviceId, + deviceToDeviceKey: () => deviceToDeviceKey, + findCamerasByInDeviceTree: () => findCamerasByInDeviceTree, + getDeviceType: () => getDeviceType, + getVmsIdByDeviceId: () => getVmsIdByDeviceId, + isFaceCamera: () => isFaceCamera +}); +module.exports = __toCommonJS(camera_exports); +var import_lodash_es = require("lodash-es"); +var import_utils = require("../utils"); +var import_constants = require("./constants"); +var isFaceCamera = (type) => { + return [ + import_constants.DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_1400, + import_constants.DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_HKGRABBER, + import_constants.DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_DHGRABBER + ].includes(type); +}; +function getDeviceType(value) { + let type; + let isDeviceKey = (0, import_lodash_es.isString)(value); + if (isDeviceKey) { + type = value.split("_")[0]; + } else { + if ((0, import_lodash_es.has)(value, "longitude")) { + type = import_constants.DeviceType["CAMERA"]; + } + if ((0, import_lodash_es.has)(value, "ip")) { + type = import_constants.DeviceType["VMS"]; + } + if (!type) { + type = import_constants.DeviceType["DIR"]; + } + } + return type; +} +function deviceIDToDeviceKey(id, type, vmsId) { + if (type == import_constants.DeviceType["DIR"]) { + return `${type}_${id}_${vmsId}`; + } else { + return `${type}_${id}`; + } +} +function deviceToDeviceKey(item) { + let deviceKey = ""; + let type = getDeviceType(item); + if (!type) { + console.error("device type is null!"); + } + switch (type) { + case import_constants.DeviceType["DIR"]: + { + let dirId = item["dirid"] || item["dirId"]; + if (!dirId && dirId !== 0) { + console.error("dirId type is null!"); + } + let vmsId = (0, import_lodash_es.get)(item, "extendInfo.vmsPlatformId"); + if (!vmsId && vmsId !== 0) { + console.error("vmsId type is null!"); + } + deviceKey = `${type}_${dirId}_${vmsId}`; + } + break; + case import_constants.DeviceType["VMS"]: + deviceKey = `${type}_${item["id"]}`; + break; + case import_constants.DeviceType["CAMERA"]: + { + let vmsId = (0, import_lodash_es.get)(item, "extendInfo.vmsPlatformId"); + if (!vmsId && vmsId !== 0) { + console.error("vmsId type is null!"); + } + deviceKey = `${type}_${item.id}`; + } + break; + } + return deviceKey; +} +function deviceKeyToDeviceId(deviceKey) { + let [type, id] = deviceKey.split("_"); + return type === import_constants.DeviceType["DIR"] ? id : Number(id); +} +var getVmsIdByDeviceId = (key) => { + const type = getDeviceType(key); + let vmsId = ""; + switch (type) { + case import_constants.DeviceType["CAMERA"]: + case import_constants.DeviceType["DIR"]: + vmsId = key.split("_")[2]; + break; + case import_constants.DeviceType["VMS"]: + vmsId = key.split("_")[1]; + break; + } + if (!vmsId) { + console.error("vmsid is null!"); + } + return vmsId; +}; +var findCamerasByInDeviceTree = (ids = [], deviceTree, type = "id") => { + let cameraInfoList = []; + let _ids = ids.map((v) => String(v)); + (0, import_utils.loop)(deviceTree, (item) => { + let isCamera = getDeviceType((0, import_lodash_es.get)(item, "key", "")) === import_constants.DeviceType["CAMERA"]; + let isMatch = type === "key" ? _ids.includes((0, import_lodash_es.get)(item, "key")) : _ids.includes(`${(0, import_lodash_es.get)(item, "origin.id")}`); + if (isCamera && isMatch) { + cameraInfoList.push(item); + } + }); + return cameraInfoList; +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + deviceIDToDeviceKey, + deviceKeyToDeviceId, + deviceToDeviceKey, + findCamerasByInDeviceTree, + getDeviceType, + getVmsIdByDeviceId, + isFaceCamera +}); diff --git a/packages/func/lib/file/index.d.ts b/packages/func/lib/file/index.d.ts index f4bd630..09e2615 100644 --- a/packages/func/lib/file/index.d.ts +++ b/packages/func/lib/file/index.d.ts @@ -52,3 +52,10 @@ export declare function base64toBlob(base64: string): Blob | undefined; export declare const downloadPackageImages: (imgDataList: string | any[], zipName: string) => Promise; export declare function getFileSize(size: number): string; export declare const dataURLToBlob: (dataurl: string) => Blob; +/** + * key 转 http 链接 + * @param originImgkey 图片的值 ,可以是 base64 也可以是 http链接 + * @param host 图片的域值 + * @returns {string} + */ +export declare const generateImg: (imgKey: string, host?: string) => string; diff --git a/packages/func/lib/file/index.js b/packages/func/lib/file/index.js index b783551..ea403cf 100644 --- a/packages/func/lib/file/index.js +++ b/packages/func/lib/file/index.js @@ -34,6 +34,7 @@ __export(file_exports, { dataURLToBlob: () => dataURLToBlob, downloadPackageImages: () => downloadPackageImages, fileToBase64: () => fileToBase64, + generateImg: () => generateImg, getBase64ByImage: () => getBase64ByImage, getBase64ByUrl: () => getBase64ByUrl, getBase64Image: () => getBase64Image, @@ -236,6 +237,32 @@ var dataURLToBlob = (dataurl) => { } return new Blob([u8arr], { type: mime }); }; +var generateImg = (_imgKey, host = "http://10.0.0.120") => { + let imgKey = _imgKey; + let imgUrl = ""; + if (!imgKey) + return ""; + if (/^(http:|https:)/.test(imgKey)) { + return imgKey; + } + try { + if ((0, import_utils.matchS3Prefix)(imgKey)) { + imgKey = base64DecodeImageKey(imgKey); + if (imgKey.endsWith("/")) { + const i = imgKey.substring(0, imgKey.length - 1); + imgKey = i; + } + } + imgUrl = `${host}/file/${imgKey}`; + if (_imgKey.includes("v3")) { + imgUrl = `${host}/minio/${imgKey}`; + } + } catch (error) { + console.error(error); + imgUrl = ""; + } + return imgUrl; +}; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { base64DecodeImageKey, @@ -243,6 +270,7 @@ var dataURLToBlob = (dataurl) => { dataURLToBlob, downloadPackageImages, fileToBase64, + generateImg, getBase64ByImage, getBase64ByUrl, getBase64Image, diff --git a/packages/func/lib/index.d.ts b/packages/func/lib/index.d.ts index 5de4fac..b792dee 100644 --- a/packages/func/lib/index.d.ts +++ b/packages/func/lib/index.d.ts @@ -1,3 +1,4 @@ +export * from 'lodash-es'; export * from './file'; export * from './map'; export * from './performance'; @@ -5,3 +6,4 @@ export * from './string'; export * from './number'; export * from './time'; export * from './utils'; +export * from './camera'; diff --git a/packages/func/lib/index.js b/packages/func/lib/index.js index 531dce2..b5affba 100644 --- a/packages/func/lib/index.js +++ b/packages/func/lib/index.js @@ -16,6 +16,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru // src/index.ts var src_exports = {}; module.exports = __toCommonJS(src_exports); +__reExport(src_exports, require("lodash-es"), module.exports); __reExport(src_exports, require("./file"), module.exports); __reExport(src_exports, require("./map"), module.exports); __reExport(src_exports, require("./performance"), module.exports); @@ -23,13 +24,16 @@ __reExport(src_exports, require("./string"), module.exports); __reExport(src_exports, require("./number"), module.exports); __reExport(src_exports, require("./time"), module.exports); __reExport(src_exports, require("./utils"), module.exports); +__reExport(src_exports, require("./camera"), module.exports); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { + ...require("lodash-es"), ...require("./file"), ...require("./map"), ...require("./performance"), ...require("./string"), ...require("./number"), ...require("./time"), - ...require("./utils") + ...require("./utils"), + ...require("./camera") }); diff --git a/packages/func/lib/utils/index.d.ts b/packages/func/lib/utils/index.d.ts index 44c87e8..2ae2b65 100644 --- a/packages/func/lib/utils/index.d.ts +++ b/packages/func/lib/utils/index.d.ts @@ -1,3 +1,4 @@ +export { default as isChrome } from './isChrome'; export declare const matchS3Prefix: (str: string) => boolean; /** * 通过文件名获取文件类型 @@ -13,3 +14,7 @@ export declare const getFileSuffix: (fileName: string) => string; export declare const getImageSuffixByFileType: (type: string) => string; export declare function getChromeVersion(): number | false; export declare const nextTick: (func: (value: void) => void | PromiseLike) => void; +export declare const loop: (items: string | any[], callback: (arg0: any) => any) => void; +export declare const addEventListener: (target: any, eventType: string, cb: any, option?: any) => { + remove: () => void; +}; diff --git a/packages/func/lib/utils/index.js b/packages/func/lib/utils/index.js index 759d0d1..51894d5 100644 --- a/packages/func/lib/utils/index.js +++ b/packages/func/lib/utils/index.js @@ -1,6 +1,8 @@ +var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) @@ -14,18 +16,31 @@ var __copyProps = (to, from, except, desc) => { } return to; }; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/utils/index.ts var utils_exports = {}; __export(utils_exports, { + addEventListener: () => addEventListener, getChromeVersion: () => getChromeVersion, getFileSuffix: () => getFileSuffix, getImageSuffixByFileType: () => getImageSuffixByFileType, + isChrome: () => import_isChrome.default, + loop: () => loop, matchS3Prefix: () => matchS3Prefix, nextTick: () => nextTick }); module.exports = __toCommonJS(utils_exports); +var import_react_dom = __toESM(require("react-dom")); +var import_isChrome = __toESM(require("./isChrome")); var matchS3Prefix = (str) => { return /^v[0-9]_/.test(str); }; @@ -83,11 +98,41 @@ var nextTick = (func) => { } Promise.resolve().then(func); }; +var loop = (items, callback) => { + for (let i = 0; i < items.length; i++) { + const element = items[i]; + let isBreak = callback(element); + if (isBreak) { + return; + } + if (element["children"]) { + loop(element["children"], callback); + } + } +}; +var addEventListener = (target, eventType, cb, option) => { + const callback = import_react_dom.default.unstable_batchedUpdates ? function run(e) { + import_react_dom.default.unstable_batchedUpdates(cb, e); + } : cb; + if (target.addEventListener) { + target.addEventListener(eventType, callback, option); + } + return { + remove: () => { + if (target.removeEventListener) { + target.removeEventListener(eventType, callback); + } + } + }; +}; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { + addEventListener, getChromeVersion, getFileSuffix, getImageSuffixByFileType, + isChrome, + loop, matchS3Prefix, nextTick }); diff --git a/packages/func/lib/utils/isChrome.d.ts b/packages/func/lib/utils/isChrome.d.ts new file mode 100644 index 0000000..2d07ceb --- /dev/null +++ b/packages/func/lib/utils/isChrome.d.ts @@ -0,0 +1,3 @@ +export declare const isBrowser: boolean; +declare const isChrome: () => boolean; +export default isChrome; diff --git a/packages/func/lib/utils/isChrome.js b/packages/func/lib/utils/isChrome.js new file mode 100644 index 0000000..7bc4e87 --- /dev/null +++ b/packages/func/lib/utils/isChrome.js @@ -0,0 +1,42 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/utils/isChrome.ts +var isChrome_exports = {}; +__export(isChrome_exports, { + default: () => isChrome_default, + isBrowser: () => isBrowser +}); +module.exports = __toCommonJS(isChrome_exports); +var isBrowser = !!(typeof window !== "undefined" && window); +var isChrome = () => { + const winNav = isBrowser && window.navigator; + const vendorName = winNav && winNav.vendor; + const userAgent = winNav && winNav.userAgent; + const isChromium = isBrowser && typeof chrome !== "undefined"; + const isOpera = isBrowser && typeof opr !== "undefined"; + const isIEedge = userAgent && userAgent.indexOf("Edge") > -1; + const isIOSChrome = !!(userAgent && userAgent.match("CriOS")); + const isDesktopChrome = isChromium && vendorName === "Google Inc." && !isOpera && !isIEedge; + return isIOSChrome || isDesktopChrome; +}; +var isChrome_default = isChrome; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + isBrowser +}); diff --git a/packages/func/package.json b/packages/func/package.json index d48c302..c864c09 100644 --- a/packages/func/package.json +++ b/packages/func/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/func", - "version": "0.2.3", + "version": "0.2.4", "description": "函数合集", "keywords": [ "hooks" @@ -16,6 +16,9 @@ "main": "lib/index.tsx", "module": "es/index.js", "typings": "es/index.d.ts", + "exports": { + "./package.json": "./package.json" + }, "files": [ "es", "lib", diff --git a/packages/func/src/addEventListener/index.ts b/packages/func/src/addEventListener/index.ts deleted file mode 100644 index e5c9894..0000000 --- a/packages/func/src/addEventListener/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import ReactDOM from 'react-dom'; - -export default function addEventListener(target: any, eventType: string, cb: any, option: any) { - /* eslint camelcase: 2 */ - const callback = ReactDOM.unstable_batchedUpdates - ? function run(e: any) { - ReactDOM.unstable_batchedUpdates(cb, e); - } - : cb; - if (target.addEventListener) { - target.addEventListener(eventType, callback, option); - } - - return { - remove: () => { - if (target.removeEventListener) { - target.removeEventListener(eventType, callback); - } - }, - }; -} diff --git a/packages/func/src/camera/constants.ts b/packages/func/src/camera/constants.ts new file mode 100644 index 0000000..35141ec --- /dev/null +++ b/packages/func/src/camera/constants.ts @@ -0,0 +1,54 @@ +/** + * 设备类型枚举 + */ +export const DeviceType = { + VMS: 'vms', + DIR: 'dir', + CAMERA: 'camera', +}; + +export const LOCAL_KEY = 'local'; //离线摄像头key 约定 +export const DIRE_CONNECT_KEY = 'direconnect'; +export const BOX_LIST_KEY = 'boxlist'; + +export enum VmsplatformOpt { + VMSPLATFORMOPT_ID = 0, + VMSPLATFORMOPT_PLATFORMNAME = 1, + VMSPLATFORMOPT_PLUGINNAME = 2, + VMSPLATFORMOPT_IP = 3, + VMSPLATFORMOPT_PORT = 4, + VMSPLATFORMOPT_USERNAME = 5, + VMSPLATFORMOPT_PASSWORD = 6, +} + +export enum OPT { + OR = 0, + AND = 1, + ORNOT = 2, + ANDNOT = 3, +} + +export enum DevicemanagerCameraType { + DEVICEMANAGER_CAMERA_TYPE_DEFAULT = 0, + DEVICEMANAGER_CAMERA_TYPE_NORMAL = 1, + DEVICEMANAGER_CAMERA_TYPE_1400 = 97, + DEVICEMANAGER_CAMERA_TYPE_DHGRABBER = 98, + DEVICEMANAGER_CAMERA_TYPE_HKGRABBER = 99, + DEVICEMANAGER_CAMERA_TYPE_LOCAL = 100, +} + +// 盒子 直连 平台 +export const BOX_DIRECONNECT_PLATFORM_FILTER = { + filtervmsplatformList: [ + { + opt: OPT.OR, + vmsplatformOpt: VmsplatformOpt.VMSPLATFORMOPT_PLATFORMNAME, + value: 'direconnect', + }, + { + opt: OPT.OR, + vmsplatformOpt: VmsplatformOpt.VMSPLATFORMOPT_PLATFORMNAME, + value: 'boxlist', + }, + ], +}; diff --git a/packages/func/src/camera/index.md b/packages/func/src/camera/index.md new file mode 100644 index 0000000..3c163f4 --- /dev/null +++ b/packages/func/src/camera/index.md @@ -0,0 +1,50 @@ +--- +nav: + title: func + order: 2 +title: 相机相关 +--- + +## isFaceCamera + +```js +import { isFaceCamera } from '@zhst/func' +``` + +## getDeviceType + +```js +import { getDeviceType } from '@zhst/func' +``` + +## deviceIDToDeviceKey + +后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + +```js +import { deviceIDToDeviceKey } from '@zhst/func' +``` + +## deviceToDeviceKey + +后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + +```js +import { deviceToDeviceKey } from '@zhst/func' +``` + +## deviceKeyToDeviceId + +设备树key 转 后端设备原始id dirid 是 string/vms & camera 是 number 和后端保持一致 + +```js +import { deviceKeyToDeviceId } from '@zhst/func' +``` + +## findCamerasByInDeviceTree + +通过设备id或设备key在树里面找摄像头 + +```js +import { findCamerasByInDeviceTree } from '@zhst/func' +``` diff --git a/packages/func/src/camera/index.ts b/packages/func/src/camera/index.ts new file mode 100644 index 0000000..99a76ff --- /dev/null +++ b/packages/func/src/camera/index.ts @@ -0,0 +1,136 @@ +import { get, has, isString } from 'lodash-es'; +import { loop } from '../utils' +import { DevicemanagerCameraType, DeviceType } from './constants' + +export const isFaceCamera = (type: DevicemanagerCameraType) => { + return [ + DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_1400, + DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_HKGRABBER, + DevicemanagerCameraType.DEVICEMANAGER_CAMERA_TYPE_DHGRABBER, + ].includes(type); +}; + +/** + * + * @param value 传入的数据 可以是 item(camera/vms/dirs)/ deviceID + * @param isId + */ +export function getDeviceType(value: { [x: string]: any; id: any; } | string) { + let type; + let isDeviceKey = isString(value); + if (isDeviceKey) { + type = value.split('_')[0]; + } else { + if (has(value, 'longitude')) { + type = DeviceType['CAMERA']; + } + if (has(value, 'ip')) { + type = DeviceType['VMS']; + } + if (!type) { + type = DeviceType['DIR']; + } + } + return type; +} + +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param id 设备id + * @param type 设备类型 + */ +export function deviceIDToDeviceKey(id: any, type: string, vmsId?: any) { + if (type == DeviceType['DIR']) { + return `${type}_${id}_${vmsId}`; + } else { + return `${type}_${id}`; + } +} + +/** + * 后端设备id/vmsid/dirid是三张表 合并在一起不保证唯一 前端生成唯一key + * @param item camera/vms/dirs + */ +export function deviceToDeviceKey(item: { [x: string]: any; id: any; }) { + let deviceKey = ''; + let type = getDeviceType(item); + if (!type) { + console.error('device type is null!'); + } + switch (type) { + case DeviceType['DIR']: + { + let dirId = item['dirid'] || item['dirId']; + if (!dirId && dirId !== 0) { + console.error('dirId type is null!'); + } + let vmsId = get(item, 'extendInfo.vmsPlatformId'); + if (!vmsId && vmsId !== 0) { + console.error('vmsId type is null!'); + } + deviceKey = `${type}_${dirId}_${vmsId}`; + } + break; + case DeviceType['VMS']: + deviceKey = `${type}_${item['id']}`; + break; + case DeviceType['CAMERA']: + { + let vmsId = get(item, 'extendInfo.vmsPlatformId'); + if (!vmsId && vmsId !== 0) { + console.error('vmsId type is null!'); + } + deviceKey = `${type}_${item.id}`; + } + break; + } + return deviceKey; +} + +/** + * 设备树key 转 后端设备原始id dirid是string/vms&camera 是number 和后端保持一致 + * @param deviceKey 设备树的id + */ +export function deviceKeyToDeviceId(deviceKey: { split: (arg0: string) => [any, any]; }) { + let [type, id] = deviceKey.split('_'); + + return type === DeviceType['DIR'] ? id : Number(id); +} + +export const getVmsIdByDeviceId = (key: string) => { + const type = getDeviceType(key); + let vmsId = ''; + switch (type) { + case DeviceType['CAMERA']: + case DeviceType['DIR']: + vmsId = key.split('_')[2]; + break; + case DeviceType['VMS']: + vmsId = key.split('_')[1]; + break; + } + if (!vmsId) { + console.error('vmsid is null!'); + } + return vmsId; +}; + +/** + * 通过设备id或设备key在树里面找摄像头 + * @param ids cameraId + * @param deviceTree 树 + * @param type "id" | "key" + */ +export const findCamerasByInDeviceTree = (ids = [], deviceTree: any, type = 'id') => { + let cameraInfoList: any[] = []; + let _ids = ids.map((v) => String(v)); //都转string在做判断 保证格式一致 + loop(deviceTree, (item: any) => { + let isCamera = getDeviceType(get(item, 'key', '')) === DeviceType['CAMERA']; + let isMatch = + type === 'key' ? _ids.includes(get(item, 'key')) : _ids.includes(`${get(item, 'origin.id')}`); + if (isCamera && isMatch) { + cameraInfoList.push(item); + } + }); + return cameraInfoList; +}; diff --git a/packages/func/src/demo.md b/packages/func/src/demo.md index 93e55ad..2510d1e 100644 --- a/packages/func/src/demo.md +++ b/packages/func/src/demo.md @@ -46,3 +46,13 @@ const str = cutStr(oldStr, 6) export default () =>
原始数据:{oldStr}
截取后:{str}
``` +## 是否是谷歌浏览器 + +```jsx +import React from 'react' +import { isChrome } from '@zhst/func' + +const isC = isChrome() + +export default () =>
是否chrome环境:{isC ? '是' : '否'}
+``` diff --git a/packages/func/src/file/index.ts b/packages/func/src/file/index.ts index cdf5f52..671dc5c 100644 --- a/packages/func/src/file/index.ts +++ b/packages/func/src/file/index.ts @@ -261,3 +261,38 @@ export const dataURLToBlob = (dataurl: string) => { } return new Blob([u8arr], { type: mime }); }; + +/** + * key 转 http 链接 + * @param originImgkey 图片的值 ,可以是 base64 也可以是 http链接 + * @param host 图片的域值 + * @returns {string} + */ +export const generateImg: (imgKey: string, host?: string) => string = (_imgKey, host = 'http://10.0.0.120') => { + let imgKey = _imgKey; + let imgUrl = ''; + //判空 + if (!imgKey) return '' + + if (/^(http:|https:)/.test(imgKey)) { + return imgKey; + } + try { + if (matchS3Prefix(imgKey)) { + imgKey = base64DecodeImageKey(imgKey); + if (imgKey.endsWith('/')) { + const i = imgKey.substring(0, imgKey.length - 1); + imgKey = i; + } + } + imgUrl = `${host}/file/${imgKey}`; + + if (_imgKey.includes('v3')) { + imgUrl = `${host}/minio/${imgKey}`; + } + } catch (error) { + console.error(error); + imgUrl = ''; + } + return imgUrl; +}; diff --git a/packages/func/src/index.ts b/packages/func/src/index.ts index bda1024..5b729a0 100644 --- a/packages/func/src/index.ts +++ b/packages/func/src/index.ts @@ -1,3 +1,4 @@ +export * from 'lodash-es' export * from './file' export * from './map' export * from './performance' @@ -5,5 +6,4 @@ export * from './string' export * from './number' export * from './time' export * from './utils' - - +export * from './camera' diff --git a/packages/func/src/utils/index.ts b/packages/func/src/utils/index.ts index 77aa191..bb2f557 100644 --- a/packages/func/src/utils/index.ts +++ b/packages/func/src/utils/index.ts @@ -1,3 +1,7 @@ +import ReactDOM from 'react-dom'; + +export { default as isChrome } from './isChrome'; + export const matchS3Prefix = (str: string) => { return /^v[0-9]_/.test(str); }; @@ -71,3 +75,37 @@ export const nextTick = (func: (value: void) => void | PromiseLike) => { } Promise.resolve().then(func); }; + + +export const loop = (items: string | any[], callback: (arg0: any) => any) => { + for (let i = 0; i < items.length; i++) { + const element = items[i]; + let isBreak = callback(element); + if (isBreak) { + return; + } + if (element['children']) { + loop(element['children'], callback); + } + } +}; + +export const addEventListener = (target: any, eventType: string, cb: any, option?: any) => { + /* eslint camelcase: 2 */ + const callback = ReactDOM.unstable_batchedUpdates + ? function run(e: any) { + ReactDOM.unstable_batchedUpdates(cb, e); + } + : cb; + if (target.addEventListener) { + target.addEventListener(eventType, callback, option); + } + + return { + remove: () => { + if (target.removeEventListener) { + target.removeEventListener(eventType, callback); + } + }, + }; +} diff --git a/packages/func/src/utils/isChrome.ts b/packages/func/src/utils/isChrome.ts new file mode 100644 index 0000000..e03a2f3 --- /dev/null +++ b/packages/func/src/utils/isChrome.ts @@ -0,0 +1,20 @@ +export const isBrowser = !!(typeof window !== 'undefined' && window); + +const isChrome = () =>{ + const winNav = isBrowser && window.navigator; + const vendorName = winNav && winNav.vendor; + const userAgent = winNav && winNav.userAgent; + + //@ts-ignore + const isChromium = isBrowser && typeof chrome !== 'undefined'; + + //@ts-ignore + const isOpera = isBrowser && typeof opr !== 'undefined'; + const isIEedge = userAgent && userAgent.indexOf('Edge') > -1; + + const isIOSChrome = !!(userAgent && userAgent.match('CriOS')); + const isDesktopChrome = isChromium && vendorName === 'Google Inc.' && !isOpera && !isIEedge; + + return isIOSChrome || isDesktopChrome; +} +export default isChrome; diff --git a/packages/hooks/.fatherrc.ts b/packages/hooks/.fatherrc.ts index 874a69a..9e3a0ef 100644 --- a/packages/hooks/.fatherrc.ts +++ b/packages/hooks/.fatherrc.ts @@ -4,7 +4,4 @@ export default defineConfig({ // more father config: https://github.com/umijs/father/blob/master/docs/config.md esm: { output: 'es' }, cjs: { output: 'lib' }, - umd: { - name: 'zhst-hooks', - }, }); diff --git a/packages/hooks/CHANGELOG.md b/packages/hooks/CHANGELOG.md index 866d4fd..299ee29 100644 --- a/packages/hooks/CHANGELOG.md +++ b/packages/hooks/CHANGELOG.md @@ -1,5 +1,11 @@ # @zhst/hooks +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 + ## 0.2.3 ### Patch Changes diff --git a/packages/hooks/es/index.d.ts b/packages/hooks/es/index.d.ts index 17c1027..cf397ec 100644 --- a/packages/hooks/es/index.d.ts +++ b/packages/hooks/es/index.d.ts @@ -1,2 +1,9 @@ export * from 'ahooks'; export { default as useRafLoop } from './useRafLoop'; +export { default as useActivateWrapper } from './useActivateWrapper'; +export { default as useBoolLocalStorage } from './useBoolLocalStorage'; +export { default as useCustomCompareEffect } from './useCustomCompareEffect'; +export { default as useDeepEffect } from './useDeepEffect'; +export { default as useDeepMemo } from './useDeepMemo'; +export { default as useDoubleCheck } from './useDoubleCheck'; +export { default as useIMEComposition } from './useIMEComposition'; diff --git a/packages/hooks/es/index.js b/packages/hooks/es/index.js index df4d4ed..b13c8cd 100644 --- a/packages/hooks/es/index.js +++ b/packages/hooks/es/index.js @@ -1,2 +1,9 @@ export * from 'ahooks'; -export { default as useRafLoop } from "./useRafLoop"; \ No newline at end of file +export { default as useRafLoop } from "./useRafLoop"; +export { default as useActivateWrapper } from "./useActivateWrapper"; +export { default as useBoolLocalStorage } from "./useBoolLocalStorage"; +export { default as useCustomCompareEffect } from "./useCustomCompareEffect"; +export { default as useDeepEffect } from "./useDeepEffect"; +export { default as useDeepMemo } from "./useDeepMemo"; +export { default as useDoubleCheck } from "./useDoubleCheck"; +export { default as useIMEComposition } from "./useIMEComposition"; \ No newline at end of file diff --git a/packages/hooks/es/useActivateWrapper/index.d.ts b/packages/hooks/es/useActivateWrapper/index.d.ts new file mode 100644 index 0000000..8c35f0c --- /dev/null +++ b/packages/hooks/es/useActivateWrapper/index.d.ts @@ -0,0 +1,4 @@ +export declare const useUnActivateWrapper: (cb: () => void) => void; +export declare const useActivateWrapper: (cb: any) => null; +export declare const useActivateState: () => boolean; +export default useActivateWrapper; diff --git a/packages/hooks/es/useActivateWrapper/index.js b/packages/hooks/es/useActivateWrapper/index.js new file mode 100644 index 0000000..3355ddf --- /dev/null +++ b/packages/hooks/es/useActivateWrapper/index.js @@ -0,0 +1,50 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +import { useState, useRef, useCallback } from 'react'; +import { useActivate, useUnactivate } from 'react-activation'; +import { noop, isFunction } from '@zhst/func'; +import { useLatest, useMount, useUnmount } from 'ahooks'; +export var useUnActivateWrapper = function useUnActivateWrapper(cb) { + var latestCb = useLatest(cb); + var handle = useCallback(function () { + var cb = latestCb.current ? latestCb.current : noop; + cb(); + }, []); + useUnactivate(handle); + useUnmount(handle); +}; +export var useActivateWrapper = function useActivateWrapper(cb) { + var latestCb = useLatest(cb); + var retRef = useRef(noop); + var handle = useCallback(function () { + var cb = latestCb.current ? latestCb.current : noop; + retRef.current = cb(); + }, []); + var unMountHandle = useCallback(function () { + if (isFunction(retRef.current)) { + retRef.current(); + } + }, []); + useActivate(handle); + useMount(handle); + useUnActivateWrapper(unMountHandle); + return null; +}; +export var useActivateState = function useActivateState() { + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + isActive = _useState2[0], + setIsActive = _useState2[1]; + useActivateWrapper(function () { + setIsActive(true); + return function () { + setIsActive(false); + }; + }); + return isActive; +}; +export default useActivateWrapper; \ No newline at end of file diff --git a/packages/hooks/es/useBoolLocalStorage/index.d.ts b/packages/hooks/es/useBoolLocalStorage/index.d.ts new file mode 100644 index 0000000..5b1aad8 --- /dev/null +++ b/packages/hooks/es/useBoolLocalStorage/index.d.ts @@ -0,0 +1,3 @@ +/// +declare const _default: (key: string, initValue?: boolean) => [boolean, import("react").Dispatch>]; +export default _default; diff --git a/packages/hooks/es/useBoolLocalStorage/index.js b/packages/hooks/es/useBoolLocalStorage/index.js new file mode 100644 index 0000000..7d90161 --- /dev/null +++ b/packages/hooks/es/useBoolLocalStorage/index.js @@ -0,0 +1,25 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +//@ts-nocheck +import { useLocalStorageState } from 'ahooks'; +export default (function (key) { + var initValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + //弹窗显示 + var _useLocalStorageState = useLocalStorageState(key, initValue, { + raw: false, + serializer: function serializer(v) { + return v ? '1' : '0'; + }, + deserializer: function deserializer(v) { + return v === '1' ? true : false; + } + }), + _useLocalStorageState2 = _slicedToArray(_useLocalStorageState, 2), + v = _useLocalStorageState2[0], + setV = _useLocalStorageState2[1]; + return [v, setV]; +}); \ No newline at end of file diff --git a/packages/hooks/es/useCustomCompareEffect/index.d.ts b/packages/hooks/es/useCustomCompareEffect/index.d.ts new file mode 100644 index 0000000..e1ddb43 --- /dev/null +++ b/packages/hooks/es/useCustomCompareEffect/index.d.ts @@ -0,0 +1,4 @@ +import { DependencyList, EffectCallback } from 'react'; +type DepsEqualFnType = (prevDeps: TDeps, nextDeps: TDeps) => boolean; +declare const useCustomCompareEffect: (effect: EffectCallback, deps: TDeps, depsEqual: DepsEqualFnType) => void; +export default useCustomCompareEffect; diff --git a/packages/hooks/es/useCustomCompareEffect/index.js b/packages/hooks/es/useCustomCompareEffect/index.js new file mode 100644 index 0000000..03598b0 --- /dev/null +++ b/packages/hooks/es/useCustomCompareEffect/index.js @@ -0,0 +1,21 @@ +//@ts-nocheck +//只是删除isPrimitive check + +import { useEffect, useRef } from 'react'; +var useCustomCompareEffect = function useCustomCompareEffect(effect, deps, depsEqual) { + if (process.env.NODE_ENV !== 'production') { + if (!(deps instanceof Array) || !deps.length) { + console.warn('`useCustomCompareEffect` should not be used with no dependencies. Use React.useEffect instead.'); + } + if (typeof depsEqual !== 'function') { + console.warn('`useCustomCompareEffect` should be used with depsEqual callback for comparing deps list'); + } + } + var _depsEqual = depsEqual; + var ref = useRef(undefined); + if (!ref.current || !_depsEqual(deps, ref.current)) { + ref.current = deps; + } + useEffect(effect, ref.current); +}; +export default useCustomCompareEffect; \ No newline at end of file diff --git a/packages/hooks/es/useDeepEffect/index.d.ts b/packages/hooks/es/useDeepEffect/index.d.ts new file mode 100644 index 0000000..f62c0a0 --- /dev/null +++ b/packages/hooks/es/useDeepEffect/index.d.ts @@ -0,0 +1,3 @@ +import type { DependencyList, EffectCallback } from 'react'; +declare function useDeepEffect(effect: EffectCallback, deps: DependencyList): void; +export default useDeepEffect; diff --git a/packages/hooks/es/useDeepEffect/index.js b/packages/hooks/es/useDeepEffect/index.js new file mode 100644 index 0000000..a7fd5c3 --- /dev/null +++ b/packages/hooks/es/useDeepEffect/index.js @@ -0,0 +1,8 @@ +import { isEqual } from '@zhst/func'; +import useCustomCompareEffect from "../useCustomCompareEffect"; +function useDeepEffect(effect, deps) { + useCustomCompareEffect(effect, deps, function (pre, now) { + return isEqual(pre, now); + }); +} +export default useDeepEffect; \ No newline at end of file diff --git a/packages/hooks/es/useDeepMemo/index.d.ts b/packages/hooks/es/useDeepMemo/index.d.ts new file mode 100644 index 0000000..ba9fabc --- /dev/null +++ b/packages/hooks/es/useDeepMemo/index.d.ts @@ -0,0 +1,2 @@ +import { DependencyList } from 'react'; +export default function useDeepMemo(factory: () => T, deps: DependencyList | undefined): T; diff --git a/packages/hooks/es/useDeepMemo/index.js b/packages/hooks/es/useDeepMemo/index.js new file mode 100644 index 0000000..cd5231c --- /dev/null +++ b/packages/hooks/es/useDeepMemo/index.js @@ -0,0 +1,20 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +//对生成的值做深比较 +import { useState, useMemo } from 'react'; +import useDeepEffect from "../useDeepEffect"; +export default function useDeepMemo(factory, deps) { + var value = useMemo(factory, deps); + var _useState = useState(value), + _useState2 = _slicedToArray(_useState, 2), + state = _useState2[0], + setState = _useState2[1]; + useDeepEffect(function () { + setState(value); + }, [value]); + return state; +} \ No newline at end of file diff --git a/packages/hooks/es/useDoubleCheck/index.d.ts b/packages/hooks/es/useDoubleCheck/index.d.ts new file mode 100644 index 0000000..172c8a7 --- /dev/null +++ b/packages/hooks/es/useDoubleCheck/index.d.ts @@ -0,0 +1,3 @@ +import { Options } from 'ahooks/lib/createUseStorageState'; +export declare const isShowDoubleCheck: (key: string) => boolean; +export default function useDoubleCheck(key: string, initialState: Options | undefined): unknown[]; diff --git a/packages/hooks/es/useDoubleCheck/index.js b/packages/hooks/es/useDoubleCheck/index.js new file mode 100644 index 0000000..aac2dec --- /dev/null +++ b/packages/hooks/es/useDoubleCheck/index.js @@ -0,0 +1,19 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +import { useLocalStorageState } from 'ahooks'; +export var isShowDoubleCheck = function isShowDoubleCheck(key) { + var v = localStorage.getItem(key); + return v === '1' ? true : false; +}; +export default function useDoubleCheck(key, initialState) { + //是否关闭二次提示 + var _useLocalStorageState = useLocalStorageState(key, initialState), + _useLocalStorageState2 = _slicedToArray(_useLocalStorageState, 2), + value = _useLocalStorageState2[0], + setValue = _useLocalStorageState2[1]; + return [value, setValue]; +} \ No newline at end of file diff --git a/packages/hooks/es/useIMEComposition/constants.d.ts b/packages/hooks/es/useIMEComposition/constants.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/hooks/es/useIMEComposition/constants.js b/packages/hooks/es/useIMEComposition/constants.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/hooks/es/useIMEComposition/index.d.ts b/packages/hooks/es/useIMEComposition/index.d.ts new file mode 100644 index 0000000..e7132b8 --- /dev/null +++ b/packages/hooks/es/useIMEComposition/index.d.ts @@ -0,0 +1,3 @@ +import { type CompositionEventHandler } from 'react'; +import type { IUseIMECompositionResult } from './interface'; +export default function useIMEComposition any>(propValue: string, onChangeProp?: OnChange, getEventValueProp?: (...args: any[]) => string, onCompositionStartProp?: CompositionEventHandler, onCompositionEndProp?: CompositionEventHandler): IUseIMECompositionResult; diff --git a/packages/hooks/es/useIMEComposition/index.js b/packages/hooks/es/useIMEComposition/index.js new file mode 100644 index 0000000..eb30ad5 --- /dev/null +++ b/packages/hooks/es/useIMEComposition/index.js @@ -0,0 +1,71 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +//@ts-nocheck +import { useState, useRef, useCallback } from 'react'; +import { isChrome } from '@zhst/func'; +var EMIT_CHANGE_AFTER_COMPOSITION_END = isChrome(); +var defaultGetEventValue = function defaultGetEventValue(e) { + return e.target.value; +}; +export default function useIMEComposition(propValue, onChangeProp, getEventValueProp, onCompositionStartProp, onCompositionEndProp) { + var getEventValue = getEventValueProp || defaultGetEventValue; + var isCompositionRef = useRef(false); + var _useState = useState(propValue), + _useState2 = _slicedToArray(_useState, 2), + compositionValue = _useState2[0], + setCompositionValue = _useState2[1]; + var compositionValueRef = useRef(compositionValue); + var onChangeRef = useRef(onChangeProp); + var onCompositionStartRef = useRef(onCompositionStartProp); + var onCompositionEndRef = useRef(onCompositionEndProp); + compositionValueRef.current = compositionValue; + onChangeRef.current = onChangeProp; + onCompositionStartRef.current = onCompositionStartProp; + onCompositionEndRef.current = onCompositionEndProp; + + // eslint-disable-next-line react-hooks/exhaustive-deps + var onCompositionValueChange = useCallback(function () { + var _onChangeRef$current; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (isCompositionRef.current) { + setCompositionValue(getEventValue.apply(void 0, args)); + // 若输入法正在输入,则不触发上层组件的事件 + return; + } + return (_onChangeRef$current = onChangeRef.current) === null || _onChangeRef$current === void 0 ? void 0 : _onChangeRef$current.call.apply(_onChangeRef$current, [onChangeRef].concat(args)); + }, [onChangeRef]); + var onCompositionStart = useCallback(function (e) { + var _onCompositionStartRe; + isCompositionRef.current = true; + (_onCompositionStartRe = onCompositionStartRef.current) === null || _onCompositionStartRe === void 0 || _onCompositionStartRe.call(onCompositionStartRef, e); + }, [onCompositionStartRef]); + var onCompositionEnd = useCallback(function (e) { + var _onCompositionEndRef$; + isCompositionRef.current = false; + (_onCompositionEndRef$ = onCompositionEndRef.current) === null || _onCompositionEndRef$ === void 0 || _onCompositionEndRef$.call(onCompositionEndRef, e); + // chrome 的 onCompositionEnd 事件在 onChange 后触发,需要在 onCompositionEnd 后额外触发一次 onChange 事件 + if (EMIT_CHANGE_AFTER_COMPOSITION_END) { + var _onChangeRef$current2; + e.type = 'change'; + //todo: 此处优化 + (_onChangeRef$current2 = onChangeRef.current) === null || _onChangeRef$current2 === void 0 || _onChangeRef$current2.call(onChangeRef, compositionValueRef.current, e); + } + }, [onCompositionEndRef, onChangeRef]); + + // 只处理受控的组件 + var isControlled = propValue !== undefined; + var passCompositionHandler = isControlled; + var passCompositionValue = isControlled && isCompositionRef.current; + return { + value: passCompositionValue ? compositionValue : propValue, + onChange: passCompositionHandler ? onCompositionValueChange : onChangeProp, + onCompositionStart: passCompositionHandler ? onCompositionStart : onCompositionStartProp, + onCompositionEnd: passCompositionHandler ? onCompositionEnd : onCompositionEndProp + }; +} \ No newline at end of file diff --git a/packages/hooks/es/useIMEComposition/interface.d.ts b/packages/hooks/es/useIMEComposition/interface.d.ts new file mode 100644 index 0000000..e3898d4 --- /dev/null +++ b/packages/hooks/es/useIMEComposition/interface.d.ts @@ -0,0 +1,8 @@ +/// +export interface IUseIMECompositionResult { + value: string; + onChange: OnChange; + getEventValue?: (...args: any[]) => string; + onCompositionStart: React.CompositionEventHandler; + onCompositionEnd: React.CompositionEventHandler; +} diff --git a/packages/hooks/es/useIMEComposition/interface.js b/packages/hooks/es/useIMEComposition/interface.js new file mode 100644 index 0000000..8cec2e9 --- /dev/null +++ b/packages/hooks/es/useIMEComposition/interface.js @@ -0,0 +1 @@ +export {}; \ No newline at end of file diff --git a/packages/hooks/es/useIMEComposition/isBrowser.d.ts b/packages/hooks/es/useIMEComposition/isBrowser.d.ts new file mode 100644 index 0000000..fc73b3e --- /dev/null +++ b/packages/hooks/es/useIMEComposition/isBrowser.d.ts @@ -0,0 +1,2 @@ +declare const _default: boolean; +export default _default; diff --git a/packages/hooks/es/useIMEComposition/isBrowser.js b/packages/hooks/es/useIMEComposition/isBrowser.js new file mode 100644 index 0000000..5648c66 --- /dev/null +++ b/packages/hooks/es/useIMEComposition/isBrowser.js @@ -0,0 +1,2 @@ +//@ts-nocheck +export default !!(typeof window !== 'undefined' && window); \ No newline at end of file diff --git a/packages/hooks/es/useIMEComposition/isChrome.d.ts b/packages/hooks/es/useIMEComposition/isChrome.d.ts new file mode 100644 index 0000000..924bb4e --- /dev/null +++ b/packages/hooks/es/useIMEComposition/isChrome.d.ts @@ -0,0 +1,2 @@ +declare const isChrome: boolean; +export default isChrome; diff --git a/packages/hooks/es/useIMEComposition/isChrome.js b/packages/hooks/es/useIMEComposition/isChrome.js new file mode 100644 index 0000000..9d50c93 --- /dev/null +++ b/packages/hooks/es/useIMEComposition/isChrome.js @@ -0,0 +1,16 @@ +//@ts-nocheck +import isBrowser from "./isBrowser"; +var winNav = isBrowser && window.navigator; +var vendorName = winNav && winNav.vendor; +var userAgent = winNav && winNav.userAgent; + +//@ts-ignore +var isChromium = isBrowser && typeof chrome !== 'undefined'; + +//@ts-ignore +var isOpera = isBrowser && typeof opr !== 'undefined'; +var isIEedge = userAgent && userAgent.indexOf('Edge') > -1; +var isIOSChrome = !!(userAgent && userAgent.match('CriOS')); +var isDesktopChrome = isChromium && vendorName === 'Google Inc.' && !isOpera && !isIEedge; +var isChrome = isIOSChrome || isDesktopChrome; +export default isChrome; \ No newline at end of file diff --git a/packages/hooks/es/useJump/constants.d.ts b/packages/hooks/es/useJump/constants.d.ts new file mode 100644 index 0000000..54ec0dc --- /dev/null +++ b/packages/hooks/es/useJump/constants.d.ts @@ -0,0 +1,20 @@ +export declare const JumpKey = "ROUTER-JUMP"; +export declare const TYPE: { + OFFLINE: number; + HISTORY: number; + OFFLINE_JUMP: number; + HISTORY_JUMP: number; + MONITOR_DETAIL_JUMP: number; + VIDEOGROUP: number; + VIDEOGROUP_JUMP: number; + UNKNOW_JUMP: number; + MONITOR_MAP_JUMP: number; + SEARCH: number; + CURRENT_SEARCH: number; + TAG_CAMERA: number; + TRACK_IMAGE: number; + TRACK_CAMERA: number; + PEER_ANALYSIS: number; + BASELINE_TASKS: number; + JOINTASK: number; +}; diff --git a/packages/hooks/es/useJump/constants.js b/packages/hooks/es/useJump/constants.js new file mode 100644 index 0000000..6630c82 --- /dev/null +++ b/packages/hooks/es/useJump/constants.js @@ -0,0 +1,30 @@ +export var JumpKey = 'ROUTER-JUMP'; +export var TYPE = { + OFFLINE: 1, + HISTORY: 2, + OFFLINE_JUMP: 3, + HISTORY_JUMP: 4, + MONITOR_DETAIL_JUMP: 5, + VIDEOGROUP: 6, + //跳到回溯 + VIDEOGROUP_JUMP: 7, + UNKNOW_JUMP: 8, + //未实现 + MONITOR_MAP_JUMP: 9, + SEARCH: 10, + //检索界面 + CURRENT_SEARCH: 11, + // + TAG_CAMERA: 12, + //预案 + //智能追踪两种方式 + TRACK_IMAGE: 13, + //跳到追踪上传图片 + TRACK_CAMERA: 14, + //跳到追踪选择摄像头 + PEER_ANALYSIS: 15, + //同行人分析 + BASELINE_TASKS: 16, + //线索摸排 + JOINTASK: 17 //路人库任务 +}; \ No newline at end of file diff --git a/packages/hooks/es/useJump/index.d.ts b/packages/hooks/es/useJump/index.d.ts new file mode 100644 index 0000000..c5eb1e6 --- /dev/null +++ b/packages/hooks/es/useJump/index.d.ts @@ -0,0 +1,7 @@ +import type { JumpType } from './interface'; +declare const useJump: () => (path: string, data: { + [index: string]: any; + __key__: JumpType; +}) => void; +export declare const useListenJump: (handle: (data: any) => void, type: JumpType | JumpType[]) => void; +export default useJump; diff --git a/packages/hooks/es/useJump/index.js b/packages/hooks/es/useJump/index.js new file mode 100644 index 0000000..251687b --- /dev/null +++ b/packages/hooks/es/useJump/index.js @@ -0,0 +1,67 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +import { useLatest } from 'ahooks'; +import events from 'events'; +import { get, isArray } from '@zhst/func'; +import { useEffect } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; +import { JumpKey } from "./constants"; +var emitter = new events.EventEmitter(); +var useJump = function useJump() { + var location = useLocation(); + var navigate = useNavigate(); + var jump = function jump(path, data) { + if (location.pathname !== path) { + navigate(path, { + state: { + data: data, + topic: JumpKey, + __from__: location.pathname + } + }); + } else { + emitter.emit(JumpKey, data); + } + }; + return jump; +}; +export var useListenJump = function useListenJump(handle, type) { + var latestHandle = useLatest(handle); + var navigate = useNavigate(); + var _type = isArray(type) ? type : [type]; + var location = useLocation(); + useEffect(function () { + var state = location.state, + pathname = location.pathname, + search = location.search; + if (state) { + var topic = state.topic, + _data = state.data, + __from__ = state.__from__; + if (topic === JumpKey && _type.includes(get(_data, '__key__'))) { + latestHandle.current(_objectSpread(_objectSpread({}, _data), {}, { + __from__: __from__ + })); + } + navigate("/".concat(pathname).concat(search), { + state: null + }); + } + }, [location]); + useEffect(function () { + var handleEmit = function handleEmit(data) { + if (_type.includes(get(data, '__key__'))) { + latestHandle.current(data); + } + }; + emitter.on(JumpKey, handleEmit); + return function () { + emitter.removeListener(JumpKey, handleEmit); + }; + }, []); +}; +export default useJump; \ No newline at end of file diff --git a/packages/hooks/es/useJump/interface.d.ts b/packages/hooks/es/useJump/interface.d.ts new file mode 100644 index 0000000..f0a8dac --- /dev/null +++ b/packages/hooks/es/useJump/interface.d.ts @@ -0,0 +1 @@ +export type JumpType = 'warningRecord' | 'targetSearch' | 'passerby' | 'targetDetail' | 'traceAnalysis' | 'offlineAnalysis'; diff --git a/packages/hooks/es/useJump/interface.js b/packages/hooks/es/useJump/interface.js new file mode 100644 index 0000000..8cec2e9 --- /dev/null +++ b/packages/hooks/es/useJump/interface.js @@ -0,0 +1 @@ +export {}; \ No newline at end of file diff --git a/packages/hooks/es/useSocket/index.d.ts b/packages/hooks/es/useSocket/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/packages/hooks/es/useSocket/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/hooks/es/useSocket/index.js b/packages/hooks/es/useSocket/index.js new file mode 100644 index 0000000..8cec2e9 --- /dev/null +++ b/packages/hooks/es/useSocket/index.js @@ -0,0 +1 @@ +export {}; \ No newline at end of file diff --git a/packages/hooks/lib/index.d.ts b/packages/hooks/lib/index.d.ts index 17c1027..cf397ec 100644 --- a/packages/hooks/lib/index.d.ts +++ b/packages/hooks/lib/index.d.ts @@ -1,2 +1,9 @@ export * from 'ahooks'; export { default as useRafLoop } from './useRafLoop'; +export { default as useActivateWrapper } from './useActivateWrapper'; +export { default as useBoolLocalStorage } from './useBoolLocalStorage'; +export { default as useCustomCompareEffect } from './useCustomCompareEffect'; +export { default as useDeepEffect } from './useDeepEffect'; +export { default as useDeepMemo } from './useDeepMemo'; +export { default as useDoubleCheck } from './useDoubleCheck'; +export { default as useIMEComposition } from './useIMEComposition'; diff --git a/packages/hooks/lib/index.js b/packages/hooks/lib/index.js index 6e4e42b..8835be0 100644 --- a/packages/hooks/lib/index.js +++ b/packages/hooks/lib/index.js @@ -30,13 +30,34 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru // src/index.tsx var src_exports = {}; __export(src_exports, { + useActivateWrapper: () => import_useActivateWrapper.default, + useBoolLocalStorage: () => import_useBoolLocalStorage.default, + useCustomCompareEffect: () => import_useCustomCompareEffect.default, + useDeepEffect: () => import_useDeepEffect.default, + useDeepMemo: () => import_useDeepMemo.default, + useDoubleCheck: () => import_useDoubleCheck.default, + useIMEComposition: () => import_useIMEComposition.default, useRafLoop: () => import_useRafLoop.default }); module.exports = __toCommonJS(src_exports); __reExport(src_exports, require("ahooks"), module.exports); var import_useRafLoop = __toESM(require("./useRafLoop")); +var import_useActivateWrapper = __toESM(require("./useActivateWrapper")); +var import_useBoolLocalStorage = __toESM(require("./useBoolLocalStorage")); +var import_useCustomCompareEffect = __toESM(require("./useCustomCompareEffect")); +var import_useDeepEffect = __toESM(require("./useDeepEffect")); +var import_useDeepMemo = __toESM(require("./useDeepMemo")); +var import_useDoubleCheck = __toESM(require("./useDoubleCheck")); +var import_useIMEComposition = __toESM(require("./useIMEComposition")); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { + useActivateWrapper, + useBoolLocalStorage, + useCustomCompareEffect, + useDeepEffect, + useDeepMemo, + useDoubleCheck, + useIMEComposition, useRafLoop, ...require("ahooks") }); diff --git a/packages/hooks/lib/useActivateWrapper/index.d.ts b/packages/hooks/lib/useActivateWrapper/index.d.ts new file mode 100644 index 0000000..8c35f0c --- /dev/null +++ b/packages/hooks/lib/useActivateWrapper/index.d.ts @@ -0,0 +1,4 @@ +export declare const useUnActivateWrapper: (cb: () => void) => void; +export declare const useActivateWrapper: (cb: any) => null; +export declare const useActivateState: () => boolean; +export default useActivateWrapper; diff --git a/packages/hooks/lib/useActivateWrapper/index.js b/packages/hooks/lib/useActivateWrapper/index.js new file mode 100644 index 0000000..6ddeeea --- /dev/null +++ b/packages/hooks/lib/useActivateWrapper/index.js @@ -0,0 +1,74 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useActivateWrapper/index.tsx +var useActivateWrapper_exports = {}; +__export(useActivateWrapper_exports, { + default: () => useActivateWrapper_default, + useActivateState: () => useActivateState, + useActivateWrapper: () => useActivateWrapper, + useUnActivateWrapper: () => useUnActivateWrapper +}); +module.exports = __toCommonJS(useActivateWrapper_exports); +var import_react = require("react"); +var import_react_activation = require("react-activation"); +var import_func = require("@zhst/func"); +var import_ahooks = require("ahooks"); +var useUnActivateWrapper = (cb) => { + const latestCb = (0, import_ahooks.useLatest)(cb); + const handle = (0, import_react.useCallback)(() => { + const cb2 = latestCb.current ? latestCb.current : import_func.noop; + cb2(); + }, []); + (0, import_react_activation.useUnactivate)(handle); + (0, import_ahooks.useUnmount)(handle); +}; +var useActivateWrapper = (cb) => { + const latestCb = (0, import_ahooks.useLatest)(cb); + let retRef = (0, import_react.useRef)(import_func.noop); + const handle = (0, import_react.useCallback)(() => { + const cb2 = latestCb.current ? latestCb.current : import_func.noop; + retRef.current = cb2(); + }, []); + const unMountHandle = (0, import_react.useCallback)(() => { + if ((0, import_func.isFunction)(retRef.current)) { + retRef.current(); + } + }, []); + (0, import_react_activation.useActivate)(handle); + (0, import_ahooks.useMount)(handle); + useUnActivateWrapper(unMountHandle); + return null; +}; +var useActivateState = () => { + const [isActive, setIsActive] = (0, import_react.useState)(false); + useActivateWrapper(() => { + setIsActive(true); + return () => { + setIsActive(false); + }; + }); + return isActive; +}; +var useActivateWrapper_default = useActivateWrapper; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + useActivateState, + useActivateWrapper, + useUnActivateWrapper +}); diff --git a/packages/hooks/lib/useBoolLocalStorage/index.d.ts b/packages/hooks/lib/useBoolLocalStorage/index.d.ts new file mode 100644 index 0000000..5b1aad8 --- /dev/null +++ b/packages/hooks/lib/useBoolLocalStorage/index.d.ts @@ -0,0 +1,3 @@ +/// +declare const _default: (key: string, initValue?: boolean) => [boolean, import("react").Dispatch>]; +export default _default; diff --git a/packages/hooks/lib/useBoolLocalStorage/index.js b/packages/hooks/lib/useBoolLocalStorage/index.js new file mode 100644 index 0000000..d9b8b54 --- /dev/null +++ b/packages/hooks/lib/useBoolLocalStorage/index.js @@ -0,0 +1,33 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useBoolLocalStorage/index.tsx +var useBoolLocalStorage_exports = {}; +__export(useBoolLocalStorage_exports, { + default: () => useBoolLocalStorage_default +}); +module.exports = __toCommonJS(useBoolLocalStorage_exports); +var import_ahooks = require("ahooks"); +var useBoolLocalStorage_default = (key, initValue = true) => { + const [v, setV] = (0, import_ahooks.useLocalStorageState)(key, initValue, { + raw: false, + serializer: (v2) => v2 ? "1" : "0", + deserializer: (v2) => v2 === "1" ? true : false + }); + return [v, setV]; +}; diff --git a/packages/hooks/lib/useCustomCompareEffect/index.d.ts b/packages/hooks/lib/useCustomCompareEffect/index.d.ts new file mode 100644 index 0000000..e1ddb43 --- /dev/null +++ b/packages/hooks/lib/useCustomCompareEffect/index.d.ts @@ -0,0 +1,4 @@ +import { DependencyList, EffectCallback } from 'react'; +type DepsEqualFnType = (prevDeps: TDeps, nextDeps: TDeps) => boolean; +declare const useCustomCompareEffect: (effect: EffectCallback, deps: TDeps, depsEqual: DepsEqualFnType) => void; +export default useCustomCompareEffect; diff --git a/packages/hooks/lib/useCustomCompareEffect/index.js b/packages/hooks/lib/useCustomCompareEffect/index.js new file mode 100644 index 0000000..db473b0 --- /dev/null +++ b/packages/hooks/lib/useCustomCompareEffect/index.js @@ -0,0 +1,46 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useCustomCompareEffect/index.tsx +var useCustomCompareEffect_exports = {}; +__export(useCustomCompareEffect_exports, { + default: () => useCustomCompareEffect_default +}); +module.exports = __toCommonJS(useCustomCompareEffect_exports); +var import_react = require("react"); +var useCustomCompareEffect = (effect, deps, depsEqual) => { + if (process.env.NODE_ENV !== "production") { + if (!(deps instanceof Array) || !deps.length) { + console.warn( + "`useCustomCompareEffect` should not be used with no dependencies. Use React.useEffect instead." + ); + } + if (typeof depsEqual !== "function") { + console.warn( + "`useCustomCompareEffect` should be used with depsEqual callback for comparing deps list" + ); + } + } + let _depsEqual = depsEqual; + const ref = (0, import_react.useRef)(void 0); + if (!ref.current || !_depsEqual(deps, ref.current)) { + ref.current = deps; + } + (0, import_react.useEffect)(effect, ref.current); +}; +var useCustomCompareEffect_default = useCustomCompareEffect; diff --git a/packages/hooks/lib/useDeepEffect/index.d.ts b/packages/hooks/lib/useDeepEffect/index.d.ts new file mode 100644 index 0000000..f62c0a0 --- /dev/null +++ b/packages/hooks/lib/useDeepEffect/index.d.ts @@ -0,0 +1,3 @@ +import type { DependencyList, EffectCallback } from 'react'; +declare function useDeepEffect(effect: EffectCallback, deps: DependencyList): void; +export default useDeepEffect; diff --git a/packages/biz/lib/index.js b/packages/hooks/lib/useDeepEffect/index.js similarity index 72% rename from packages/biz/lib/index.js rename to packages/hooks/lib/useDeepEffect/index.js index 7462083..a62e400 100644 --- a/packages/biz/lib/index.js +++ b/packages/hooks/lib/useDeepEffect/index.js @@ -26,14 +26,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -// src/index.tsx -var src_exports = {}; -__export(src_exports, { - Demo: () => import_Demo.default -}); -module.exports = __toCommonJS(src_exports); -var import_Demo = __toESM(require("./Demo")); -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - Demo +// src/useDeepEffect/index.tsx +var useDeepEffect_exports = {}; +__export(useDeepEffect_exports, { + default: () => useDeepEffect_default }); +module.exports = __toCommonJS(useDeepEffect_exports); +var import_func = require("@zhst/func"); +var import_useCustomCompareEffect = __toESM(require("../useCustomCompareEffect")); +function useDeepEffect(effect, deps) { + (0, import_useCustomCompareEffect.default)(effect, deps, (pre, now) => { + return (0, import_func.isEqual)(pre, now); + }); +} +var useDeepEffect_default = useDeepEffect; diff --git a/packages/hooks/lib/useDeepMemo/index.d.ts b/packages/hooks/lib/useDeepMemo/index.d.ts new file mode 100644 index 0000000..ba9fabc --- /dev/null +++ b/packages/hooks/lib/useDeepMemo/index.d.ts @@ -0,0 +1,2 @@ +import { DependencyList } from 'react'; +export default function useDeepMemo(factory: () => T, deps: DependencyList | undefined): T; diff --git a/packages/biz/lib/Demo/index.js b/packages/hooks/lib/useDeepMemo/index.js similarity index 72% rename from packages/biz/lib/Demo/index.js rename to packages/hooks/lib/useDeepMemo/index.js index 2a50249..400edb3 100644 --- a/packages/biz/lib/Demo/index.js +++ b/packages/hooks/lib/useDeepMemo/index.js @@ -26,16 +26,19 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -// src/Demo/index.tsx -var Demo_exports = {}; -__export(Demo_exports, { - default: () => Demo_default +// src/useDeepMemo/index.ts +var useDeepMemo_exports = {}; +__export(useDeepMemo_exports, { + default: () => useDeepMemo }); -module.exports = __toCommonJS(Demo_exports); -var import_react = __toESM(require("react")); -var import_meta = require("@zhst/meta"); -var import_hooks = require("@zhst/hooks"); -var Demo_default = () => { - const ok = () => (0, import_hooks.useThrottleFn)(() => console.log("123")); - return /* @__PURE__ */ import_react.default.createElement(import_meta.Button, { onClick: () => ok() }, "测试"); -}; +module.exports = __toCommonJS(useDeepMemo_exports); +var import_react = require("react"); +var import_useDeepEffect = __toESM(require("../useDeepEffect")); +function useDeepMemo(factory, deps) { + const value = (0, import_react.useMemo)(factory, deps); + const [state, setState] = (0, import_react.useState)(value); + (0, import_useDeepEffect.default)(() => { + setState(value); + }, [value]); + return state; +} diff --git a/packages/hooks/lib/useDoubleCheck/index.d.ts b/packages/hooks/lib/useDoubleCheck/index.d.ts new file mode 100644 index 0000000..172c8a7 --- /dev/null +++ b/packages/hooks/lib/useDoubleCheck/index.d.ts @@ -0,0 +1,3 @@ +import { Options } from 'ahooks/lib/createUseStorageState'; +export declare const isShowDoubleCheck: (key: string) => boolean; +export default function useDoubleCheck(key: string, initialState: Options | undefined): unknown[]; diff --git a/packages/hooks/lib/useDoubleCheck/index.js b/packages/hooks/lib/useDoubleCheck/index.js new file mode 100644 index 0000000..225452a --- /dev/null +++ b/packages/hooks/lib/useDoubleCheck/index.js @@ -0,0 +1,38 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useDoubleCheck/index.tsx +var useDoubleCheck_exports = {}; +__export(useDoubleCheck_exports, { + default: () => useDoubleCheck, + isShowDoubleCheck: () => isShowDoubleCheck +}); +module.exports = __toCommonJS(useDoubleCheck_exports); +var import_ahooks = require("ahooks"); +var isShowDoubleCheck = (key) => { + const v = localStorage.getItem(key); + return v === "1" ? true : false; +}; +function useDoubleCheck(key, initialState) { + const [value, setValue] = (0, import_ahooks.useLocalStorageState)(key, initialState); + return [value, setValue]; +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + isShowDoubleCheck +}); diff --git a/packages/hooks/lib/useIMEComposition/constants.d.ts b/packages/hooks/lib/useIMEComposition/constants.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/hooks/lib/useIMEComposition/constants.js b/packages/hooks/lib/useIMEComposition/constants.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/hooks/lib/useIMEComposition/index.d.ts b/packages/hooks/lib/useIMEComposition/index.d.ts new file mode 100644 index 0000000..e7132b8 --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/index.d.ts @@ -0,0 +1,3 @@ +import { type CompositionEventHandler } from 'react'; +import type { IUseIMECompositionResult } from './interface'; +export default function useIMEComposition any>(propValue: string, onChangeProp?: OnChange, getEventValueProp?: (...args: any[]) => string, onCompositionStartProp?: CompositionEventHandler, onCompositionEndProp?: CompositionEventHandler): IUseIMECompositionResult; diff --git a/packages/hooks/lib/useIMEComposition/index.js b/packages/hooks/lib/useIMEComposition/index.js new file mode 100644 index 0000000..ed3c964 --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/index.js @@ -0,0 +1,81 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useIMEComposition/index.tsx +var useIMEComposition_exports = {}; +__export(useIMEComposition_exports, { + default: () => useIMEComposition +}); +module.exports = __toCommonJS(useIMEComposition_exports); +var import_react = require("react"); +var import_func = require("@zhst/func"); +var EMIT_CHANGE_AFTER_COMPOSITION_END = (0, import_func.isChrome)(); +var defaultGetEventValue = (e) => e.target.value; +function useIMEComposition(propValue, onChangeProp, getEventValueProp, onCompositionStartProp, onCompositionEndProp) { + const getEventValue = getEventValueProp || defaultGetEventValue; + const isCompositionRef = (0, import_react.useRef)(false); + const [compositionValue, setCompositionValue] = (0, import_react.useState)(propValue); + const compositionValueRef = (0, import_react.useRef)(compositionValue); + const onChangeRef = (0, import_react.useRef)(onChangeProp); + const onCompositionStartRef = (0, import_react.useRef)(onCompositionStartProp); + const onCompositionEndRef = (0, import_react.useRef)(onCompositionEndProp); + compositionValueRef.current = compositionValue; + onChangeRef.current = onChangeProp; + onCompositionStartRef.current = onCompositionStartProp; + onCompositionEndRef.current = onCompositionEndProp; + const onCompositionValueChange = (0, import_react.useCallback)( + (...args) => { + var _a; + if (isCompositionRef.current) { + setCompositionValue(getEventValue(...args)); + return; + } + return (_a = onChangeRef.current) == null ? void 0 : _a.call(onChangeRef, ...args); + }, + [onChangeRef] + ); + const onCompositionStart = (0, import_react.useCallback)( + (e) => { + var _a; + isCompositionRef.current = true; + (_a = onCompositionStartRef.current) == null ? void 0 : _a.call(onCompositionStartRef, e); + }, + [onCompositionStartRef] + ); + const onCompositionEnd = (0, import_react.useCallback)( + (e) => { + var _a, _b; + isCompositionRef.current = false; + (_a = onCompositionEndRef.current) == null ? void 0 : _a.call(onCompositionEndRef, e); + if (EMIT_CHANGE_AFTER_COMPOSITION_END) { + e.type = "change"; + (_b = onChangeRef.current) == null ? void 0 : _b.call(onChangeRef, compositionValueRef.current, e); + } + }, + [onCompositionEndRef, onChangeRef] + ); + const isControlled = propValue !== void 0; + const passCompositionHandler = isControlled; + const passCompositionValue = isControlled && isCompositionRef.current; + return { + value: passCompositionValue ? compositionValue : propValue, + onChange: passCompositionHandler ? onCompositionValueChange : onChangeProp, + onCompositionStart: passCompositionHandler ? onCompositionStart : onCompositionStartProp, + onCompositionEnd: passCompositionHandler ? onCompositionEnd : onCompositionEndProp + }; +} diff --git a/packages/hooks/lib/useIMEComposition/interface.d.ts b/packages/hooks/lib/useIMEComposition/interface.d.ts new file mode 100644 index 0000000..e3898d4 --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/interface.d.ts @@ -0,0 +1,8 @@ +/// +export interface IUseIMECompositionResult { + value: string; + onChange: OnChange; + getEventValue?: (...args: any[]) => string; + onCompositionStart: React.CompositionEventHandler; + onCompositionEnd: React.CompositionEventHandler; +} diff --git a/packages/hooks/lib/useIMEComposition/interface.js b/packages/hooks/lib/useIMEComposition/interface.js new file mode 100644 index 0000000..b9794bb --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/interface.js @@ -0,0 +1,17 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useIMEComposition/interface.ts +var interface_exports = {}; +module.exports = __toCommonJS(interface_exports); diff --git a/packages/hooks/lib/useIMEComposition/isBrowser.d.ts b/packages/hooks/lib/useIMEComposition/isBrowser.d.ts new file mode 100644 index 0000000..fc73b3e --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/isBrowser.d.ts @@ -0,0 +1,2 @@ +declare const _default: boolean; +export default _default; diff --git a/packages/hooks/lib/useIMEComposition/isBrowser.js b/packages/hooks/lib/useIMEComposition/isBrowser.js new file mode 100644 index 0000000..6b30218 --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/isBrowser.js @@ -0,0 +1,25 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useIMEComposition/isBrowser.ts +var isBrowser_exports = {}; +__export(isBrowser_exports, { + default: () => isBrowser_default +}); +module.exports = __toCommonJS(isBrowser_exports); +var isBrowser_default = !!(typeof window !== "undefined" && window); diff --git a/packages/hooks/lib/useIMEComposition/isChrome.d.ts b/packages/hooks/lib/useIMEComposition/isChrome.d.ts new file mode 100644 index 0000000..924bb4e --- /dev/null +++ b/packages/hooks/lib/useIMEComposition/isChrome.d.ts @@ -0,0 +1,2 @@ +declare const isChrome: boolean; +export default isChrome; diff --git a/packages/func/lib/addEventListener/index.js b/packages/hooks/lib/useIMEComposition/isChrome.js similarity index 62% rename from packages/func/lib/addEventListener/index.js rename to packages/hooks/lib/useIMEComposition/isChrome.js index 994b76a..3d1ae36 100644 --- a/packages/func/lib/addEventListener/index.js +++ b/packages/hooks/lib/useIMEComposition/isChrome.js @@ -26,25 +26,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -// src/addEventListener/index.ts -var addEventListener_exports = {}; -__export(addEventListener_exports, { - default: () => addEventListener +// src/useIMEComposition/isChrome.ts +var isChrome_exports = {}; +__export(isChrome_exports, { + default: () => isChrome_default }); -module.exports = __toCommonJS(addEventListener_exports); -var import_react_dom = __toESM(require("react-dom")); -function addEventListener(target, eventType, cb, option) { - const callback = import_react_dom.default.unstable_batchedUpdates ? function run(e) { - import_react_dom.default.unstable_batchedUpdates(cb, e); - } : cb; - if (target.addEventListener) { - target.addEventListener(eventType, callback, option); - } - return { - remove: () => { - if (target.removeEventListener) { - target.removeEventListener(eventType, callback); - } - } - }; -} +module.exports = __toCommonJS(isChrome_exports); +var import_isBrowser = __toESM(require("./isBrowser")); +var winNav = import_isBrowser.default && window.navigator; +var vendorName = winNav && winNav.vendor; +var userAgent = winNav && winNav.userAgent; +var isChromium = import_isBrowser.default && typeof chrome !== "undefined"; +var isOpera = import_isBrowser.default && typeof opr !== "undefined"; +var isIEedge = userAgent && userAgent.indexOf("Edge") > -1; +var isIOSChrome = !!(userAgent && userAgent.match("CriOS")); +var isDesktopChrome = isChromium && vendorName === "Google Inc." && !isOpera && !isIEedge; +var isChrome = isIOSChrome || isDesktopChrome; +var isChrome_default = isChrome; diff --git a/packages/hooks/lib/useJump/constants.d.ts b/packages/hooks/lib/useJump/constants.d.ts new file mode 100644 index 0000000..54ec0dc --- /dev/null +++ b/packages/hooks/lib/useJump/constants.d.ts @@ -0,0 +1,20 @@ +export declare const JumpKey = "ROUTER-JUMP"; +export declare const TYPE: { + OFFLINE: number; + HISTORY: number; + OFFLINE_JUMP: number; + HISTORY_JUMP: number; + MONITOR_DETAIL_JUMP: number; + VIDEOGROUP: number; + VIDEOGROUP_JUMP: number; + UNKNOW_JUMP: number; + MONITOR_MAP_JUMP: number; + SEARCH: number; + CURRENT_SEARCH: number; + TAG_CAMERA: number; + TRACK_IMAGE: number; + TRACK_CAMERA: number; + PEER_ANALYSIS: number; + BASELINE_TASKS: number; + JOINTASK: number; +}; diff --git a/packages/hooks/lib/useJump/constants.js b/packages/hooks/lib/useJump/constants.js new file mode 100644 index 0000000..7e2e5ec --- /dev/null +++ b/packages/hooks/lib/useJump/constants.js @@ -0,0 +1,61 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useJump/constants.ts +var constants_exports = {}; +__export(constants_exports, { + JumpKey: () => JumpKey, + TYPE: () => TYPE +}); +module.exports = __toCommonJS(constants_exports); +var JumpKey = "ROUTER-JUMP"; +var TYPE = { + OFFLINE: 1, + HISTORY: 2, + OFFLINE_JUMP: 3, + HISTORY_JUMP: 4, + MONITOR_DETAIL_JUMP: 5, + VIDEOGROUP: 6, + //跳到回溯 + VIDEOGROUP_JUMP: 7, + UNKNOW_JUMP: 8, + //未实现 + MONITOR_MAP_JUMP: 9, + SEARCH: 10, + //检索界面 + CURRENT_SEARCH: 11, + // + TAG_CAMERA: 12, + //预案 + //智能追踪两种方式 + TRACK_IMAGE: 13, + //跳到追踪上传图片 + TRACK_CAMERA: 14, + //跳到追踪选择摄像头 + PEER_ANALYSIS: 15, + //同行人分析 + BASELINE_TASKS: 16, + //线索摸排 + JOINTASK: 17 + //路人库任务 +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + JumpKey, + TYPE +}); diff --git a/packages/hooks/lib/useJump/index.d.ts b/packages/hooks/lib/useJump/index.d.ts new file mode 100644 index 0000000..c5eb1e6 --- /dev/null +++ b/packages/hooks/lib/useJump/index.d.ts @@ -0,0 +1,7 @@ +import type { JumpType } from './interface'; +declare const useJump: () => (path: string, data: { + [index: string]: any; + __key__: JumpType; +}) => void; +export declare const useListenJump: (handle: (data: any) => void, type: JumpType | JumpType[]) => void; +export default useJump; diff --git a/packages/hooks/lib/useJump/index.js b/packages/hooks/lib/useJump/index.js new file mode 100644 index 0000000..af40443 --- /dev/null +++ b/packages/hooks/lib/useJump/index.js @@ -0,0 +1,90 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useJump/index.ts +var useJump_exports = {}; +__export(useJump_exports, { + default: () => useJump_default, + useListenJump: () => useListenJump +}); +module.exports = __toCommonJS(useJump_exports); +var import_ahooks = require("ahooks"); +var import_events = __toESM(require("events")); +var import_func = require("@zhst/func"); +var import_react = require("react"); +var import_react_router_dom = require("react-router-dom"); +var import_constants = require("./constants"); +var emitter = new import_events.default.EventEmitter(); +var useJump = () => { + const location = (0, import_react_router_dom.useLocation)(); + const navigate = (0, import_react_router_dom.useNavigate)(); + const jump = (path, data) => { + if (location.pathname !== path) { + navigate(path, { + state: { data, topic: import_constants.JumpKey, __from__: location.pathname } + }); + } else { + emitter.emit(import_constants.JumpKey, data); + } + }; + return jump; +}; +var useListenJump = (handle, type) => { + const latestHandle = (0, import_ahooks.useLatest)(handle); + const navigate = (0, import_react_router_dom.useNavigate)(); + const _type = (0, import_func.isArray)(type) ? type : [type]; + const location = (0, import_react_router_dom.useLocation)(); + (0, import_react.useEffect)(() => { + const { state, pathname, search } = location; + if (state) { + const { topic, data, __from__ } = state; + if (topic === import_constants.JumpKey && _type.includes((0, import_func.get)(data, "__key__"))) { + latestHandle.current({ ...data, __from__ }); + } + navigate(`/${pathname}${search}`, { + state: null + }); + } + }, [location]); + (0, import_react.useEffect)(() => { + const handleEmit = (data) => { + if (_type.includes((0, import_func.get)(data, "__key__"))) { + latestHandle.current(data); + } + }; + emitter.on(import_constants.JumpKey, handleEmit); + return () => { + emitter.removeListener(import_constants.JumpKey, handleEmit); + }; + }, []); +}; +var useJump_default = useJump; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + useListenJump +}); diff --git a/packages/hooks/lib/useJump/interface.d.ts b/packages/hooks/lib/useJump/interface.d.ts new file mode 100644 index 0000000..f0a8dac --- /dev/null +++ b/packages/hooks/lib/useJump/interface.d.ts @@ -0,0 +1 @@ +export type JumpType = 'warningRecord' | 'targetSearch' | 'passerby' | 'targetDetail' | 'traceAnalysis' | 'offlineAnalysis'; diff --git a/packages/hooks/lib/useJump/interface.js b/packages/hooks/lib/useJump/interface.js new file mode 100644 index 0000000..ecf4552 --- /dev/null +++ b/packages/hooks/lib/useJump/interface.js @@ -0,0 +1,17 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/useJump/interface.ts +var interface_exports = {}; +module.exports = __toCommonJS(interface_exports); diff --git a/packages/hooks/lib/useSocket/index.d.ts b/packages/hooks/lib/useSocket/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/packages/hooks/lib/useSocket/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/hooks/lib/useSocket/index.js b/packages/hooks/lib/useSocket/index.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/hooks/package.json b/packages/hooks/package.json index ff334d7..c8e7af2 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/hooks", - "version": "0.2.3", + "version": "0.2.4", "description": "hooks合集", "keywords": [ "hooks" @@ -16,6 +16,9 @@ "main": "lib/index.tsx", "module": "es/index.js", "typings": "es/index.d.ts", + "exports": { + "./package.json": "./package.json" + }, "files": [ "es", "lib", @@ -29,7 +32,12 @@ "registry": "http://10.0.0.77:4874" }, "dependencies": { + "@zhst/func": "workspace:^", "ahooks": "^3.7.8", - "react": "^18.0.0" + "antd": "^5.12.5", + "events": "^3.3.0", + "react": "^18.0.0", + "react-activation": "^0.12.4", + "react-router-dom": "^6.21.1" } } diff --git a/packages/hooks/src/demo.md b/packages/hooks/src/demo.md index ff40871..1d4798d 100644 --- a/packages/hooks/src/demo.md +++ b/packages/hooks/src/demo.md @@ -2,7 +2,7 @@ nav: title: hooks order: 2 -title: 示例 +title: hooks 列表 --- ## useRafLoop @@ -10,3 +10,82 @@ title: 示例 ```js import { useRafLoop } from '@zhst/hooks' ``` + +## useActivateWrapper + +```js +import { useActivateWrapper } from '@zhst/hooks' +``` + +## useCustomCompareEffect + +```js +import { useCustomCompareEffect } from '@zhst/hooks' +``` + +## useBoolLocalStorage + +```js +import { useBoolLocalStorage } from '@zhst/hooks' +``` + +## useDeepEffect + +```js +import { useDeepEffect } from '@zhst/hooks' +``` + +## useDeepMemo + +```js +import { useDeepMemo } from '@zhst/hooks' +``` + +## useDoubleCheck + +```js +import { useDoubleCheck } from '@zhst/hooks' +``` + +## useIMEComposition + +```js +import { useIMEComposition } from '@zhst/hooks' +``` + +## useSocket + +```jsx +import React, { useRef, useMemo } from 'react'; +import { useWebSocket } from 'ahooks'; + +enum ReadyState { + Connecting = 0, + Open = 1, + Closing = 2, + Closed = 3, +} + +export default () => { + const messageHistory = useRef([]); + + const { readyState, sendMessage, latestMessage, disconnect, connect } = useWebSocket( + 'ws://10.0.0.7:30003/socket.io/?EIO=3&transport=websocket', + ); + + let data = { + + } + + const sendMsg = () => { + sendMessage([ + '', + '{\"extraHeaders\":{\"authorization\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDQwMTM0NzgsImp0aSI6IjI1MDYiLCJpYXQiOjE3MDM3NTQyNzgsInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsImRhdGFSaWdodCI6MiwiY2FtZXJhUmlnaHQiOjEsImdwdVJpZ2h0IjoxLCJ1c2VybGVhZGVySWQiOjAsIm9yZ2FuaXphdGlvbklkIjoxLCJyb2xlSWQiOjF9.sVeRo-p3Bw337voTVAvoKha6W9595BrrYyx3_16uEwU\"}}' + ]) + } + + return ( +
sendMsg()} >测试
+ ) +} +``` diff --git a/packages/hooks/src/index.tsx b/packages/hooks/src/index.tsx index 987932e..dafdf01 100644 --- a/packages/hooks/src/index.tsx +++ b/packages/hooks/src/index.tsx @@ -1,2 +1,9 @@ export * from 'ahooks' export { default as useRafLoop } from './useRafLoop'; +export { default as useActivateWrapper } from './useActivateWrapper'; +export { default as useBoolLocalStorage } from './useBoolLocalStorage'; +export { default as useCustomCompareEffect } from './useCustomCompareEffect'; +export { default as useDeepEffect } from './useDeepEffect'; +export { default as useDeepMemo } from './useDeepMemo'; +export { default as useDoubleCheck } from './useDoubleCheck'; +export { default as useIMEComposition } from './useIMEComposition'; diff --git a/packages/hooks/src/useActivateWrapper/index.tsx b/packages/hooks/src/useActivateWrapper/index.tsx new file mode 100644 index 0000000..4e359dc --- /dev/null +++ b/packages/hooks/src/useActivateWrapper/index.tsx @@ -0,0 +1,50 @@ +import { useState, useRef, useCallback } from 'react'; +import { useActivate, useUnactivate } from 'react-activation'; +import { noop, isFunction } from '@zhst/func'; +import { useLatest, useMount, useUnmount } from 'ahooks'; + +export const useUnActivateWrapper = (cb: () => void) => { + const latestCb = useLatest(cb); + const handle = useCallback(() => { + const cb = latestCb.current ? latestCb.current : noop; + cb(); + }, []); + useUnactivate(handle); + useUnmount(handle); +}; + +export const useActivateWrapper = (cb: any) => { + const latestCb = useLatest(cb); + let retRef = useRef(noop); + + const handle = useCallback(() => { + const cb = latestCb.current ? latestCb.current : noop; + retRef.current = cb(); + }, []); + + const unMountHandle = useCallback(() => { + if (isFunction(retRef.current)) { + retRef.current(); + } + }, []); + + useActivate(handle); + useMount(handle); + + useUnActivateWrapper(unMountHandle); + + return null; +}; + +export const useActivateState = () => { + const [isActive, setIsActive] = useState(false); + useActivateWrapper(() => { + setIsActive(true); + return () => { + setIsActive(false); + }; + }); + return isActive; +}; + +export default useActivateWrapper; diff --git a/packages/hooks/src/useBoolLocalStorage/index.tsx b/packages/hooks/src/useBoolLocalStorage/index.tsx new file mode 100644 index 0000000..518fb47 --- /dev/null +++ b/packages/hooks/src/useBoolLocalStorage/index.tsx @@ -0,0 +1,12 @@ +//@ts-nocheck +import { useLocalStorageState } from 'ahooks'; + +export default (key: string, initValue = true) => { + //弹窗显示 + const [v, setV] = useLocalStorageState(key, initValue, { + raw: false, + serializer: (v) => (v ? '1' : '0'), + deserializer: (v) => (v === '1' ? true : false), + }); + return [v, setV] as [boolean, React.Dispatch>]; +}; diff --git a/packages/hooks/src/useCustomCompareEffect/index.tsx b/packages/hooks/src/useCustomCompareEffect/index.tsx new file mode 100644 index 0000000..04ebe71 --- /dev/null +++ b/packages/hooks/src/useCustomCompareEffect/index.tsx @@ -0,0 +1,37 @@ +//@ts-nocheck +//只是删除isPrimitive check + +import { DependencyList, EffectCallback, useEffect, useRef } from 'react'; + +type DepsEqualFnType = (prevDeps: TDeps, nextDeps: TDeps) => boolean; + +const useCustomCompareEffect = ( + effect: EffectCallback, + deps: TDeps, + depsEqual: DepsEqualFnType +) => { + if (process.env.NODE_ENV !== 'production') { + if (!(deps instanceof Array) || !deps.length) { + console.warn( + '`useCustomCompareEffect` should not be used with no dependencies. Use React.useEffect instead.' + ); + } + + if (typeof depsEqual !== 'function') { + console.warn( + '`useCustomCompareEffect` should be used with depsEqual callback for comparing deps list' + ); + } + } + let _depsEqual = depsEqual; + + const ref = useRef(undefined); + + if (!ref.current || !_depsEqual(deps, ref.current)) { + ref.current = deps; + } + + useEffect(effect, ref.current); +}; + +export default useCustomCompareEffect; diff --git a/packages/hooks/src/useDeepEffect/index.tsx b/packages/hooks/src/useDeepEffect/index.tsx new file mode 100644 index 0000000..47c3253 --- /dev/null +++ b/packages/hooks/src/useDeepEffect/index.tsx @@ -0,0 +1,14 @@ +import type { + DependencyList, + EffectCallback, +} from 'react'; +import { isEqual } from '@zhst/func'; +import useCustomCompareEffect from '../useCustomCompareEffect'; + +function useDeepEffect(effect: EffectCallback, deps: DependencyList) { + useCustomCompareEffect(effect, deps, (pre, now) => { + return isEqual(pre, now); + }); +} + +export default useDeepEffect; diff --git a/packages/hooks/src/useDeepMemo/index.ts b/packages/hooks/src/useDeepMemo/index.ts new file mode 100644 index 0000000..c266c38 --- /dev/null +++ b/packages/hooks/src/useDeepMemo/index.ts @@ -0,0 +1,13 @@ +//对生成的值做深比较 +import { useState, useMemo, DependencyList } from 'react'; +import useDeepEffect from '../useDeepEffect'; + +export default function useDeepMemo(factory: () => T, deps: DependencyList | undefined) { + const value = useMemo(factory, deps); + const [state, setState] = useState(value); + useDeepEffect(() => { + setState(value); + }, [value]); + + return state; +} diff --git a/packages/hooks/src/useDoubleCheck/index.tsx b/packages/hooks/src/useDoubleCheck/index.tsx new file mode 100644 index 0000000..16f55bf --- /dev/null +++ b/packages/hooks/src/useDoubleCheck/index.tsx @@ -0,0 +1,13 @@ +import { useLocalStorageState } from 'ahooks'; +import { Options } from 'ahooks/lib/createUseStorageState'; + +export const isShowDoubleCheck = (key: string) => { + const v = localStorage.getItem(key); + return v === '1' ? true : false; +}; + +export default function useDoubleCheck(key: string, initialState: Options | undefined) { + //是否关闭二次提示 + const [value, setValue] = useLocalStorageState(key, initialState); + return [value, setValue]; +} diff --git a/packages/hooks/src/useIMEComposition/index.tsx b/packages/hooks/src/useIMEComposition/index.tsx new file mode 100644 index 0000000..5a75348 --- /dev/null +++ b/packages/hooks/src/useIMEComposition/index.tsx @@ -0,0 +1,77 @@ +//@ts-nocheck +import { useState, useRef, useCallback, type CompositionEventHandler } from 'react'; +import { isChrome } from '@zhst/func'; +import type { IUseIMECompositionResult } from './interface' + +const EMIT_CHANGE_AFTER_COMPOSITION_END = isChrome(); + +const defaultGetEventValue = (e) => e.target.value; + +export default function useIMEComposition any>( + propValue: string, + onChangeProp?: OnChange, + getEventValueProp?: (...args: any[]) => string, + onCompositionStartProp?: CompositionEventHandler, + onCompositionEndProp?: CompositionEventHandler +): IUseIMECompositionResult { + const getEventValue = getEventValueProp || defaultGetEventValue; + + const isCompositionRef = useRef(false); + const [compositionValue, setCompositionValue] = useState(propValue); + + const compositionValueRef = useRef(compositionValue); + const onChangeRef = useRef(onChangeProp); + const onCompositionStartRef = useRef(onCompositionStartProp); + const onCompositionEndRef = useRef(onCompositionEndProp); + compositionValueRef.current = compositionValue; + onChangeRef.current = onChangeProp; + onCompositionStartRef.current = onCompositionStartProp; + onCompositionEndRef.current = onCompositionEndProp; + + // eslint-disable-next-line react-hooks/exhaustive-deps + const onCompositionValueChange = useCallback( + ((...args) => { + if (isCompositionRef.current) { + setCompositionValue(getEventValue(...args)); + // 若输入法正在输入,则不触发上层组件的事件 + return; + } + return onChangeRef.current?.(...args); + }) as OnChange, + [onChangeRef] + ); + + const onCompositionStart: CompositionEventHandler = useCallback( + (e) => { + isCompositionRef.current = true; + onCompositionStartRef.current?.(e); + }, + [onCompositionStartRef] + ); + + const onCompositionEnd: CompositionEventHandler = useCallback( + (e) => { + isCompositionRef.current = false; + onCompositionEndRef.current?.(e); + // chrome 的 onCompositionEnd 事件在 onChange 后触发,需要在 onCompositionEnd 后额外触发一次 onChange 事件 + if (EMIT_CHANGE_AFTER_COMPOSITION_END) { + e.type = 'change'; + //todo: 此处优化 + onChangeRef.current?.(compositionValueRef.current, e); + } + }, + [onCompositionEndRef, onChangeRef] + ); + + // 只处理受控的组件 + const isControlled = propValue !== undefined; + const passCompositionHandler = isControlled; + const passCompositionValue = isControlled && isCompositionRef.current; + + return { + value: passCompositionValue ? compositionValue : propValue, + onChange: passCompositionHandler ? onCompositionValueChange : onChangeProp, + onCompositionStart: passCompositionHandler ? onCompositionStart : onCompositionStartProp, + onCompositionEnd: passCompositionHandler ? onCompositionEnd : onCompositionEndProp, + }; +} diff --git a/packages/hooks/src/useIMEComposition/interface.ts b/packages/hooks/src/useIMEComposition/interface.ts new file mode 100644 index 0000000..81140f2 --- /dev/null +++ b/packages/hooks/src/useIMEComposition/interface.ts @@ -0,0 +1,7 @@ +export interface IUseIMECompositionResult { + value: string; + onChange: OnChange; + getEventValue?: (...args: any[]) => string; + onCompositionStart: React.CompositionEventHandler; + onCompositionEnd: React.CompositionEventHandler; +} diff --git a/packages/hooks/src/useIMEComposition/isBrowser.ts b/packages/hooks/src/useIMEComposition/isBrowser.ts new file mode 100644 index 0000000..5df6d75 --- /dev/null +++ b/packages/hooks/src/useIMEComposition/isBrowser.ts @@ -0,0 +1,2 @@ +//@ts-nocheck +export default !!(typeof window !== 'undefined' && window); diff --git a/packages/hooks/src/useIMEComposition/isChrome.ts b/packages/hooks/src/useIMEComposition/isChrome.ts new file mode 100644 index 0000000..fe01d2f --- /dev/null +++ b/packages/hooks/src/useIMEComposition/isChrome.ts @@ -0,0 +1,20 @@ +//@ts-nocheck +import isBrowser from './isBrowser'; + +const winNav = isBrowser && window.navigator; +const vendorName = winNav && winNav.vendor; +const userAgent = winNav && winNav.userAgent; + +//@ts-ignore +const isChromium = isBrowser && typeof chrome !== 'undefined'; + +//@ts-ignore +const isOpera = isBrowser && typeof opr !== 'undefined'; +const isIEedge = userAgent && userAgent.indexOf('Edge') > -1; + +const isIOSChrome = !!(userAgent && userAgent.match('CriOS')); +const isDesktopChrome = isChromium && vendorName === 'Google Inc.' && !isOpera && !isIEedge; + +const isChrome = isIOSChrome || isDesktopChrome; + +export default isChrome; diff --git a/packages/hooks/src/useJump/constants.ts b/packages/hooks/src/useJump/constants.ts new file mode 100644 index 0000000..26fa837 --- /dev/null +++ b/packages/hooks/src/useJump/constants.ts @@ -0,0 +1,23 @@ + +export const JumpKey = 'ROUTER-JUMP'; + +export const TYPE = { + OFFLINE: 1, + HISTORY: 2, + OFFLINE_JUMP: 3, + HISTORY_JUMP: 4, + MONITOR_DETAIL_JUMP: 5, + VIDEOGROUP: 6, //跳到回溯 + VIDEOGROUP_JUMP: 7, + UNKNOW_JUMP: 8, //未实现 + MONITOR_MAP_JUMP: 9, + SEARCH: 10, //检索界面 + CURRENT_SEARCH: 11, // + TAG_CAMERA: 12, //预案 + //智能追踪两种方式 + TRACK_IMAGE: 13, //跳到追踪上传图片 + TRACK_CAMERA: 14, //跳到追踪选择摄像头 + PEER_ANALYSIS: 15, //同行人分析 + BASELINE_TASKS: 16, //线索摸排 + JOINTASK: 17 //路人库任务 +}; diff --git a/packages/hooks/src/useJump/index.ts b/packages/hooks/src/useJump/index.ts new file mode 100644 index 0000000..6d4d17c --- /dev/null +++ b/packages/hooks/src/useJump/index.ts @@ -0,0 +1,59 @@ +import { useLatest } from 'ahooks'; +import events from 'events'; +import { get, isArray } from '@zhst/func'; +import { useEffect } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; +import { JumpKey } from './constants' +import type { JumpType } from './interface' + +const emitter = new events.EventEmitter(); + +const useJump = () => { + const location = useLocation(); + const navigate = useNavigate(); + const jump = (path: string, data: { __key__: JumpType;[index: string]: any }) => { + if (location.pathname !== path) { + navigate(path, { + state: { data, topic: JumpKey, __from__: location.pathname }, + }); + } else { + emitter.emit(JumpKey, data); + } + }; + + return jump; +}; + +export const useListenJump = (handle: (data: any) => void, type: JumpType | JumpType[]) => { + const latestHandle = useLatest(handle); + const navigate = useNavigate(); + const _type = isArray(type) ? type : [type]; + + const location = useLocation(); + useEffect(() => { + const { state, pathname, search } = location; + if (state) { + const { topic, data, __from__ } = state; + if (topic === JumpKey && _type.includes(get(data, '__key__'))) { + latestHandle.current({ ...data, __from__ }); + } + navigate(`/${pathname}${search}`, { + state: null, + }); + } + }, [location]); + + useEffect(() => { + const handleEmit = (data: any) => { + if (_type.includes(get(data, '__key__'))) { + latestHandle.current(data); + } + }; + emitter.on(JumpKey, handleEmit); + return () => { + emitter.removeListener(JumpKey, handleEmit); + }; + }, []); +}; + +export default useJump; diff --git a/packages/hooks/src/useJump/interface.ts b/packages/hooks/src/useJump/interface.ts new file mode 100644 index 0000000..c08da45 --- /dev/null +++ b/packages/hooks/src/useJump/interface.ts @@ -0,0 +1,7 @@ +export type JumpType = + | 'warningRecord' + | 'targetSearch' + | 'passerby' + | 'targetDetail' + | 'traceAnalysis' + | 'offlineAnalysis'; diff --git a/packages/hooks/src/useSocket/index.ts b/packages/hooks/src/useSocket/index.ts new file mode 100644 index 0000000..c968958 --- /dev/null +++ b/packages/hooks/src/useSocket/index.ts @@ -0,0 +1,2 @@ +import { useWebSocket } from 'ahooks' + diff --git a/packages/material/.fatherrc.ts b/packages/material/.fatherrc.ts new file mode 100644 index 0000000..9e3a0ef --- /dev/null +++ b/packages/material/.fatherrc.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'father'; + +export default defineConfig({ + // more father config: https://github.com/umijs/father/blob/master/docs/config.md + esm: { output: 'es' }, + cjs: { output: 'lib' }, +}); diff --git a/packages/material/CHANGELOG.md b/packages/material/CHANGELOG.md new file mode 100644 index 0000000..444b4f0 --- /dev/null +++ b/packages/material/CHANGELOG.md @@ -0,0 +1,19 @@ +# @zhst/biz + +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 +- Updated dependencies + - @zhst/func@0.2.4 + - @zhst/hooks@0.2.4 + - @zhst/meta@0.2.4 + +## 0.2.3 + +### Patch Changes + +- fix: 调试包 link +- Updated dependencies + - @zhst/hooks@0.2.3 diff --git a/packages/material/README.md b/packages/material/README.md new file mode 100644 index 0000000..23ba41e --- /dev/null +++ b/packages/material/README.md @@ -0,0 +1,16 @@ +## 介绍 + +业务库 + +## 安装 + +> pnpm install @zhst/biz + +## 使用 + +```jsx +import React from 'react'; +import { Demo } from '@zhst/biz' + +export default () => +``` diff --git a/packages/material/package.json b/packages/material/package.json new file mode 100644 index 0000000..c8431cf --- /dev/null +++ b/packages/material/package.json @@ -0,0 +1,39 @@ +{ + "name": "@zhst/material", + "version": "0.2.4", + "description": "物料库", + "keywords": [ + "business", + "biz", + "zhst", + "material" + ], + "license": "ISC", + "author": "dev", + "sideEffects": [ + "dist/*", + "es/**/style/*", + "lib/**/style/*", + "*.less" + ], + "main": "lib/index.tsx", + "module": "es/index.js", + "typings": "es/index.d.ts", + "files": [ + "es", + "lib" + ], + "scripts": { + "build": "father build" + }, + "publishConfig": { + "access": "public", + "registry": "http://10.0.0.77:4874" + }, + "dependencies": { + "@zhst/hooks": "workspace:^", + "@zhst/meta": "workspace:^", + "@zhst/func": "workspace:^", + "@zhst/biz": "workspace:^" + } +} diff --git a/packages/material/src/Demo/index.tsx b/packages/material/src/Demo/index.tsx new file mode 100644 index 0000000..7545062 --- /dev/null +++ b/packages/material/src/Demo/index.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import { Button } from '@zhst/meta' +import { useThrottleFn } from '@zhst/hooks' + +export default () => { + + const { run } = useThrottleFn(() => console.log('123')) + + return ( + + ) +} diff --git a/packages/material/src/changelog/index.md b/packages/material/src/changelog/index.md new file mode 100644 index 0000000..d4333e4 --- /dev/null +++ b/packages/material/src/changelog/index.md @@ -0,0 +1,8 @@ +--- +nav: + title: 元组件 +title: 版本更新日志 +order: 99 +--- + + diff --git a/packages/material/src/index.md b/packages/material/src/index.md new file mode 100644 index 0000000..6ee14d4 --- /dev/null +++ b/packages/material/src/index.md @@ -0,0 +1,8 @@ +--- +nav: + title: 业务组件 +order: 1 +title: 快速上手 +--- + + diff --git a/packages/biz/es/index.d.ts b/packages/material/src/index.tsx similarity index 100% rename from packages/biz/es/index.d.ts rename to packages/material/src/index.tsx diff --git a/packages/meta/.fatherrc.ts b/packages/meta/.fatherrc.ts index b4e5bce..9e3a0ef 100644 --- a/packages/meta/.fatherrc.ts +++ b/packages/meta/.fatherrc.ts @@ -4,7 +4,4 @@ export default defineConfig({ // more father config: https://github.com/umijs/father/blob/master/docs/config.md esm: { output: 'es' }, cjs: { output: 'lib' }, - umd: { - name: 'zhst-meta', - }, }); diff --git a/packages/meta/CHANGELOG.md b/packages/meta/CHANGELOG.md index ba7125c..19b1dcf 100644 --- a/packages/meta/CHANGELOG.md +++ b/packages/meta/CHANGELOG.md @@ -1,5 +1,11 @@ # @zhst/utils +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 + ## 0.2.3 ### Patch Changes diff --git a/packages/meta/README.md b/packages/meta/README.md index 0423ec9..1c66331 100644 --- a/packages/meta/README.md +++ b/packages/meta/README.md @@ -1,6 +1,6 @@ ## 介绍 -原子组件 +原子组件,基于 @zhst/hooks、@zhst/func 开发。 ## 安装 @@ -10,7 +10,12 @@ ```jsx import React from 'react'; -import { Button } from '@zhst/meta' +import { Button } from 'antd' +import { doubleClick } from '@zhst/meta' -export default () => +export default () => { + return ( + + ) +} ``` diff --git a/packages/meta/dist/umd/meta.min.js b/packages/meta/dist/umd/meta.min.js deleted file mode 100644 index 4ec9989..0000000 --- a/packages/meta/dist/umd/meta.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["zhst-meta"]=t():e["zhst-meta"]=t()}(self,(function(){return function(){var e,t,n={32:function(e,t,n){var r,o=n(273).default;!function(){"use strict";var a={}.hasOwnProperty;function i(){for(var e=[],t=0;tt}return!1}function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var y={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){y[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];y[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){y[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){y[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){y[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){y[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){y[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){y[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){y[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function w(e){return e[1].toUpperCase()}function k(e,t,n,r){var o=y.hasOwnProperty(t)?y[t]:null;(null!==o?0!==o.type:r||!(2--u||a[l]!==i[u]){var c="\n"+a[l].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}}while(1<=l&&0<=u);break}}}finally{D=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?B(e):""}function U(e){switch(e.tag){case 5:return B(e.type);case 16:return B("Lazy");case 13:return B("Suspense");case 19:return B("SuspenseList");case 0:case 2:case 15:return e=W(e.type,!1);case 11:return e=W(e.type.render,!1);case 1:return e=W(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case C:return"Portal";case _:return"Profiler";case O:return"StrictMode";case M:return"Suspense";case L:return"SuspenseList"}if("object"===r(e))switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case z:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:V(e.type)||"Memo";case j:t=e._payload,e=e._init;try{return V(e(t))}catch(e){}}return null}function $(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return V(t);case 8:return t===O?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function X(e){switch(r(e)){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Y(e,t){var n=t.checked;return H({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Z(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=X(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function J(e,t){null!=(t=t.checked)&&k(e,"checked",t,!1)}function ee(e,t){J(e,t);var n=X(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ne(e,t.type,n):t.hasOwnProperty("defaultValue")&&ne(e,t.type,X(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function te(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ne(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var re=Array.isArray;function oe(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=fe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return de(e,t)}))}:de);function he(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function ge(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ye(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=ge(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ve).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var be=H({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function we(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!==r(t.dangerouslySetInnerHTML)||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!==r(t.style))throw Error(i(62))}}function ke(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Se=null;function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Ee=null,Oe=null;function _e(e){if(e=So(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=Co(t),Ce(e.stateNode,e.type,t))}}function ze(e){Ee?Oe?Oe.push(e):Oe=[e]:Ee=e}function Pe(){if(Ee){var e=Ee,t=Oe;if(Oe=Ee=null,_e(e),t)for(e=0;e>>=0,0===e?32:31-(ct(e)/st|0)|0},ct=Math.log,st=Math.LN2;var ft=64,dt=4194304;function pt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ht(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~o;0!==l?r=pt(l):0!==(a&=i)&&(r=pt(a))}else 0!==(i=n&~o)?r=pt(i):0!==a&&(r=pt(a));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-ut(t)]=n}function wt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ut(n),o=1<=In),Bn=String.fromCharCode(32),Dn=!1;function Wn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return e=e.detail,"object"===r(e)&&"data"in e?e.data:null}var Vn=!1;var $n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Xn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!$n[e.type]:"textarea"===t}function Qn(e,t,n,r){ze(r),0<(t=Gr(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,qn=null;function Kn(e){Br(e,0)}function Yn(e){if(q(xo(e)))return e}function Zn(e,t){if("change"===e)return t}var Jn=!1;if(f){var er;if(f){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function pr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?pr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function vr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=hr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&pr(n.ownerDocument.documentElement,n)){if(null!==r&&vr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=dr(n,a);var i=dr(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n=document.documentMode,yr=null,br=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==yr||yr!==K(r)||("selectionStart"in(r=yr)&&vr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&sr(wr,r)||(wr=r,0<(r=Gr(br,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}function xr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Cr={animationend:xr("Animation","AnimationEnd"),animationiteration:xr("Animation","AnimationIteration"),animationstart:xr("Animation","AnimationStart"),transitionend:xr("Transition","TransitionEnd")},Er={},Or={};function _r(e){if(Er[e])return Er[e];if(!Cr[e])return e;var t,n=Cr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Or)return Er[e]=n[t];return e}f&&(Or=document.createElement("div").style,"AnimationEvent"in window||(delete Cr.animationend.animation,delete Cr.animationiteration.animation,delete Cr.animationstart.animation),"TransitionEvent"in window||delete Cr.transitionend.transition);var zr=_r("animationend"),Pr=_r("animationiteration"),Tr=_r("animationstart"),Mr=_r("transitionend"),Lr=new Map,Nr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function jr(e,t){Lr.set(e,t),c(t,[e])}for(var Rr=0;RrOo||(e.current=Eo[Oo],Eo[Oo]=null,Oo--)}function Po(e,t){Oo++,Eo[Oo]=e.current,e.current=t}var To={},Mo=_o(To),Lo=_o(!1),No=To;function jo(e,t){var n=e.type.contextTypes;if(!n)return To;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ro(e){return null!=(e=e.childContextTypes)}function Ao(){zo(Lo),zo(Mo)}function Io(e,t,n){if(Mo.current!==To)throw Error(i(168));Po(Mo,t),Po(Lo,n)}function Fo(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(i(108,$(e)||"Unknown",o));return H({},n,r)}function Ho(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||To,No=Mo.current,Po(Mo,e),Po(Lo,Lo.current),!0}function Bo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=Fo(e,t,No),r.__reactInternalMemoizedMergedChildContext=e,zo(Lo),zo(Mo),Po(Mo,e)):zo(Lo),Po(Lo,n)}var Do=null,Wo=!1,Uo=!1;function Vo(e){null===Do?Do=[e]:Do.push(e)}function $o(){if(!Uo&&null!==Do){Uo=!0;var e=0,t=kt;try{var n=Do;for(kt=1;e>=i,o-=i,Jo=1<<32-ut(t)+o|n<d?(m=f,f=null):m=f.sibling;var g=h(r,f,i[d],u);if(null===g){null===f&&(f=m);break}e&&f&&null===g.alternate&&t(r,f),a=l(g,a,d),null===s?c=g:s.sibling=g,s=g,f=m}if(d===i.length)return n(r,f),la&&ta(r,d),c;if(null===f){for(;dm?(g=d,d=null):g=d.sibling;var b=h(r,d,y.value,c);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(r,d),a=l(b,a,m),null===f?s=b:f.sibling=b,f=b,d=g}if(y.done)return n(r,d),la&&ta(r,m),s;if(null===d){for(;!y.done;m++,y=u.next())null!==(y=p(r,y.value,c))&&(a=l(y,a,m),null===f?s=y:f.sibling=y,f=y);return la&&ta(r,m),s}for(d=o(r,d);!y.done;m++,y=u.next())null!==(y=v(d,r,m,y.value,c))&&(e&&null!==y.alternate&&d.delete(null===y.key?m:y.key),a=l(y,a,m),null===f?s=y:f.sibling=y,f=y);return e&&d.forEach((function(e){return t(r,e)})),la&&ta(r,m),s}return function e(o,i,l,c){if("object"===r(l)&&null!==l&&l.type===E&&null===l.key&&(l=l.props.children),"object"===r(l)&&null!==l){switch(l.$$typeof){case x:e:{for(var s=l.key,f=i;null!==f;){if(f.key===s){if((s=l.type)===E){if(7===f.tag){n(o,f.sibling),(i=a(f,l.props.children)).return=o,o=i;break e}}else if(f.elementType===s||"object"===r(s)&&null!==s&&s.$$typeof===j&&Ya(s)===f.type){n(o,f.sibling),(i=a(f,l.props)).ref=qa(o,f,l),i.return=o,o=i;break e}n(o,f);break}t(o,f),f=f.sibling}l.type===E?((i=Ic(l.props.children,o.mode,c,l.key)).return=o,o=i):((c=Ac(l.type,l.key,l.props,null,o.mode,c)).ref=qa(o,i,l),c.return=o,o=c)}return u(o);case C:e:{for(f=l.key;null!==i;){if(i.key===f){if(4===i.tag&&i.stateNode.containerInfo===l.containerInfo&&i.stateNode.implementation===l.implementation){n(o,i.sibling),(i=a(i,l.children||[])).return=o,o=i;break e}n(o,i);break}t(o,i),i=i.sibling}(i=Bc(l,o.mode,c)).return=o,o=i}return u(o);case j:return e(o,i,(f=l._init)(l._payload),c)}if(re(l))return m(o,i,l,c);if(I(l))return g(o,i,l,c);Ka(o,l)}return"string"==typeof l&&""!==l||"number"==typeof l?(l=""+l,null!==i&&6===i.tag?(n(o,i.sibling),(i=a(i,l)).return=o,o=i):(n(o,i),(i=Hc(l,o.mode,c)).return=o,o=i),u(o)):n(o,i)}}var Ja=Za(!0),ei=Za(!1),ti={},ni=_o(ti),ri=_o(ti),oi=_o(ti);function ai(e){if(e===ti)throw Error(i(174));return e}function ii(e,t){switch(Po(oi,t),Po(ri,e),Po(ni,ti),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}zo(ni),Po(ni,t)}function li(){zo(ni),zo(ri),zo(oi)}function ui(e){ai(oi.current);var t=ai(ni.current),n=se(t,e.type);t!==n&&(Po(ri,e),Po(ni,n))}function ci(e){ri.current===e&&(zo(ni),zo(ri))}var si=_o(0);function fi(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var di=[];function pi(){for(var e=0;en?n:4,e(!0);var r=vi.transition;vi.transition={};try{e(!1),t()}finally{kt=n,vi.transition=r}}function nl(){return Pi().memoizedState}function rl(e,t,n){var r=rc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},al(e))il(t,n);else if(null!==(n=Ma(e,t,n,r))){oc(n,e,r,nc()),ll(n,t,r)}}function ol(e,t,n){var r=rc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(al(e))il(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,cr(l,i)){var u=t.interleaved;return null===u?(o.next=o,Ta(t)):(o.next=u.next,u.next=o),void(t.interleaved=o)}}catch(e){}null!==(n=Ma(e,t,o,r))&&(oc(n,e,r,o=nc()),ll(n,t,r))}}function al(e){var t=e.alternate;return e===gi||null!==t&&t===gi}function il(e,t){ki=wi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ll(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,wt(e,n)}}var ul={readContext:za,useCallback:Ci,useContext:Ci,useEffect:Ci,useImperativeHandle:Ci,useInsertionEffect:Ci,useLayoutEffect:Ci,useMemo:Ci,useReducer:Ci,useRef:Ci,useState:Ci,useDebugValue:Ci,useDeferredValue:Ci,useTransition:Ci,useMutableSource:Ci,useSyncExternalStore:Ci,useId:Ci,unstable_isNewReconciler:!1},cl={readContext:za,useCallback:function(e,t){return zi().memoizedState=[e,void 0===t?null:t],e},useContext:za,useEffect:$i,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4194308,4,qi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ui(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ui(4,2,e,t)},useMemo:function(e,t){var n=zi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=zi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=rl.bind(null,gi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},zi().memoizedState=e},useState:Bi,useDebugValue:Yi,useDeferredValue:function(e){return zi().memoizedState=e},useTransition:function(){var e=Bi(!1),t=e[0];return e=tl.bind(null,e[1]),zi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=gi,o=zi();if(la){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===Mu)throw Error(i(349));0!=(30&mi)||Ri(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,$i(Ii.bind(null,r,a,e),[e]),r.flags|=2048,Di(9,Ai.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=zi(),t=Mu.identifierPrefix;if(la){var n=ea;t=":"+t+"R"+(n=(Jo&~(1<<32-ut(Jo)-1)).toString(32)+n),0<(n=Si++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=xi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},sl={readContext:za,useCallback:Zi,useContext:za,useEffect:Xi,useImperativeHandle:Ki,useInsertionEffect:Qi,useLayoutEffect:Gi,useMemo:Ji,useReducer:Mi,useRef:Wi,useState:function(){return Mi(Ti)},useDebugValue:Yi,useDeferredValue:function(e){return el(Pi(),yi.memoizedState,e)},useTransition:function(){return[Mi(Ti)[0],Pi().memoizedState]},useMutableSource:Ni,useSyncExternalStore:ji,useId:nl,unstable_isNewReconciler:!1},fl={readContext:za,useCallback:Zi,useContext:za,useEffect:Xi,useImperativeHandle:Ki,useInsertionEffect:Qi,useLayoutEffect:Gi,useMemo:Ji,useReducer:Li,useRef:Wi,useState:function(){return Li(Ti)},useDebugValue:Yi,useDeferredValue:function(e){var t=Pi();return null===yi?t.memoizedState=e:el(t,yi.memoizedState,e)},useTransition:function(){return[Li(Ti)[0],Pi().memoizedState]},useMutableSource:Ni,useSyncExternalStore:ji,useId:nl,unstable_isNewReconciler:!1};function dl(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var o=n}catch(e){o="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:o,digest:null}}function pl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function hl(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var vl="function"==typeof WeakMap?WeakMap:Map;function ml(e,t,n){(n=Aa(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xu||(Xu=!0,Qu=r),hl(0,t)},n}function gl(e,t,n){(n=Aa(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){hl(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){hl(0,t),"function"!=typeof r&&(null===Gu?Gu=new Set([this]):Gu.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function yl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new vl;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=_c.bind(null,e,t,n),t.then(e,e))}function bl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function wl(e,t,n,r,o){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Aa(-1,1)).tag=2,Ia(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var kl=S.ReactCurrentOwner,Sl=!1;function xl(e,t,n,r){t.child=null===e?ei(t,null,n,r):Ja(t,e.child,n,r)}function Cl(e,t,n,r,o){n=n.render;var a=t.ref;return _a(t,o),r=Oi(e,t,n,r,a,o),n=_i(),null===e||Sl?(la&&n&&ra(t),t.flags|=1,xl(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Xl(e,t,o))}function El(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||jc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ac(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Ol(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Xl(e,t,o)}return t.flags|=1,(e=Rc(a,r)).ref=t.ref,e.return=t,t.child=e}function Ol(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(sr(a,r)&&e.ref===t.ref){if(Sl=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,Xl(e,t,o);0!=(131072&e.flags)&&(Sl=!0)}}return Pl(e,t,n,r,o)}function _l(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Po(Ru,ju),ju|=n;else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Po(Ru,ju),ju|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,Po(Ru,ju),ju|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Po(Ru,ju),ju|=r;return xl(e,t,o,n),t.child}function zl(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Pl(e,t,n,r,o){var a=Ro(n)?No:Mo.current;return a=jo(t,a),_a(t,o),n=Oi(e,t,n,r,a,o),r=_i(),null===e||Sl?(la&&r&&ra(t),t.flags|=1,xl(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Xl(e,t,o))}function Tl(e,t,n,o,a){if(Ro(n)){var i=!0;Ho(t)}else i=!1;if(_a(t,a),null===t.stateNode)$l(e,t),Xa(t,n,o),Ga(t,n,o,a),o=!0;else if(null===e){var l=t.stateNode,u=t.memoizedProps;l.props=u;var c=l.context,s=n.contextType;"object"===r(s)&&null!==s?s=za(s):s=jo(t,s=Ro(n)?No:Mo.current);var f=n.getDerivedStateFromProps,d="function"==typeof f||"function"==typeof l.getSnapshotBeforeUpdate;d||"function"!=typeof l.UNSAFE_componentWillReceiveProps&&"function"!=typeof l.componentWillReceiveProps||(u!==o||c!==s)&&Qa(t,l,o,s),Na=!1;var p=t.memoizedState;l.state=p,Ba(t,o,l,a),c=t.memoizedState,u!==o||p!==c||Lo.current||Na?("function"==typeof f&&(Ua(t,n,f,o),c=t.memoizedState),(u=Na||$a(t,n,u,o,p,c,s))?(d||"function"!=typeof l.UNSAFE_componentWillMount&&"function"!=typeof l.componentWillMount||("function"==typeof l.componentWillMount&&l.componentWillMount(),"function"==typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount()),"function"==typeof l.componentDidMount&&(t.flags|=4194308)):("function"==typeof l.componentDidMount&&(t.flags|=4194308),t.memoizedProps=o,t.memoizedState=c),l.props=o,l.state=c,l.context=s,o=u):("function"==typeof l.componentDidMount&&(t.flags|=4194308),o=!1)}else{l=t.stateNode,Ra(e,t),u=t.memoizedProps,s=t.type===t.elementType?u:ba(t.type,u),l.props=s,d=t.pendingProps,p=l.context,c=n.contextType,"object"===r(c)&&null!==c?c=za(c):c=jo(t,c=Ro(n)?No:Mo.current);var h=n.getDerivedStateFromProps;(f="function"==typeof h||"function"==typeof l.getSnapshotBeforeUpdate)||"function"!=typeof l.UNSAFE_componentWillReceiveProps&&"function"!=typeof l.componentWillReceiveProps||(u!==d||p!==c)&&Qa(t,l,o,c),Na=!1,p=t.memoizedState,l.state=p,Ba(t,o,l,a);var v=t.memoizedState;u!==d||p!==v||Lo.current||Na?("function"==typeof h&&(Ua(t,n,h,o),v=t.memoizedState),(s=Na||$a(t,n,s,o,p,v,c)||!1)?(f||"function"!=typeof l.UNSAFE_componentWillUpdate&&"function"!=typeof l.componentWillUpdate||("function"==typeof l.componentWillUpdate&&l.componentWillUpdate(o,v,c),"function"==typeof l.UNSAFE_componentWillUpdate&&l.UNSAFE_componentWillUpdate(o,v,c)),"function"==typeof l.componentDidUpdate&&(t.flags|=4),"function"==typeof l.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof l.componentDidUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof l.getSnapshotBeforeUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=o,t.memoizedState=v),l.props=o,l.state=v,l.context=c,o=s):("function"!=typeof l.componentDidUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof l.getSnapshotBeforeUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),o=!1)}return Ml(e,t,n,o,i,a)}function Ml(e,t,n,r,o,a){zl(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Bo(t,n,!1),Xl(e,t,a);r=t.stateNode,kl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ja(t,e.child,null,a),t.child=Ja(t,null,l,a)):xl(e,t,l,a),t.memoizedState=r.state,o&&Bo(t,n,!0),t.child}function Ll(e){var t=e.stateNode;t.pendingContext?Io(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Io(0,t.context,!1),ii(e,t.containerInfo)}function Nl(e,t,n,r,o){return ma(),ga(o),t.flags|=256,xl(e,t,n,r),t.child}var jl,Rl,Al,Il={dehydrated:null,treeContext:null,retryLane:0};function Fl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Hl(e,t,n){var r,o=t.pendingProps,a=si.current,l=!1,u=0!=(128&t.flags);if((r=u)||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),Po(si,1&a),null===e)return da(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(u=o.children,e=o.fallback,l?(o=t.mode,l=t.child,u={mode:"hidden",children:u},0==(1&o)&&null!==l?(l.childLanes=0,l.pendingProps=u):l=Fc(u,o,0,null),e=Ic(e,o,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Fl(n),t.memoizedState=Il,e):Bl(t,u));if(null!==(a=e.memoizedState)&&null!==(r=a.dehydrated))return function(e,t,n,r,o,a,l){if(n)return 256&t.flags?(t.flags&=-257,Dl(e,t,l,r=pl(Error(i(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=r.fallback,o=t.mode,r=Fc({mode:"visible",children:r.children},o,0,null),(a=Ic(a,o,l,null)).flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,0!=(1&t.mode)&&Ja(t,e.child,null,l),t.child.memoizedState=Fl(l),t.memoizedState=Il,a);if(0==(1&t.mode))return Dl(e,t,l,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var u=r.dgst;return r=u,Dl(e,t,l,r=pl(a=Error(i(419)),r,void 0))}if(u=0!=(l&e.childLanes),Sl||u){if(null!==(r=Mu)){switch(l&-l){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!=(o&(r.suspendedLanes|l))?0:o)&&o!==a.retryLane&&(a.retryLane=o,La(e,o),oc(r,e,o,-1))}return gc(),Dl(e,t,l,r=pl(Error(i(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Pc.bind(null,e),o._reactRetry=t,null):(e=a.treeContext,ia=fo(o.nextSibling),aa=t,la=!0,ua=null,null!==e&&(Ko[Yo++]=Jo,Ko[Yo++]=ea,Ko[Yo++]=Zo,Jo=e.id,ea=e.overflow,Zo=t),t=Bl(t,r.children),t.flags|=4096,t)}(e,t,u,o,r,a,n);if(l){l=o.fallback,u=t.mode,r=(a=e.child).sibling;var c={mode:"hidden",children:o.children};return 0==(1&u)&&t.child!==a?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Rc(a,c)).subtreeFlags=14680064&a.subtreeFlags,null!==r?l=Rc(r,l):(l=Ic(l,u,n,null)).flags|=2,l.return=t,o.return=t,o.sibling=l,t.child=o,o=l,l=t.child,u=null===(u=e.child.memoizedState)?Fl(n):{baseLanes:u.baseLanes|n,cachePool:null,transitions:u.transitions},l.memoizedState=u,l.childLanes=e.childLanes&~n,t.memoizedState=Il,o}return e=(l=e.child).sibling,o=Rc(l,{mode:"visible",children:o.children}),0==(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Bl(e,t){return(t=Fc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Dl(e,t,n,r){return null!==r&&ga(r),Ja(t,e.child,null,n),(e=Bl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Wl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Oa(e.return,t,n)}function Ul(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function Vl(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(xl(e,t,r.children,n),0!=(2&(r=si.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Wl(e,n,t);else if(19===e.tag)Wl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Po(si,r),0==(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===fi(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ul(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===fi(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ul(t,!0,n,null,a);break;case"together":Ul(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function $l(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Xl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Fu|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Rc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Rc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ql(e,t){if(!la)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Gl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function ql(e,t,n){var r=t.pendingProps;switch(oa(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gl(t),null;case 1:case 17:return Ro(t.type)&&Ao(),Gl(t),null;case 3:return r=t.stateNode,li(),zo(Lo),zo(Mo),pi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(ha(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ua&&(uc(ua),ua=null))),Gl(t),null;case 5:ci(t);var o=ai(oi.current);if(n=t.type,null!==e&&null!=t.stateNode)Rl(e,t,n,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(i(166));return Gl(t),null}if(e=ai(ni.current),ha(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[vo]=t,r[mo]=a,e=0!=(1&t.mode),n){case"dialog":Dr("cancel",r),Dr("close",r);break;case"iframe":case"object":case"embed":Dr("load",r);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[vo]=t,e[mo]=r,jl(e,t),t.stateNode=e;e:{switch(l=ke(n,r),n){case"dialog":Dr("cancel",e),Dr("close",e),o=r;break;case"iframe":case"object":case"embed":Dr("load",e),o=r;break;case"video":case"audio":for(o=0;oVu&&(t.flags|=128,r=!0,Ql(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=fi(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Ql(a,!0),null===a.tail&&"hidden"===a.tailMode&&!l.alternate&&!la)return Gl(t),null}else 2*Je()-a.renderingStartTime>Vu&&1073741824!==n&&(t.flags|=128,r=!0,Ql(a,!1),t.lanes=4194304);a.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=a.last)?n.sibling=l:t.child=l,a.last=l)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Je(),t.sibling=null,n=si.current,Po(si,r?1&n|2:1&n),t):(Gl(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&ju)&&(Gl(t),6&t.subtreeFlags&&(t.flags|=8192)):Gl(t),null;case 24:case 25:return null}throw Error(i(156,t.tag))}function Kl(e,t){switch(oa(t),t.tag){case 1:return Ro(t.type)&&Ao(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return li(),zo(Lo),zo(Mo),pi(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return ci(t),null;case 13:if(zo(si),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return zo(si),null;case 4:return li(),null;case 10:return Ea(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}jl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Rl=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,ai(ni.current);var a,i=null;switch(n){case"input":o=Y(e,o),r=Y(e,r),i=[];break;case"select":o=H({},o,{value:void 0}),r=H({},r,{value:void 0}),i=[];break;case"textarea":o=ae(e,o),r=ae(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=to)}for(s in we(n,r),n=null,o)if(!r.hasOwnProperty(s)&&o.hasOwnProperty(s)&&null!=o[s])if("style"===s){var l=o[s];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==s&&"children"!==s&&"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(u.hasOwnProperty(s)?i||(i=[]):(i=i||[]).push(s,null));for(s in r){var c=r[s];if(l=null!=o?o[s]:void 0,r.hasOwnProperty(s)&&c!==l&&(null!=c||null!=l))if("style"===s)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(s,n)),n=c;else"dangerouslySetInnerHTML"===s?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(s,c)):"children"===s?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(s,""+c):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&(u.hasOwnProperty(s)?(null!=c&&"onScroll"===s&&Dr("scroll",e),i||l===c||(i=[])):(i=i||[]).push(s,c))}n&&(i=i||[]).push("style",n);var s=i;(t.updateQueue=s)&&(t.flags|=4)}},Al=function(e,t,n,r){n!==r&&(t.flags|=4)};var Yl=!1,Zl=!1,Jl="function"==typeof WeakSet?WeakSet:Set,eu=null;function tu(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(n){Oc(e,t,n)}else n.current=null}function nu(e,t,n){try{n()}catch(n){Oc(e,t,n)}}var ru=!1;function ou(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&nu(t,n,a)}o=o.next}while(o!==r)}}function au(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function iu(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function lu(e){var t=e.alternate;null!==t&&(e.alternate=null,lu(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[vo],delete t[mo],delete t[yo],delete t[bo],delete t[wo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function uu(e){return 5===e.tag||3===e.tag||4===e.tag}function cu(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||uu(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function su(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=to));else if(4!==r&&null!==(e=e.child))for(su(e,t,n),e=e.sibling;null!==e;)su(e,t,n),e=e.sibling}function fu(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(fu(e,t,n),e=e.sibling;null!==e;)fu(e,t,n),e=e.sibling}var du=null,pu=!1;function hu(e,t,n){for(n=n.child;null!==n;)vu(e,t,n),n=n.sibling}function vu(e,t,n){if(lt&&"function"==typeof lt.onCommitFiberUnmount)try{lt.onCommitFiberUnmount(it,n)}catch(e){}switch(n.tag){case 5:Zl||tu(n,t);case 6:var r=du,o=pu;du=null,hu(e,t,n),pu=o,null!==(du=r)&&(pu?(e=du,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):du.removeChild(n.stateNode));break;case 18:null!==du&&(pu?(e=du,n=n.stateNode,8===e.nodeType?so(e.parentNode,n):1===e.nodeType&&so(e,n),Vt(e)):so(du,n.stateNode));break;case 4:r=du,o=pu,du=n.stateNode.containerInfo,pu=!0,hu(e,t,n),du=r,pu=o;break;case 0:case 11:case 14:case 15:if(!Zl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(0!=(2&a)||0!=(4&a))&&nu(n,t,i),o=o.next}while(o!==r)}hu(e,t,n);break;case 1:if(!Zl&&(tu(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){Oc(n,t,e)}hu(e,t,n);break;case 21:hu(e,t,n);break;case 22:1&n.mode?(Zl=(r=Zl)||null!==n.memoizedState,hu(e,t,n),Zl=r):hu(e,t,n);break;default:hu(e,t,n)}}function mu(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Jl),t.forEach((function(t){var r=Tc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gu(e,t){var n=t.deletions;if(null!==n)for(var r=0;ro&&(o=l),r&=~a}if(r=o,10<(r=(120>(r=Je()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ou(r/1960))-r)){e.timeoutHandle=ao(xc.bind(null,e,Wu,$u),r);break}xc(e,Wu,$u);break;default:throw Error(i(329))}}}return ac(e,Je()),e.callbackNode===n?ic.bind(null,e):null}function lc(e,t){var n=Du;return e.current.memoizedState.isDehydrated&&(hc(e,t).flags|=256),2!==(e=yc(e,t))&&(t=Wu,Wu=n,null!==t&&uc(t)),e}function uc(e){null===Wu?Wu=e:Wu.push.apply(Wu,e)}function cc(e,t){for(t&=~Bu,t&=~Hu,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0e?16:e,null===Ku)var r=!1;else{if(e=Ku,Ku=null,Yu=0,0!=(6&Tu))throw Error(i(331));var o=Tu;for(Tu|=4,eu=e.current;null!==eu;){var a=eu,l=a.child;if(0!=(16&eu.flags)){var u=a.deletions;if(null!==u){for(var c=0;cJe()-Uu?hc(e,0):Bu|=n),ac(e,t)}function zc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=dt,0==(130023424&(dt<<=1))&&(dt=4194304)));var n=nc();null!==(e=La(e,t))&&(bt(e,t,n),ac(e,n))}function Pc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),zc(e,n)}function Tc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}null!==r&&r.delete(t),zc(e,n)}function Mc(e,t){return qe(e,t)}function Lc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nc(e,t,n,r){return new Lc(e,t,n,r)}function jc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Rc(e,t){var n=e.alternate;return null===n?((n=Nc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ac(e,t,n,o,a,l){var u=2;if(o=e,"function"==typeof e)jc(e)&&(u=1);else if("string"==typeof e)u=5;else e:switch(e){case E:return Ic(n.children,a,l,t);case O:u=8,a|=8;break;case _:return(e=Nc(12,n,t,2|a)).elementType=_,e.lanes=l,e;case M:return(e=Nc(13,n,t,a)).elementType=M,e.lanes=l,e;case L:return(e=Nc(19,n,t,a)).elementType=L,e.lanes=l,e;case R:return Fc(n,a,l,t);default:if("object"===r(e)&&null!==e)switch(e.$$typeof){case z:u=10;break e;case P:u=9;break e;case T:u=11;break e;case N:u=14;break e;case j:u=16,o=null;break e}throw Error(i(130,null==e?e:r(e),""))}return(t=Nc(u,n,t,a)).elementType=e,t.type=o,t.lanes=l,t}function Ic(e,t,n,r){return(e=Nc(7,e,r,t)).lanes=n,e}function Fc(e,t,n,r){return(e=Nc(22,e,r,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Hc(e,t,n){return(e=Nc(6,e,null,t)).lanes=n,e}function Bc(e,t,n){return(t=Nc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Dc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=yt(0),this.expirationTimes=yt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Wc(e,t,n,r,o,a,i,l,u){return e=new Dc(e,t,n,l,u),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Nc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ja(a),e}function Uc(e,t,n){var r=3>>1,o=e[r];if(!(0>>1;rl(u,n))cl(s,u)?(e[r]=s,e[c]=n,r=c):(e[r]=u,e[i]=n,r=i);else{if(!(cl(s,n)))break e;e[r]=s,e[c]=n,r=c}}}return t}function l(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===("undefined"==typeof performance?"undefined":r(performance))&&"function"==typeof performance.now){var u=performance;t.unstable_now=function(){return u.now()}}else{var c=Date,s=c.now();t.unstable_now=function(){return c.now()-s}}var f=[],d=[],p=1,h=null,v=3,m=!1,g=!1,y=!1,b="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,k="undefined"!=typeof setImmediate?setImmediate:null;function S(e){for(var t=a(d);null!==t;){if(null===t.callback)i(d);else{if(!(t.startTime<=e))break;i(d),t.sortIndex=t.expirationTime,o(f,t)}t=a(d)}}function x(e){if(y=!1,S(e),!g)if(null!==a(f))g=!0,R(C);else{var t=a(d);null!==t&&A(x,t.startTime-e)}}function C(e,n){g=!1,y&&(y=!1,w(z),z=-1),m=!0;var r=v;try{for(S(n),h=a(f);null!==h&&(!(h.expirationTime>n)||e&&!M());){var o=h.callback;if("function"==typeof o){h.callback=null,v=h.priorityLevel;var l=o(h.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?h.callback=l:h===a(f)&&i(f),S(n)}else i(f);h=a(f)}if(null!==h)var u=!0;else{var c=a(d);null!==c&&A(x,c.startTime-n),u=!1}return u}finally{h=null,v=r,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var E,O=!1,_=null,z=-1,P=5,T=-1;function M(){return!(t.unstable_now()-Te||125l?(e.sortIndex=i,o(d,e),null===a(f)&&e===a(d)&&(y?(w(z),z=-1):y=!0,A(x,i-l))):(e.sortIndex=u,o(f,e),g||m||(g=!0,R(C))),e},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(e){var t=v;return function(){var n=v;v=t;try{return e.apply(this,arguments)}finally{v=n}}}},126:function(e,t,n){"use strict";e.exports=n(211)},671:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)};function P(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}var T="data-rc-order",M="data-rc-priority",L="rc-util-key",N=new Map;function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.mark;return t?t.startsWith("data-")?t:"data-".concat(t):L}function R(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function A(e){return"queue"===e?"prependQueue":e?"prepend":"append"}function I(e){return Array.from((N.get(e)||e).children).filter((function(e){return"STYLE"===e.tagName}))}function F(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!P())return null;var n=t.csp,r=t.prepend,o=t.priority,a=void 0===o?0:o,i=A(r),l="prependQueue"===i,u=document.createElement("style");u.setAttribute(T,i),l&&a&&u.setAttribute(M,"".concat(a)),null!=n&&n.nonce&&(u.nonce=null==n?void 0:n.nonce),u.innerHTML=e;var c=R(t),s=c.firstChild;if(r){if(l){var f=I(c).filter((function(e){if(!["prepend","prependQueue"].includes(e.getAttribute(T)))return!1;var t=Number(e.getAttribute(M)||0);return a>=t}));if(f.length)return c.insertBefore(u,f[f.length-1].nextSibling),u}c.insertBefore(u,s)}else c.appendChild(u);return u}function H(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=R(t);return I(n).find((function(n){return n.getAttribute(j(t))===e}))}function B(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=H(e,t);if(n){var r=R(t);r.removeChild(n)}}function D(e,t){var n=N.get(e);if(!n||!function(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}(document,n)){var r=F("",t),o=r.parentNode;N.set(e,o),e.removeChild(r)}}function W(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=R(n);D(r,n);var o=H(t,n);if(o){var a,i,l;if(null!==(a=n.csp)&&void 0!==a&&a.nonce&&o.nonce!==(null===(i=n.csp)||void 0===i?void 0:i.nonce))o.nonce=null===(l=n.csp)||void 0===l?void 0:l.nonce;return o.innerHTML!==e&&(o.innerHTML=e),o}var u=F(e,n);return u.setAttribute(j(n),t),u}var U={},V=[];function $(e,t){}function X(e,t){}function Q(e,t,n){t||U[n]||(e(!1,n),U[n]=!0)}function G(e,t){Q($,e,t)}G.preMessage=function(e){V.push(e)},G.resetWarned=function(){U={}},G.noteOnce=function(e,t){Q(X,e,t)};var q=G;function K(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Y(e,t){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1],o={map:this.cache};return e.forEach((function(e){var t;o?o=null===(t=o)||void 0===t||null===(t=t.map)||void 0===t?void 0:t.get(e):o=void 0})),null!==(t=o)&&void 0!==t&&t.value&&r&&(o.value[1]=this.cacheCallTimes++),null===(n=o)||void 0===n?void 0:n.value}},{key:"get",value:function(e){var t;return null===(t=this.internalGet(e,!0))||void 0===t?void 0:t[0]}},{key:"has",value:function(e){return!!this.internalGet(e)}},{key:"set",value:function(t,n){var r=this;if(!this.has(t)){if(this.size()+1>e.MAX_CACHE_SIZE+e.MAX_CACHE_OFFSET){var o=this.keys.reduce((function(e,t){var n=O(e,2)[1];return r.internalGet(t)[1]3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(a)return e;var i=m(m({},o),{},(h(r={},te,t),h(r,ne,n),r)),l=Object.keys(i).map((function(e){var t=i[e];return t?"".concat(e,'="').concat(t,'"'):null})).filter((function(e){return e})).join(" ");return"")}var Ee=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"--".concat(t?"".concat(t,"-"):"").concat(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z0-9]+)/g,"$1-$2").replace(/([a-z])([A-Z0-9])/g,"$1-$2").toLowerCase()},Oe=function(e,t,n){return Object.keys(e).length?".".concat(t).concat(null!=n&&n.scope?".".concat(n.scope):"","{").concat(Object.entries(e).map((function(e){var t=O(e,2),n=t[0],r=t[1];return"".concat(n,":").concat(r,";")})).join(""),"}"):""},_e=function(e,t,n){var r={},o={};return Object.entries(e).forEach((function(e){var t,a,i=O(e,2),l=i[0],u=i[1];if(null!=n&&null!==(t=n.preserve)&&void 0!==t&&t[l])o[l]=u;else if(!("string"!=typeof u&&"number"!=typeof u||null!=n&&null!==(a=n.ignore)&&void 0!==a&&a[l])){var c,s=Ee(l,null==n?void 0:n.prefix);r[s]="number"!=typeof u||null!=n&&null!==(c=n.unitless)&&void 0!==c&&c[l]?String(u):"".concat(u,"px"),o[l]="var(".concat(s,")")}})),[o,Oe(r,t,{scope:null==n?void 0:n.scope})]},ze=P()?e.useLayoutEffect:e.useEffect,Pe=function(t,n){var r=e.useRef(!0);ze((function(){return t(r.current)}),n),ze((function(){return r.current=!1,function(){r.current=!0}}),[])},Te=Pe,Me=m({},t).useInsertionEffect,Le=Me?function(e,t,n){return Me((function(){return e(),t()}),n)}:function(t,n,r){e.useMemo(t,r),Te((function(){return n(!0)}),r)},Ne=void 0!==m({},t).useInsertionEffect?function(t){var n=[],r=!1;return e.useEffect((function(){return r=!1,function(){r=!0,n.length&&n.forEach((function(e){return e()}))}}),t),function(e){r||n.push(e)}}:function(){return function(e){e()}};var je=function(){return!1};function Re(t,n,r,o,a){var i=e.useContext(ie).cache,l=[t].concat(_(n)),u=l.join("_"),c=Ne([u]),s=(je(),function(e){i.update(l,(function(t){var n=O(t||[void 0,void 0],2),o=n[0];var a=[void 0===o?0:o,n[1]||r()];return e?e(a):a}))});e.useMemo((function(){s()}),[u]);var f=i.get(l)[1];return Le((function(){null==a||a(f)}),(function(e){return s((function(t){var n=O(t,2),r=n[0],o=n[1];return e&&0===r&&(null==a||a(f)),[r+1,o]})),function(){i.update(l,(function(t){var n=O(t||[],2),r=n[0],a=void 0===r?0:r,u=n[1];return 0===a-1?(c((function(){!e&&i.get(l)||null==o||o(u,!1)})),null):[a-1,u]}))}}),[u]),f}var Ae={},Ie=new Map;function Fe(e){Ie.set(e,(Ie.get(e)||0)+1)}function He(e,t){Ie.set(e,(Ie.get(e)||0)-1);var n=Array.from(Ie.keys()),r=n.filter((function(e){return(Ie.get(e)||0)<=0}));n.length-r.length>0&&r.forEach((function(e){!function(e,t){"undefined"!=typeof document&&document.querySelectorAll("style[".concat(te,'="').concat(e,'"]')).forEach((function(e){var n;e[re]===t&&(null===(n=e.parentNode)||void 0===n||n.removeChild(e))}))}(e,t),Ie.delete(e)}))}var Be=function(e,t,n,r){var o=m(m({},n.getDerivativeToken(e)),t);return r&&(o=r(o)),o},De="token";function We(){return We=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?Ze(ct,--lt):0,at--,10===ut&&(at=1,ot--),ut}function dt(){return ut=lt2||mt(ut)>3?"":" "}function kt(e,t){for(;--t&&dt()&&!(ut<48||ut>102||ut>57&&ut<65||ut>70&&ut<97););return vt(e,ht()+(t<6&&32==pt()&&32==dt()))}function St(e){for(;dt();)switch(ut){case e:return lt;case 34:case 39:34!==e&&39!==e&&St(ut);break;case 40:41===e&&St(e);break;case 92:dt()}return lt}function xt(e,t){for(;dt()&&e+ut!==57&&(e+ut!==84||47!==pt()););return"/*"+vt(t,lt-1)+"*"+Ge(47===e?e:dt())}function Ct(e){for(;!mt(pt());)dt();return vt(e,lt)}function Et(e){return yt(Ot("",null,null,null,[""],e=gt(e),0,[0],e))}function Ot(e,t,n,r,o,a,i,l,u){for(var c=0,s=0,f=i,d=0,p=0,h=0,v=1,m=1,g=1,y=0,b="",w=o,k=a,S=r,x=b;m;)switch(h=y,y=dt()){case 40:if(108!=h&&58==Ze(x,f-1)){-1!=Ye(x+=Ke(bt(y),"&","&\f"),"&\f")&&(g=-1);break}case 34:case 39:case 91:x+=bt(y);break;case 9:case 10:case 13:case 32:x+=wt(h);break;case 92:x+=kt(ht()-1,7);continue;case 47:switch(pt()){case 42:case 47:tt(zt(xt(dt(),ht()),t,n,u),u);break;default:x+="/"}break;case 123*v:l[c++]=et(x)*g;case 125*v:case 59:case 0:switch(y){case 0:case 125:m=0;case 59+s:-1==g&&(x=Ke(x,/\f/g,"")),p>0&&et(x)-f&&tt(p>32?Pt(x+";",r,n,f-1,u):Pt(Ke(x," ","")+";",r,n,f-2,u),u);break;case 59:x+=";";default:if(tt(S=_t(x,t,n,c,s,o,l,b,w=[],k=[],f,a),a),123===y)if(0===s)Ot(x,t,S,S,w,a,f,l,k);else switch(99===d&&110===Ze(x,3)?100:d){case 100:case 108:case 109:case 115:Ot(e,S,S,r&&tt(_t(e,S,S,0,0,o,l,b,o,w=[],f,k),k),o,k,f,l,r?w:k);break;default:Ot(x,S,S,S,[""],k,0,l,k)}}c=s=p=0,v=g=1,b=x="",f=i;break;case 58:f=1+et(x),p=h;default:if(v<1)if(123==y)--v;else if(125==y&&0==v++&&125==ft())continue;switch(x+=Ge(y),y*v){case 38:g=s>0?1:(x+="\f",-1);break;case 44:l[c++]=(et(x)-1)*g,g=1;break;case 64:45===pt()&&(x+=bt(dt())),d=pt(),s=f=et(b=x+=Ct(ht())),y++;break;case 45:45===h&&2==et(x)&&(v=0)}}return a}function _t(e,t,n,r,o,a,i,l,u,c,s,f){for(var d=o-1,p=0===o?a:[""],h=function(e){return e.length}(p),v=0,m=0,g=0;v0?p[y]+" "+b:Ke(b,/&\f/g,p[y])))&&(u[g++]=w);return st(e,t,n,0===o?$e:l,u,c,s,f)}function zt(e,t,n,r){return st(e,t,n,Ve,Ge(ut),Je(e,2,-2),0,r)}function Pt(e,t,n,r,o){return st(e,t,n,Xe,Je(e,0,r),Je(e,r+1,-1),r,o)}var Tt,Mt="data-ant-cssinjs-cache-path",Lt="_FILE_STYLE__";var Nt=!0;function jt(e){return function(){if(!Tt&&(Tt={},P())){var e=document.createElement("div");e.className=Mt,e.style.position="fixed",e.style.visibility="hidden",e.style.top="-9999px",document.body.appendChild(e);var t=getComputedStyle(e).content||"";(t=t.replace(/^"/,"").replace(/"$/,"")).split(";").forEach((function(e){var t=O(e.split(":"),2),n=t[0],r=t[1];Tt[n]=r}));var n,r=document.querySelector("style[".concat(Mt,"]"));r&&(Nt=!1,null===(n=r.parentNode)||void 0===n||n.removeChild(r)),document.body.removeChild(e)}}(),!!Tt[e]}var Rt="_multi_value_";function At(e){return nt(Et(e),rt).replace(/\{%%%\:[^;];}/g,";")}function It(e){return"object"===d(e)&&e&&("_skip_check_"in e||Rt in e)}function Ft(e,t,n){if(!t)return e;var r=".".concat(t),o="low"===n?":where(".concat(r,")"):r;return e.split(",").map((function(e){var t,n=e.trim().split(/\s+/),r=n[0]||"",a=(null===(t=r.match(/^\w+/))||void 0===t?void 0:t[0])||"";return[r="".concat(a).concat(o).concat(r.slice(a.length))].concat(_(n.slice(1))).join(" ")})).join(",")}var Ht=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{root:!0,parentSelectors:[]},o=r.root,a=r.injectHash,i=r.parentSelectors,l=n.hashId,u=n.layer,c=(n.path,n.hashPriority),s=n.transformers,f=void 0===s?[]:s,p=(n.linters,""),h={};function v(t){var r=t.getName(l);if(!h[r]){var o=O(e(t.style,n,{root:!1,parentSelectors:i}),1)[0];h[r]="@keyframes ".concat(t.getName(l)).concat(o)}}function g(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.forEach((function(e){Array.isArray(e)?g(e,t):e&&t.push(e)})),t}var y=g(Array.isArray(t)?t:[t]);if(y.forEach((function(t){var r="string"!=typeof t||o?t:{};if("string"==typeof r)p+="".concat(r,"\n");else if(r._keyframe)v(r);else{var u=f.reduce((function(e,t){var n;return(null==t||null===(n=t.visit)||void 0===n?void 0:n.call(t,e))||e}),r);Object.keys(u).forEach((function(t){var r=u[t];if("object"!==d(r)||!r||"animationName"===t&&r._keyframe||It(r)){var s;function x(e,t){var n=e.replace(/[A-Z]/g,(function(e){return"-".concat(e.toLowerCase())})),r=t;Ue[e]||"number"!=typeof r||0===r||(r="".concat(r,"px")),"animationName"===e&&null!=t&&t._keyframe&&(v(t),r=t.getName(l)),p+="".concat(n,":").concat(r,";")}var f=null!==(s=null==r?void 0:r.value)&&void 0!==s?s:r;"object"===d(r)&&null!=r&&r[Rt]&&Array.isArray(f)?f.forEach((function(e){x(t,e)})):x(t,f)}else{var g=!1,y=t.trim(),b=!1;(o||a)&&l?y.startsWith("@")?g=!0:y=Ft(t,l,c):!o||l||"&"!==y&&""!==y||(y="",b=!0);var w=O(e(r,n,{root:b,injectHash:g,parentSelectors:[].concat(_(i),[y])}),2),k=w[0],S=w[1];h=m(m({},h),S),p+="".concat(y).concat(k)}}))}})),o){if(u&&ke()){var b=u.split(","),w=b[b.length-1].trim();p="@layer ".concat(w," {").concat(p,"}"),b.length>1&&(p="@layer ".concat(u,"{%%%:%}").concat(p))}}else p="{".concat(p,"}");return[p,h]};function Bt(e,t){return z("".concat(e.join("%")).concat(t))}function Dt(){return null}var Wt="style";function Ut(t,n){var r=t.token,o=t.path,a=t.hashId,i=t.layer,l=t.nonce,u=t.clientOnly,c=t.order,s=void 0===c?0:c,f=e.useContext(ie),d=f.autoClear,p=(f.mock,f.defaultCache),v=f.hashPriority,m=f.container,g=f.ssrInline,y=f.transformers,b=f.linters,w=f.cache,k=r._tokenKey,S=[k].concat(_(o)),x=Se;var C=Re(Wt,S,(function(){var e=S.join("|");if(jt(e)){var t=function(e){var t=Tt[e],n=null;if(t&&P())if(Nt)n=Lt;else{var r=document.querySelector("style[".concat(ne,'="').concat(Tt[e],'"]'));r?n=r.innerHTML:delete Tt[e]}return[n,t]}(e),r=O(t,2),l=r[0],c=r[1];if(l)return[l,k,c,{},u,s]}var f=n(),d=O(Ht(f,{hashId:a,hashPriority:v,layer:i,path:o.join("-"),transformers:y,linters:b}),2),p=d[0],h=d[1],m=At(p),g=Bt(S,m);return[m,k,g,h,u,s]}),(function(e,t){var n=O(e,3)[2];(t||d)&&Se&&B(n,{mark:ne})}),(function(e){var t=O(e,4),n=t[0],r=(t[1],t[2]),o=t[3];if(x&&n!==Lt){var a={mark:ne,prepend:"queue",attachTo:m,priority:s},i="function"==typeof l?l():l;i&&(a.csp={nonce:i});var u=W(n,r,a);u[re]=w.instanceId,u.setAttribute(te,k),Object.keys(o).forEach((function(e){W(At(o[e]),"_effect-".concat(e),a)}))}})),E=O(C,3),z=E[0],T=E[1],M=E[2];return function(t){var n,r;g&&!x&&p?n=e.createElement("style",We({},(h(r={},te,T),h(r,ne,M),r),{dangerouslySetInnerHTML:{__html:z}})):n=e.createElement(Dt,null);return e.createElement(e.Fragment,null,n,t)}}var Vt,$t="cssVar",Xt=function(t,n){var r=t.key,o=t.prefix,a=t.unitless,i=t.ignore,l=t.token,u=t.scope,c=void 0===u?"":u,s=(0,e.useContext)(ie),f=s.cache.instanceId,d=s.container,p=l._tokenKey,h=[].concat(_(t.path),[r,c,p]),v=Re($t,h,(function(){var e=n(),t=O(_e(e,r,{prefix:o,unitless:a,ignore:i,scope:c}),2),l=t[0],u=t[1];return[l,u,Bt(h,u),r]}),(function(e){var t=O(e,3)[2];Se&&B(t,{mark:ne})}),(function(e){var t=O(e,3),n=t[1],o=t[2];if(n){var a=W(n,o,{mark:ne,prepend:"queue",attachTo:d,priority:-999});a[re]=f,a.setAttribute(te,r)}}));return v};h(Vt={},Wt,(function(e,t,n){var r=O(e,6),o=r[0],a=r[1],i=r[2],l=r[3],u=r[4],c=r[5],s=(n||{}).plain;if(u)return null;var f=o,d={"data-rc-order":"prependQueue","data-rc-priority":"".concat(c)};return f=Ce(o,a,i,d,s),l&&Object.keys(l).forEach((function(e){if(!t[e]){t[e]=!0;var n=At(l[e]);f+=Ce(n,a,"_effect-".concat(e),d,s)}})),[c,i,f]})),h(Vt,De,(function(e,t,n){var r=O(e,5),o=r[2],a=r[3],i=r[4],l=(n||{}).plain;if(!a)return null;var u=o._tokenKey;return[-999,u,Ce(a,i,u,{"data-rc-order":"prependQueue","data-rc-priority":"".concat(-999)},l)]})),h(Vt,$t,(function(e,t,n){var r=O(e,4),o=r[1],a=r[2],i=r[3],l=(n||{}).plain;if(!o)return null;return[-999,a,Ce(o,i,a,{"data-rc-order":"prependQueue","data-rc-priority":"".concat(-999)},l)]}));function Qt(e){return e.notSplit=!0,e}Qt(["borderTop","borderBottom"]),Qt(["borderTop"]),Qt(["borderBottom"]),Qt(["borderLeft","borderRight"]),Qt(["borderLeft"]),Qt(["borderRight"]);function Gt(t){var n=e.useRef(!1),r=O(e.useState(t),2),o=r[0],a=r[1];return e.useEffect((function(){return n.current=!1,function(){n.current=!0}}),[]),[o,function(e,t){t&&n.current||a(e)}]}"undefined"==typeof Reflect?Object.keys:Reflect.ownKeys;var qt=function(e){var t;return{a:(t={color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:"color ".concat(e.motionDurationSlow),"-webkit-text-decoration-skip":"objects","&:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive}},r()(t,"&:active,\n &:hover",{textDecoration:e.linkHoverDecoration,outline:0}),r()(t,"&:focus",{textDecoration:e.linkFocusDecoration,outline:0}),r()(t,"&[disabled]",{color:e.colorTextDisabled,cursor:"not-allowed"}),t)}},Kt=function(e,t){var n=e.fontFamily,o=e.fontSize,a='[class^="'.concat(t,'"], [class*=" ').concat(t,'"]');return r()({},a,r()({fontFamily:n,fontSize:o,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}},a,{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}))},Yt=function(e){return{outline:"".concat(xe(e.lineWidthFocus)," solid ").concat(e.colorPrimaryBorder),outlineOffset:1,transition:"outline-offset 0s, outline 0s"}};function Zt(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function Jt(e){return Math.min(1,Math.max(0,e))}function en(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function tn(e){return e<=1?"".concat(100*Number(e),"%"):e}function nn(e){return 1===e.length?"0"+e:String(e)}function rn(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a=0,i=0,l=(r+o)/2;if(r===o)i=0,a=0;else{var u=r-o;switch(i=l>.5?u/(2-r-o):u/(r+o),r){case e:a=(t-n)/u+(t1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function an(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a=0,i=r,l=r-o,u=0===r?0:l/r;if(r===o)a=0;else{switch(r){case e:a=(t-n)/l+(t=60&&Math.round(e.h)<=240?n?Math.round(e.h)-2*t:Math.round(e.h)+2*t:n?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?r+=360:r>=360&&(r-=360),r}function xn(e,t,n){return 0===e.h&&0===e.s?e.s:((r=n?e.s-.16*t:4===t?e.s+.16:e.s+.05*t)>1&&(r=1),n&&5===t&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2)));var r}function Cn(e,t,n){var r;return(r=n?e.v+.05*t:e.v-.15*t)>1&&(r=1),Number(r.toFixed(2))}function En(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=dn(e),o=5;o>0;o-=1){var a=bn(r),i=wn(dn({h:Sn(a,o,!0),s:xn(a,o,!0),v:Cn(a,o,!0)}));n.push(i)}n.push(wn(r));for(var l=1;l<=4;l+=1){var u=bn(r),c=wn(dn({h:Sn(u,l),s:xn(u,l),v:Cn(u,l)}));n.push(c)}return"dark"===t.theme?yn.map((function(e){var r=e.index,o=e.opacity;return wn(kn(dn(t.backgroundColor||"#141414"),dn(n[r]),100*o))})):n}var On={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},_n={},zn={};Object.keys(On).forEach((function(e){_n[e]=En(On[e]),_n[e].primary=_n[e][5],zn[e]=En(On[e],{theme:"dark",backgroundColor:"#141414"}),zn[e].primary=zn[e][5]}));_n.red,_n.volcano,_n.gold,_n.orange,_n.yellow,_n.lime,_n.green,_n.cyan;var Pn=_n.blue,Tn=(_n.geekblue,_n.purple,_n.magenta,_n.grey,_n.grey,function(e){var t=e.controlHeight;return{controlHeightSM:.75*t,controlHeightXS:.5*t,controlHeightLG:1.25*t}});var Mn={blue:"#1677ff",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#eb2f96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},Ln=Object.assign(Object.assign({},Mn),{colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'",fontFamilyCode:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace",fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,motion:!0}),Nn=function(){function e(t,n){var r;if(void 0===t&&(t=""),void 0===n&&(n={}),t instanceof e)return t;"number"==typeof t&&(t=function(e){return{r:e>>16,g:(65280&e)>>8,b:255&e}}(t)),this.originalInput=t;var o=dn(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(r=n.format)&&void 0!==r?r:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,r=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=en(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return 0===this.toHsl().s},e.prototype.toHsv=function(){var e=an(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=an(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.v);return 1===this.a?"hsv(".concat(t,", ").concat(n,"%, ").concat(r,"%)"):"hsva(".concat(t,", ").concat(n,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var e=rn(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=rn(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.l);return 1===this.a?"hsl(".concat(t,", ").concat(n,"%, ").concat(r,"%)"):"hsla(".concat(t,", ").concat(n,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(e){return void 0===e&&(e=!1),ln(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),function(e,t,n,r,o){var a=[nn(Math.round(e).toString(16)),nn(Math.round(t).toString(16)),nn(Math.round(n).toString(16)),nn(un(r))];return o&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toHexShortString=function(e){return void 0===e&&(e=!1),1===this.a?this.toHexString(e):this.toHex8String(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb(".concat(e,", ").concat(t,", ").concat(n,")"):"rgba(".concat(e,", ").concat(t,", ").concat(n,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var e=function(e){return"".concat(Math.round(100*Zt(e,255)),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*Zt(e,255))};return 1===this.a?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+ln(this.r,this.g,this.b,!1),t=0,n=Object.entries(fn);t=0;return t||!r||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Jt(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Jt(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Jt(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Jt(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var r=this.toRgb(),o=new e(t).toRgb(),a=n/100;return new e({r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var r=this.toHsl(),o=360/n,a=[this];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(new e(r));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),r=n.h,o=n.s,a=n.v,i=[],l=1/t;t--;)i.push(new e({h:r,s:o,v:a})),a=(a+l)%1;return i},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),o=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/o,g:(n.g*n.a+r.g*r.a*(1-n.a))/o,b:(n.b*n.a+r.b*r.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,o=[this],a=360/t,i=1;i=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?n=4:e<8&&e>=7?n=5:e<14&&e>=8?n=6:e<16&&e>=14?n=7:e>=16&&(n=8),e<6&&e>=2?r=1:e>=6&&(r=2),e>4&&e<8?o=4:e>=8&&(o=6),{borderRadius:e,borderRadiusXS:r,borderRadiusSM:n,borderRadiusLG:t,borderRadiusOuter:o}};var Rn=function(e,t){return new Nn(e).setAlpha(t).toRgbString()},An=function(e,t){return new Nn(e).darken(t).toHexString()},In=function(e){var t=En(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},Fn=function(e,t){var n=e||"#fff",r=t||"#000";return{colorBgBase:n,colorTextBase:r,colorText:Rn(r,.88),colorTextSecondary:Rn(r,.65),colorTextTertiary:Rn(r,.45),colorTextQuaternary:Rn(r,.25),colorFill:Rn(r,.15),colorFillSecondary:Rn(r,.06),colorFillTertiary:Rn(r,.04),colorFillQuaternary:Rn(r,.02),colorBgLayout:An(n,4),colorBgContainer:An(n,0),colorBgElevated:An(n,0),colorBgSpotlight:Rn(r,.85),colorBgBlur:"transparent",colorBorder:An(n,15),colorBorderSecondary:An(n,6)}};var Hn=function(e){var t=function(e){var t=new Array(10).fill(null).map((function(t,n){var r=n-1,o=e*Math.pow(2.71828,r/5),a=n>1?Math.floor(o):Math.ceil(o);return 2*Math.floor(a/2)}));return t[1]=e,t.map((function(e){return{size:e,lineHeight:(e+8)/e}}))}(e),n=t.map((function(e){return e.size})),r=t.map((function(e){return e.lineHeight})),o=n[1],a=n[0],i=n[2],l=r[1],u=r[0],c=r[2];return{fontSizeSM:a,fontSize:o,fontSizeLG:i,fontSizeXL:n[3],fontSizeHeading1:n[6],fontSizeHeading2:n[5],fontSizeHeading3:n[4],fontSizeHeading4:n[3],fontSizeHeading5:n[2],lineHeight:l,lineHeightLG:c,lineHeightSM:u,fontHeight:Math.round(l*o),fontHeightLG:Math.round(c*i),fontHeightSM:Math.round(u*a),lineHeightHeading1:r[6],lineHeightHeading2:r[5],lineHeightHeading3:r[4],lineHeightHeading4:r[3],lineHeightHeading5:r[2]}};var Bn,Dn,Wn=(Bn=function(e){var t=Object.keys(Mn).map((function(t){var n=En(e[t]);return new Array(10).fill(1).reduce((function(e,r,o){return e["".concat(t,"-").concat(o+1)]=n[o],e["".concat(t).concat(o+1)]=n[o],e}),{})})).reduce((function(e,t){return e=Object.assign(Object.assign({},e),t)}),{});return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e),t),function(e,t){var n=t.generateColorPalettes,r=t.generateNeutralColorPalettes,o=e.colorSuccess,a=e.colorWarning,i=e.colorError,l=e.colorInfo,u=e.colorPrimary,c=e.colorBgBase,s=e.colorTextBase,f=n(u),d=n(o),p=n(a),h=n(i),v=n(l),m=r(c,s),g=n(e.colorLink||e.colorInfo);return Object.assign(Object.assign({},m),{colorPrimaryBg:f[1],colorPrimaryBgHover:f[2],colorPrimaryBorder:f[3],colorPrimaryBorderHover:f[4],colorPrimaryHover:f[5],colorPrimary:f[6],colorPrimaryActive:f[7],colorPrimaryTextHover:f[8],colorPrimaryText:f[9],colorPrimaryTextActive:f[10],colorSuccessBg:d[1],colorSuccessBgHover:d[2],colorSuccessBorder:d[3],colorSuccessBorderHover:d[4],colorSuccessHover:d[4],colorSuccess:d[6],colorSuccessActive:d[7],colorSuccessTextHover:d[8],colorSuccessText:d[9],colorSuccessTextActive:d[10],colorErrorBg:h[1],colorErrorBgHover:h[2],colorErrorBorder:h[3],colorErrorBorderHover:h[4],colorErrorHover:h[5],colorError:h[6],colorErrorActive:h[7],colorErrorTextHover:h[8],colorErrorText:h[9],colorErrorTextActive:h[10],colorWarningBg:p[1],colorWarningBgHover:p[2],colorWarningBorder:p[3],colorWarningBorderHover:p[4],colorWarningHover:p[4],colorWarning:p[6],colorWarningActive:p[7],colorWarningTextHover:p[8],colorWarningText:p[9],colorWarningTextActive:p[10],colorInfoBg:v[1],colorInfoBgHover:v[2],colorInfoBorder:v[3],colorInfoBorderHover:v[4],colorInfoHover:v[4],colorInfo:v[6],colorInfoActive:v[7],colorInfoTextHover:v[8],colorInfoText:v[9],colorInfoTextActive:v[10],colorLinkHover:g[4],colorLink:g[6],colorLinkActive:g[7],colorBgMask:new Nn("#000").setAlpha(.45).toRgbString(),colorWhite:"#fff"})}(e,{generateColorPalettes:In,generateNeutralColorPalettes:Fn})),Hn(e.fontSize)),function(e){var t=e.sizeUnit,n=e.sizeStep;return{sizeXXL:t*(n+8),sizeXL:t*(n+4),sizeLG:t*(n+2),sizeMD:t*(n+1),sizeMS:t*n,size:t*n,sizeSM:t*(n-1),sizeXS:t*(n-2),sizeXXS:t*(n-3)}}(e)),Tn(e)),function(e){var t=e.motionUnit,n=e.motionBase,r=e.borderRadius,o=e.lineWidth;return Object.assign({motionDurationFast:"".concat((n+t).toFixed(1),"s"),motionDurationMid:"".concat((n+2*t).toFixed(1),"s"),motionDurationSlow:"".concat((n+3*t).toFixed(1),"s"),lineWidthBold:o+1},jn(r))}(e))},Dn=Array.isArray(Bn)?Bn:[Bn],se.has(Dn)||se.set(Dn,new ce(Dn)),se.get(Dn)),Un={token:Ln,override:{override:Ln},hashed:!0},Vn=e.createContext(Un);function $n(e){return e>=0&&e<=255}var Xn=function(e,t){var n=new Nn(e).toRgb(),r=n.r,o=n.g,a=n.b;if(n.a<1)return e;for(var i=new Nn(t).toRgb(),l=i.r,u=i.g,c=i.b,s=.01;s<=1;s+=.01){var f=Math.round((r-l*(1-s))/s),d=Math.round((o-u*(1-s))/s),p=Math.round((a-c*(1-s))/s);if($n(f)&&$n(d)&&$n(p))return new Nn({r:f,g:d,b:p,a:Math.round(100*s)/100}).toRgbString()}return new Nn({r:r,g:o,b:a,a:1}).toRgbString()},Qn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o2&&void 0!==arguments[2]?arguments[2]:{},o=(0,e.useContext)(ie),a=o.cache.instanceId,i=o.container,l=r.salt,u=void 0===l?"":l,c=r.override,s=void 0===c?Ae:c,f=r.formatToken,d=r.getComputedToken,p=r.cssVar,h=pe((function(){return Object.assign.apply(Object,[{}].concat(_(n)))}),n),v=ve(h),g=ve(s),y=p?ve(p):"",b=Re(De,[u,t.id,v,g,y],(function(){var e,n=d?d(h,s,t):Be(h,s,t,f),r=m({},n),o="";if(p){var a=O(_e(n,p.key,{prefix:p.prefix,ignore:p.ignore,unitless:p.unitless,preserve:p.preserve}),2);n=a[0],o=a[1]}var i=me(n,u);n._tokenKey=i,r._tokenKey=me(r,u);var l=null!==(e=null==p?void 0:p.key)&&void 0!==e?e:i;n._themeKey=l,Fe(l);var c="".concat("css","-").concat(z(i));return n._hashId=c,[n,c,r,o,(null==p?void 0:p.key)||""]}),(function(e){He(e[0]._themeKey,a)}),(function(e){var t=O(e,4),n=t[0],r=t[3];if(p&&r){var o=W(r,z("css-variables-".concat(n._themeKey)),{mark:ne,prepend:"queue",attachTo:i,priority:-999});o[re]=a,o.setAttribute(te,n._themeKey)}}));return b}(c,[Ln,n],{salt:u,override:a,getComputedToken:Jn,formatToken:Gn,cssVar:i&&{prefix:i.prefix,key:i.key,unitless:Kn,ignore:Yn,preserve:Zn}}),f=l()(s,3),d=f[0],p=f[1];return[c,f[2],r?p:"",d,i]}function tr(e,t){return tr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},tr(e,t)}function nr(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&tr(e,t)}function rr(e){return rr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},rr(e)}function or(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ar(e,t){if(t&&("object"===d(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return or(e)}function ir(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=rr(e);if(t){var o=rr(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ar(this,n)}}var lr=Z((function e(){K(this,e)})),ur=function(e){nr(n,e);var t=ir(n);function n(e){var r;return K(this,n),(r=t.call(this)).result=0,e instanceof n?r.result=e.result:"number"==typeof e&&(r.result=e),r}return Z(n,[{key:"add",value:function(e){return e instanceof n?this.result+=e.result:"number"==typeof e&&(this.result+=e),this}},{key:"sub",value:function(e){return e instanceof n?this.result-=e.result:"number"==typeof e&&(this.result-=e),this}},{key:"mul",value:function(e){return e instanceof n?this.result*=e.result:"number"==typeof e&&(this.result*=e),this}},{key:"div",value:function(e){return e instanceof n?this.result/=e.result:"number"==typeof e&&(this.result/=e),this}},{key:"equal",value:function(){return this.result}}]),n}(lr),cr="CALC_UNIT";function sr(e){return"number"==typeof e?"".concat(e).concat(cr):e}var fr=function(e){nr(n,e);var t=ir(n);function n(e){var r;return K(this,n),(r=t.call(this)).result="",e instanceof n?r.result="(".concat(e.result,")"):"number"==typeof e?r.result=sr(e):"string"==typeof e&&(r.result=e),r}return Z(n,[{key:"add",value:function(e){return e instanceof n?this.result="".concat(this.result," + ").concat(e.getResult()):"number"!=typeof e&&"string"!=typeof e||(this.result="".concat(this.result," + ").concat(sr(e))),this.lowPriority=!0,this}},{key:"sub",value:function(e){return e instanceof n?this.result="".concat(this.result," - ").concat(e.getResult()):"number"!=typeof e&&"string"!=typeof e||(this.result="".concat(this.result," - ").concat(sr(e))),this.lowPriority=!0,this}},{key:"mul",value:function(e){return this.lowPriority&&(this.result="(".concat(this.result,")")),e instanceof n?this.result="".concat(this.result," * ").concat(e.getResult(!0)):"number"!=typeof e&&"string"!=typeof e||(this.result="".concat(this.result," * ").concat(e)),this.lowPriority=!1,this}},{key:"div",value:function(e){return this.lowPriority&&(this.result="(".concat(this.result,")")),e instanceof n?this.result="".concat(this.result," / ").concat(e.getResult(!0)):"number"!=typeof e&&"string"!=typeof e||(this.result="".concat(this.result," / ").concat(e)),this.lowPriority=!1,this}},{key:"getResult",value:function(e){return this.lowPriority||e?"(".concat(this.result,")"):this.result}},{key:"equal",value:function(e){var t=(e||{}).unit,n=void 0===t||t,r=new RegExp("".concat(cr),"g");return this.result=this.result.replace(r,n?"px":""),void 0!==this.lowPriority?"calc(".concat(this.result,")"):this.result}}]),n}(lr),dr=function(e){var t="css"===e?fr:ur;return function(e){return new t(e)}};function pr(e){return"js"===e?{max:Math.max,min:Math.min}:{max:function(){for(var e=arguments.length,t=new Array(e),n=0;n *":{lineHeight:1},svg:{display:"inline-block"}}),r()({},".".concat(e," .").concat(e,"-icon"),{display:"block"})))]}))},kr=function(e,t,n){var r;return"function"==typeof n?n(mr(t,null!==(r=t[e])&&void 0!==r?r:{})):null!=n?n:{}},Sr=function(e,t,n,r){var o=Object.assign({},t[e]);(null==r?void 0:r.deprecatedTokens)&&r.deprecatedTokens.forEach((function(e){var t,n=l()(e,2),r=n[0],a=n[1];((null==o?void 0:o[r])||(null==o?void 0:o[a]))&&(null!==(t=o[a])&&void 0!==t||(o[a]=null==o?void 0:o[r]))}));var a=Object.assign(Object.assign({},n),o);return(null==r?void 0:r.format)&&(a=r.format(a)),Object.keys(a).forEach((function(e){a[e]===t[e]&&delete a[e]})),a},xr=function(e,t){return"".concat([t,e.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1-$2").replace(/([a-z])([A-Z])/g,"$1-$2")].filter(Boolean).join("-"))};function Cr(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=Array.isArray(t)?t:[t,t],i=l()(a,1),u=i[0],c=a.join("-");return function(t){var a=er(),i=l()(a,5),s=i[0],f=i[1],d=i[2],p=i[3],h=i[4],v=(0,e.useContext)(k),m=v.getPrefixCls,g=v.iconPrefixCls,y=v.csp,b=m(),w=h?"css":"js",S=dr(w),x=pr(w),C=x.max,E=x.min,O={theme:s,token:p,hashId:d,nonce:function(){return null==y?void 0:y.nonce},clientOnly:o.clientOnly,order:o.order||-999};return Ut(Object.assign(Object.assign({},O),{clientOnly:!1,path:["Shared",b]}),(function(){return[{"&":qt(p)}]})),wr(g,y),[Ut(Object.assign(Object.assign({},O),{path:[c,t,g]}),(function(){if(!1===o.injectStyle)return[];var e=br(p),a=e.token,i=e.flush,l=kr(u,f,r),c=".".concat(t),s=Sr(u,f,l,{deprecatedTokens:o.deprecatedTokens,format:o.format});h&&Object.keys(l).forEach((function(e){l[e]="var(".concat(Ee(e,xr(u,h.prefix)),")")}));var v=mr(a,{componentCls:c,prefixCls:t,iconCls:".".concat(g),antCls:".".concat(b),calc:S,max:C,min:E},h?l:s),m=n(v,{hashId:d,prefixCls:t,rootPrefixCls:b,iconPrefixCls:g});return i(u,s),[!1===o.resetStyle?null:Kt(v,t),m]})),d]}}var Er=function(e){var t=e.componentCls,n=e.colorPrimary;return r()({},t,{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:"var(--wave-color, ".concat(n,")"),boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:["box-shadow 0.4s ".concat(e.motionEaseOutCirc),"opacity 2s ".concat(e.motionEaseOutCirc)].join(","),"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:["box-shadow 0.3s ".concat(e.motionEaseInOut),"opacity 0.35s ".concat(e.motionEaseInOut)].join(",")}}})},Or=Cr("Wave",(function(e){return[Er(e)]})),_r=function(e){return+setTimeout(e,16)},zr=function(e){return clearTimeout(e)};"undefined"!=typeof window&&"requestAnimationFrame"in window&&(_r=function(e){return window.requestAnimationFrame(e)},zr=function(e){return window.cancelAnimationFrame(e)});var Pr=0,Tr=new Map;function Mr(e){Tr.delete(e)}var Lr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Pr+=1;function r(t){if(0===t)Mr(n),e();else{var o=_r((function(){r(t-1)}));Tr.set(n,o)}}return r(t),n};Lr.cancel=function(e){var t=Tr.get(e);return Mr(e),zr(t)};var Nr=Lr,jr=o(527),Rr=o.t(jr,2);function Ar(t){return function(e){return e instanceof HTMLElement||e instanceof SVGElement}(t)?t:t instanceof e.Component?jr.findDOMNode(t):null}var Ir=e.createContext({});var Fr=function(e){nr(n,e);var t=ir(n);function n(){return K(this,n),t.apply(this,arguments)}return Z(n,[{key:"render",value:function(){return this.props.children}}]),n}(e.Component),Hr=Fr,Br="none",Dr="appear",Wr="enter",Ur="leave",Vr="none",$r="prepare",Xr="start",Qr="active",Gr="end",qr="prepared";function Kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit".concat(e)]="webkit".concat(t),n["Moz".concat(e)]="moz".concat(t),n["ms".concat(e)]="MS".concat(t),n["O".concat(e)]="o".concat(t.toLowerCase()),n}var Yr=function(e,t){var n={animationend:Kr("Animation","AnimationEnd"),transitionend:Kr("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete n.animationend.animation,"TransitionEvent"in t||delete n.transitionend.transition),n}(P(),"undefined"!=typeof window?window:{}),Zr={};if(P()){var Jr=document.createElement("div");Zr=Jr.style}var eo={};function to(e){if(eo[e])return eo[e];var t=Yr[e];if(t)for(var n=Object.keys(t),r=n.length,o=0;o1&&void 0!==arguments[1]?arguments[1]:2;n();var a=Nr((function(){o<=1?r({isCanceled:function(){return a!==t.current}}):e(r,o-1)}));t.current=a},n]}(),u=O(l,2),c=u[0],s=u[1];var f=n?so:co;return uo((function(){if(a!==Vr&&a!==Gr){var e=f.indexOf(a),t=f[e+1],n=r(a);false===n?i(t,!0):t&&c((function(e){function r(){e.isCanceled()||i(t,!0)}!0===n?r():Promise.resolve(n).then(r)}))}}),[t,a]),e.useEffect((function(){return function(){s()}}),[]),[function(){i($r,!0)},a]};function ho(t,n,r,o){var a=o.motionEnter,i=void 0===a||a,l=o.motionAppear,u=void 0===l||l,c=o.motionLeave,s=void 0===c||c,f=o.motionDeadline,d=o.motionLeaveImmediately,p=o.onAppearPrepare,v=o.onEnterPrepare,g=o.onLeavePrepare,y=o.onAppearStart,b=o.onEnterStart,w=o.onLeaveStart,k=o.onAppearActive,S=o.onEnterActive,x=o.onLeaveActive,C=o.onAppearEnd,E=o.onEnterEnd,_=o.onLeaveEnd,z=o.onVisibleChanged,P=O(Gt(),2),T=P[0],M=P[1],L=O(Gt(Br),2),N=L[0],j=L[1],R=O(Gt(null),2),A=R[0],I=R[1],F=(0,e.useRef)(!1),H=(0,e.useRef)(null);function B(){return r()}var D=(0,e.useRef)(!1);function W(){j(Br,!0),I(null,!0)}function U(e){var t=B();if(!e||e.deadline||e.target===t){var n,r=D.current;N===Dr&&r?n=null==C?void 0:C(t,e):N===Wr&&r?n=null==E?void 0:E(t,e):N===Ur&&r&&(n=null==_?void 0:_(t,e)),N!==Br&&r&&!1!==n&&W()}}var V=function(t){var n=(0,e.useRef)(),r=(0,e.useRef)(t);r.current=t;var o=e.useCallback((function(e){r.current(e)}),[]);function a(e){e&&(e.removeEventListener(io,o),e.removeEventListener(ao,o))}return e.useEffect((function(){return function(){a(n.current)}}),[]),[function(e){n.current&&n.current!==e&&a(n.current),e&&e!==n.current&&(e.addEventListener(io,o),e.addEventListener(ao,o),n.current=e)},a]}(U),$=O(V,1)[0],X=function(e){var t,n,r;switch(e){case Dr:return h(t={},$r,p),h(t,Xr,y),h(t,Qr,k),t;case Wr:return h(n={},$r,v),h(n,Xr,b),h(n,Qr,S),n;case Ur:return h(r={},$r,g),h(r,Xr,w),h(r,Qr,x),r;default:return{}}},Q=e.useMemo((function(){return X(N)}),[N]),G=O(po(N,!t,(function(e){if(e===$r){var t=Q[$r];return!!t&&t(B())}var n;K in Q&&I((null===(n=Q[K])||void 0===n?void 0:n.call(Q,B(),null))||null);return K===Qr&&($(B()),f>0&&(clearTimeout(H.current),H.current=setTimeout((function(){U({deadline:!0})}),f))),K===qr&&W(),true})),2),q=G[0],K=G[1],Y=fo(K);D.current=Y,uo((function(){M(n);var e,r=F.current;F.current=!0,!r&&n&&u&&(e=Dr),r&&n&&i&&(e=Wr),(r&&!n&&s||!r&&d&&!n&&s)&&(e=Ur);var o=X(e);e&&(t||o[$r])?(j(e),q()):j(Br)}),[n]),(0,e.useEffect)((function(){(N===Dr&&!u||N===Wr&&!i||N===Ur&&!s)&&j(Br)}),[u,i,s]),(0,e.useEffect)((function(){return function(){F.current=!1,clearTimeout(H.current)}}),[]);var Z=e.useRef(!1);(0,e.useEffect)((function(){T&&(Z.current=!0),void 0!==T&&N===Br&&((Z.current||T)&&(null==z||z(T)),Z.current=!0)}),[T,N]);var J=A;return Q[$r]&&K===Xr&&(J=m({transition:"none"},J)),[N,K,J,null!=T?T:n]}var vo=function(t){var n=t;"object"===d(t)&&(n=t.transitionSupport);var r=e.forwardRef((function(t,r){var o=t.visible,a=void 0===o||o,i=t.removeOnLeave,l=void 0===i||i,u=t.forceRender,c=t.children,s=t.motionName,d=t.leavedClassName,p=t.eventProps,v=function(e,t){return!(!e.motionName||!n||!1===t)}(t,e.useContext(Ir).motion),g=(0,e.useRef)(),b=(0,e.useRef)();var k=O(ho(v,a,(function(){try{return g.current instanceof HTMLElement?g.current:Ar(b.current)}catch(e){return null}}),t),4),S=k[0],x=k[1],C=k[2],E=k[3],_=e.useRef(E);E&&(_.current=!0);var z,P=e.useCallback((function(e){g.current=e,y(r,e)}),[r]),T=m(m({},p),{},{visible:a});if(c)if(S===Br)z=E?c(m({},T),P):!l&&_.current&&d?c(m(m({},T),{},{className:d}),P):u||!l&&!d?c(m(m({},T),{},{style:{display:"none"}}),P):null;else{var M,L;x===$r?L="prepare":fo(x)?L="active":x===Xr&&(L="start");var N=lo(s,"".concat(S,"-").concat(L));z=c(m(m({},T),{},{className:f()(lo(s,S),(M={},h(M,N,N&&L),h(M,s,"string"==typeof s),M)),style:C}),P)}else z=null;e.isValidElement(z)&&w(z)&&(z.ref||(z=e.cloneElement(z,{ref:P})));return e.createElement(Hr,{ref:b},z)}));return r.displayName="CSSMotion",r}(oo);function mo(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var go="add",yo="keep",bo="remove",wo="removed";function ko(e){var t;return m(m({},t=e&&"object"===d(e)&&"key"in e?e:{key:e}),{},{key:String(t.key)})}function So(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(ko)}function xo(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=0,o=t.length,a=So(e),i=So(t);a.forEach((function(e){for(var t=!1,a=r;a1}));return u.forEach((function(e){(n=n.filter((function(t){var n=t.key,r=t.status;return n!==e||r!==bo}))).forEach((function(t){t.key===e&&(t.status=yo)}))})),n}var Co=["component","children","onVisibleChanged","onAllRemoved"],Eo=["status"],Oo=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];!function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:vo,r=function(t){nr(o,t);var r=ir(o);function o(){var e;K(this,o);for(var t=arguments.length,n=new Array(t),a=0;a=0;--a){var i=this.tryEntries[a],l=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),P(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:M(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function Po(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function To(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){Po(a,r,o,i,l,"next",e)}function l(e){Po(a,r,o,i,l,"throw",e)}i(void 0)}))}}var Mo,Lo=m({},Rr),No=Lo.version,jo=Lo.render,Ro=Lo.unmountComponentAtNode;try{Number((No||"").split(".")[0])>=18&&(Mo=Lo.createRoot)}catch(e){}function Ao(e){var t=Lo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;t&&"object"===d(t)&&(t.usingClientEntryPoint=e)}var Io="__rc_react_root__";function Fo(e,t){Mo?function(e,t){Ao(!0);var n=t[Io]||Mo(t);Ao(!1),n.render(e),t[Io]=n}(e,t):function(e,t){jo(e,t)}(e,t)}function Ho(e){return Bo.apply(this,arguments)}function Bo(){return(Bo=To(zo().mark((function e(t){return zo().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve().then((function(){var e;null===(e=t[Io])||void 0===e||e.unmount(),delete t[Io]})));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Do(e){Ro(e)}function Wo(){return(Wo=To(zo().mark((function e(t){return zo().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===Mo){e.next=2;break}return e.abrupt("return",Ho(t));case 2:Do(t);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Uo(e){return e&&"#fff"!==e&&"#ffffff"!==e&&"rgb(255, 255, 255)"!==e&&"rgba(255, 255, 255, 1)"!==e&&function(e){var t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return!(t&&t[1]&&t[2]&&t[3]&&t[1]===t[2]&&t[2]===t[3])}(e)&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&"transparent"!==e}var Vo="ant-wave-target";function $o(e){return Number.isNaN(e)?0:e}var Xo=function(t){var n=t.className,r=t.target,o=t.component,a=e.useRef(null),i=e.useState(null),u=l()(i,2),c=u[0],s=u[1],d=e.useState([]),p=l()(d,2),h=p[0],v=p[1],m=e.useState(0),g=l()(m,2),y=g[0],b=g[1],w=e.useState(0),k=l()(w,2),S=k[0],x=k[1],C=e.useState(0),E=l()(C,2),O=E[0],_=E[1],z=e.useState(0),P=l()(z,2),T=P[0],M=P[1],L=e.useState(!1),N=l()(L,2),j=N[0],R=N[1],A={left:y,top:S,width:O,height:T,borderRadius:h.map((function(e){return"".concat(e,"px")})).join(" ")};function I(){var e=getComputedStyle(r);s(function(e){var t=getComputedStyle(e),n=t.borderTopColor,r=t.borderColor,o=t.backgroundColor;return Uo(n)?n:Uo(r)?r:Uo(o)?o:null}(r));var t="static"===e.position,n=e.borderLeftWidth,o=e.borderTopWidth;b(t?r.offsetLeft:$o(-parseFloat(n))),x(t?r.offsetTop:$o(-parseFloat(o))),_(r.offsetWidth),M(r.offsetHeight);var a=e.borderTopLeftRadius,i=e.borderTopRightRadius,l=e.borderBottomLeftRadius,u=e.borderBottomRightRadius;v([a,i,u,l].map((function(e){return $o(parseFloat(e))})))}if(c&&(A["--wave-color"]=c),e.useEffect((function(){if(r){var e,t=Nr((function(){I(),R(!0)}));return"undefined"!=typeof ResizeObserver&&(e=new ResizeObserver(I)).observe(r),function(){Nr.cancel(t),null==e||e.disconnect()}}}),[]),!j)return null;var F=("Checkbox"===o||"Radio"===o)&&(null==r?void 0:r.classList.contains(Vo));return e.createElement(_o,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:function(e,t){var n;if(t.deadline||"opacity"===t.propertyName){var r=null===(n=a.current)||void 0===n?void 0:n.parentElement;(function(e){return Wo.apply(this,arguments)})(r).then((function(){null==r||r.remove()}))}return!1}},(function(t){var r=t.className;return e.createElement("div",{ref:a,className:f()(n,{"wave-quick":F},r),style:A})}))},Qo=function(t,n){var r;if("Checkbox"!==n.component||(null===(r=t.querySelector("input"))||void 0===r?void 0:r.checked)){var o=document.createElement("div");o.style.position="absolute",o.style.left="0px",o.style.top="0px",null==t||t.insertBefore(o,null==t?void 0:t.firstChild),Fo(e.createElement(Xo,Object.assign({},n,{target:t})),o)}};function Go(t,n,r){var o=e.useContext(k).wave,a=er(),i=l()(a,3),u=i[1],c=i[2],s=function(t){var n=e.useRef();n.current=t;var r=e.useCallback((function(){for(var e,t=arguments.length,r=new Array(t),o=0;o0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];if("class"===n)t.className=r,delete t.class;else delete t[n],t[ma(n)]=r;return t}),{})}function ba(t,n,r){return r?e.createElement(t.tag,m(m({key:n},ya(t.attrs)),r),(t.children||[]).map((function(e,r){return ba(e,"".concat(n,"-").concat(t.tag,"-").concat(r))}))):e.createElement(t.tag,m({key:n},ya(t.attrs)),(t.children||[]).map((function(e,r){return ba(e,"".concat(n,"-").concat(t.tag,"-").concat(r))})))}function wa(e){return En(e)[0]}function ka(e){return e?Array.isArray(e)?e:[e]:[]}var Sa=["icon","className","onClick","style","primaryColor","secondaryColor"],xa={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};var Ca=function(t){var n,r,o,a,i,l,u,c=t.icon,s=t.className,f=t.onClick,d=t.style,p=t.primaryColor,h=t.secondaryColor,v=mo(t,Sa),g=e.useRef(),y=xa;if(p&&(y={primaryColor:p,secondaryColor:h||wa(p)}),n=g,r=(0,e.useContext)(pa),o=r.csp,a=r.prefixCls,i="\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n",a&&(i=i.replace(/anticon/g,a)),(0,e.useEffect)((function(){var e=va(n.current);W(i,"@ant-design-icons",{prepend:!0,csp:o,attachTo:e})}),[]),l=ga(c),u="icon should be icon definiton, but got ".concat(c),q(l,"[@ant-design/icons] ".concat(u)),!ga(c))return null;var b=c;return b&&"function"==typeof b.icon&&(b=m(m({},b),{},{icon:b.icon(y.primaryColor,y.secondaryColor)})),ba(b.icon,"svg-".concat(b.name),m(m({className:s,onClick:f,style:d,"data-icon":b.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},v),{},{ref:g}))};Ca.displayName="IconReact",Ca.getTwoToneColors=function(){return m({},xa)},Ca.setTwoToneColors=function(e){var t=e.primaryColor,n=e.secondaryColor;xa.primaryColor=t,xa.secondaryColor=n||wa(t),xa.calculated=!!n};var Ea=Ca;function Oa(e){var t=O(ka(e),2),n=t[0],r=t[1];return Ea.setTwoToneColors({primaryColor:n,secondaryColor:r})}var _a=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];Oa(Pn.primary);var za=e.forwardRef((function(t,n){var r,o=t.className,a=t.icon,i=t.spin,l=t.rotate,u=t.tabIndex,c=t.onClick,s=t.twoToneColor,d=mo(t,_a),p=e.useContext(pa),v=p.prefixCls,m=void 0===v?"anticon":v,g=p.rootClassName,y=f()(g,m,(h(r={},"".concat(m,"-").concat(a.name),!!a.name),h(r,"".concat(m,"-spin"),!!i||"loading"===a.name),r),o),b=u;void 0===b&&c&&(b=-1);var w=l?{msTransform:"rotate(".concat(l,"deg)"),transform:"rotate(".concat(l,"deg)")}:void 0,k=O(ka(s),2),S=k[0],x=k[1];return e.createElement("span",We({role:"img","aria-label":a.name},d,{ref:n,tabIndex:b,onClick:c,className:y}),e.createElement(Ea,{icon:a,primaryColor:S,secondaryColor:x,style:w}))}));za.displayName="AntdIcon",za.getTwoToneColor=function(){var e=Ea.getTwoToneColors();return e.calculated?[e.primaryColor,e.secondaryColor]:e.primaryColor},za.setTwoToneColor=Oa;var Pa=za,Ta=function(t,n){return e.createElement(Pa,We({},t,{ref:n,icon:da}))};var Ma=e.forwardRef(Ta),La=(0,e.forwardRef)((function(t,n){var r=t.prefixCls,o=t.className,a=t.style,i=t.iconClassName,l=f()("".concat(r,"-loading-icon"),o);return e.createElement(fa,{prefixCls:r,className:l,style:a,ref:n},e.createElement(Ma,{className:i}))})),Na=function(){return{width:0,opacity:0,transform:"scale(0)"}},ja=function(e){return{width:e.scrollWidth,opacity:1,transform:"scale(1)"}},Ra=function(t){var n=t.prefixCls,r=t.loading,o=t.existIcon,a=t.className,i=t.style,l=!!r;return o?e.createElement(La,{prefixCls:n,className:a,style:i}):e.createElement(_o,{visible:l,motionName:"".concat(n,"-loading-icon-motion"),motionLeave:l,removeOnLeave:!0,onAppearStart:Na,onAppearActive:ja,onEnterStart:Na,onEnterActive:ja,onLeaveStart:ja,onLeaveActive:Na},(function(t,r){var o=t.className,l=t.style;return e.createElement(La,{prefixCls:n,className:a,style:Object.assign(Object.assign({},i),l),ref:r,iconClassName:o})}))},Aa=function(e,t){return r()({},"> span, > ".concat(e),{"&:not(:last-child)":r()({},"&, & > ".concat(e),{"&:not(:disabled)":{borderInlineEndColor:t}}),"&:not(:first-child)":r()({},"&, & > ".concat(e),{"&:not(:disabled)":{borderInlineStartColor:t}})})},Ia=function(e){var t,n,o=e.componentCls,a=e.fontSize,i=e.lineWidth,l=e.groupBorderColor,u=e.colorErrorHover;return r()({},"".concat(o,"-group"),[(n={position:"relative",display:"inline-flex"},r()(n,"> span, > ".concat(o),{"&:not(:last-child)":r()({},"&, & > ".concat(o),{borderStartEndRadius:0,borderEndEndRadius:0}),"&:not(:first-child)":r()({marginInlineStart:e.calc(i).mul(-1).equal()},"&, & > ".concat(o),{borderStartStartRadius:0,borderEndStartRadius:0})}),r()(n,o,(t={position:"relative",zIndex:1},r()(t,"&:hover,\n &:focus,\n &:active",{zIndex:2}),r()(t,"&[disabled]",{zIndex:0}),t)),r()(n,"".concat(o,"-icon-only"),{fontSize:a}),n),Aa("".concat(o,"-primary"),l),Aa("".concat(o,"-danger"),u)])},Fa=function(e){var t,n=e.componentCls,o=e.iconCls,a=e.fontWeight;return r()({},n,(t={outline:"none",position:"relative",display:"inline-block",fontWeight:a,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:"".concat(xe(e.lineWidth)," ").concat(e.lineType," transparent"),cursor:"pointer",transition:"all ".concat(e.motionDurationMid," ").concat(e.motionEaseInOut),userSelect:"none",touchAction:"manipulation",lineHeight:e.lineHeight,color:e.colorText,"&:disabled > *":{pointerEvents:"none"},"> span":{display:"inline-block"}},r()(t,"".concat(n,"-icon"),{lineHeight:0}),r()(t,"> ".concat(o," + span, > span + ").concat(o),{marginInlineStart:e.marginXS}),r()(t,"&:not(".concat(n,"-icon-only) > ").concat(n,"-icon"),r()({},"&".concat(n,"-loading-icon, &:not(:last-child)"),{marginInlineEnd:e.marginXS})),r()(t,"> a",{color:"currentColor"}),r()(t,"&:not(:disabled)",Object.assign({},function(e){return{"&:focus-visible":Object.assign({},Yt(e))}}(e))),r()(t,"&".concat(n,"-two-chinese-chars::first-letter"),{letterSpacing:"0.34em"}),r()(t,"&".concat(n,"-two-chinese-chars > *:not(").concat(o,")"),{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"}),r()(t,"&-icon-only".concat(n,"-compact-item"),{flex:"none"}),t))},Ha=function(e,t,n){return r()({},"&:not(:disabled):not(".concat(e,"-disabled)"),{"&:hover":t,"&:active":n})},Ba=function(e){return{minWidth:e.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:"50%"}},Da=function(e){return{borderRadius:e.controlHeight,paddingInlineStart:e.calc(e.controlHeight).div(2).equal(),paddingInlineEnd:e.calc(e.controlHeight).div(2).equal()}},Wa=function(e,t,n,o,a,i,l,u){return r()({},"&".concat(e,"-background-ghost"),Object.assign(Object.assign({color:n||void 0,background:t,borderColor:o||void 0,boxShadow:"none"},Ha(e,Object.assign({background:t},l),Object.assign({background:t},u))),{"&:disabled":{cursor:"not-allowed",color:a||void 0,borderColor:i||void 0}}))},Ua=function(e){return r()({},"&:disabled, &".concat(e.componentCls,"-disabled"),Object.assign({},function(e){return{cursor:"not-allowed",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:"none"}}(e)))},Va=function(e){return Object.assign({},Ua(e))},$a=function(e){return r()({},"&:disabled, &".concat(e.componentCls,"-disabled"),{cursor:"not-allowed",color:e.colorTextDisabled})},Xa=function(e){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Va(e)),{background:e.defaultBg,borderColor:e.defaultBorderColor,color:e.defaultColor,boxShadow:e.defaultShadow}),Ha(e.componentCls,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),Wa(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),r()({},"&".concat(e.componentCls,"-dangerous"),Object.assign(Object.assign(Object.assign({color:e.colorError,borderColor:e.colorError},Ha(e.componentCls,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),Wa(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder)),Ua(e))))},Qa=function(e){var t,n=e.componentCls;return t={},r()(t,"".concat(n,"-default"),Xa(e)),r()(t,"".concat(n,"-primary"),function(e){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Va(e)),{color:e.primaryColor,background:e.colorPrimary,boxShadow:e.primaryShadow}),Ha(e.componentCls,{color:e.colorTextLightSolid,background:e.colorPrimaryHover},{color:e.colorTextLightSolid,background:e.colorPrimaryActive})),Wa(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),r()({},"&".concat(e.componentCls,"-dangerous"),Object.assign(Object.assign(Object.assign({background:e.colorError,boxShadow:e.dangerShadow,color:e.dangerColor},Ha(e.componentCls,{background:e.colorErrorHover},{background:e.colorErrorActive})),Wa(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),Ua(e))))}(e)),r()(t,"".concat(n,"-dashed"),function(e){return Object.assign(Object.assign({},Xa(e)),{borderStyle:"dashed"})}(e)),r()(t,"".concat(n,"-link"),function(e){return Object.assign(Object.assign(Object.assign({color:e.colorLink},Ha(e.componentCls,{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),$a(e)),r()({},"&".concat(e.componentCls,"-dangerous"),Object.assign(Object.assign({color:e.colorError},Ha(e.componentCls,{color:e.colorErrorHover},{color:e.colorErrorActive})),$a(e))))}(e)),r()(t,"".concat(n,"-text"),function(e){return Object.assign(Object.assign(Object.assign({},Ha(e.componentCls,{color:e.colorText,background:e.textHoverBg},{color:e.colorText,background:e.colorBgTextActive})),$a(e)),r()({},"&".concat(e.componentCls,"-dangerous"),Object.assign(Object.assign({color:e.colorError},$a(e)),Ha(e.componentCls,{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBg}))))}(e)),r()(t,"".concat(n,"-ghost"),Wa(e.componentCls,e.ghostBg,e.colorBgContainer,e.colorBgContainer,e.colorTextDisabled,e.colorBorder)),t},Ga=function(e){var t,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=e.componentCls,i=e.controlHeight,l=e.fontSize,u=e.borderRadius,c=e.buttonPaddingHorizontal,s=e.iconCls,f=e.buttonPaddingVertical,d="".concat(a,"-icon-only");return[r()({},"".concat(a).concat(o),(n={fontSize:l,height:i,padding:"".concat(xe(f)," ").concat(xe(c)),borderRadius:u},r()(n,"&".concat(d),(t={width:i,paddingInlineStart:0,paddingInlineEnd:0},r()(t,"&".concat(a,"-round"),{width:"auto"}),r()(t,s,{fontSize:e.buttonIconOnlyFontSize}),t)),r()(n,"&".concat(a,"-loading"),{opacity:e.opacityLoading,cursor:"default"}),r()(n,"".concat(a,"-loading-icon"),{transition:"width ".concat(e.motionDurationSlow," ").concat(e.motionEaseInOut,", opacity ").concat(e.motionDurationSlow," ").concat(e.motionEaseInOut)}),n)),r()({},"".concat(a).concat(a,"-circle").concat(o),Ba(e)),r()({},"".concat(a).concat(a,"-round").concat(o),Da(e))]},qa=function(e){return Ga(mr(e,{fontSize:e.contentFontSize}))},Ka=function(e){var t=mr(e,{controlHeight:e.controlHeightSM,fontSize:e.contentFontSizeSM,padding:e.paddingXS,buttonPaddingHorizontal:e.paddingInlineSM,buttonPaddingVertical:e.paddingBlockSM,borderRadius:e.borderRadiusSM,buttonIconOnlyFontSize:e.onlyIconSizeSM});return Ga(t,"".concat(e.componentCls,"-sm"))},Ya=function(e){var t=mr(e,{controlHeight:e.controlHeightLG,fontSize:e.contentFontSizeLG,buttonPaddingHorizontal:e.paddingInlineLG,buttonPaddingVertical:e.paddingBlockLG,borderRadius:e.borderRadiusLG,buttonIconOnlyFontSize:e.onlyIconSizeLG});return Ga(t,"".concat(e.componentCls,"-lg"))},Za=function(e){var t=e.componentCls;return r()({},t,r()({},"&".concat(t,"-block"),{width:"100%"}))},Ja=function(e){var t=e.paddingInline,n=e.onlyIconSize;return mr(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:e.paddingBlock,buttonIconOnlyFontSize:n})},ei=function(e){var t=e.fontSize,n=e.fontSize,r=e.fontSizeLG;return{fontWeight:400,defaultShadow:"0 ".concat(e.controlOutlineWidth,"px 0 ").concat(e.controlTmpOutline),primaryShadow:"0 ".concat(e.controlOutlineWidth,"px 0 ").concat(e.controlOutline),dangerShadow:"0 ".concat(e.controlOutlineWidth,"px 0 ").concat(e.colorErrorOutline),primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,paddingBlock:Math.max((e.controlHeight-t*e.lineHeight)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-n*e.lineHeight)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-r*e.lineHeight)/2-e.lineWidth,0),onlyIconSize:e.fontSizeLG,onlyIconSizeSM:e.fontSizeLG-2,onlyIconSizeLG:e.fontSizeLG+2,groupBorderColor:e.colorPrimaryHover,linkHoverBg:"transparent",textHoverBg:e.colorBgTextHover,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,contentFontSize:t,contentFontSizeSM:n,contentFontSizeLG:r}},ti=function(t,n,o,a){var i=Cr(t,n,o,a),u=function(t,n,o){function a(e){return"".concat(t).concat(e.slice(0,1).toUpperCase()).concat(e.slice(1))}var i=null!=o?o:{},u=i.unitless,c=void 0===u?{}:u,s=i.injectStyle,f=void 0===s||s,d=r()({},a("zIndexPopup"),!0);Object.keys(c).forEach((function(e){d[a(e)]=c[e]}));var p=function(e){var r=e.rootCls,i=e.cssVar,u=er(),c=l()(u,2)[1];return Xt({path:[t],prefix:i.prefix,key:null==i?void 0:i.key,unitless:Object.assign(Object.assign({},Kn),d),ignore:Yn,token:c,scope:r},(function(){var e=kr(t,c,n),r=Sr(t,c,e,{format:null==o?void 0:o.format,deprecatedTokens:null==o?void 0:o.deprecatedTokens});return Object.keys(e).forEach((function(e){r[a(e)]=r[e],delete r[e]})),r})),null};return function(n){var r=er(),o=l()(r,5)[4];return[function(r){return f&&o?e.createElement(e.Fragment,null,e.createElement(p,{rootCls:n,cssVar:o,component:t}),r):r},null==o?void 0:o.key]}}(Array.isArray(t)?t[0]:t,o,a);return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=i(e),r=l()(n,2),o=r[1],a=u(t),c=l()(a,2),s=c[0],f=c[1];return[s,o,f]}}("Button",(function(e){var t=Ja(e);return[Fa(t),Ka(t),qa(t),Ya(t),Za(t),Qa(t),Ia(t)]}),ei,{unitless:{fontWeight:!0}});function ni(e,t,n){var o,a=n.focusElCls,i=n.focus,l=n.borderElCls?"> *":"",u=["hover",i?"focus":null,"active"].filter(Boolean).map((function(e){return"&:".concat(e," ").concat(l)})).join(",");return o={},r()(o,"&-item:not(".concat(t,"-last-item)"),{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()}),r()(o,"&-item",Object.assign(Object.assign(r()({},u,{zIndex:2}),a?r()({},"&".concat(a),{zIndex:2}):{}),r()({},"&[disabled] ".concat(l),{zIndex:0}))),o}function ri(e,t,n){var o,a=n.borderElCls,i=a?"> ".concat(a):"";return o={},r()(o,"&-item:not(".concat(t,"-first-item):not(").concat(t,"-last-item) ").concat(i),{borderRadius:0}),r()(o,"&-item:not(".concat(t,"-last-item)").concat(t,"-first-item"),r()({},"& ".concat(i,", &").concat(e,"-sm ").concat(i,", &").concat(e,"-lg ").concat(i),{borderStartEndRadius:0,borderEndEndRadius:0})),r()(o,"&-item:not(".concat(t,"-first-item)").concat(t,"-last-item"),r()({},"& ".concat(i,", &").concat(e,"-sm ").concat(i,", &").concat(e,"-lg ").concat(i),{borderStartStartRadius:0,borderEndStartRadius:0})),o}function oi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{focus:!0},n=e.componentCls,o="".concat(n,"-compact");return r()({},o,Object.assign(Object.assign({},ni(e,o,t)),ri(n,o,t)))}function ai(e){var t,n,o,a="".concat(e.componentCls,"-compact-vertical");return r()({},a,Object.assign(Object.assign({},function(e,t){var n;return n={},r()(n,"&-item:not(".concat(t,"-last-item)"),{marginBottom:e.calc(e.lineWidth).mul(-1).equal()}),r()(n,"&-item",{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}),n}(e,a)),(t=e.componentCls,n=a,o={},r()(o,"&-item:not(".concat(n,"-first-item):not(").concat(n,"-last-item)"),{borderRadius:0}),r()(o,"&-item".concat(n,"-first-item:not(").concat(n,"-last-item)"),r()({},"&, &".concat(t,"-sm, &").concat(t,"-lg"),{borderEndEndRadius:0,borderEndStartRadius:0})),r()(o,"&-item".concat(n,"-last-item:not(").concat(n,"-first-item)"),r()({},"&, &".concat(t,"-sm, &").concat(t,"-lg"),{borderStartStartRadius:0,borderStartEndRadius:0})),o)))}var ii=function(e){var t,n=e.componentCls,o=e.calc;return r()({},n,(t={},r()(t,"&-compact-item".concat(n,"-primary"),r()({},"&:not([disabled]) + ".concat(n,"-compact-item").concat(n,"-primary:not([disabled])"),{position:"relative","&:before":{position:"absolute",top:o(e.lineWidth).mul(-1).equal(),insetInlineStart:o(e.lineWidth).mul(-1).equal(),display:"inline-block",width:e.lineWidth,height:"calc(100% + ".concat(xe(e.lineWidth)," * 2)"),backgroundColor:e.colorPrimaryHover,content:'""'}})),r()(t,"&-compact-vertical-item",r()({},"&".concat(n,"-primary"),r()({},"&:not([disabled]) + ".concat(n,"-compact-vertical-item").concat(n,"-primary:not([disabled])"),{position:"relative","&:before":{position:"absolute",top:o(e.lineWidth).mul(-1).equal(),insetInlineStart:o(e.lineWidth).mul(-1).equal(),display:"inline-block",width:"calc(100% + ".concat(xe(e.lineWidth)," * 2)"),height:e.lineWidth,backgroundColor:e.colorPrimaryHover,content:'""'}}))),t))},li=function(e,t,n,r){var o=Cr(e,t,n,Object.assign({resetStyle:!1,order:-998},r));return function(e){var t=e.prefixCls;return o(t),null}}(["Button","compact"],(function(e){var t=Ja(e);return[oi(t),ai(t),ii(t)]}),ei),ui=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o0?e=setTimeout((function(){e=null,ne(!0)}),Z.delay):ne(Z.loading),function(){e&&(clearTimeout(e),e=null)}}),[Z]),(0,e.useEffect)((function(){if(le&&le.current&&!1!==B){var e=le.current.textContent;ue&&ia(e)?ae||ie(!0):ae&&ie(!1)}}),[le]);var ce,se,fe=function(e){var n=t.onClick;te||K?e.preventDefault():null==n||n(e)},de=!1!==B,pe=function(t,n){var o=e.useContext(ta),a=e.useMemo((function(){var e;if(!o)return"";var a=o.compactDirection,i=o.isFirstItem,l=o.isLastItem,u="vertical"===a?"-vertical-":"-";return f()("".concat(t,"-compact").concat(u,"item"),(e={},r()(e,"".concat(t,"-compact").concat(u,"first-item"),i),r()(e,"".concat(t,"-compact").concat(u,"last-item"),l),r()(e,"".concat(t,"-compact").concat(u,"item-rtl"),"rtl"===n),e))}),[t,n,o]);return{compactSize:null==o?void 0:o.compactSize,compactDirection:null==o?void 0:o.compactDirection,compactItemClassnames:a}}(U,D),he=pe.compactSize,ve=pe.compactItemClassnames,me={large:"lg",small:"sm",middle:void 0},ge=ea((function(e){var t,n;return null!==(n=null!==(t=null!=w?w:he)&&void 0!==t?t:Y)&&void 0!==n?n:e})),ye=ge&&me[ge]||"",be=te?"loading":_,we=(ce=["navigate"],se=m({},I),Array.isArray(ce)&&ce.forEach((function(e){delete se[e]})),se),ke=f()(U,Q,G,(o={},r()(o,"".concat(U,"-").concat(y),"default"!==y&&y),r()(o,"".concat(U,"-").concat(h),h),r()(o,"".concat(U,"-").concat(ye),ye),r()(o,"".concat(U,"-icon-only"),!O&&0!==O&&!!be),r()(o,"".concat(U,"-background-ghost"),P&&!ua(h)),r()(o,"".concat(U,"-loading"),te),r()(o,"".concat(U,"-two-chinese-chars"),ae&&de&&!te),r()(o,"".concat(U,"-block"),M),r()(o,"".concat(U,"-dangerous"),!!v),r()(o,"".concat(U,"-rtl"),"rtl"===D),o),ve,C,E,null==W?void 0:W.className),Se=Object.assign(Object.assign({},null==W?void 0:W.style),A),xe=f()(null==j?void 0:j.icon,null===(a=null==W?void 0:W.classNames)||void 0===a?void 0:a.icon),Ce=Object.assign(Object.assign({},(null==S?void 0:S.icon)||{}),(null===(i=null==W?void 0:W.styles)||void 0===i?void 0:i.icon)||{}),Ee=_&&!te?e.createElement(fa,{prefixCls:U,className:xe,style:Ce},_):e.createElement(Ra,{existIcon:!!_,prefixCls:U,loading:!!te}),Oe=O||0===O?function(t,n){var r=!1,o=[];return e.Children.forEach(t,(function(e){var t=c()(e),n="string"===t||"number"===t;if(r&&n){var a=o.length-1,i=o[a];o[a]="".concat(i).concat(e)}else o.push(e);r=n})),e.Children.map(o,(function(e){return ca(e,n)}))}(O,ue&&de):null;if(void 0!==we.href)return X(e.createElement("a",Object.assign({},we,{className:f()(ke,r()({},"".concat(U,"-disabled"),K)),href:K?void 0:we.href,style:Se,onClick:fe,ref:le,tabIndex:K?-1:0}),Ee,Oe));var _e=e.createElement("button",Object.assign({},I,{type:N,className:ke,style:Se,onClick:fe,disabled:K,ref:le}),Ee,Oe,ve&&e.createElement(li,{key:"compact",prefixCls:U}));return ua(h)||(_e=e.createElement(qo,{component:"Button",disabled:!!te},_e)),X(_e)},si=(0,e.forwardRef)(ci);si.Group=oa,si.__ANT_BUTTON=!0;var fi=si,di=function(t){var n=t.children;return e.createElement(fi,t,n)}}(),a}()})); \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/constants.d.ts b/packages/meta/es/ImageEditor/cropper/constants.d.ts new file mode 100644 index 0000000..5cb1147 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/constants.d.ts @@ -0,0 +1,26 @@ +export declare const NAMESPACE = "zhst-cropper"; +export declare const ACTION_MOVE = "move"; +export declare const ACTION_CROP = "crop"; +export declare const ACTION_EAST = "e"; +export declare const ACTION_WEST = "w"; +export declare const ACTION_SOUTH = "s"; +export declare const ACTION_NORTH = "n"; +export declare const ACTION_NORTH_EAST = "ne"; +export declare const ACTION_NORTH_WEST = "nw"; +export declare const ACTION_SOUTH_EAST = "se"; +export declare const ACTION_SOUTH_WEST = "sw"; +export declare const CLASS_HIDDEN: string; +export declare const CLASS_MASK: string; +export declare const DATA_ACTION: string; +export declare const EVENT_TOUCH_START: string; +export declare const EVENT_TOUCH_MOVE: string; +export declare const EVENT_TOUCH_END: string; +export declare const EVENT_POINTER_DOWN: string; +export declare const EVENT_POINTER_MOVE: string; +export declare const EVENT_POINTER_UP: string; +export declare const EVENT_WHEEL = "wheel"; +export declare const EVENT_CROP_CHANGE = "crop-change"; +export declare const EVENT_CROP_START = "crop-start"; +export declare const EVENT_CROP_END = "crop-end"; +export declare const REGEXP_SPACES: RegExp; +export declare const REGEXP_ACTIONS: RegExp; diff --git a/packages/meta/es/ImageEditor/cropper/constants.js b/packages/meta/es/ImageEditor/cropper/constants.js new file mode 100644 index 0000000..264cca7 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/constants.js @@ -0,0 +1,40 @@ +//@ts-nocheck +import { IS_TOUCH_DEVICE, HAS_POINTER_EVENT } from "../utils"; +export var NAMESPACE = 'zhst-cropper'; + +// Actions +export var ACTION_MOVE = 'move'; +export var ACTION_CROP = 'crop'; +export var ACTION_EAST = 'e'; +export var ACTION_WEST = 'w'; +export var ACTION_SOUTH = 's'; +export var ACTION_NORTH = 'n'; +export var ACTION_NORTH_EAST = 'ne'; +export var ACTION_NORTH_WEST = 'nw'; +export var ACTION_SOUTH_EAST = 'se'; +export var ACTION_SOUTH_WEST = 'sw'; + +// Classes +export var CLASS_HIDDEN = "".concat(NAMESPACE, "-hidden"); +export var CLASS_MASK = "".concat(NAMESPACE, "-mask"); + +// Data keys +export var DATA_ACTION = "".concat(NAMESPACE, "-action"); + +// Events +export var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown'; +export var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove'; +export var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup'; +export var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START; +export var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE; +export var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END; +export var EVENT_WHEEL = 'wheel'; + +//custom event +export var EVENT_CROP_CHANGE = 'crop-change'; +export var EVENT_CROP_START = 'crop-start'; +export var EVENT_CROP_END = 'crop-end'; + +// RegExps +export var REGEXP_SPACES = /\s\s*/; +export var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/event.d.ts b/packages/meta/es/ImageEditor/cropper/event.d.ts new file mode 100644 index 0000000..08676a5 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/event.d.ts @@ -0,0 +1,9 @@ +declare const _default: { + bind(): void; + unbind(): void; + onCropStart(event: any): void; + onCropMove(event: any): void; + onCropEnd(event: any): void; + change(event: any): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/cropper/event.js b/packages/meta/es/ImageEditor/cropper/event.js new file mode 100644 index 0000000..c7e0485 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/event.js @@ -0,0 +1,415 @@ +//@ts-nocheck +import { addClass, removeClass } from 'rc-util/lib/Dom/class'; +import { addEventlistener, isNumber, get } from '@zhst/func'; +import warn from 'rc-util/lib/warn'; +import { getData, getPointer, getOffset, dispatchEvent } from "../utils"; +import { +//class +CLASS_MASK, DATA_ACTION, ACTION_CROP, ACTION_MOVE, ACTION_EAST, ACTION_NORTH, ACTION_NORTH_EAST, ACTION_NORTH_WEST, ACTION_SOUTH, ACTION_SOUTH_EAST, ACTION_SOUTH_WEST, ACTION_WEST, CLASS_HIDDEN, +// event +EVENT_POINTER_DOWN, EVENT_POINTER_MOVE, EVENT_POINTER_UP, EVENT_CROP_CHANGE, EVENT_CROP_START, EVENT_CROP_END, +// 正则 +REGEXP_ACTIONS, REGEXP_SPACES } from "./constants"; +export default { + bind: function bind() { + var _this = this; + var container = this.container, + element = this.element, + _this$eventHandleList = this.eventHandleList, + eventHandleList = _this$eventHandleList === void 0 ? [] : _this$eventHandleList, + option = this.option; + var handleCropStart = addEventlistener(container, EVENT_POINTER_DOWN, this.onCropStart.bind(this)); + eventHandleList.push(handleCropStart); + var handleCropMove = addEventlistener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove.bind(this)); + eventHandleList.push(handleCropMove); + EVENT_POINTER_UP.trim().split(REGEXP_SPACES).forEach(function (eventName) { + var handleCropEnd = addEventlistener(element.ownerDocument, eventName, _this.onCropEnd.bind(_this)); + eventHandleList.push(handleCropEnd); + }); + }, + unbind: function unbind() { + var eventHandleList = this.eventHandleList; + for (var index = eventHandleList.length; index > 0; index--) { + var handler = eventHandleList.shift; + try { + handler.remove(); + } catch (error) { + warn('CROP:REMOVE_EVENT_FAIL,', error); + } + } + }, + onCropStart: function onCropStart(event) { + var buttons = event.buttons, + button = event.button; + if (this.disabled || + // Handle mouse event and pointer event and ignore touch event + (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( + // No primary button (Usually the left button) + isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 || + // Open context menu + event.ctrlKey)) { + return; + } + var action = getData(event.target, DATA_ACTION); + this.pointer = getPointer(event); + if (!REGEXP_ACTIONS.test(action)) { + return; + } + // This line is required for preventing page zooming in iOS browsers + event.preventDefault(); + this.action = action; + this.cropping = false; + if (action === ACTION_CROP) { + this.cropping = true; + var showMask = this.options.showMask; + if (showMask) { + addClass(this.dragBox, CLASS_MASK); + } + } + var hasCrop = get(this, 'cropBoxData.width', 0) !== 0 && get(this, 'cropBoxData.height', 0) !== 0; + dispatchEvent(this.element, EVENT_CROP_START, hasCrop ? this === null || this === void 0 ? void 0 : this.cropBoxData : null); + dispatchEvent(this.element, EVENT_CROP_CHANGE, hasCrop ? this === null || this === void 0 ? void 0 : this.cropBoxData : null); + }, + onCropMove: function onCropMove(event) { + var action = this.action; + if (!action) { + return; + } + this.pointer = Object.assign({}, this.pointer, getPointer(event, true)); + event.preventDefault(); + //添加事件 + this.change(event); + }, + onCropEnd: function onCropEnd(event) { + var action = this.action; + if (!action) { + return; + } + event.preventDefault(); + this.action = null; + this.point = null; + if (this.cropping) { + this.cropping = false; + // removeClass(this.dragBox, CLASS_MASK); + } + + var hasCrop = get(this, 'cropBoxData.width', 0) !== 0 && get(this, 'cropBoxData.height', 0) !== 0; + dispatchEvent(this.element, EVENT_CROP_CHANGE, hasCrop ? this === null || this === void 0 ? void 0 : this.cropBoxData : null); + hasCrop && dispatchEvent(this.element, EVENT_CROP_END, hasCrop ? this === null || this === void 0 ? void 0 : this.cropBoxData : null); + }, + change: function change(event) { + var options = this.options, + containerData = this.containerData, + _this$cropBoxData = this.cropBoxData, + cropBoxData = _this$cropBoxData === void 0 ? {} : _this$cropBoxData, + _this$pointer = this.pointer, + pointer = _this$pointer === void 0 ? {} : _this$pointer, + wrapper = this.wrapper; + var action = this.action; + //位置参数 + var left = cropBoxData.left, + top = cropBoxData.top, + width = cropBoxData.width, + height = cropBoxData.height; + var right = left + width; + var bottom = top + height; + var minLeft = 0; + var minTop = 0; + var maxWidth = containerData.width; + var maxHeight = containerData.height; + //各种转换后是否需要渲染 + var renderable = true; + var offset; + var range = { + x: pointer.endX - pointer.startX, + y: pointer.endY - pointer.startY + }; + var check = function check(side) { + switch (side) { + case ACTION_EAST: + if (right + range.x > maxWidth) { + range.x = maxWidth - right; + } + break; + case ACTION_WEST: + if (left + range.x < minLeft) { + range.x = minLeft - left; + } + break; + case ACTION_NORTH: + if (top + range.y < minTop) { + range.y = minTop - top; + } + break; + case ACTION_SOUTH: + if (bottom + range.y > maxHeight) { + range.y = maxHeight - bottom; + } + break; + default: + } + }; + switch (action) { + // Create crop box + case ACTION_CROP: + if (!range.x || !range.y) { + renderable = false; + break; + } + offset = getOffset(this.container); + left = pointer.startX - offset.left; + top = pointer.startY - offset.top; + width = cropBoxData.minWidth; + height = cropBoxData.minHeight; + if (!left) { + debugger; + } + if (range.x > 0) { + action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST; + } else if (range.x < 0) { + left -= width; + action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST; + } + if (range.y < 0) { + top -= height; + } + + // Show the crop box if is hidden + if (!this.cropped) { + removeClass(this.cropBox, CLASS_HIDDEN); + this.cropped = true; + if (this.limited) { + this.limitCropBox(true, true); + } + } + break; + // Move canvas + case ACTION_MOVE: + left += range.x; + top += range.y; + break; + + // 北n + // 东w 西e + // 南s + + // Resize crop box + case ACTION_EAST: + if (range.x >= 0 && right >= maxWidth) { + renderable = false; + break; + } + check(ACTION_EAST); + width += range.x; + if (width < 0) { + action = ACTION_WEST; + width = -width; + left -= width; + } + break; + case ACTION_NORTH: + if (range.y <= 0 && top <= minTop) { + renderable = false; + break; + } + check(ACTION_NORTH); + height -= range.y; + top += range.y; + if (height < 0) { + action = ACTION_SOUTH; + height = -height; + top -= height; + } + break; + case ACTION_WEST: + if (range.x <= 0 && left <= minLeft) { + renderable = false; + break; + } + check(ACTION_WEST); + width -= range.x; + left += range.x; + if (width < 0) { + action = ACTION_EAST; + width = -width; + left -= width; + } + break; + case ACTION_SOUTH: + if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + break; + } + check(ACTION_SOUTH); + height += range.y; + if (height < 0) { + action = ACTION_NORTH; + height = -height; + top -= height; + } + break; + case ACTION_NORTH_EAST: + check(ACTION_NORTH); + check(ACTION_EAST); + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width += range.x; + } + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + if (width < 0 && height < 0) { + action = ACTION_SOUTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_NORTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_SOUTH_EAST; + height = -height; + top -= height; + } + break; + case ACTION_NORTH_WEST: + check(ACTION_NORTH); + check(ACTION_WEST); + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + if (width < 0 && height < 0) { + action = ACTION_SOUTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_NORTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_SOUTH_WEST; + height = -height; + top -= height; + } + break; + case ACTION_SOUTH_WEST: + check(ACTION_SOUTH); + check(ACTION_WEST); + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + if (width < 0 && height < 0) { + action = ACTION_NORTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_SOUTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_NORTH_WEST; + height = -height; + top -= height; + } + break; + case ACTION_SOUTH_EAST: + check(ACTION_SOUTH); + check(ACTION_EAST); + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width += range.x; + } + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + if (width < 0 && height < 0) { + action = ACTION_NORTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_SOUTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_NORTH_EAST; + height = -height; + top -= height; + } + break; + default: + break; + } + if (renderable) { + cropBoxData.width = width; + cropBoxData.height = height; + cropBoxData.left = left; + cropBoxData.top = top; + this.action = action; + this.cropBoxData = cropBoxData; + this.renderCropBox(); + } + // Override + this.pointer.startX = this.pointer.endX; + this.pointer.startY = this.pointer.endY; + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/index.d.ts b/packages/meta/es/ImageEditor/cropper/index.d.ts new file mode 100644 index 0000000..5b4e2ff --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/index.d.ts @@ -0,0 +1,34 @@ +import './index.module.scss'; +export interface Option { + image?: string | HTMLImageElement; + showMask?: boolean; + cropBoxLimited?: { + width: number; + height: number; + top: number; + left: number; + }; + minCropBoxWidth?: number; + minCropBoxHeight?: number; + viewer?: any; + initialCropBoxData?: any; +} +declare class Cropper { + element: HTMLDivElement; + options: Option; + cropped: boolean; + limited: boolean; + image: HTMLImageElement; + eventHandleList: never[]; + container: Element; + dragBox: Element; + cropBox: Element; + viewBox: Element; + constructor(element: any, options?: any); + init(): Promise; + initDefaultCropBox(): void; + load(): Promise; + build(): void; + destroy(): void; +} +export default Cropper; diff --git a/packages/meta/es/ImageEditor/cropper/index.js b/packages/meta/es/ImageEditor/cropper/index.js new file mode 100644 index 0000000..8e9e19a --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/index.js @@ -0,0 +1,171 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var _dec, _class; +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +//@ts-nocheck +import { get, isPlainObject, isString, isNil } from '@zhst/func'; +import { addClass, removeClass } from 'rc-util/lib/Dom/class'; +import { Mixin, dispatchEvent } from "../utils"; +import { NAMESPACE, CLASS_HIDDEN, CLASS_MASK, EVENT_CROP_CHANGE, EVENT_CROP_END } from "./constants"; +import TEMPLATE from "./template"; +import Render from "./render"; +import Event from "./event"; +import ViewerBridge from "./viewerBridge"; +import Preview from "./preview"; +import "./index.module.scss"; +var Cropper = (_dec = Mixin(Render, Event, ViewerBridge, Preview), _dec(_class = /*#__PURE__*/function () { + function Cropper(element, options) { + _classCallCheck(this, Cropper); + /* 容器:挂在的节点 */ + _defineProperty(this, "element", void 0); + /* 配置项 */ + _defineProperty(this, "options", void 0); + /* 是否截图 */ + _defineProperty(this, "cropped", void 0); + /* crop框是否有限制 */ + _defineProperty(this, "limited", void 0); + /* 维护图片对象 */ + _defineProperty(this, "image", void 0); + /* 所有事件 */ + // eventHandleList: Array; + _defineProperty(this, "eventHandleList", []); + /* 方便访问dom元素 */ + _defineProperty(this, "container", void 0); + _defineProperty(this, "dragBox", void 0); + _defineProperty(this, "cropBox", void 0); + _defineProperty(this, "viewBox", void 0); + this.element = element; + this.options = Object.assign({}, isPlainObject(options) && options); + this.limited = isNil(this.options.cropBoxLimited) ? false : true; + this.cropped = false; + this.init(); + } + _createClass(Cropper, [{ + key: "init", + value: function () { + var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + this.build(); + //@ts-ignore + this.bind(); + //@ts-ignore + this.render(); + //@ts-ignore + this.initPreview(); + if (this.options.viewer) { + //@ts-ignore + this.initBridge(); + } + //初始化crop + this.initDefaultCropBox(); + case 6: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + function init() { + return _init.apply(this, arguments); + } + return init; + }() + }, { + key: "initDefaultCropBox", + value: function initDefaultCropBox() { + var _ref = this.options || {}, + initialCropBoxData = _ref.initialCropBoxData; + + // const initialCropBoxData = { + // height: 158.02902221679688, + // left: 410.132080078125, + // top: 133.201904296875, + // width: 211.97821044921875, + // }; + if (initialCropBoxData) { + this.cropped = true; + var showMask = this.options.showMask; + showMask && addClass(this.dragBox, CLASS_MASK); + removeClass(this.cropBox, CLASS_HIDDEN); + //@ts-ignore + this.cropBoxData = _objectSpread(_objectSpread({}, this.cropBoxData), initialCropBoxData); + //@ts-ignore + this.renderCropBox(); + var hasCrop = get(this, 'cropBoxData.width', 0) !== 0 && get(this, 'cropBoxData.height', 0) !== 0; + //@ts-ignore + dispatchEvent(this.element, EVENT_CROP_CHANGE, hasCrop ? this === null || this === void 0 ? void 0 : this.cropBoxData : null); + //@ts-ignore + hasCrop && dispatchEvent(this.element, EVENT_CROP_END, hasCrop ? this === null || this === void 0 ? void 0 : this.cropBoxData : null); + } + } + }, { + key: "load", + value: function load() { + var _this = this; + return new Promise(function (resolve, reject) { + var propImage = _this.options.image; + if (isString(propImage)) { + var image = new Image(); + var imgUrl = propImage; + image.crossOrigin = 'anonymous'; + image.src = imgUrl; + image.onload = function () { + _this.image = image; + resolve(image); + }; + image.onerror = function (err) { + reject(err); + }; + } else { + _this.image = propImage; + resolve(propImage); + } + }); + } + }, { + key: "build", + value: function build() { + // Create cropper elements + var template = document.createElement('div'); + template.innerHTML = TEMPLATE; + var container = template.querySelector(".".concat(NAMESPACE, "-container")); + var dragBox = container.querySelector(".".concat(NAMESPACE, "-drag-box")); + var cropBox = container.querySelector(".".concat(NAMESPACE, "-crop-box")); + var viewBox = container.querySelector(".".concat(NAMESPACE, "-view-box")); + this.element.appendChild(container); + this.container = container; + this.dragBox = dragBox; + this.cropBox = cropBox; + this.viewBox = viewBox; + + //先隐藏crop + addClass(cropBox, CLASS_HIDDEN); + } + }, { + key: "destroy", + value: function destroy() { + var _this$element, _this$element$removeC; + if (this.options.viewer) { + //@ts-ignore + this.clearBridge(); + } + //清理事件 + //@ts-ignore + this.unbind(); + //清理dom + (_this$element = this.element) === null || _this$element === void 0 || (_this$element$removeC = _this$element.removeChild) === null || _this$element$removeC === void 0 || _this$element$removeC.call(_this$element, this.container); + } + }]); + return Cropper; +}()) || _class); +export default Cropper; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/index.module.scss b/packages/meta/es/ImageEditor/cropper/index.module.scss new file mode 100644 index 0000000..f341aee --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/index.module.scss @@ -0,0 +1,194 @@ +$prefix: zhst; + +:global { + // .zhst-cropper-container { + // width: 100px; + // } + .zhst-cropper { + &-container { + position: relative; + direction: ltr; + font-size: 0; + line-height: 0; + touch-action: none; + user-select: none; + } + + &-container, + &-wrap-box, + &-canvas, + &-drag-box, + &-crop-box, + &-face, + &-modal { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + + &-drag-box { + cursor: crosshair; + } + + &-view-box { + display: block; + overflow: hidden; + width: 100%; + height: 100%; + outline: 1px solid #39f; + outline-color: rgb(51 153 255 / 75%); + } + + //mask + &-mask { + background-color: rgb(0 0 0 / 50%); + } + + //拖拽 + &-face { + background-color: #fff; + cursor: move; + opacity: 0; + } + + //点 + &-point { + position: absolute; + width: 6px; + height: 6px; + + // background: #fff; + background-color: #39f; + border-radius: 50%; + + // border: 0.2px solid #000; + + // 北n + // 东w 西e + // 南s + + &.point-nw { + top: -3px; + left: -3px; + cursor: nwse-resize; + } + + &.point-n { + top: -3px; + left: 50%; + cursor: ns-resize; + transform: translateX(-50%); + } + + &.point-ne { + top: -3px; + right: -3px; + cursor: nesw-resize; + } + + &.point-w { + top: 50%; + left: -3px; + cursor: ew-resize; + transform: translateY(-50%); + } + + &.point-e { + top: 50%; + right: -3px; + cursor: ew-resize; + transform: translateY(-50%); + } + + &.point-sw { + bottom: -3px; + left: -3px; + cursor: nesw-resize; + } + + &.point-s { + bottom: -3px; + left: 50%; + cursor: ns-resize; + transform: translateX(-50%); + } + + &.point-se { + right: -3px; + bottom: -3px; + cursor: nwse-resize; + } + } + + //线 + &-line { + // opacity: 0.1; + position: absolute; + display: block; + width: 100%; + height: 100%; + background-color: #39f; + + &.line-e { + top: 0; + right: -1px; + width: 2px; + cursor: ew-resize; + } + + &.line-n { + top: -1px; + left: 0; + height: 2px; + cursor: ns-resize; + } + + &.line-w { + top: 0; + left: -1px; + width: 2px; + cursor: ew-resize; + } + + &.line-s { + bottom: -1px; + left: 0; + height: 2px; + cursor: ns-resize; + } + } + + //辅助class + &-invisible { + opacity: 0; + } + + &-hide { + position: absolute; + display: block; + width: 0; + height: 0; + } + + &-hidden { + display: none !important; + } + + &-move { + cursor: move; + } + + &-crop { + cursor: crosshair; + } + + &-disabled &-drag-box, + &-disabled &-face, + &-disabled &-line, + &-disabled &-point { + cursor: not-allowed; + } + } +} diff --git a/packages/meta/es/ImageEditor/cropper/preview.d.ts b/packages/meta/es/ImageEditor/cropper/preview.d.ts new file mode 100644 index 0000000..c186490 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/preview.d.ts @@ -0,0 +1,6 @@ +declare const _default: { + previewBox: null; + initPreview(): void; + renderPreview(): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/cropper/preview.js b/packages/meta/es/ImageEditor/cropper/preview.js new file mode 100644 index 0000000..46fcebc --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/preview.js @@ -0,0 +1,54 @@ +//@ts-nocheck +import { set } from 'rc-util/lib/Dom/css'; +import { getTransforms } from "../utils"; +export default { + //var + previewBox: null, + //method + initPreview: function initPreview() { + var _this$options = this.options, + showMask = _this$options.showMask, + img = _this$options.img, + viewer = _this$options.viewer; + if (!showMask) return; + if (viewer) { + //如果是传了一个viewer 进来 + //整一个canvas 渲染 + var canvas = document.createElement('canvas'); + canvas.width = this.containerData.width; + canvas.height = this.containerData.height; + this.viewBox.appendChild(canvas); + this.previewBox = canvas; + //设置canvas 监听 + } else { + //如果是传了图片 则渲染图片 + var image = document.createElement('img'); + image.src = img; + this.viewBox.appendChild(image); + this.previewBox = image; + } + }, + renderPreview: function renderPreview() { + var _this$options2 = this.options, + showMask = _this$options2.showMask, + img = _this$options2.img, + viewer = _this$options2.viewer; + if (!showMask) return; + var containerData = this.containerData, + cropBoxData = this.cropBoxData; + var width = containerData.width, + height = containerData.height; + var left = cropBoxData.left; + var top = cropBoxData.top; + if (!this.cropped || this.disabled) { + return; + } + set(this.previewBox, Object.assign({ + width: width, + height: height + }, getTransforms(Object.assign({ + translateX: -left, + translateY: -top + })))); + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/render.d.ts b/packages/meta/es/ImageEditor/cropper/render.d.ts new file mode 100644 index 0000000..a2c73c3 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/render.d.ts @@ -0,0 +1,20 @@ +declare const _default: { + cropBoxData: null; + viewBoxImage: null; + render(): void; + initContainer(): void; + initCropBox(): void; + renderCropBox(): void; + clearCropBox(): { + cropBoxData: null; + viewBoxImage: null; + render(): void; + initContainer(): void; + initCropBox(): void; + renderCropBox(): void; + clearCropBox(): any; + limitCropBox(sizeLimited: any, positionLimited: any): void; + }; + limitCropBox(sizeLimited: any, positionLimited: any): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/cropper/render.js b/packages/meta/es/ImageEditor/cropper/render.js new file mode 100644 index 0000000..2e462cf --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/render.js @@ -0,0 +1,132 @@ +//@ts-nocheck +import { set, getOuterWidth, getOuterHeight } from 'rc-util/lib/Dom/css'; +import { addClass, removeClass } from 'rc-util/lib/Dom/class'; +import { getTransforms } from "../utils"; +import { CLASS_MASK, CLASS_HIDDEN } from "./constants"; +export default { + cropBoxData: null, + viewBoxImage: null, + render: function render() { + this.initContainer(); + this.initCropBox(); + this.limitCropBox(true, true); + }, + initContainer: function initContainer() { + //通过样式设置 不依赖父元素的prosition + var element = this.element, + container = this.container; + var containerData = { + width: getOuterWidth(element), + height: getOuterHeight(element) + }; + this.containerData = containerData; + set(container, containerData); + }, + initCropBox: function initCropBox() { + var containerData = this.containerData, + options = this.options; + var cropBoxData = { + // width: containerData.width, + // height: containerData.height, + width: 0, + height: 0, + left: 0, + top: 0, + minWidth: 0, + minHeight: 0, + maxWidth: containerData.width, + maxHeight: containerData.height, + minLeft: 0, + maxLeft: containerData.width, + minTop: 0, + maxTop: containerData.height, + oldLeft: 0, + oldTop: 0 + }; + this.cropBoxData = cropBoxData; + this.limitCropBox(true, true); + }, + renderCropBox: function renderCropBox() { + var cropBoxData = this.cropBoxData; + if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) { + cropBoxData.left = cropBoxData.oldLeft; + } + if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) { + cropBoxData.top = cropBoxData.oldTop; + } + cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth); + cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); + this.limitCropBox(false, true); + cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft); + cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop); + cropBoxData.oldLeft = cropBoxData.left; + cropBoxData.oldTop = cropBoxData.top; + set(this.cropBox, Object.assign({ + width: cropBoxData.width, + height: cropBoxData.height + }, getTransforms({ + translateX: cropBoxData.left, + translateY: cropBoxData.top + }))); + if (this.options.showMask) { + this.renderPreview(); + } + }, + clearCropBox: function clearCropBox() { + // Clear the crop box + if (this.cropped && !this.disabled) { + Object.assign(this.cropBoxData, { + left: 0, + top: 0, + width: 0, + height: 0 + }); + this.cropped = false; + this.renderCropBox(); + + // Render canvas after crop box rendered + // this.renderCanvas(); + removeClass(this.dragBox, CLASS_MASK); + addClass(this.cropBox, CLASS_HIDDEN); + } + return this; + }, + limitCropBox: function limitCropBox(sizeLimited, positionLimited) { + // return + var options = this.options, + containerData = this.containerData, + cropBoxData = this.cropBoxData, + limited = this.limited; + var _options$cropBoxLimit = options.cropBoxLimited, + cropBoxLimited = _options$cropBoxLimit === void 0 ? {} : _options$cropBoxLimit; + if (sizeLimited) { + var minCropBoxWidth = Number(options.minCropBoxWidth) || 0; + var minCropBoxHeight = Number(options.minCropBoxHeight) || 0; + var maxCropBoxWidth = limited ? Math.min(containerData.width, cropBoxLimited.width, cropBoxLimited.width + cropBoxLimited.left, containerData.width - cropBoxLimited.left) : containerData.width; + var maxCropBoxHeight = limited ? Math.min(containerData.height, cropBoxLimited.height, cropBoxLimited.height + cropBoxLimited.top, containerData.height - cropBoxLimited.top) : containerData.height; + + // The min/maxCropBoxWidth/Height must be less than container's width/height + minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width); + minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height); + + // The minWidth/Height must be less than maxWidth/Height + cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth); + cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight); + cropBoxData.maxWidth = maxCropBoxWidth; + cropBoxData.maxHeight = maxCropBoxHeight; + } + if (positionLimited) { + if (limited) { + cropBoxData.minLeft = Math.max(0, cropBoxLimited.left); + cropBoxData.minTop = Math.max(0, cropBoxLimited.top); + cropBoxData.maxLeft = Math.min(containerData.width, cropBoxLimited.left + cropBoxLimited.width) - cropBoxData.width; + cropBoxData.maxTop = Math.min(containerData.height, cropBoxLimited.top + cropBoxLimited.height) - cropBoxData.height; + } else { + cropBoxData.minLeft = 0; + cropBoxData.minTop = 0; + cropBoxData.maxLeft = containerData.width - cropBoxData.width; + cropBoxData.maxTop = containerData.height - cropBoxData.height; + } + } + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/template.js b/packages/meta/es/ImageEditor/cropper/template.js new file mode 100644 index 0000000..505801b --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/template.js @@ -0,0 +1,2 @@ +import { NAMESPACE } from "./constants"; +export default "\n
\n
\n
\n \n >\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n"); \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/cropper/viewerBridge.d.ts b/packages/meta/es/ImageEditor/cropper/viewerBridge.d.ts new file mode 100644 index 0000000..c1694cd --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/viewerBridge.d.ts @@ -0,0 +1,7 @@ +declare const _default: { + initBridge(): void; + onTransformChange(viewer: any): void; + onWheel(event: any): void; + clearBridge(): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/cropper/viewerBridge.js b/packages/meta/es/ImageEditor/cropper/viewerBridge.js new file mode 100644 index 0000000..0b2a340 --- /dev/null +++ b/packages/meta/es/ImageEditor/cropper/viewerBridge.js @@ -0,0 +1,92 @@ +//@ts-nocheck +import { addEventlistener } from '@zhst/func'; +import { EVENT_WHEEL } from "./constants"; +import { EVENT_VIEWER_TRANSFORM_CHANGE } from "../viewer/constants"; +export default { + initBridge: function initBridge() { + var _this = this; + var container = this.container, + element = this.element, + _this$eventHandleList = this.eventHandleList, + eventHandleList = _this$eventHandleList === void 0 ? [] : _this$eventHandleList, + option = this.option; + if (this.options.viewer) { + var viewer = this.options.viewer; + //添加缩放事件 + var handleWhele = addEventlistener(container, EVENT_WHEEL, this.onWheel.bind(this)); + eventHandleList.push(handleWhele); + //添加事件监听 获取limit crop box & 渲染canvas + this.onTransformChange(viewer); + this.limited = true; + var handleTransformChange = addEventlistener(viewer.element, EVENT_VIEWER_TRANSFORM_CHANGE, function (event) { + _this.onTransformChange(viewer); + }); + eventHandleList.push(handleTransformChange); + } + }, + onTransformChange: function onTransformChange(viewer) { + if (!viewer.image) return; + var _viewer$image = viewer.image, + imgWidth = _viewer$image.width, + imgHeight = _viewer$image.height; + var _ref = viewer.targetTransform || {}, + _ref$rotate = _ref.rotate, + rotate = _ref$rotate === void 0 ? 0 : _ref$rotate; + var imgLeftTop = { + x: 0, + y: 0 + }; + var imgRightBottom = { + x: imgWidth, + y: imgHeight + }; + if (rotate % 180 !== 0) { + //todo:旋转测试 + var diffx = (imgWidth - imgHeight) / 2; + var diffy = (imgHeight - imgWidth) / 2; + imgLeftTop = { + x: imgLeftTop.x + diffx, + y: imgLeftTop.y + diffy + }; + imgRightBottom = { + x: imgRightBottom.x - diffx, + y: imgRightBottom.y - diffy + }; + } + var _viewer$originAxisToC = viewer.originAxisToCanvasAxis({ + x: imgLeftTop.x, + y: imgLeftTop.y + }), + x1 = _viewer$originAxisToC.x, + y1 = _viewer$originAxisToC.y; + var _viewer$originAxisToC2 = viewer.originAxisToCanvasAxis({ + x: imgRightBottom.x, + y: imgRightBottom.y + }), + x2 = _viewer$originAxisToC2.x, + y2 = _viewer$originAxisToC2.y; + var limitCropBox = { + left: x1, + top: y1, + width: x2 - x1, + height: y2 - y1 + }; + this.options.cropBoxLimited = limitCropBox; + this.limitCropBox(true, true); + + //渲染预览框 + if (this.previewBox) { + var canvas = this.previewBox; + var ctx = canvas.getContext('2d'); + var viewerRender = viewer.renderCanvas.bind(viewer); + viewerRender(ctx); + } + }, + onWheel: function onWheel(event) { + var viewer = this.options.viewer; + //onwheel + var onViewerWheelHandler = viewer.onWheel.bind(viewer); + onViewerWheelHandler(event, this.cropped ? this.cropBoxData : null); + }, + clearBridge: function clearBridge() {} +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/index.d.ts b/packages/meta/es/ImageEditor/index.d.ts new file mode 100644 index 0000000..61a9d1c --- /dev/null +++ b/packages/meta/es/ImageEditor/index.d.ts @@ -0,0 +1,4 @@ +export { default as Cropper } from './cropper'; +export { default as Viewer } from './viewer'; +export { EVENT_CROP_CHANGE, EVENT_CROP_START, EVENT_CROP_END } from './cropper/constants'; +export { EVENT_VIEWER_TRANSFORM_CHANGE, EVENT_VIEWER_READY, EVENT_VIEWER_ERROR, EVENT_SHAPE_SELECT, EVENT_EYE_DONE, } from './viewer/constants'; diff --git a/packages/meta/es/ImageEditor/index.js b/packages/meta/es/ImageEditor/index.js new file mode 100644 index 0000000..cda3a99 --- /dev/null +++ b/packages/meta/es/ImageEditor/index.js @@ -0,0 +1,7 @@ +//@ts-nocheck +export { default as Cropper } from "./cropper"; +export { default as Viewer } from "./viewer"; + +//custom event +export { EVENT_CROP_CHANGE, EVENT_CROP_START, EVENT_CROP_END } from "./cropper/constants"; +export { EVENT_VIEWER_TRANSFORM_CHANGE, EVENT_VIEWER_READY, EVENT_VIEWER_ERROR, EVENT_SHAPE_SELECT, EVENT_EYE_DONE } from "./viewer/constants"; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/interface.d.ts b/packages/meta/es/ImageEditor/interface.d.ts new file mode 100644 index 0000000..54ccf05 --- /dev/null +++ b/packages/meta/es/ImageEditor/interface.d.ts @@ -0,0 +1,3 @@ +//@ts-nocheck +export { Option as CropOption } from './cropper'; +export { Option as ViewOption } from './viewer'; diff --git a/packages/meta/es/ImageEditor/utils.d.ts b/packages/meta/es/ImageEditor/utils.d.ts new file mode 100644 index 0000000..ff0e497 --- /dev/null +++ b/packages/meta/es/ImageEditor/utils.d.ts @@ -0,0 +1,89 @@ +export declare const IS_BROWSER: boolean; +export declare const WINDOW: {}; +export declare const IS_TOUCH_DEVICE: boolean; +export declare const HAS_POINTER_EVENT: boolean; +/** + * Transform the given string from camelCase to kebab-case + * @param {string} value - The value to transform. + * @returns {string} The transformed value. + */ +export declare function toParamCase(value: any): any; +/** + * Get data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to get. + * @returns {string} The data value. + */ +export declare function getData(element: any, name: any): any; +export declare function toggleClass(node: HTMLElement, className: string): void; +/** + * Get a pointer from an event object. + * @param {Object} event - The target event object. + * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. + * @returns {Object} The result pointer contains start and/or end point coordinates. + */ +export declare function getPointer({ pageX, pageY }: { + pageX: any; + pageY: any; +}, endOnly?: any): { + endX: any; + endY: any; +} | { + endX: any; + endY: any; + startX: any; + startY: any; +}; +/** + * Get the offset base on the document. + * @param {Element} element - The target element. + * @returns {Object} The offset data. + */ +export declare function getOffset(element: any): { + left: any; + top: any; +}; +/** + * Get transforms base on the given object. + * @param {Object} obj - The target object. + * @returns {string} A string contains transform values. + */ +export declare function getTransforms({ rotate, scaleX, scaleY, translateX, translateY, }: { + rotate?: number; + scaleX?: number; + scaleY?: number; + translateX?: number; + translateY?: number; +}): { + WebkitTransform: string; + msTransform: string; + transform: string; +}; +/** + * copy from https://github.com/steelsojka/lodash-decorators/blob/master/src/mixin.ts + * Mixins an object into the classes prototype. + * @export + * @param {...Object[]} srcs + * @returns {ClassDecorator} + * @example + * + * const myMixin = { + * blorg: () => 'blorg!' + * } + * + * @Mixin(myMixin) + * class MyClass {} + * + * const myClass = new MyClass(); + * + * myClass.blorg(); // => 'blorg!' + */ +export declare function Mixin(...srcs: Object[]): ClassDecorator; +/** + * Dispatch event on the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Object} data - The additional event data. + * @returns {boolean} Indicate if the event is default prevented or not. + */ +export declare function dispatchEvent(element: any, type: any, data?: any): any; diff --git a/packages/meta/es/ImageEditor/utils.js b/packages/meta/es/ImageEditor/utils.js new file mode 100644 index 0000000..13b6199 --- /dev/null +++ b/packages/meta/es/ImageEditor/utils.js @@ -0,0 +1,173 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +//@ts-nocheck +import { isObject, isNumber, assign, isFunction } from '@zhst/func'; +import { hasClass, addClass, removeClass } from 'rc-util/lib/Dom/class'; +export var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined'; +export var WINDOW = IS_BROWSER ? window : {}; +export var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false; +export var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false; + +// 横杠转换驼峰 +function toHump(name) { + return name.replace(/\-(\w)/g, function (all, letter) { + return letter.toUpperCase(); + }); +} +var REGEXP_CAMEL_CASE = /([a-z\d])([A-Z])/g; +/** + * Transform the given string from camelCase to kebab-case + * @param {string} value - The value to transform. + * @returns {string} The transformed value. + */ +export function toParamCase(value) { + return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase(); +} + +/** + * Get data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to get. + * @returns {string} The data value. + */ +export function getData(element, name) { + if (isObject(element[name])) { + return element[name]; + } + if (element.dataset) { + return element.dataset[toHump(name)]; + } + return element.getAttribute("data-".concat(toParamCase(name))); +} +export function toggleClass(node, className) { + if (hasClass(node, className)) { + addClass(node, className); + } else { + removeClass(node, className); + } +} + +/** + * Get a pointer from an event object. + * @param {Object} event - The target event object. + * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. + * @returns {Object} The result pointer contains start and/or end point coordinates. + */ +export function getPointer(_ref, endOnly) { + var pageX = _ref.pageX, + pageY = _ref.pageY; + var end = { + endX: pageX, + endY: pageY + }; + return endOnly ? end : _objectSpread({ + startX: pageX, + startY: pageY + }, end); +} + +/** + * Get the offset base on the document. + * @param {Element} element - The target element. + * @returns {Object} The offset data. + */ +export function getOffset(element) { + var box = element.getBoundingClientRect(); + return { + left: box.left + (window.pageXOffset - document.documentElement.clientLeft), + top: box.top + (window.pageYOffset - document.documentElement.clientTop) + }; +} + +/** + * Get transforms base on the given object. + * @param {Object} obj - The target object. + * @returns {string} A string contains transform values. + */ +export function getTransforms(_ref2) { + var rotate = _ref2.rotate, + scaleX = _ref2.scaleX, + scaleY = _ref2.scaleY, + translateX = _ref2.translateX, + translateY = _ref2.translateY; + var values = []; + if (isNumber(translateX) && translateX !== 0) { + values.push("translateX(".concat(translateX, "px)")); + } + if (isNumber(translateY) && translateY !== 0) { + values.push("translateY(".concat(translateY, "px)")); + } + + // Rotate should come first before scale to match orientation transform + if (isNumber(rotate) && rotate !== 0) { + values.push("rotate(".concat(rotate, "deg)")); + } + if (isNumber(scaleX) && scaleX !== 1) { + values.push("scaleX(".concat(scaleX, ")")); + } + if (isNumber(scaleY) && scaleY !== 1) { + values.push("scaleY(".concat(scaleY, ")")); + } + var transform = values.length ? values.join(' ') : 'none'; + return { + WebkitTransform: transform, + msTransform: transform, + transform: transform + }; +} + +/** + * copy from https://github.com/steelsojka/lodash-decorators/blob/master/src/mixin.ts + * Mixins an object into the classes prototype. + * @export + * @param {...Object[]} srcs + * @returns {ClassDecorator} + * @example + * + * const myMixin = { + * blorg: () => 'blorg!' + * } + * + * @Mixin(myMixin) + * class MyClass {} + * + * const myClass = new MyClass(); + * + * myClass.blorg(); // => 'blorg!' + */ +export function Mixin() { + for (var _len = arguments.length, srcs = new Array(_len), _key = 0; _key < _len; _key++) { + srcs[_key] = arguments[_key]; + } + return function (target) { + assign.apply(void 0, [target.prototype].concat(srcs)); + return target; + }; +} + +/** + * Dispatch event on the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Object} data - The additional event data. + * @returns {boolean} Indicate if the event is default prevented or not. + */ +export function dispatchEvent(element, type, data) { + var event; + // Event and CustomEvent on IE9-11 are global objects, not constructors + if (isFunction(Event) && isFunction(CustomEvent)) { + event = new CustomEvent(type, { + detail: data, + bubbles: true, + cancelable: true + }); + } else { + event = document.createEvent('CustomEvent'); + event.initCustomEvent(type, true, true, data); + } + return element.dispatchEvent(event); +} \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/viewer/constants.d.ts b/packages/meta/es/ImageEditor/viewer/constants.d.ts new file mode 100644 index 0000000..78e2e09 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/constants.d.ts @@ -0,0 +1,26 @@ +export declare const NAMESPACE = "zhst-viewer"; +export declare const ACTION_DRAG = "drag"; +export declare const CLASS_CANVAS: string; +export declare const CLASS_MOVE: string; +export declare const EVENT_CLICK = "click"; +export declare const EVENT_TOUCH_START: string; +export declare const EVENT_TOUCH_MOVE: string; +export declare const EVENT_TOUCH_END: string; +export declare const EVENT_POINTER_DOWN: string; +export declare const EVENT_POINTER_MOVE: string; +export declare const EVENT_POINTER_UP: string; +export declare const EVENT_WHEEL = "wheel"; +export declare const EVENT_LEAVEL = "mouseleave"; +export declare const EVENT_ENTER = "mouseenter"; +export declare const EVENT_VIEWER_TRANSFORM_CHANGE = "viewer-transform-change"; +export declare const EVENT_VIEWER_READY = "viewer-ready"; +export declare const EVENT_VIEWER_ERROR = "viewer-error"; +export declare const EVENT_SHAPE_SELECT = "shape-select"; +export declare const EVENT_EYE_DONE = "eye-done"; +export declare const REGEXP_SPACES: RegExp; +export declare const AXIS_TYPE_ORIGIN = 1; +export declare const AXIS_TYPE_CANVAS = 2; +export declare const AXIS_TYPE_IMAGE = 3; +export declare const SHAPE_TYPE_CUSTOM = 1; +export declare const SHAPE_TYPE_RECT = 2; +export declare const SHAPE_TYPE_CIRCLE = 3; diff --git a/packages/meta/es/ImageEditor/viewer/constants.js b/packages/meta/es/ImageEditor/viewer/constants.js new file mode 100644 index 0000000..e394819 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/constants.js @@ -0,0 +1,42 @@ +import { IS_TOUCH_DEVICE, HAS_POINTER_EVENT } from "../utils"; +export var NAMESPACE = 'zhst-viewer'; + +// Actions +export var ACTION_DRAG = 'drag'; + +// Classes +export var CLASS_CANVAS = "".concat(NAMESPACE, "-canvas"); +export var CLASS_MOVE = "".concat(NAMESPACE, "-move"); + +// Events +export var EVENT_CLICK = 'click'; +export var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown'; +export var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove'; +export var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup'; +export var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START; +export var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE; +export var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END; +export var EVENT_WHEEL = 'wheel'; +export var EVENT_LEAVEL = 'mouseleave'; +export var EVENT_ENTER = 'mouseenter'; +//custom event +export var EVENT_VIEWER_TRANSFORM_CHANGE = 'viewer-transform-change'; +export var EVENT_VIEWER_READY = 'viewer-ready'; +export var EVENT_VIEWER_ERROR = 'viewer-error'; +export var EVENT_SHAPE_SELECT = 'shape-select'; +export var EVENT_EYE_DONE = 'eye-done'; + +// RegExps +export var REGEXP_SPACES = /\s\s*/; + +//变换前的坐标(左上角为原点) +export var AXIS_TYPE_ORIGIN = 1; +//变换后显示在画布中的坐标(还是左上角为原点) +export var AXIS_TYPE_CANVAS = 2; +//基于图片的坐标轴 原点为图片左上角 +export var AXIS_TYPE_IMAGE = 3; + +//形状 +export var SHAPE_TYPE_CUSTOM = 1; +export var SHAPE_TYPE_RECT = 2; +export var SHAPE_TYPE_CIRCLE = 3; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/viewer/event.d.ts b/packages/meta/es/ImageEditor/viewer/event.d.ts new file mode 100644 index 0000000..9d75922 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/event.d.ts @@ -0,0 +1,15 @@ +declare const _default: { + disabled: boolean; + eventHandleList: never[]; + wheeling: boolean; + pointer: null; + action: null; + bind(): void; + unbind(): void; + onWheel(event: any, cropBox?: any): void; + onDragStart(event: any): void; + onDragMove(event: any): void; + onDragEnd(event: any): void; + onClick(event: any): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/viewer/event.js b/packages/meta/es/ImageEditor/viewer/event.js new file mode 100644 index 0000000..93f8638 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/event.js @@ -0,0 +1,197 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +//@ts-nocheck +import { isNumber, get, addEventListener } from '@zhst/func'; +import { addClass, removeClass } from 'rc-util/lib/Dom/class.js'; +import guid from 'rc-util/lib/guid'; +import warn from 'rc-util/lib/warn'; +import { getPointer, dispatchEvent } from "../utils"; +import { CLASS_MOVE, ACTION_DRAG, +// event +EVENT_CLICK, EVENT_WHEEL, EVENT_POINTER_DOWN, EVENT_POINTER_MOVE, EVENT_POINTER_UP, EVENT_EYE_DONE, +//正则 +REGEXP_SPACES, SHAPE_TYPE_CIRCLE } from "./constants"; +export default { + //store + disabled: false, + eventHandleList: [], + wheeling: false, + pointer: null, + action: null, + //method + bind: function bind() { + var _this = this; + var canvas = this.canvas, + element = this.element, + _this$eventHandleList = this.eventHandleList, + eventHandleList = _this$eventHandleList === void 0 ? [] : _this$eventHandleList, + options = this.options; + //图片事件 + var scaleAble = get(options, 'scaleAble', true); + if (scaleAble) { + var handleWhele = addEventListener(canvas, EVENT_WHEEL, this.onWheel.bind(this)); + eventHandleList.push(handleWhele); + } + var dragAble = get(options, 'dragAble', true); + if (dragAble) { + var handleDragStart = addEventListener(canvas, EVENT_POINTER_DOWN, this.onDragStart.bind(this)); + eventHandleList.push(addEventListener); + var handleDragMove = addEventListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onDragMove.bind(this)); + eventHandleList.push(handleDragMove); + EVENT_POINTER_UP.trim().split(REGEXP_SPACES).forEach(function (eventName) { + var handleDragEnd = addEventListener(element.ownerDocument, eventName, _this.onDragEnd.bind(_this)); + eventHandleList.push(handleDragEnd); + }); + } + + //rect事件 + var handleClick = addEventListener(canvas, EVENT_CLICK, this.onClick.bind(this)); + eventHandleList.push(handleClick); + // const handleLeveal = addEventListener(canvas, EVENT_LEAVEL, this.onLeavel.bind(this)); + // eventHandleList.push(handleLeveal); + // const handleEnter = addEventListener(canvas, EVENT_ENTER, this.onEnter.bind(this)); + // eventHandleList.push(handleEnter); + }, + unbind: function unbind() { + var eventHandleList = this.eventHandleList; + for (var index = eventHandleList.length; index > 0; index--) { + var handler = eventHandleList.shift(); + try { + handler.remove(); + } catch (error) { + warn('VIEWER:REMOVE_EVENT_FAIL,', error); + } + } + }, + /* 图片事件 */onWheel: function onWheel(event, cropBox) { + var _this2 = this; + event.stopPropagation(); + event.preventDefault(); + + // Limit wheel speed to prevent zoom too fast + if (this.wheeling || !this.zoomable) { + return; + } + this.wheeling = true; + setTimeout(function () { + _this2.wheeling = false; + }, 16); + var ratio = Number(this.options.zoomRatio) || 0.1; + var delta = 1; + if (event.deltaY) { + delta = event.deltaY > 0 ? 1 : -1; + } else if (event.wheelDelta) { + delta = -event.wheelDelta / 120; + } else if (event.detail) { + delta = event.detail > 0 ? 1 : -1; + } + var step = -delta * ratio; + var pos = this.windowToCanvasAxis(event); + this.calcTransform({ + scaleCenter: _objectSpread(_objectSpread({}, pos), {}, { + step: step + }) + }, cropBox); + }, + onDragStart: function onDragStart(event) { + event.stopPropagation(); + // This line is required for preventing page zooming in iOS browsers + event.preventDefault(); + var buttons = event.buttons, + button = event.button; + if (!this.movable) { + return; + } + if (this.disabled || + // Handle mouse event and pointer event and ignore touch event + (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( + // No primary button (Usually the left button) + isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 || + // Open context menu + event.ctrlKey)) { + return; + } + this.pointer = getPointer(event); + this.action = ACTION_DRAG; + addClass(this.canvas, CLASS_MOVE); + }, + onDragMove: function onDragMove(event) { + event.stopPropagation(); + + /***************************************************/ + //todo:看下怎么拆shape 事件 + var pointerCenter = this.windowToCanvasAxis(event); + var id = this.calcSelectShape(pointerCenter); + this.hoverShapId = id; + /***************************************************/ + + var action = this.action; + if (!action) { + return; + } + this.pointer = Object.assign({}, this.pointer, getPointer(event, true)); + event.preventDefault(); + var range = { + x: this.pointer.endX - this.pointer.startX, + y: this.pointer.endY - this.pointer.startY + }; + this.calcTransform({ + translateX: range.x, + translateY: range.y + }); + // Override + this.pointer.startX = this.pointer.endX; + this.pointer.startY = this.pointer.endY; + }, + onDragEnd: function onDragEnd(event) { + event.stopPropagation(); + var action = this.action; + if (!action) { + return; + } + event.preventDefault(); + this.action = null; + this.point = null; + removeClass(this.canvas, CLASS_MOVE); + }, + /* rect事件 */ + // onLeavel(event) { + // const pointerCenter = this.windowToCanvasAxis(event); + // this.highlightShape(pointerCenter); + // }, + // onEnter(event) { + // this.highlightShape(null); + // }, + onClick: function onClick(event) { + event.stopPropagation(); + var pointerCenter = this.windowToCanvasAxis(event); + if (!this.isEyeOpen) { + var id = this.calcSelectShape(pointerCenter); + this.setSelectShapId(id); + } else { + //双目 + //先直接写在这里 + //过滤掉框,只有point + var pointShapeList = this.shapeList.filter(function (v) { + return !v['w']; + }); + if (pointShapeList.length === 5) return; + var originAxis = this.canvasAxisToOriginAxis(pointerCenter); + var imageAxis = this.originAxisToImgAxis(originAxis); + this.addShape(_objectSpread({ + id: "pointer_".concat(guid()), + selectAble: false + }, imageAxis), SHAPE_TYPE_CIRCLE); + pointShapeList = this.shapeList.filter(function (v) { + return !v['w']; + }); + if (pointShapeList.length === 5) { + dispatchEvent(this.element, EVENT_EYE_DONE); + } + } + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/viewer/helper.d.ts b/packages/meta/es/ImageEditor/viewer/helper.d.ts new file mode 100644 index 0000000..8869f7c --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/helper.d.ts @@ -0,0 +1,43 @@ +export declare const setNumberAccuracy: (originNumber: number, accuracy?: number, isCeil?: boolean) => number; +declare const _default: { + windowToCanvasAxis(event: any): any; + offsetAxisToCanvasAxis({ x, y }: { + x: any; + y: any; + }): any; + originAxisToCanvasAxis({ x, y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + canvasAxisToOriginAxis({ x, y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + imgRectAxisToCanvasAxisRect({ x, y, w, h, ...others }: { + [x: string]: any; + x?: number | undefined; + y?: number | undefined; + w?: number | undefined; + h?: number | undefined; + }): any; + originAxisToImgAxis({ x, y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + imgAxisToOriginAxis({ x: _x, y: _y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + getDataUrlbyOriginAxis({ x, y, w, h, ...others }: { + [x: string]: any; + x?: number | undefined; + y?: number | undefined; + w?: number | undefined; + h?: number | undefined; + }): string; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/viewer/helper.js b/packages/meta/es/ImageEditor/viewer/helper.js new file mode 100644 index 0000000..defe973 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/helper.js @@ -0,0 +1,208 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var _excluded = ["x", "y"], + _excluded2 = ["x", "y"], + _excluded3 = ["x", "y", "w", "h"], + _excluded4 = ["x", "y"], + _excluded5 = ["x", "y"], + _excluded6 = ["x", "y", "w", "h"]; +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } +//@ts-nocheck +import { AXIS_TYPE_ORIGIN, AXIS_TYPE_CANVAS, AXIS_TYPE_IMAGE } from "./constants"; + +//设置数据的精度 +//accuracy 表示精度 以原点为中心向左为正,向右为负, +//isCeil 表示是否为向上取整 +export var setNumberAccuracy = function setNumberAccuracy(originNumber) { + var accuracy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var isCeil = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + if (originNumber === 0) { + return 0; + } + var returnData = 0; + if (isCeil) { + returnData = Math.ceil(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy); + } else { + returnData = Math.floor(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy); + } + //设置精度 + if (accuracy < 0) { + returnData = Number(returnData.toFixed(-accuracy)); + } else { + returnData = Number(returnData.toFixed(0)); + } + return returnData; +}; +export default { + windowToCanvasAxis: function windowToCanvasAxis(event) { + var _this$canvas$getBound = this.canvas.getBoundingClientRect(), + x = _this$canvas$getBound.x, + y = _this$canvas$getBound.y; + return { + x: event.pageX - x, + y: event.pageY - y, + __AXIS_TYPE__: AXIS_TYPE_CANVAS + }; + }, + offsetAxisToCanvasAxis: function offsetAxisToCanvasAxis(_ref) { + var x = _ref.x, + y = _ref.y; + var targetTransform = this.targetTransform; + var translateX = targetTransform.translateX, + translateY = targetTransform.translateY, + scale = targetTransform.scale; + return { + x: (x + translateX) / scale + translateX / scale, + y: y / scale + translateY / scale, + __AXIS_TYPE__: AXIS_TYPE_CANVAS + }; + }, + originAxisToCanvasAxis: function originAxisToCanvasAxis(_ref2) { + var x = _ref2.x, + y = _ref2.y, + others = _objectWithoutProperties(_ref2, _excluded); + var targetTransform = this.targetTransform; + var translateX = targetTransform.translateX, + translateY = targetTransform.translateY, + scale = targetTransform.scale; + var axis = _objectSpread(_objectSpread({ + x: translateX + x * scale, + y: translateY + y * scale + }, others), {}, { + __AXIS_TYPE__: AXIS_TYPE_CANVAS + }); + return axis; + }, + canvasAxisToOriginAxis: function canvasAxisToOriginAxis(_ref3) { + var x = _ref3.x, + y = _ref3.y, + others = _objectWithoutProperties(_ref3, _excluded2); + var targetTransform = this.targetTransform; + var translateX = targetTransform.translateX, + translateY = targetTransform.translateY, + scale = targetTransform.scale; + var axis = _objectSpread(_objectSpread({ + x: (x - translateX) / scale, + y: (y - translateY) / scale + }, others), {}, { + __AXIS_TYPE__: AXIS_TYPE_ORIGIN + }); + return axis; + }, + imgRectAxisToCanvasAxisRect: function imgRectAxisToCanvasAxisRect(_ref4) { + var _ref4$x = _ref4.x, + x = _ref4$x === void 0 ? 0 : _ref4$x, + _ref4$y = _ref4.y, + y = _ref4$y === void 0 ? 0 : _ref4$y, + _ref4$w = _ref4.w, + w = _ref4$w === void 0 ? 0 : _ref4$w, + _ref4$h = _ref4.h, + h = _ref4$h === void 0 ? 0 : _ref4$h, + others = _objectWithoutProperties(_ref4, _excluded3); + var _this$image = this.image, + width = _this$image.width, + height = _this$image.height; + var targetTransform = this.targetTransform; + var rotate = targetTransform.rotate; + var theta = Math.PI / 180 * rotate; + var offsetRect = { + x: width * x, + y: height * y, + x2: width * w + width * x, + y2: height * h + height * y + }; + //旋转 + // x' = x * cos(Theta) - y * sin(Theta); + // (dx,dy) = (x2-x1,y2-y1); + var newX = (offsetRect.x - width / 2) * Math.cos(theta) - (offsetRect.y - height / 2) * Math.sin(theta) + width / 2; + var newY = (offsetRect.x - width / 2) * Math.sin(theta) + (offsetRect.y - height / 2) * Math.cos(theta) + height / 2; + var newX2 = (offsetRect.x2 - width / 2) * Math.cos(theta) - (offsetRect.y2 - height / 2) * Math.sin(theta) + width / 2; + var newY2 = (offsetRect.x2 - width / 2) * Math.sin(theta) + (offsetRect.y2 - height / 2) * Math.cos(theta) + height / 2; + var newAxis1 = this.originAxisToCanvasAxis({ + x: newX, + y: newY + }); + var newAxis2 = this.originAxisToCanvasAxis({ + x: newX2, + y: newY2 + }); + return _objectSpread(_objectSpread({ + x: newAxis1.x, + y: newAxis1.y, + x2: newAxis2.x, + y2: newAxis2.y + }, others), {}, { + __AXIS_TYPE__: AXIS_TYPE_CANVAS + }); + }, + originAxisToImgAxis: function originAxisToImgAxis(_ref5) { + var x = _ref5.x, + y = _ref5.y, + others = _objectWithoutProperties(_ref5, _excluded4); + var _this$image2 = this.image, + width = _this$image2.width, + height = _this$image2.height; + var targetTransform = this.targetTransform; + var rotate = targetTransform.rotate; + var theta = Math.PI / 180 * (360 - rotate); + var newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2; + var newY = (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2; + return _objectSpread(_objectSpread({ + x: newX / width, + y: newY / height + }, others), {}, { + __AXIS_TYPE__: AXIS_TYPE_IMAGE + }); + }, + imgAxisToOriginAxis: function imgAxisToOriginAxis(_ref6) { + var _x = _ref6.x, + _y = _ref6.y, + others = _objectWithoutProperties(_ref6, _excluded5); + var _this$image3 = this.image, + width = _this$image3.width, + height = _this$image3.height; + // + var x = width * _x; + var y = height * _y; + // + var targetTransform = this.targetTransform; + var rotate = targetTransform.rotate; + var theta = Math.PI / 180 * rotate; + var newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2; + var newY = (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2; + return _objectSpread(_objectSpread({ + x: newX, + y: newY + }, others), {}, { + __AXIS_TYPE__: AXIS_TYPE_ORIGIN + }); + }, + getDataUrlbyOriginAxis: function getDataUrlbyOriginAxis(_ref7) { + var _ref7$x = _ref7.x, + x = _ref7$x === void 0 ? 0 : _ref7$x, + _ref7$y = _ref7.y, + y = _ref7$y === void 0 ? 0 : _ref7$y, + _ref7$w = _ref7.w, + w = _ref7$w === void 0 ? 0 : _ref7$w, + _ref7$h = _ref7.h, + h = _ref7$h === void 0 ? 0 : _ref7$h, + others = _objectWithoutProperties(_ref7, _excluded6); + var ctx = this.canvas.getContext('2d'); + var commonCanvas = document.createElement('canvas'); + commonCanvas.width = w; + commonCanvas.height = h; + commonCanvas.style.display = 'none'; + document.body.appendChild(commonCanvas); + var commonCtx = commonCanvas.getContext('2d'); + var imageData = ctx.getImageData(x, y, w, h); + commonCtx.putImageData(imageData, 0, 0); + var dataUrl = commonCanvas.toDataURL('image/jpeg'); + commonCanvas.parentNode.removeChild(commonCanvas); + return dataUrl; + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/viewer/index.d.ts b/packages/meta/es/ImageEditor/viewer/index.d.ts new file mode 100644 index 0000000..a71e6f3 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/index.d.ts @@ -0,0 +1,21 @@ +import './index.scss'; +export interface Option { + image?: string | HTMLImageElement; + wheelZoomRatio?: number; + scaleAble?: boolean; + dragAble?: boolean; + fitScaleAsMinScale?: boolean; +} +declare class Viewer { + element: HTMLDivElement; + image: HTMLImageElement; + canvas: Element; + options: Option; + ready: boolean; + constructor(element: any, options: any); + init(): Promise; + build(): void; + refleshImage(options: any): void; + destroy(): void; +} +export default Viewer; diff --git a/packages/meta/es/ImageEditor/viewer/index.js b/packages/meta/es/ImageEditor/viewer/index.js new file mode 100644 index 0000000..92ed561 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/index.js @@ -0,0 +1,107 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var _dec, _class; +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +//@ts-nocheck +import { isPlainObject } from '@zhst/func'; +import { addClass } from 'rc-util/lib/Dom/class'; +import { Mixin, dispatchEvent } from "../utils"; +import Render from "./render"; +import Event from "./event"; +import Shape from "./shape"; +import Helper from "./helper"; +import { CLASS_CANVAS, EVENT_VIEWER_READY, EVENT_VIEWER_ERROR } from "./constants"; +import "./index.scss"; +var Viewer = (_dec = Mixin(Render, Event, Shape, Helper), _dec(_class = /*#__PURE__*/function () { + function Viewer(element, options) { + _classCallCheck(this, Viewer); + /* 方便访问dom元素 */ + /* 容器:挂在的节点 */ + _defineProperty(this, "element", void 0); + /* 图片对象 */ + _defineProperty(this, "image", void 0); + /* canvas对象 */ + _defineProperty(this, "canvas", void 0); + /* 配置项 */ + _defineProperty(this, "options", void 0); + /* 是否初始化完成 */ + _defineProperty(this, "ready", void 0); + this.element = element; + this.options = Object.assign({}, isPlainObject(options) && options); + this.ready = false; + this.init(); + } + _createClass(Viewer, [{ + key: "init", + value: function () { + var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.prev = 0; + this.build(); + //@ts-ignore + this.bind(); + //@ts-ignore + _context.next = 5; + return this.render(); + case 5: + this.ready = true; + dispatchEvent(this.element, EVENT_VIEWER_READY); + _context.next = 12; + break; + case 9: + _context.prev = 9; + _context.t0 = _context["catch"](0); + dispatchEvent(this.element, EVENT_VIEWER_ERROR); + case 12: + case "end": + return _context.stop(); + } + }, _callee, this, [[0, 9]]); + })); + function init() { + return _init.apply(this, arguments); + } + return init; + }() + }, { + key: "build", + value: function build() { + var canvas = document.createElement('canvas'); + addClass(canvas, CLASS_CANVAS); + this.element.appendChild(canvas); + this.canvas = canvas; + } + }, { + key: "refleshImage", + value: function refleshImage(options) { + this.options = Object.assign({}, isPlainObject(options) && options); + this.ready = false; + this.element.removeChild(this.canvas); + this.init(); + } + }, { + key: "destroy", + value: function destroy() { + var _this$element, _this$element$removeC; + //清理动画 + //@ts-ignore + window.cancelAnimationFrame(this.animationFrame); + //清理事件 + //@ts-ignore + this.unbind(); + //清理dom + (_this$element = this.element) === null || _this$element === void 0 || (_this$element$removeC = _this$element.removeChild) === null || _this$element$removeC === void 0 || _this$element$removeC.call(_this$element, this.canvas); + } + }]); + return Viewer; +}()) || _class); +export default Viewer; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/viewer/index.scss b/packages/meta/es/ImageEditor/viewer/index.scss new file mode 100644 index 0000000..fcc2881 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/index.scss @@ -0,0 +1,44 @@ +$prefix: zhst; + +:global { + // .zhst-cropper-container { + // width: 100px; + // } + .zhst-viewer { + &-canvas { + // cursor: grab; + cursor: pointer; + } + + //辅助class + &-invisible { + opacity: 0; + } + + &-hide { + position: absolute; + display: block; + width: 0; + height: 0; + } + + &-hidden { + display: none !important; + } + + &-move { + cursor: move; + } + + &-crop { + cursor: crosshair; + } + + &-disabled &-drag-box, + &-disabled &-face, + &-disabled &-line, + &-disabled &-point { + cursor: not-allowed; + } + } +} diff --git a/packages/meta/es/ImageEditor/viewer/render.d.ts b/packages/meta/es/ImageEditor/viewer/render.d.ts new file mode 100644 index 0000000..ec4f170 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/render.d.ts @@ -0,0 +1,35 @@ +declare const _default: { + image: null; + canvas: null; + containerData: { + width: number; + height: number; + }; + animationFrame: null; + backgroundColor: string; + targetTransform: { + translateX: number; + translateY: number; + scale: number; + rotate: number; + }; + render(): Promise; + initImg(): Promise; + initCanvas(): void; + startRaf(): void; + renderCanvas(_ctx: any): void; + scaleTo(offsetScale: any): void; + rotateTo(T: number | ((preDeg: number) => number)): void; + reset(): void; + getImgSize(): { + w: any; + h: any; + } | undefined; + calcFitScreen(): { + translateX: number; + translateY: number; + scale: number; + } | undefined; + calcTransform(newTransform: any, cropBox: any): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/viewer/render.js b/packages/meta/es/ImageEditor/viewer/render.js new file mode 100644 index 0000000..0756f53 --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/render.js @@ -0,0 +1,332 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +//@ts-nocheck +import { set, getOuterWidth, getOuterHeight } from 'rc-util/lib/Dom/css'; +import { isNil, isString, isFunction, cloneDeep } from '@zhst/func'; +import { dispatchEvent } from "../utils"; +import { EVENT_VIEWER_TRANSFORM_CHANGE } from "./constants"; +export default { + // store + image: null, + canvas: null, + containerData: { + width: 0, + height: 0 + }, + animationFrame: null, + backgroundColor: '#fff', + targetTransform: { + translateX: 0, + translateY: 0, + scale: 0, + rotate: 0 + // rotate: 90, + }, + //method + render: function render() { + var _this = this; + return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _this.initImg(); + case 2: + _this.initCanvas(); + _this.startRaf(); + case 4: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + initImg: function initImg() { + var _this2 = this; + return new Promise(function (resolve, reject) { + var propImage = _this2.options.image; + if (isString(propImage)) { + var image = new Image(); + image.crossOrigin = 'anonymous'; + image.src = propImage; + image.onload = function () { + _this2.image = image; + resolve(image); + }; + image.onerror = function (err) { + reject(err); + }; + } else { + _this2.image = propImage; + resolve(propImage); + } + }); + }, + initCanvas: function initCanvas() { + if (!this.image) return; + //通过样式设置 不依赖父元素的prosition + var element = this.element, + canvas = this.canvas, + _this$limit = this.limit, + limit = _this$limit === void 0 ? {} : _this$limit, + options = this.options; + var containerData = { + width: getOuterWidth(element), + height: getOuterHeight(element) + }; + this.containerData = containerData; + set(canvas, containerData); + canvas.width = containerData.width; + canvas.height = containerData.height; + var fitTransform = this.calcFitScreen(); + this.targetTransform = Object.assign({}, this.targetTransform, fitTransform); + dispatchEvent(this.element, EVENT_VIEWER_TRANSFORM_CHANGE, cloneDeep(this.targetTransform)); + //产品需求:fitscale 是minscale + var _options$fitScaleAsMi = options.fitScaleAsMinScale, + fitScaleAsMinScale = _options$fitScaleAsMi === void 0 ? false : _options$fitScaleAsMi; + if (fitScaleAsMinScale) { + this.limit = Object.assign({ + minScale: this.targetTransform.scale + }, this.limit); + } + }, + startRaf: function startRaf() { + var _this3 = this; + //清理动画 + window.cancelAnimationFrame(this.animationFrame); + + //渲染 + var loop = function loop() { + // this.update(); //先update + _this3.renderCanvas(); + window.cancelAnimationFrame(_this3.animationFrame); + _this3.animationFrame = window.requestAnimationFrame(loop); + }; + loop(); + }, + renderCanvas: function renderCanvas(_ctx) { + if (!this.image || !this.canvas) return; + var containerData = this.containerData, + canvas = this.canvas, + targetTransform = this.targetTransform, + options = this.options; + var translateX = targetTransform.translateX, + translateY = targetTransform.translateY, + scale = targetTransform.scale, + rotate = targetTransform.rotate; + var ctx = _ctx ? _ctx : canvas.getContext('2d'); + //画背景 + ctx.clearRect(0, 0, containerData.width, containerData.height); + ctx.fillStyle = options.backgroundColor; //todo@wdy OD框背景颜色 + ctx.fillRect(0, 0, canvas.width, canvas.height); + //画图 + ctx.save(); + + //缩放移动 + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + // ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + //旋转 + var centerX = this.image.width / 2; + var centerY = this.image.height / 2; + ctx.translate(centerX, centerY); + ctx.rotate(rotate / 180 * Math.PI); + ctx.translate(-centerX, -centerY); + + //图片 + ctx.drawImage(this.image, 0, 0); + ctx.restore(); + //画图形 + ctx.save(); + this.renderShape(ctx); + ctx.restore(); + }, + scaleTo: function scaleTo(offsetScale) { + //获取图片中心点 + var containerData = this.containerData; + this.calcTransform({ + scaleCenter: { + x: containerData.width / 2, + y: containerData.height / 2, + step: offsetScale + } + }); + }, + //暂时只支持90deg旋转 否则limit 不能做 + rotateTo: function rotateTo(T) { + if (!this.image) return; + var targetTransform = this.targetTransform; + var rotate = targetTransform.rotate; + var newDeg = isFunction(T) ? T(rotate) : T; + this.calcTransform({ + rotate: newDeg + }); + }, + reset: function reset() { + this.targetTransform.rotate = 0; + var fitTransform = this.calcFitScreen(); + this.targetTransform = Object.assign({}, this.targetTransform, fitTransform); + dispatchEvent(this.element, EVENT_VIEWER_TRANSFORM_CHANGE, cloneDeep(this.targetTransform)); + }, + getImgSize: function getImgSize() { + if (!this.image) return; + return { + w: this.image.width, + h: this.image.height + }; + }, + calcFitScreen: function calcFitScreen() { + if (!this.image) return; + var w = this.containerData.width; + var h = this.containerData.height; + var iw = this.image.width; + var ih = this.image.height; + //算图片显示长款 (todo:旋转算旋转后) + var _this$targetTransform = this.targetTransform.rotate, + rotate = _this$targetTransform === void 0 ? 0 : _this$targetTransform; + var wToh = w / h; + var imgwToh = iw / ih; + if (rotate % 180 !== 0) { + imgwToh = ih / iw; + } + //计算后的位置 + var scale; + var translateX = 0; + var translateY = 0; + if (imgwToh > wToh) { + scale = w / iw; + translateX = 0; + translateY = (h - ih * scale) / 2; + if (rotate % 180 !== 0) { + scale = w / ih; + translateX = (ih - iw) / 2 * scale; + translateY = (h - iw * scale) / 2 + (iw - ih) / 2 * scale; + } + } else { + scale = h / ih; + translateX = (w - iw * scale) / 2; + translateY = 0; + if (rotate % 180 !== 0) { + scale = h / iw; + translateX = (w - ih * scale) / 2 + (ih - iw) / 2 * scale; + translateY = (iw - ih) / 2 * scale; + } + } + var fitTransform = { + translateX: translateX, + translateY: translateY, + scale: scale + }; + return fitTransform; + }, + calcTransform: function calcTransform(newTransform, cropBox) { + if (!this.image) return; + var translateX = newTransform.translateX, + translateY = newTransform.translateY, + scaleCenter = newTransform.scaleCenter, + rotate = newTransform.rotate; + if (!isNil(scaleCenter)) { + var _targetTransform = this.targetTransform, + _this$limit2 = this.limit, + limit = _this$limit2 === void 0 ? {} : _this$limit2; + var _limit$minScale = limit.minScale, + minScale = _limit$minScale === void 0 ? 0.1 : _limit$minScale, + _limit$maxScale = limit.maxScale, + maxScale = _limit$maxScale === void 0 ? Number.MAX_VALUE : _limit$maxScale; + if (cropBox) { + //如果有cropbox 最小缩放值需要重新计算 + var _this$image = this.image, + iw = _this$image.width, + ih = _this$image.height; + if (_targetTransform.rotate % 180 !== 0) { + var _ref = [ih, iw]; + iw = _ref[0]; + ih = _ref[1]; + } + var cw = cropBox.width, + ch = cropBox.height; + var corpMinScale = Math.max(cw / iw, ch / ih); + minScale = Math.max(corpMinScale, minScale); + } + var x = scaleCenter.x, + y = scaleCenter.y, + step = scaleCenter.step; + var preScale = _targetTransform.scale; + var newScale = _targetTransform.scale + step; + newScale = Math.min(maxScale, Math.max(newScale, minScale)); + var newStep = newScale - preScale; + if (newScale != preScale) { + var offsetX = (x - _targetTransform.translateX) / _targetTransform.scale * newStep; + var offsetY = (y - _targetTransform.translateY) / _targetTransform.scale * newStep; + this.targetTransform.translateX = this.targetTransform.translateX - offsetX; + this.targetTransform.translateY = this.targetTransform.translateY - offsetY; + } + this.targetTransform.scale = newScale; + } + if (!isNil(translateX)) { + this.targetTransform.translateX += translateX; + } + if (!isNil(translateY)) { + this.targetTransform.translateY += translateY; + } + if (!isNil(rotate)) { + this.targetTransform.rotate = rotate; + } + + //阻止拖出边界 + var targetTransform = this.targetTransform, + containerData = this.containerData; + var minMargin = 50; + var imgWidth = this.image.width; + var imgHeight = this.image.height; + if (this.targetTransform.rotate % 180 !== 0) { + imgWidth = this.image.height; + imgHeight = this.image.width; + } + var minX = minMargin - imgWidth * targetTransform.scale; + var maxX = containerData.width - minMargin; + var minY = minMargin - imgHeight * targetTransform.scale; + var maxY = containerData.height - minMargin; + this.targetTransform.translateX = Math.min(maxX, Math.max(this.targetTransform.translateX, minX)); + this.targetTransform.translateY = Math.min(maxY, Math.max(this.targetTransform.translateY, minY)); + + //限制截图框不能超出拖动范围 + if (cropBox) { + var _cw = cropBox.width, + _ch = cropBox.height, + top = cropBox.top, + left = cropBox.left; + var _this$image2 = this.image, + _iw = _this$image2.width, + _ih = _this$image2.height; + var imgLeftTop = { + x: 0, + y: 0 + }; + var imgRightBottom = { + x: _iw, + y: _ih + }; + if (this.targetTransform.rotate % 180 !== 0) { + imgLeftTop = { + x: (_iw - _ih) / 2, + y: (_ih - _iw) / 2 + }; + imgRightBottom = { + x: (_iw + _ih) / 2, + y: (_iw + _ih) / 2 + }; + } + //图片左上角不能大于crop左上角 + var _maxX = left - imgLeftTop.x * this.targetTransform.scale; + var _maxY = top - imgLeftTop.y * this.targetTransform.scale; + //图片右下角不能小于crop 右下角 + var _minX = left + _cw - imgRightBottom.x * this.targetTransform.scale; + var _minY = top + _ch - imgRightBottom.y * this.targetTransform.scale; + this.targetTransform.translateX = Math.min(_maxX, Math.max(this.targetTransform.translateX, _minX)); + this.targetTransform.translateY = Math.min(_maxY, Math.max(this.targetTransform.translateY, _minY)); + } + dispatchEvent(this.element, EVENT_VIEWER_TRANSFORM_CHANGE, cloneDeep(this.targetTransform)); + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImageEditor/viewer/shape.d.ts b/packages/meta/es/ImageEditor/viewer/shape.d.ts new file mode 100644 index 0000000..5586a2f --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/shape.d.ts @@ -0,0 +1,40 @@ +export interface Shape { + id: number | string; + selectAble: boolean; + color: string; +} +export interface Rect extends Shape { + x: number; + y: number; + w: number; + h: number; +} +export interface Point extends Shape { + x: number; + y: number; +} +declare const _default: { + shapeList: never[]; + hoverShapId: null; + selectShapId: null; + isEyeOpen: boolean; + movable: boolean; + zoomable: boolean; + disableAdd: boolean; + color: string; + changeEyeModel(isOpen: any): void; + addShape(shap: Shape | Array, type?: number): void; + setSelectShapId(id: number): void; + getSelectShape(contain?: boolean): any[]; + replaceShape(shape: Shape | Shape[] | ((shape: Shape) => Shape | Array), type?: number): void; + clearShape(): void; + calcSelectShape(canvasPoint: any): null; + clearSelectShape(): void; + changeMoveAble(movable?: boolean): void; + changeZoonAble(zoomable?: boolean): void; + disabledAddShap(value?: boolean): void; + renderShape(ctx: any): void; + renderRect(ctx: any, shape: any, type: any): void; + renderPoint(ctx: any, shape: any): void; +}; +export default _default; diff --git a/packages/meta/es/ImageEditor/viewer/shape.js b/packages/meta/es/ImageEditor/viewer/shape.js new file mode 100644 index 0000000..d386d4f --- /dev/null +++ b/packages/meta/es/ImageEditor/viewer/shape.js @@ -0,0 +1,258 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +// @ts-nocheck +import { isNil, isArray, isFunction } from '@zhst/func'; +import * as turf from '@turf/turf'; +import booleanPointInPolygon from '@turf/boolean-point-in-polygon'; +import { setNumberAccuracy } from "./helper"; +import { SHAPE_TYPE_RECT, SHAPE_TYPE_CIRCLE, EVENT_SHAPE_SELECT } from "./constants"; +import { dispatchEvent } from "../utils"; +function rectToPolygon(axisRect) { + var polygon = turf.polygon([[[setNumberAccuracy(axisRect.x, -2), setNumberAccuracy(axisRect.y, -2)], [setNumberAccuracy(axisRect.x2, -2), setNumberAccuracy(axisRect.y, -2)], [setNumberAccuracy(axisRect.x2, -2), setNumberAccuracy(axisRect.y2, -2)], [setNumberAccuracy(axisRect.x, -2), setNumberAccuracy(axisRect.y2, -2)], [setNumberAccuracy(axisRect.x, -2), setNumberAccuracy(axisRect.y, -2)]]]); + return polygon; +} +export default { + //store + shapeList: [], + hoverShapId: null, + selectShapId: null, + //是否开启人脸 + isEyeOpen: false, + //是否移动 + movable: true, + //是否放大缩小 + zoomable: true, + //禁止添加shap + disableAdd: false, + //自定义画框的颜色 + color: '', + changeEyeModel: function changeEyeModel(isOpen) { + if (isOpen) { + this.isEyeOpen = true; + this.changeMoveAble(false); + this.changeZoonAble(false); + } else { + this.isEyeOpen = false; + this.changeMoveAble(true); + this.changeZoonAble(true); + } + }, + //method + addShape: function addShape(shap) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SHAPE_TYPE_RECT; + this.color = shap.color ? shap.color : ''; + if (isNil(shap) || this.disableAdd) return; + var _this$shapeList = this.shapeList, + preShapeList = _this$shapeList === void 0 ? [] : _this$shapeList; + var shapList = isArray(shap) ? shap : [shap]; + shapList = shapList.map(function (v) { + return _objectSpread(_objectSpread({}, v), {}, { + __SHAPE_TYPE__: type + }); + }); + this.shapeList = [].concat(_toConsumableArray(preShapeList), _toConsumableArray(shapList)); + }, + // + setSelectShapId: function setSelectShapId(id) { + this.selectShapId = id; + dispatchEvent(this.element, EVENT_SHAPE_SELECT, id); + }, + getSelectShape: function getSelectShape() { + var _this = this; + var contain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var selectShapeList = []; + var selectShape = this.shapeList.find(function (v) { + return v['id'] === _this.selectShapId; + }); + selectShape && selectShapeList.push(selectShape); + if (contain && selectShape) { + var originFeature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(selectShape)); + for (var i = 0; i < this.shapeList.length; i++) { + var shape = this.shapeList[i]; + if (shape['id'] !== this.selectShapId) { + var feature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(shape)); + var isContain = turf.booleanContains(originFeature, feature); + isContain && selectShapeList.push(shape); + } + } + } + return selectShapeList; + }, + replaceShape: function replaceShape(shape) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SHAPE_TYPE_RECT; + if (isNil(shape)) return; + var _this$shapeList2 = this.shapeList, + preShapeList = _this$shapeList2 === void 0 ? [] : _this$shapeList2; + var _shape; + if (isFunction(shape)) { + _shape = shape(preShapeList); + } else { + _shape = shape; + } + var shapList = isArray(_shape) ? _shape : [_shape]; + shapList = shapList.map(function (v) { + return _objectSpread(_objectSpread({}, v), {}, { + __SHAPE_TYPE__: type + }); + }); + this.shapeList = _toConsumableArray(shapList); + }, + clearShape: function clearShape() { + this.shapeList = []; + }, + calcSelectShape: function calcSelectShape(canvasPoint) { + // todo:有问题 + var shapeList = this.shapeList, + image = this.image; + var selectAbleShape = shapeList.filter(function (_ref) { + var _ref$selectAble = _ref.selectAble, + selectAble = _ref$selectAble === void 0 ? true : _ref$selectAble; + return !!selectAble; + }); + //判断落点离哪个形状最近 + var minId = null; + var minDis = Number.MAX_VALUE; + var pt = turf.point([canvasPoint.x, canvasPoint.y]); + for (var i = 0; i < selectAbleShape.length; i++) { + var shape = selectAbleShape[i]; + var axisRect = this.imgRectAxisToCanvasAxisRect(shape); + var polygon = turf.polygon([[[axisRect.x, axisRect.y], [axisRect.x2, axisRect.y], [axisRect.x2, axisRect.y2], [axisRect.x, axisRect.y2], [axisRect.x, axisRect.y]]]); + var isPtInPolygon = booleanPointInPolygon(pt, polygon); + if (isPtInPolygon) { + //如果点在多变形内 判断距离是否是最短 + var line = turf.polygonToLine(polygon); + var distance = turf.pointToLineDistance(pt, line, { + method: 'planar' + }); + if (distance < minDis) { + minDis = distance; + minId = shape['id']; + } + } + } + return minId; + }, + clearSelectShape: function clearSelectShape() { + this.setSelectShapId(null); + }, + changeMoveAble: function changeMoveAble() { + var movable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + this.movable = movable; + }, + changeZoonAble: function changeZoonAble() { + var zoomable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + this.zoomable = zoomable; + }, + disabledAddShap: function disabledAddShap() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this.disableAdd = value; + }, + renderShape: function renderShape(ctx) { + var shapeList = this.shapeList; + //先排序 + var selectShapeList = []; + var hoverShapeList = []; + var normalShapeList = []; + for (var i = 0; i < shapeList.length; i++) { + var shape = shapeList[i]; + var isSelectShape = this.selectShapId === shape['id']; + var isHoverShape = this.hoverShapId === shape['id']; + if (isSelectShape) { + selectShapeList.push(shape); + } else if (isHoverShape) { + hoverShapeList.push(shape); + } else { + normalShapeList.push(shape); + } + } + // const sortShapeList = shapeList.sort((a, b) => (this.isHightLight(a) ? 1 : -1)); + //渲染 + for (var _i = 0; _i < normalShapeList.length; _i++) { + var _shape2 = normalShapeList[_i]; + var __SHAPE_TYPE__ = _shape2.__SHAPE_TYPE__; + switch (__SHAPE_TYPE__) { + case SHAPE_TYPE_RECT: + this.renderRect(ctx, _shape2, 'normal'); + break; + case SHAPE_TYPE_CIRCLE: + this.renderPoint(ctx, _shape2, 'normal'); + break; + default: + break; + } + } + for (var _i2 = 0; _i2 < hoverShapeList.length; _i2++) { + var _shape3 = hoverShapeList[_i2]; + var _SHAPE_TYPE__ = _shape3.__SHAPE_TYPE__; + switch (_SHAPE_TYPE__) { + case SHAPE_TYPE_RECT: + this.renderRect(ctx, _shape3, 'hover'); + break; + default: + break; + } + } + for (var _i3 = 0; _i3 < selectShapeList.length; _i3++) { + var _shape4 = selectShapeList[_i3]; + var _SHAPE_TYPE__2 = _shape4.__SHAPE_TYPE__; + switch (_SHAPE_TYPE__2) { + case SHAPE_TYPE_RECT: + this.renderRect(ctx, _shape4, 'select'); + break; + default: + break; + } + } + }, + renderRect: function renderRect(ctx, shape, type) { + //算rect + var axisRect = this.imgRectAxisToCanvasAxisRect(shape); + var rect = { + x: axisRect.x2 > axisRect.x ? axisRect.x : axisRect.x2, + y: axisRect.y2 > axisRect.y ? axisRect.y : axisRect.y2, + w: Math.abs(axisRect.x2 - axisRect.x), + h: Math.abs(axisRect.y2 - axisRect.y) + }; + //画 + ctx.save(); + if (type === 'normal') { + ctx.strokeStyle = this.color ? this.color : '#FFF566'; + ctx.lineWidth = 2; + ctx.strokeRect.apply(ctx, _toConsumableArray(Object.values(rect))); + } + if (type === 'hover') { + ctx.fillStyle = 'rgba(0, 153, 255, 0.3)'; + ctx.fillRect.apply(ctx, _toConsumableArray(Object.values(rect))); + ctx.strokeStyle = 'rgba(92, 219, 211, 1)'; + ctx.lineWidth = 2; + ctx.strokeRect.apply(ctx, _toConsumableArray(Object.values(rect))); + } + if (type === 'select') { + ctx.strokeStyle = 'rgba(255, 0, 0, 1)'; + ctx.lineWidth = 2; + ctx.strokeRect.apply(ctx, _toConsumableArray(Object.values(rect))); + } + ctx.restore(); + }, + renderPoint: function renderPoint(ctx, shape) { + var originAxis = this.imgAxisToOriginAxis(shape); + var canvasAxis = this.originAxisToCanvasAxis(originAxis); + //画 + ctx.save(); + ctx.beginPath(); + ctx.arc(canvasAxis.x, canvasAxis.y, 2, 0, 2 * Math.PI); + ctx.fillStyle = '#DF0101'; + ctx.fill(); + ctx.restore(); + } +}; \ No newline at end of file diff --git a/packages/meta/es/ImagePreview/components/CornerScore/index.d.ts b/packages/meta/es/ImagePreview/components/CornerScore/index.d.ts new file mode 100644 index 0000000..5feea96 --- /dev/null +++ b/packages/meta/es/ImagePreview/components/CornerScore/index.d.ts @@ -0,0 +1,7 @@ +import React from 'react'; +import './index.less'; +export interface ScoreProps { + scoreTxt: number; +} +export declare const CornerScore: React.FC; +export default CornerScore; diff --git a/packages/meta/es/ImagePreview/components/CornerScore/index.js b/packages/meta/es/ImagePreview/components/CornerScore/index.js new file mode 100644 index 0000000..0f504ed --- /dev/null +++ b/packages/meta/es/ImagePreview/components/CornerScore/index.js @@ -0,0 +1,15 @@ +//@ts-nocheck +import React, { useMemo } from 'react'; +import classNames from 'classnames'; +import "./index.less"; +var componentName = "zhst-image__CornerScore"; +export var CornerScore = function CornerScore(props) { + var scoreTxt = props.scoreTxt; + return useMemo(function () { + return /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName)) + }, /*#__PURE__*/React.createElement("span", null, ~~(scoreTxt * 100), "%")); + }, [scoreTxt]); +}; +CornerScore.displayName = componentName; +export default CornerScore; \ No newline at end of file diff --git a/packages/meta/es/ImagePreview/components/CornerScore/index.less b/packages/meta/es/ImagePreview/components/CornerScore/index.less new file mode 100644 index 0000000..e69de29 diff --git a/packages/meta/es/ImagePreview/images/emptyImage.png b/packages/meta/es/ImagePreview/images/emptyImage.png new file mode 100644 index 0000000000000000000000000000000000000000..97629573a5196529f63a8365baeeadab76209c1a GIT binary patch literal 5786 zcmV;L7G>#)P)Py0R7pfZRCodHooj4d$92bd`4%Zsq^uWZNtSHcN#rDoE!&A)M@k*V&ZCVHJ64LM ziBR`TjRFM<^g~g!sQWO`4@rs?MUf(n<6153SbhYF65Dke*sdEluLF4^-N4mbU^nvH#h&drKRON3l=PRCs*JK48*U%Hs_iQKw2+cxUe07d=Y;e zpjbg>lQEDV8y_FHXbheVkumt*21GyT?(Y6BX{T}wS3uy30t^7?I)DEBSLoy~G{xha znp;|y(8on>-~-0Tg8+oT0C;{0eX6IY=TYdW&v!Y+iyG^4Xe1rp#|ZK@I`JMlbtAry zc7<+pDZuzPqMi(+&oK0L=;K{oT~836^7-a+JhbuVLL)~q6!{tr{}UFd>oG`kJ&aJS&UymI*GT{ZJj2cL_>X#edmr%g zYZb36V1|Z*sRSWhDW279DYasjCqI%(CSSq`i#ir8$ZMWDDxFSiXEg?(9L-~>QKVjg$$=!3X<=&aL=V58 zF0jV=U}tCNks6sIS50mkJeN{~0AN`USf0laiwadIpa3K{+OVdHO-@Y2CMPFj3SX{{ zHmBKrJ`Y$%X?q;Hh{b-fZGs-`@kjw6MQ)y&1LoAJQ~iMD-)QXeu&u*z4m^}`z+rRF zjX+_`H!7b%f<9hCsN?=n7ioRx&YkNU9~*m_j{lHV zr1gqFC0Sl6Dgeo26t;b`rU0CDxaxD^;-@qg4z{9$SHP0zJ=6qNg)#MXM@aGssbR2@&rny=m z$x{>C-ogIWALb=S7^!4945bzgiXS_6Y$tQaR|*xVWJ)R|&rbtDQ~0+?ABA3z@Ar9% z#nHX2DM=tfmTrOD0Z62eErL4JrUd>bZngg>m>xwqa=@_H@-4vf2gQ_+8Zdsn7n1!%hablGVdxLi>3KWN#Q+0;lCl@^I=;2FdJH^xtMXZHbiTLqAY1W8cuY4l|442ZOLk}hg=S1TF*I}+ zBg@V(V3|=+9W&9rlSdOD<^0Vm76-kkGFQMNt8HXM@6V$$UsVBf{P^*Y@}%q;l&$Hx zm8gs(xl`=z%t80ZoC3Ht3cafa7^a~O=~U_`T%BD}C|WO>dI*|qz|Fv!>_H!B@&3=y zs*j9SIY)42XlP9$oqho&7thd;N#@lftZm+bXOJ!0LDAN>wzbfQ@D1y<5va8m(^JFh z=qm`EM?8|DqzsQ#=H1;@Ph~*1RR6$mX>$8vlv{mWXUmj z^deZEW0&%N8uw&gVuM5&U5>EmT`hG0wmWLkAgYB@1AFV?=2rG+UJX?s1QVA{252NL4)zGwJz*IwtxgsN(OuDIQE{rnhsF&xy$tK>jgmuibDsCPyWtve( zC^&;$W~th+0}MS!dK&*tHt&8BMXmFIDbuQ)7L27?%jgtf1Gx);<)1j``**w$HyEW} z^MIL!bv4S&_LSf(s++0EAVB#RcR~8>h)(fE?&bkA3lnQIPY2R@)-;RKl@|dV|HWcf z)6O%5BR$UGYda4Z-y$L7dXr&6XJ<(6>ac0iolYkAEL*W+b9E$^FJ&Gu<=f1a&~3Kc zo8i5wD4pujy2*h>?`p+jbvbfsZJY;;Sz;DcYZ;C{M6#J@fD}*^ZWK4GhmSNM&MPCI zWJ73Kqco&mdZ9jtYNF-vsj^hrqR|_mWS6Y1L%$d)fJ$rU-CHl?^FjV{(H0(L9 zuvckNV{S@RVwEz=>i7fC(#j}Nm{rpb-@b_@_y}XQ-|!Sjc!2sgef2E;_BQdYg|#T1 zS~g&)R7V$okBX^Wv+PAL&nNBxrK*^AX5#pdiQ=Mb^=w*J<1(6>+B;@GucQ%Vim6A_Ppuq% zb01#kdvhZSaaI3C{C_A=jw^eFp|abkK%p8@ z)%t{y#H~*Rl!(?RGuemr<@@QMYc(Te`^M9DAvhNUdPXe6N`p>)bVED|~3c#^a2&Doy%7~gLZ*w^n&+|rZ zfjiY#cw4`SPV>wf;tM@Hgubn20k=^VW}B%BG&x&E3UAEjO(PdCUR=RY-QU;O*YIDu z4l2)x8v23?maBJIcRyUfH!*r>bSdR}8I5j$X@4n3<%c#13fu@_Z2jU;OPZUKlnzp_ z-?L{=!AH03VtyCi7uhW84x?0~@StdMqS8xSyHK@Dy{^9CcKh9{vR?pb@E3dqg*uH(c zdl-d1&obiM^1+r427Z4zp)Zo24BLRvfB_S30hJZ(07BTUVFVV10fG?S#;DRoSReiC zLh;W-^#-1b>Wc^~0855+ZEWcesjMN&pLZcFfbBZuv0vXM)5l_4wrq)Ur#g}aDdNxm*#^@Zyr!r#N&XjHPf$3+zKwmX*>@U3CA+75RPIu95f>8Y)ymBMeW=f1iu^3G9B<7e}9Hn$kby zo?fwH#i*Ze@o6KBz;N{F(Z%?y077dPwGMeyv2<-JNw)j35 zsk_s}PHwaiRfEaTtymRzhRdcE%2%2>c(rz!pii}?arXD+QExZ)?`G5)=O1xTU3Jw} z(_W6t0}R{$3*US1J>A7z8Y0lilvTx4q(8YF!oN&M>M!;7GpxO39WEXt6M&5fbM7dW<{x8sleU|`e7Oex`)T++(8XE4NC@&Hk?RTF z%L4FmZ23Ix)LJFCh=tF!UsPq#r;y$3j#Vrc&hZ;4xEKYLN&Y(_#p|@TbjahUZ&Zh- zvUd1a@$H{6Mw{cvNJzMx36671wiJPjrIadBriDcvGwBM0#H9e{t2FX;u6(UsidvS6 zZ$|E?D5}-_9uWK-bVm8b@}+}0>TUr%+u+qd+iyk%C)4t)L6LcE^y0G z|0}lHZ}ubZ>?(@vl5-~#+17u)ed@`L=re3l}|*R5N3PHAq0 z;Z|7BdbCcNanWM}X@~f9H6&3a4G0`y07qP5Q3+QV_Xd1pq^(2Q9}C4OpzLYRM+ z?n?AK3}*GLhDRHkT^Rnwj2icHHSYzvdn}&{upV4mj|PGHUFh>rcMxN6}RQak$ zGJ^F5_4WBBpHU~pTIXjJ{~1^JGCFZPK>scB)<|YG9AF$_*nJvhk0}HCZ^&Cd8qRXzy6@kCf{gKH=2Yyj6Wzt;b0xsZll(2qo$Wp z<1=b}jGmKkzWL^`z#{P2+C*VpA#v`vJ2->eiBaO+-Q6+ft(d5sg+=B3e3uyb@%aN; zE?91PpTCrRzrL_>&K~!&-q9V_U85r-$#`?~BiQCe{v{-1I!Kmn2OXd6eG(!6UWtvx?6YJNn*T(F$ zwM{`Fn2j~!3=9mkg0@x~GwpWN2Z)s`MoSscFUPzY1GF(wISY%1apl(M%k<0p`Ik%k zIo_b#?*vqq_RH2BrA=+#yjg1#{n6>P(Zsip z;-LW(ESv>T6QfTv!+JC4X58X=`SRsDR~i$Qql4lYIU}k#Bb5${>+G*nt`xtO6;*lP zm6C6DiK?tG&oA%G_v3zfYpbYSsrJ;n{q$9eX)v{K-@cR`828&)Dn4zRDOEuESu|=t z-|guOK)ZJBYGU`diQ&yr@o9}fnxl&IEF#8{Kt~lisiDbEv7Ftj?bNNv#_WN`TEte{Q~FOwQKdr$GrB;3SM}*28IaCYJ>?P z*WGc!7k}xcmzr2eX~Rqp+9Injj82y;58DCSjLdA>v`OF)D5?UELiVa@2WF=->7jb9 zZlkd`-gqNUqcfs~l(jrj<(J|wB%_?PQuUR}_v?aRI>$t_PVG=zL$!x;0)(977p=yq z;Uvz*9|0=h*-Xut*Q+e@iW_Zu^2sM%STq>+%2^rXan#BLsmht0VAyz6cQ)VYW8pIL z^W+Egv~~t*&K7gAFB?i{4DF05r4%;hEL<$#_>30dH@T9T3x}0wa%Z5XtCK$iU&Cho YKZ_v3%v7MbF#rGn07*qoM6N<$g4h-+kpKVy literal 0 HcmV?d00001 diff --git a/packages/meta/es/ImagePreview/images/percent_background.png b/packages/meta/es/ImagePreview/images/percent_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ebde317c473fda46d686dce6ffba98db676f331e GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^1wgFB!3HGvuCY1Jz`%IY)5S5QBJS-RYky`#ffjXL z-6Hmn8Q4;CoAn~}k_ zgW(?Yj*eGfxmGY134fY$J=J!{$wg8RvLC#BaB-8+1Kx)0+#eg)F`bBcXZz`uXaHkP zhUL6}d}8k$87D|j?{9sbwY!$pLG5MvHtUET%B%<68GLRT^KfY}?0dT9sDodH(C3%j z_VYxH4H$aQhcZYV4co!x(7MWPHe-fJ^g}HM(N$8pYzqQ&T30iKtjO9T+2FQObRAQ` z!c`a3uqzH@PT6XzebLB=D}*_v_|#_2Z#x91h;EwFq$(<@#=0t9p?l^fp|mD<^QjEM zXHrQ%!{C#rY{sXUB^51Ds zIdG$NO36ay9Xn^w*y730@V1)ce=Kw5p+k}7MiGCy`Jd}IFq;2R{v>>$L0aa{GSdmO yCvV; + specialTitle: String; + noTargetImageTip?: string; + score?: number; +} +declare const CompaterImage: FC; +export default CompaterImage; diff --git a/packages/meta/es/ImagePreview/index.js b/packages/meta/es/ImagePreview/index.js new file mode 100644 index 0000000..6bc9061 --- /dev/null +++ b/packages/meta/es/ImagePreview/index.js @@ -0,0 +1,168 @@ +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +import React, { useRef, useState, useEffect, useCallback } from 'react'; +import { generateImg, get, addEventListener } from '@zhst/func'; +import { useUpdateEffect } from '@zhst/hooks'; +import { Button } from 'antd'; +import classNames from 'classnames'; +import Viewer from "../ImageEditor/viewer"; +import Icon from "../iconfont"; +import CornerScore from "./components/CornerScore"; +var componentName = "zhst-image__compater-view"; +// 对比图组件 +var CompaterImage = function CompaterImage(props) { + var url = props.url, + label = props.label, + _props$openRoll = props.openRoll, + openRoll = _props$openRoll === void 0 ? false : _props$openRoll, + _props$urls = props.urls, + urls = _props$urls === void 0 ? [] : _props$urls, + score = props.score; + var imgContainerRef = useRef(null); + var imgInsRef = useRef(null); + var _useState = useState(0), + _useState2 = _slicedToArray(_useState, 2), + scale = _useState2[0], + setScale = _useState2[1]; + //图片翻页机制 + var _useState3 = useState(generateImg(url)), + _useState4 = _slicedToArray(_useState3, 2), + showUrl = _useState4[0], + setShowUrl = _useState4[1]; //记录显示的图片 + + useUpdateEffect(function () { + setShowUrl(generateImg(url)); + if (imgInsRef.current) { + var _imgInsRef$current; + (_imgInsRef$current = imgInsRef.current) === null || _imgInsRef$current === void 0 || _imgInsRef$current.refleshImage({ + image: generateImg(url) + }); + } + }, [url]); + useEffect(function () { + setShowUrl(url); + var handleTransformChange = addEventListener(imgContainerRef.current, 'viewer-transform-change', function (event) { + var data = event.detail; + setScale(get(data, 'scale', 0)); + }); + imgInsRef.current = new Viewer(imgContainerRef.current, { + image: generateImg(url) + }); + return function () { + var _imgInsRef$current2, _imgInsRef$current2$d; + handleTransformChange === null || handleTransformChange === void 0 || handleTransformChange.remove(); + imgInsRef === null || imgInsRef === void 0 || (_imgInsRef$current2 = imgInsRef.current) === null || _imgInsRef$current2 === void 0 || (_imgInsRef$current2$d = _imgInsRef$current2.destroy) === null || _imgInsRef$current2$d === void 0 || _imgInsRef$current2$d.call(_imgInsRef$current2); + imgInsRef.current = null; + }; + }, []); + + //向前翻页 + var handlePre = useCallback(function () { + var index = urls.findIndex(function (v) { + return v === showUrl; + }); + if (index > 0) { + var _imgInsRef$current3; + var newUrl = urls[index - 1]; + setShowUrl(newUrl); + (_imgInsRef$current3 = imgInsRef.current) === null || _imgInsRef$current3 === void 0 || _imgInsRef$current3.refleshImage({ + image: newUrl + }); + } + }, [showUrl, urls]); + //向后翻页 + var handleNext = useCallback(function () { + var index = urls.findIndex(function (v) { + return v === showUrl; + }); + if (index >= 0 && !!urls[index + 1]) { + var _imgInsRef$current4; + var newUrl = urls[index + 1]; + setShowUrl(newUrl); + (_imgInsRef$current4 = imgInsRef.current) === null || _imgInsRef$current4 === void 0 || _imgInsRef$current4.refleshImage({ + image: newUrl + }); + } + }, [showUrl, urls]); + return /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "__container")) + }, /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "__label")) + }, label), /*#__PURE__*/React.createElement("div", { + ref: imgContainerRef, + className: classNames("".concat(componentName, "__view")) + }), !url && /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "__empty")) + }, /*#__PURE__*/React.createElement("img", { + src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==", + title: "\u6682\u65E0\u6570\u636E" + }), /*#__PURE__*/React.createElement("span", { + className: classNames("".concat(componentName, "__empty--text")) + }, "\u6682\u65E0\u5339\u914D\u6570\u636E")), !!url && openRoll && /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "__scoll-module")) + }, /*#__PURE__*/React.createElement(Button, { + type: 'default', + className: classNames("".concat(componentName, "__scoll-module__btn")), + disabled: !urls[urls.findIndex(function (v) { + return v === showUrl; + }) - 1], + onClick: function onClick() { + handlePre(); + } + }, /*#__PURE__*/React.createElement(Icon, { + icon: "icon-qiehuanzuo", + size: 40 + })), /*#__PURE__*/React.createElement(Button, { + type: 'default', + className: classNames("".concat(componentName, "__scoll-module__btn")), + disabled: !urls[urls.findIndex(function (v) { + return v === showUrl; + }) + 1], + onClick: function onClick() { + handleNext(); + } + }, /*#__PURE__*/React.createElement(Icon, { + icon: "icon-qiehuanyou", + size: 40 + }))), !!score && /*#__PURE__*/React.createElement(CornerScore, { + scoreTxt: score + }), /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "__tool")) + }, /*#__PURE__*/React.createElement(Button, { + type: "text", + onClick: function onClick() { + var _imgInsRef$current5, _imgInsRef$current5$s; + imgInsRef === null || imgInsRef === void 0 || (_imgInsRef$current5 = imgInsRef.current) === null || _imgInsRef$current5 === void 0 || (_imgInsRef$current5$s = _imgInsRef$current5.scaleTo) === null || _imgInsRef$current5$s === void 0 || _imgInsRef$current5$s.call(_imgInsRef$current5, 0.1); + } + }, /*#__PURE__*/React.createElement(Icon, { + size: 16, + icon: 'icon-fangda' + }), /*#__PURE__*/React.createElement("span", null, '放大')), /*#__PURE__*/React.createElement(Button, { + type: "text", + onClick: function onClick() { + var _imgInsRef$current6, _imgInsRef$current6$s; + imgInsRef === null || imgInsRef === void 0 || (_imgInsRef$current6 = imgInsRef.current) === null || _imgInsRef$current6 === void 0 || (_imgInsRef$current6$s = _imgInsRef$current6.scaleTo) === null || _imgInsRef$current6$s === void 0 || _imgInsRef$current6$s.call(_imgInsRef$current6, -0.1); + } + }, /*#__PURE__*/React.createElement(Icon, { + size: 16, + icon: 'icon-suoxiao' + }), /*#__PURE__*/React.createElement("span", null, '缩小')), /*#__PURE__*/React.createElement("span", { + className: classNames("".concat(componentName, "__tool__scale")) + }, Math.round(scale * 100) + '%'), /*#__PURE__*/React.createElement("div", { + className: classNames("".concat(componentName, "__tool__line")) + }), /*#__PURE__*/React.createElement(Button, { + type: "text", + onClick: function onClick() { + var _imgInsRef$current7, _imgInsRef$current7$r; + imgInsRef === null || imgInsRef === void 0 || (_imgInsRef$current7 = imgInsRef.current) === null || _imgInsRef$current7 === void 0 || (_imgInsRef$current7$r = _imgInsRef$current7.reset) === null || _imgInsRef$current7$r === void 0 || _imgInsRef$current7$r.call(_imgInsRef$current7); + } + }, /*#__PURE__*/React.createElement(Icon, { + size: 16, + icon: 'icon-zhongzhi3' + }), /*#__PURE__*/React.createElement("span", null, '重置')))); +}; +export default CompaterImage; \ No newline at end of file diff --git a/packages/meta/es/Button/index.d.ts b/packages/meta/es/Temp/index.d.ts similarity index 100% rename from packages/meta/es/Button/index.d.ts rename to packages/meta/es/Temp/index.d.ts diff --git a/packages/meta/es/Button/index.js b/packages/meta/es/Temp/index.js similarity index 100% rename from packages/meta/es/Button/index.js rename to packages/meta/es/Temp/index.js diff --git a/packages/meta/es/doubleClick/index.d.ts b/packages/meta/es/doubleClick/index.d.ts new file mode 100644 index 0000000..8b6b6eb --- /dev/null +++ b/packages/meta/es/doubleClick/index.d.ts @@ -0,0 +1,5 @@ +export declare const doubleCheck: (title?: string, option?: any) => { + destroy: () => void; + update: (configUpdate: import("antd").ModalFuncProps | ((prevConfig: import("antd").ModalFuncProps) => import("antd").ModalFuncProps)) => void; +}; +export default doubleCheck; diff --git a/packages/meta/es/doubleClick/index.js b/packages/meta/es/doubleClick/index.js new file mode 100644 index 0000000..a409470 --- /dev/null +++ b/packages/meta/es/doubleClick/index.js @@ -0,0 +1,84 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +var _excluded = ["okFunc", "cancelFunc", "doubleCheckKey", "doubleCheckTitle"]; +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } +//@ts-nocheck +import { noop } from '@zhst/func'; +import { Modal, Checkbox } from 'antd'; +import { useDoubleCheck } from '@zhst/hooks'; +var confirm = Modal.confirm; + +//二次确认 +export var doubleCheck = function doubleCheck() { + var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '警告'; + var option = arguments.length > 1 ? arguments[1] : undefined; + var _ref = option || {}, + _ref$okFunc = _ref.okFunc, + okFunc = _ref$okFunc === void 0 ? noop : _ref$okFunc, + _ref$cancelFunc = _ref.cancelFunc, + cancelFunc = _ref$cancelFunc === void 0 ? noop : _ref$cancelFunc, + doubleCheckKey = _ref.doubleCheckKey, + _ref$doubleCheckTitle = _ref.doubleCheckTitle, + doubleCheckTitle = _ref$doubleCheckTitle === void 0 ? '不再询问' : _ref$doubleCheckTitle, + others = _objectWithoutProperties(_ref, _excluded); + return confirm(_objectSpread(_objectSpread({ + title: title, + // type: 'warning', + onCancel: function () { + var _onCancel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(isOk) { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!isOk) { + _context.next = 5; + break; + } + _context.next = 3; + return okFunc(); + case 3: + _context.next = 7; + break; + case 5: + _context.next = 7; + return cancelFunc(); + case 7: + case "end": + return _context.stop(); + } + }, _callee); + })); + function onCancel(_x) { + return _onCancel.apply(this, arguments); + } + return onCancel; + }() + }, doubleCheckKey ? { + renderFooterRight: function renderFooterRight() { + var _useDoubleCheck = useDoubleCheck(doubleCheckKey), + _useDoubleCheck2 = _slicedToArray(_useDoubleCheck, 2), + value = _useDoubleCheck2[0], + setValue = _useDoubleCheck2[1]; + return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Checkbox, { + checked: value, + onChange: function onChange(v) { + setValue(v); + } + }, doubleCheckTitle)); + } + } : {}), others)); +}; +export default doubleCheck; \ No newline at end of file diff --git a/packages/meta/es/iconfont/index.d.ts b/packages/meta/es/iconfont/index.d.ts new file mode 100644 index 0000000..e769332 --- /dev/null +++ b/packages/meta/es/iconfont/index.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; +interface IconFontProps { + styles?: React.CSSProperties; + icon?: string; + size?: number; + color?: string; + title?: string; + className?: string; + onIconClick?: (e: React.MouseEvent) => void; + children?: React.ReactNode; + active?: boolean; + disable?: boolean; +} +declare const IconFont: React.FC; +export default IconFont; diff --git a/packages/meta/es/iconfont/index.js b/packages/meta/es/iconfont/index.js new file mode 100644 index 0000000..f5914bd --- /dev/null +++ b/packages/meta/es/iconfont/index.js @@ -0,0 +1,41 @@ +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +import React from 'react'; +import classNames from 'classnames'; +var IconFont = function IconFont(props) { + var _ref = props || {}, + _ref$title = _ref.title, + title = _ref$title === void 0 ? '' : _ref$title, + _ref$className = _ref.className, + className = _ref$className === void 0 ? '' : _ref$className, + _ref$styles = _ref.styles, + styles = _ref$styles === void 0 ? {} : _ref$styles, + icon = _ref.icon, + _ref$size = _ref.size, + size = _ref$size === void 0 ? 14 : _ref$size, + onIconClick = _ref.onIconClick, + children = _ref.children, + _ref$active = _ref.active, + active = _ref$active === void 0 ? false : _ref$active, + _ref$color = _ref.color, + color = _ref$color === void 0 ? '' : _ref$color; + return /*#__PURE__*/React.createElement("i", { + title: title, + onClick: function onClick(e) { + onIconClick && onIconClick(e); + }, + style: _objectSpread(_objectSpread({}, styles), {}, { + cursor: 'pointer', + fontSize: size, + color: color + }, active ? { + color: '#09f' + } : {}), + className: classNames('iconfont', icon, className) + }, children); +}; +export default IconFont; \ No newline at end of file diff --git a/packages/meta/es/index.d.ts b/packages/meta/es/index.d.ts index eae9c8e..241716b 100644 --- a/packages/meta/es/index.d.ts +++ b/packages/meta/es/index.d.ts @@ -1 +1,3 @@ -export { default as Button } from './Button'; +export { default as doubleClick } from './doubleClick'; +export { default as Icon } from './iconfont'; +export { default as ImagePreview } from './ImagePreview'; diff --git a/packages/meta/es/index.js b/packages/meta/es/index.js index 7b6003e..e85eac4 100644 --- a/packages/meta/es/index.js +++ b/packages/meta/es/index.js @@ -1 +1,3 @@ -export { default as Button } from "./Button"; \ No newline at end of file +export { default as doubleClick } from "./doubleClick"; +export { default as Icon } from "./iconfont"; +export { default as ImagePreview } from "./ImagePreview"; \ No newline at end of file diff --git a/packages/meta/es/utils/index.d.ts b/packages/meta/es/utils/index.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/meta/es/utils/index.js b/packages/meta/es/utils/index.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/meta/lib/ImageEditor/cropper/constants.d.ts b/packages/meta/lib/ImageEditor/cropper/constants.d.ts new file mode 100644 index 0000000..5cb1147 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/constants.d.ts @@ -0,0 +1,26 @@ +export declare const NAMESPACE = "zhst-cropper"; +export declare const ACTION_MOVE = "move"; +export declare const ACTION_CROP = "crop"; +export declare const ACTION_EAST = "e"; +export declare const ACTION_WEST = "w"; +export declare const ACTION_SOUTH = "s"; +export declare const ACTION_NORTH = "n"; +export declare const ACTION_NORTH_EAST = "ne"; +export declare const ACTION_NORTH_WEST = "nw"; +export declare const ACTION_SOUTH_EAST = "se"; +export declare const ACTION_SOUTH_WEST = "sw"; +export declare const CLASS_HIDDEN: string; +export declare const CLASS_MASK: string; +export declare const DATA_ACTION: string; +export declare const EVENT_TOUCH_START: string; +export declare const EVENT_TOUCH_MOVE: string; +export declare const EVENT_TOUCH_END: string; +export declare const EVENT_POINTER_DOWN: string; +export declare const EVENT_POINTER_MOVE: string; +export declare const EVENT_POINTER_UP: string; +export declare const EVENT_WHEEL = "wheel"; +export declare const EVENT_CROP_CHANGE = "crop-change"; +export declare const EVENT_CROP_START = "crop-start"; +export declare const EVENT_CROP_END = "crop-end"; +export declare const REGEXP_SPACES: RegExp; +export declare const REGEXP_ACTIONS: RegExp; diff --git a/packages/meta/lib/ImageEditor/cropper/constants.js b/packages/meta/lib/ImageEditor/cropper/constants.js new file mode 100644 index 0000000..c9d9350 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/constants.js @@ -0,0 +1,105 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/cropper/constants.ts +var constants_exports = {}; +__export(constants_exports, { + ACTION_CROP: () => ACTION_CROP, + ACTION_EAST: () => ACTION_EAST, + ACTION_MOVE: () => ACTION_MOVE, + ACTION_NORTH: () => ACTION_NORTH, + ACTION_NORTH_EAST: () => ACTION_NORTH_EAST, + ACTION_NORTH_WEST: () => ACTION_NORTH_WEST, + ACTION_SOUTH: () => ACTION_SOUTH, + ACTION_SOUTH_EAST: () => ACTION_SOUTH_EAST, + ACTION_SOUTH_WEST: () => ACTION_SOUTH_WEST, + ACTION_WEST: () => ACTION_WEST, + CLASS_HIDDEN: () => CLASS_HIDDEN, + CLASS_MASK: () => CLASS_MASK, + DATA_ACTION: () => DATA_ACTION, + EVENT_CROP_CHANGE: () => EVENT_CROP_CHANGE, + EVENT_CROP_END: () => EVENT_CROP_END, + EVENT_CROP_START: () => EVENT_CROP_START, + EVENT_POINTER_DOWN: () => EVENT_POINTER_DOWN, + EVENT_POINTER_MOVE: () => EVENT_POINTER_MOVE, + EVENT_POINTER_UP: () => EVENT_POINTER_UP, + EVENT_TOUCH_END: () => EVENT_TOUCH_END, + EVENT_TOUCH_MOVE: () => EVENT_TOUCH_MOVE, + EVENT_TOUCH_START: () => EVENT_TOUCH_START, + EVENT_WHEEL: () => EVENT_WHEEL, + NAMESPACE: () => NAMESPACE, + REGEXP_ACTIONS: () => REGEXP_ACTIONS, + REGEXP_SPACES: () => REGEXP_SPACES +}); +module.exports = __toCommonJS(constants_exports); +var import_utils = require("../utils"); +var NAMESPACE = "zhst-cropper"; +var ACTION_MOVE = "move"; +var ACTION_CROP = "crop"; +var ACTION_EAST = "e"; +var ACTION_WEST = "w"; +var ACTION_SOUTH = "s"; +var ACTION_NORTH = "n"; +var ACTION_NORTH_EAST = "ne"; +var ACTION_NORTH_WEST = "nw"; +var ACTION_SOUTH_EAST = "se"; +var ACTION_SOUTH_WEST = "sw"; +var CLASS_HIDDEN = `${NAMESPACE}-hidden`; +var CLASS_MASK = `${NAMESPACE}-mask`; +var DATA_ACTION = `${NAMESPACE}-action`; +var EVENT_TOUCH_START = import_utils.IS_TOUCH_DEVICE ? "touchstart" : "mousedown"; +var EVENT_TOUCH_MOVE = import_utils.IS_TOUCH_DEVICE ? "touchmove" : "mousemove"; +var EVENT_TOUCH_END = import_utils.IS_TOUCH_DEVICE ? "touchend touchcancel" : "mouseup"; +var EVENT_POINTER_DOWN = import_utils.HAS_POINTER_EVENT ? "pointerdown" : EVENT_TOUCH_START; +var EVENT_POINTER_MOVE = import_utils.HAS_POINTER_EVENT ? "pointermove" : EVENT_TOUCH_MOVE; +var EVENT_POINTER_UP = import_utils.HAS_POINTER_EVENT ? "pointerup pointercancel" : EVENT_TOUCH_END; +var EVENT_WHEEL = "wheel"; +var EVENT_CROP_CHANGE = "crop-change"; +var EVENT_CROP_START = "crop-start"; +var EVENT_CROP_END = "crop-end"; +var REGEXP_SPACES = /\s\s*/; +var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ACTION_CROP, + ACTION_EAST, + ACTION_MOVE, + ACTION_NORTH, + ACTION_NORTH_EAST, + ACTION_NORTH_WEST, + ACTION_SOUTH, + ACTION_SOUTH_EAST, + ACTION_SOUTH_WEST, + ACTION_WEST, + CLASS_HIDDEN, + CLASS_MASK, + DATA_ACTION, + EVENT_CROP_CHANGE, + EVENT_CROP_END, + EVENT_CROP_START, + EVENT_POINTER_DOWN, + EVENT_POINTER_MOVE, + EVENT_POINTER_UP, + EVENT_TOUCH_END, + EVENT_TOUCH_MOVE, + EVENT_TOUCH_START, + EVENT_WHEEL, + NAMESPACE, + REGEXP_ACTIONS, + REGEXP_SPACES +}); diff --git a/packages/meta/lib/ImageEditor/cropper/event.d.ts b/packages/meta/lib/ImageEditor/cropper/event.d.ts new file mode 100644 index 0000000..08676a5 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/event.d.ts @@ -0,0 +1,9 @@ +declare const _default: { + bind(): void; + unbind(): void; + onCropStart(event: any): void; + onCropMove(event: any): void; + onCropEnd(event: any): void; + change(event: any): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/cropper/event.js b/packages/meta/lib/ImageEditor/cropper/event.js new file mode 100644 index 0000000..22b83e9 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/event.js @@ -0,0 +1,419 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/cropper/event.ts +var event_exports = {}; +__export(event_exports, { + default: () => event_default +}); +module.exports = __toCommonJS(event_exports); +var import_class = require("rc-util/lib/Dom/class"); +var import_func = require("@zhst/func"); +var import_warn = __toESM(require("rc-util/lib/warn")); +var import_utils = require("../utils"); +var import_constants = require("./constants"); +var event_default = { + bind() { + const { container, element, eventHandleList = [], option } = this; + const handleCropStart = (0, import_func.addEventlistener)( + container, + import_constants.EVENT_POINTER_DOWN, + this.onCropStart.bind(this) + ); + eventHandleList.push(handleCropStart); + const handleCropMove = (0, import_func.addEventlistener)( + element.ownerDocument, + import_constants.EVENT_POINTER_MOVE, + this.onCropMove.bind(this) + ); + eventHandleList.push(handleCropMove); + import_constants.EVENT_POINTER_UP.trim().split(import_constants.REGEXP_SPACES).forEach((eventName) => { + const handleCropEnd = (0, import_func.addEventlistener)( + element.ownerDocument, + eventName, + this.onCropEnd.bind(this) + ); + eventHandleList.push(handleCropEnd); + }); + }, + unbind() { + const { eventHandleList } = this; + for (let index = eventHandleList.length; index > 0; index--) { + const handler = eventHandleList.shift; + try { + handler.remove(); + } catch (error) { + (0, import_warn.default)("CROP:REMOVE_EVENT_FAIL,", error); + } + } + }, + onCropStart(event) { + const { buttons, button } = event; + if (this.disabled || // Handle mouse event and pointer event and ignore touch event + (event.type === "mousedown" || event.type === "pointerdown" && event.pointerType === "mouse") && // No primary button (Usually the left button) + ((0, import_func.isNumber)(buttons) && buttons !== 1 || (0, import_func.isNumber)(button) && button !== 0 || // Open context menu + event.ctrlKey)) { + return; + } + const action = (0, import_utils.getData)(event.target, import_constants.DATA_ACTION); + this.pointer = (0, import_utils.getPointer)(event); + if (!import_constants.REGEXP_ACTIONS.test(action)) { + return; + } + event.preventDefault(); + this.action = action; + this.cropping = false; + if (action === import_constants.ACTION_CROP) { + this.cropping = true; + const { showMask } = this.options; + if (showMask) { + (0, import_class.addClass)(this.dragBox, import_constants.CLASS_MASK); + } + } + const hasCrop = (0, import_func.get)(this, "cropBoxData.width", 0) !== 0 && (0, import_func.get)(this, "cropBoxData.height", 0) !== 0; + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_START, hasCrop ? this == null ? void 0 : this.cropBoxData : null); + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_CHANGE, hasCrop ? this == null ? void 0 : this.cropBoxData : null); + }, + onCropMove(event) { + const { action } = this; + if (!action) { + return; + } + this.pointer = Object.assign({}, this.pointer, (0, import_utils.getPointer)(event, true)); + event.preventDefault(); + this.change(event); + }, + onCropEnd(event) { + const { action } = this; + if (!action) { + return; + } + event.preventDefault(); + this.action = null; + this.point = null; + if (this.cropping) { + this.cropping = false; + } + const hasCrop = (0, import_func.get)(this, "cropBoxData.width", 0) !== 0 && (0, import_func.get)(this, "cropBoxData.height", 0) !== 0; + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_CHANGE, hasCrop ? this == null ? void 0 : this.cropBoxData : null); + hasCrop && (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_END, hasCrop ? this == null ? void 0 : this.cropBoxData : null); + }, + change(event) { + const { options, containerData, cropBoxData = {}, pointer = {}, wrapper } = this; + let { action } = this; + let { left, top, width, height } = cropBoxData; + const right = left + width; + const bottom = top + height; + const minLeft = 0; + const minTop = 0; + const maxWidth = containerData.width; + const maxHeight = containerData.height; + let renderable = true; + let offset; + const range = { + x: pointer.endX - pointer.startX, + y: pointer.endY - pointer.startY + }; + const check = (side) => { + switch (side) { + case import_constants.ACTION_EAST: + if (right + range.x > maxWidth) { + range.x = maxWidth - right; + } + break; + case import_constants.ACTION_WEST: + if (left + range.x < minLeft) { + range.x = minLeft - left; + } + break; + case import_constants.ACTION_NORTH: + if (top + range.y < minTop) { + range.y = minTop - top; + } + break; + case import_constants.ACTION_SOUTH: + if (bottom + range.y > maxHeight) { + range.y = maxHeight - bottom; + } + break; + default: + } + }; + switch (action) { + case import_constants.ACTION_CROP: + if (!range.x || !range.y) { + renderable = false; + break; + } + offset = (0, import_utils.getOffset)(this.container); + left = pointer.startX - offset.left; + top = pointer.startY - offset.top; + width = cropBoxData.minWidth; + height = cropBoxData.minHeight; + if (!left) { + debugger; + } + if (range.x > 0) { + action = range.y > 0 ? import_constants.ACTION_SOUTH_EAST : import_constants.ACTION_NORTH_EAST; + } else if (range.x < 0) { + left -= width; + action = range.y > 0 ? import_constants.ACTION_SOUTH_WEST : import_constants.ACTION_NORTH_WEST; + } + if (range.y < 0) { + top -= height; + } + if (!this.cropped) { + (0, import_class.removeClass)(this.cropBox, import_constants.CLASS_HIDDEN); + this.cropped = true; + if (this.limited) { + this.limitCropBox(true, true); + } + } + break; + case import_constants.ACTION_MOVE: + left += range.x; + top += range.y; + break; + case import_constants.ACTION_EAST: + if (range.x >= 0 && right >= maxWidth) { + renderable = false; + break; + } + check(import_constants.ACTION_EAST); + width += range.x; + if (width < 0) { + action = import_constants.ACTION_WEST; + width = -width; + left -= width; + } + break; + case import_constants.ACTION_NORTH: + if (range.y <= 0 && top <= minTop) { + renderable = false; + break; + } + check(import_constants.ACTION_NORTH); + height -= range.y; + top += range.y; + if (height < 0) { + action = import_constants.ACTION_SOUTH; + height = -height; + top -= height; + } + break; + case import_constants.ACTION_WEST: + if (range.x <= 0 && left <= minLeft) { + renderable = false; + break; + } + check(import_constants.ACTION_WEST); + width -= range.x; + left += range.x; + if (width < 0) { + action = import_constants.ACTION_EAST; + width = -width; + left -= width; + } + break; + case import_constants.ACTION_SOUTH: + if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + break; + } + check(import_constants.ACTION_SOUTH); + height += range.y; + if (height < 0) { + action = import_constants.ACTION_NORTH; + height = -height; + top -= height; + } + break; + case import_constants.ACTION_NORTH_EAST: + check(import_constants.ACTION_NORTH); + check(import_constants.ACTION_EAST); + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width += range.x; + } + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + if (width < 0 && height < 0) { + action = import_constants.ACTION_SOUTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = import_constants.ACTION_NORTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = import_constants.ACTION_SOUTH_EAST; + height = -height; + top -= height; + } + break; + case import_constants.ACTION_NORTH_WEST: + check(import_constants.ACTION_NORTH); + check(import_constants.ACTION_WEST); + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + if (width < 0 && height < 0) { + action = import_constants.ACTION_SOUTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = import_constants.ACTION_NORTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = import_constants.ACTION_SOUTH_WEST; + height = -height; + top -= height; + } + break; + case import_constants.ACTION_SOUTH_WEST: + check(import_constants.ACTION_SOUTH); + check(import_constants.ACTION_WEST); + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + if (width < 0 && height < 0) { + action = import_constants.ACTION_NORTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = import_constants.ACTION_SOUTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = import_constants.ACTION_NORTH_WEST; + height = -height; + top -= height; + } + break; + case import_constants.ACTION_SOUTH_EAST: + check(import_constants.ACTION_SOUTH); + check(import_constants.ACTION_EAST); + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width += range.x; + } + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + if (width < 0 && height < 0) { + action = import_constants.ACTION_NORTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = import_constants.ACTION_SOUTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = import_constants.ACTION_NORTH_EAST; + height = -height; + top -= height; + } + break; + default: + break; + } + if (renderable) { + cropBoxData.width = width; + cropBoxData.height = height; + cropBoxData.left = left; + cropBoxData.top = top; + this.action = action; + this.cropBoxData = cropBoxData; + this.renderCropBox(); + } + this.pointer.startX = this.pointer.endX; + this.pointer.startY = this.pointer.endY; + } +}; diff --git a/packages/meta/lib/ImageEditor/cropper/index.d.ts b/packages/meta/lib/ImageEditor/cropper/index.d.ts new file mode 100644 index 0000000..5b4e2ff --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/index.d.ts @@ -0,0 +1,34 @@ +import './index.module.scss'; +export interface Option { + image?: string | HTMLImageElement; + showMask?: boolean; + cropBoxLimited?: { + width: number; + height: number; + top: number; + left: number; + }; + minCropBoxWidth?: number; + minCropBoxHeight?: number; + viewer?: any; + initialCropBoxData?: any; +} +declare class Cropper { + element: HTMLDivElement; + options: Option; + cropped: boolean; + limited: boolean; + image: HTMLImageElement; + eventHandleList: never[]; + container: Element; + dragBox: Element; + cropBox: Element; + viewBox: Element; + constructor(element: any, options?: any); + init(): Promise; + initDefaultCropBox(): void; + load(): Promise; + build(): void; + destroy(): void; +} +export default Cropper; diff --git a/packages/meta/lib/ImageEditor/cropper/index.js b/packages/meta/lib/ImageEditor/cropper/index.js new file mode 100644 index 0000000..8a89a76 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/index.js @@ -0,0 +1,136 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __decorateClass = (decorators, target, key, kind) => { + var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; + for (var i = decorators.length - 1, decorator; i >= 0; i--) + if (decorator = decorators[i]) + result = (kind ? decorator(target, key, result) : decorator(result)) || result; + if (kind && result) + __defProp(target, key, result); + return result; +}; + +// src/ImageEditor/cropper/index.ts +var cropper_exports = {}; +__export(cropper_exports, { + default: () => cropper_default +}); +module.exports = __toCommonJS(cropper_exports); +var import_func = require("@zhst/func"); +var import_class = require("rc-util/lib/Dom/class"); +var import_utils = require("../utils"); +var import_constants = require("./constants"); +var import_template = __toESM(require("./template")); +var import_render = __toESM(require("./render")); +var import_event = __toESM(require("./event")); +var import_viewerBridge = __toESM(require("./viewerBridge")); +var import_preview = __toESM(require("./preview")); +var import_index_module = require("./index.module.scss"); +var Cropper = class { + constructor(element, options) { + /* 所有事件 */ + // eventHandleList: Array; + this.eventHandleList = []; + this.element = element; + this.options = Object.assign({}, (0, import_func.isPlainObject)(options) && options); + this.limited = (0, import_func.isNil)(this.options.cropBoxLimited) ? false : true; + this.cropped = false; + this.init(); + } + async init() { + this.build(); + this.bind(); + this.render(); + this.initPreview(); + if (this.options.viewer) { + this.initBridge(); + } + this.initDefaultCropBox(); + } + initDefaultCropBox() { + const { initialCropBoxData } = this.options || {}; + if (initialCropBoxData) { + this.cropped = true; + const { showMask } = this.options; + showMask && (0, import_class.addClass)(this.dragBox, import_constants.CLASS_MASK); + (0, import_class.removeClass)(this.cropBox, import_constants.CLASS_HIDDEN); + this.cropBoxData = { ...this.cropBoxData, ...initialCropBoxData }; + this.renderCropBox(); + const hasCrop = (0, import_func.get)(this, "cropBoxData.width", 0) !== 0 && (0, import_func.get)(this, "cropBoxData.height", 0) !== 0; + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_CHANGE, hasCrop ? this == null ? void 0 : this.cropBoxData : null); + hasCrop && (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_CROP_END, hasCrop ? this == null ? void 0 : this.cropBoxData : null); + } + } + load() { + return new Promise((resolve, reject) => { + const { image: propImage } = this.options; + if ((0, import_func.isString)(propImage)) { + const image = new Image(); + const imgUrl = propImage; + image.crossOrigin = "anonymous"; + image.src = imgUrl; + image.onload = () => { + this.image = image; + resolve(image); + }; + image.onerror = (err) => { + reject(err); + }; + } else { + this.image = propImage; + resolve(propImage); + } + }); + } + build() { + const template = document.createElement("div"); + template.innerHTML = import_template.default; + const container = template.querySelector(`.${import_constants.NAMESPACE}-container`); + const dragBox = container.querySelector(`.${import_constants.NAMESPACE}-drag-box`); + const cropBox = container.querySelector(`.${import_constants.NAMESPACE}-crop-box`); + const viewBox = container.querySelector(`.${import_constants.NAMESPACE}-view-box`); + this.element.appendChild(container); + this.container = container; + this.dragBox = dragBox; + this.cropBox = cropBox; + this.viewBox = viewBox; + (0, import_class.addClass)(cropBox, import_constants.CLASS_HIDDEN); + } + destroy() { + var _a, _b; + if (this.options.viewer) { + this.clearBridge(); + } + this.unbind(); + (_b = (_a = this.element) == null ? void 0 : _a.removeChild) == null ? void 0 : _b.call(_a, this.container); + } +}; +Cropper = __decorateClass([ + (0, import_utils.Mixin)(import_render.default, import_event.default, import_viewerBridge.default, import_preview.default) +], Cropper); +var cropper_default = Cropper; diff --git a/packages/meta/lib/ImageEditor/cropper/index.module.scss b/packages/meta/lib/ImageEditor/cropper/index.module.scss new file mode 100644 index 0000000..f341aee --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/index.module.scss @@ -0,0 +1,194 @@ +$prefix: zhst; + +:global { + // .zhst-cropper-container { + // width: 100px; + // } + .zhst-cropper { + &-container { + position: relative; + direction: ltr; + font-size: 0; + line-height: 0; + touch-action: none; + user-select: none; + } + + &-container, + &-wrap-box, + &-canvas, + &-drag-box, + &-crop-box, + &-face, + &-modal { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + + &-drag-box { + cursor: crosshair; + } + + &-view-box { + display: block; + overflow: hidden; + width: 100%; + height: 100%; + outline: 1px solid #39f; + outline-color: rgb(51 153 255 / 75%); + } + + //mask + &-mask { + background-color: rgb(0 0 0 / 50%); + } + + //拖拽 + &-face { + background-color: #fff; + cursor: move; + opacity: 0; + } + + //点 + &-point { + position: absolute; + width: 6px; + height: 6px; + + // background: #fff; + background-color: #39f; + border-radius: 50%; + + // border: 0.2px solid #000; + + // 北n + // 东w 西e + // 南s + + &.point-nw { + top: -3px; + left: -3px; + cursor: nwse-resize; + } + + &.point-n { + top: -3px; + left: 50%; + cursor: ns-resize; + transform: translateX(-50%); + } + + &.point-ne { + top: -3px; + right: -3px; + cursor: nesw-resize; + } + + &.point-w { + top: 50%; + left: -3px; + cursor: ew-resize; + transform: translateY(-50%); + } + + &.point-e { + top: 50%; + right: -3px; + cursor: ew-resize; + transform: translateY(-50%); + } + + &.point-sw { + bottom: -3px; + left: -3px; + cursor: nesw-resize; + } + + &.point-s { + bottom: -3px; + left: 50%; + cursor: ns-resize; + transform: translateX(-50%); + } + + &.point-se { + right: -3px; + bottom: -3px; + cursor: nwse-resize; + } + } + + //线 + &-line { + // opacity: 0.1; + position: absolute; + display: block; + width: 100%; + height: 100%; + background-color: #39f; + + &.line-e { + top: 0; + right: -1px; + width: 2px; + cursor: ew-resize; + } + + &.line-n { + top: -1px; + left: 0; + height: 2px; + cursor: ns-resize; + } + + &.line-w { + top: 0; + left: -1px; + width: 2px; + cursor: ew-resize; + } + + &.line-s { + bottom: -1px; + left: 0; + height: 2px; + cursor: ns-resize; + } + } + + //辅助class + &-invisible { + opacity: 0; + } + + &-hide { + position: absolute; + display: block; + width: 0; + height: 0; + } + + &-hidden { + display: none !important; + } + + &-move { + cursor: move; + } + + &-crop { + cursor: crosshair; + } + + &-disabled &-drag-box, + &-disabled &-face, + &-disabled &-line, + &-disabled &-point { + cursor: not-allowed; + } + } +} diff --git a/packages/meta/lib/ImageEditor/cropper/preview.d.ts b/packages/meta/lib/ImageEditor/cropper/preview.d.ts new file mode 100644 index 0000000..c186490 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/preview.d.ts @@ -0,0 +1,6 @@ +declare const _default: { + previewBox: null; + initPreview(): void; + renderPreview(): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/cropper/preview.js b/packages/meta/lib/ImageEditor/cropper/preview.js new file mode 100644 index 0000000..300bf87 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/preview.js @@ -0,0 +1,75 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/cropper/preview.ts +var preview_exports = {}; +__export(preview_exports, { + default: () => preview_default +}); +module.exports = __toCommonJS(preview_exports); +var import_css = require("rc-util/lib/Dom/css"); +var import_utils = require("../utils"); +var preview_default = { + //var + previewBox: null, + //method + initPreview() { + const { showMask, img, viewer } = this.options; + if (!showMask) + return; + if (viewer) { + const canvas = document.createElement("canvas"); + canvas.width = this.containerData.width; + canvas.height = this.containerData.height; + this.viewBox.appendChild(canvas); + this.previewBox = canvas; + } else { + const image = document.createElement("img"); + image.src = img; + this.viewBox.appendChild(image); + this.previewBox = image; + } + }, + renderPreview() { + const { showMask, img, viewer } = this.options; + if (!showMask) + return; + const { containerData, cropBoxData } = this; + const { width, height } = containerData; + const left = cropBoxData.left; + const top = cropBoxData.top; + if (!this.cropped || this.disabled) { + return; + } + (0, import_css.set)( + this.previewBox, + Object.assign( + { + width, + height + }, + (0, import_utils.getTransforms)( + Object.assign({ + translateX: -left, + translateY: -top + }) + ) + ) + ); + } +}; diff --git a/packages/meta/lib/ImageEditor/cropper/render.d.ts b/packages/meta/lib/ImageEditor/cropper/render.d.ts new file mode 100644 index 0000000..a2c73c3 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/render.d.ts @@ -0,0 +1,20 @@ +declare const _default: { + cropBoxData: null; + viewBoxImage: null; + render(): void; + initContainer(): void; + initCropBox(): void; + renderCropBox(): void; + clearCropBox(): { + cropBoxData: null; + viewBoxImage: null; + render(): void; + initContainer(): void; + initCropBox(): void; + renderCropBox(): void; + clearCropBox(): any; + limitCropBox(sizeLimited: any, positionLimited: any): void; + }; + limitCropBox(sizeLimited: any, positionLimited: any): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/cropper/render.js b/packages/meta/lib/ImageEditor/cropper/render.js new file mode 100644 index 0000000..1ea134c --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/render.js @@ -0,0 +1,164 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/cropper/render.ts +var render_exports = {}; +__export(render_exports, { + default: () => render_default +}); +module.exports = __toCommonJS(render_exports); +var import_css = require("rc-util/lib/Dom/css"); +var import_class = require("rc-util/lib/Dom/class"); +var import_utils = require("../utils"); +var import_constants = require("./constants"); +var render_default = { + cropBoxData: null, + viewBoxImage: null, + render() { + this.initContainer(); + this.initCropBox(); + this.limitCropBox(true, true); + }, + initContainer() { + const { element, container } = this; + const containerData = { + width: (0, import_css.getOuterWidth)(element), + height: (0, import_css.getOuterHeight)(element) + }; + this.containerData = containerData; + (0, import_css.set)(container, containerData); + }, + initCropBox() { + const { containerData, options } = this; + const cropBoxData = { + // width: containerData.width, + // height: containerData.height, + width: 0, + height: 0, + left: 0, + top: 0, + minWidth: 0, + minHeight: 0, + maxWidth: containerData.width, + maxHeight: containerData.height, + minLeft: 0, + maxLeft: containerData.width, + minTop: 0, + maxTop: containerData.height, + oldLeft: 0, + oldTop: 0 + }; + this.cropBoxData = cropBoxData; + this.limitCropBox(true, true); + }, + renderCropBox() { + const { cropBoxData } = this; + if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) { + cropBoxData.left = cropBoxData.oldLeft; + } + if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) { + cropBoxData.top = cropBoxData.oldTop; + } + cropBoxData.width = Math.min( + Math.max(cropBoxData.width, cropBoxData.minWidth), + cropBoxData.maxWidth + ); + cropBoxData.height = Math.min( + Math.max(cropBoxData.height, cropBoxData.minHeight), + cropBoxData.maxHeight + ); + this.limitCropBox(false, true); + cropBoxData.left = Math.min( + Math.max(cropBoxData.left, cropBoxData.minLeft), + cropBoxData.maxLeft + ); + cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop); + cropBoxData.oldLeft = cropBoxData.left; + cropBoxData.oldTop = cropBoxData.top; + (0, import_css.set)( + this.cropBox, + Object.assign( + { + width: cropBoxData.width, + height: cropBoxData.height + }, + (0, import_utils.getTransforms)({ + translateX: cropBoxData.left, + translateY: cropBoxData.top + }) + ) + ); + if (this.options.showMask) { + this.renderPreview(); + } + }, + clearCropBox() { + if (this.cropped && !this.disabled) { + Object.assign(this.cropBoxData, { + left: 0, + top: 0, + width: 0, + height: 0 + }); + this.cropped = false; + this.renderCropBox(); + (0, import_class.removeClass)(this.dragBox, import_constants.CLASS_MASK); + (0, import_class.addClass)(this.cropBox, import_constants.CLASS_HIDDEN); + } + return this; + }, + limitCropBox(sizeLimited, positionLimited) { + const { options, containerData, cropBoxData, limited } = this; + const { cropBoxLimited = {} } = options; + if (sizeLimited) { + let minCropBoxWidth = Number(options.minCropBoxWidth) || 0; + let minCropBoxHeight = Number(options.minCropBoxHeight) || 0; + const maxCropBoxWidth = limited ? Math.min( + containerData.width, + cropBoxLimited.width, + cropBoxLimited.width + cropBoxLimited.left, + containerData.width - cropBoxLimited.left + ) : containerData.width; + const maxCropBoxHeight = limited ? Math.min( + containerData.height, + cropBoxLimited.height, + cropBoxLimited.height + cropBoxLimited.top, + containerData.height - cropBoxLimited.top + ) : containerData.height; + minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width); + minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height); + cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth); + cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight); + cropBoxData.maxWidth = maxCropBoxWidth; + cropBoxData.maxHeight = maxCropBoxHeight; + } + if (positionLimited) { + if (limited) { + cropBoxData.minLeft = Math.max(0, cropBoxLimited.left); + cropBoxData.minTop = Math.max(0, cropBoxLimited.top); + cropBoxData.maxLeft = Math.min(containerData.width, cropBoxLimited.left + cropBoxLimited.width) - cropBoxData.width; + cropBoxData.maxTop = Math.min(containerData.height, cropBoxLimited.top + cropBoxLimited.height) - cropBoxData.height; + } else { + cropBoxData.minLeft = 0; + cropBoxData.minTop = 0; + cropBoxData.maxLeft = containerData.width - cropBoxData.width; + cropBoxData.maxTop = containerData.height - cropBoxData.height; + } + } + } +}; diff --git a/packages/meta/lib/ImageEditor/cropper/template.js b/packages/meta/lib/ImageEditor/cropper/template.js new file mode 100644 index 0000000..ed19710 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/template.js @@ -0,0 +1,46 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/cropper/template.js +var template_exports = {}; +__export(template_exports, { + default: () => template_default +}); +module.exports = __toCommonJS(template_exports); +var import_constants = require("./constants"); +var template_default = ` +
+
+
+ + > + + + + + + + + + + + + +
+
+`; diff --git a/packages/meta/lib/ImageEditor/cropper/viewerBridge.d.ts b/packages/meta/lib/ImageEditor/cropper/viewerBridge.d.ts new file mode 100644 index 0000000..c1694cd --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/viewerBridge.d.ts @@ -0,0 +1,7 @@ +declare const _default: { + initBridge(): void; + onTransformChange(viewer: any): void; + onWheel(event: any): void; + clearBridge(): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/cropper/viewerBridge.js b/packages/meta/lib/ImageEditor/cropper/viewerBridge.js new file mode 100644 index 0000000..aebd446 --- /dev/null +++ b/packages/meta/lib/ImageEditor/cropper/viewerBridge.js @@ -0,0 +1,93 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/cropper/viewerBridge.ts +var viewerBridge_exports = {}; +__export(viewerBridge_exports, { + default: () => viewerBridge_default +}); +module.exports = __toCommonJS(viewerBridge_exports); +var import_func = require("@zhst/func"); +var import_constants = require("./constants"); +var import_constants2 = require("../viewer/constants"); +var viewerBridge_default = { + initBridge() { + const { container, element, eventHandleList = [], option } = this; + if (this.options.viewer) { + const viewer = this.options.viewer; + const handleWhele = (0, import_func.addEventlistener)(container, import_constants.EVENT_WHEEL, this.onWheel.bind(this)); + eventHandleList.push(handleWhele); + this.onTransformChange(viewer); + this.limited = true; + const handleTransformChange = (0, import_func.addEventlistener)( + viewer.element, + import_constants2.EVENT_VIEWER_TRANSFORM_CHANGE, + (event) => { + this.onTransformChange(viewer); + } + ); + eventHandleList.push(handleTransformChange); + } + }, + onTransformChange(viewer) { + if (!viewer.image) + return; + const { width: imgWidth, height: imgHeight } = viewer.image; + const { rotate = 0 } = viewer.targetTransform || {}; + let imgLeftTop = { x: 0, y: 0 }; + let imgRightBottom = { x: imgWidth, y: imgHeight }; + if (rotate % 180 !== 0) { + const diffx = (imgWidth - imgHeight) / 2; + const diffy = (imgHeight - imgWidth) / 2; + imgLeftTop = { + x: imgLeftTop.x + diffx, + y: imgLeftTop.y + diffy + }; + imgRightBottom = { + x: imgRightBottom.x - diffx, + y: imgRightBottom.y - diffy + }; + } + const { x: x1, y: y1 } = viewer.originAxisToCanvasAxis({ x: imgLeftTop.x, y: imgLeftTop.y }); + const { x: x2, y: y2 } = viewer.originAxisToCanvasAxis({ + x: imgRightBottom.x, + y: imgRightBottom.y + }); + const limitCropBox = { + left: x1, + top: y1, + width: x2 - x1, + height: y2 - y1 + }; + this.options.cropBoxLimited = limitCropBox; + this.limitCropBox(true, true); + if (this.previewBox) { + const canvas = this.previewBox; + const ctx = canvas.getContext("2d"); + const viewerRender = viewer.renderCanvas.bind(viewer); + viewerRender(ctx); + } + }, + onWheel(event) { + const viewer = this.options.viewer; + const onViewerWheelHandler = viewer.onWheel.bind(viewer); + onViewerWheelHandler(event, this.cropped ? this.cropBoxData : null); + }, + clearBridge() { + } +}; diff --git a/packages/meta/lib/ImageEditor/index.d.ts b/packages/meta/lib/ImageEditor/index.d.ts new file mode 100644 index 0000000..61a9d1c --- /dev/null +++ b/packages/meta/lib/ImageEditor/index.d.ts @@ -0,0 +1,4 @@ +export { default as Cropper } from './cropper'; +export { default as Viewer } from './viewer'; +export { EVENT_CROP_CHANGE, EVENT_CROP_START, EVENT_CROP_END } from './cropper/constants'; +export { EVENT_VIEWER_TRANSFORM_CHANGE, EVENT_VIEWER_READY, EVENT_VIEWER_ERROR, EVENT_SHAPE_SELECT, EVENT_EYE_DONE, } from './viewer/constants'; diff --git a/packages/meta/lib/ImageEditor/index.js b/packages/meta/lib/ImageEditor/index.js new file mode 100644 index 0000000..9925e60 --- /dev/null +++ b/packages/meta/lib/ImageEditor/index.js @@ -0,0 +1,60 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/index.ts +var ImageEditor_exports = {}; +__export(ImageEditor_exports, { + Cropper: () => import_cropper.default, + EVENT_CROP_CHANGE: () => import_constants.EVENT_CROP_CHANGE, + EVENT_CROP_END: () => import_constants.EVENT_CROP_END, + EVENT_CROP_START: () => import_constants.EVENT_CROP_START, + EVENT_EYE_DONE: () => import_constants2.EVENT_EYE_DONE, + EVENT_SHAPE_SELECT: () => import_constants2.EVENT_SHAPE_SELECT, + EVENT_VIEWER_ERROR: () => import_constants2.EVENT_VIEWER_ERROR, + EVENT_VIEWER_READY: () => import_constants2.EVENT_VIEWER_READY, + EVENT_VIEWER_TRANSFORM_CHANGE: () => import_constants2.EVENT_VIEWER_TRANSFORM_CHANGE, + Viewer: () => import_viewer.default +}); +module.exports = __toCommonJS(ImageEditor_exports); +var import_cropper = __toESM(require("./cropper")); +var import_viewer = __toESM(require("./viewer")); +var import_constants = require("./cropper/constants"); +var import_constants2 = require("./viewer/constants"); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + Cropper, + EVENT_CROP_CHANGE, + EVENT_CROP_END, + EVENT_CROP_START, + EVENT_EYE_DONE, + EVENT_SHAPE_SELECT, + EVENT_VIEWER_ERROR, + EVENT_VIEWER_READY, + EVENT_VIEWER_TRANSFORM_CHANGE, + Viewer +}); diff --git a/packages/meta/lib/ImageEditor/interface.d.ts b/packages/meta/lib/ImageEditor/interface.d.ts new file mode 100644 index 0000000..54ccf05 --- /dev/null +++ b/packages/meta/lib/ImageEditor/interface.d.ts @@ -0,0 +1,3 @@ +//@ts-nocheck +export { Option as CropOption } from './cropper'; +export { Option as ViewOption } from './viewer'; diff --git a/packages/meta/lib/ImageEditor/utils.d.ts b/packages/meta/lib/ImageEditor/utils.d.ts new file mode 100644 index 0000000..ff0e497 --- /dev/null +++ b/packages/meta/lib/ImageEditor/utils.d.ts @@ -0,0 +1,89 @@ +export declare const IS_BROWSER: boolean; +export declare const WINDOW: {}; +export declare const IS_TOUCH_DEVICE: boolean; +export declare const HAS_POINTER_EVENT: boolean; +/** + * Transform the given string from camelCase to kebab-case + * @param {string} value - The value to transform. + * @returns {string} The transformed value. + */ +export declare function toParamCase(value: any): any; +/** + * Get data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to get. + * @returns {string} The data value. + */ +export declare function getData(element: any, name: any): any; +export declare function toggleClass(node: HTMLElement, className: string): void; +/** + * Get a pointer from an event object. + * @param {Object} event - The target event object. + * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. + * @returns {Object} The result pointer contains start and/or end point coordinates. + */ +export declare function getPointer({ pageX, pageY }: { + pageX: any; + pageY: any; +}, endOnly?: any): { + endX: any; + endY: any; +} | { + endX: any; + endY: any; + startX: any; + startY: any; +}; +/** + * Get the offset base on the document. + * @param {Element} element - The target element. + * @returns {Object} The offset data. + */ +export declare function getOffset(element: any): { + left: any; + top: any; +}; +/** + * Get transforms base on the given object. + * @param {Object} obj - The target object. + * @returns {string} A string contains transform values. + */ +export declare function getTransforms({ rotate, scaleX, scaleY, translateX, translateY, }: { + rotate?: number; + scaleX?: number; + scaleY?: number; + translateX?: number; + translateY?: number; +}): { + WebkitTransform: string; + msTransform: string; + transform: string; +}; +/** + * copy from https://github.com/steelsojka/lodash-decorators/blob/master/src/mixin.ts + * Mixins an object into the classes prototype. + * @export + * @param {...Object[]} srcs + * @returns {ClassDecorator} + * @example + * + * const myMixin = { + * blorg: () => 'blorg!' + * } + * + * @Mixin(myMixin) + * class MyClass {} + * + * const myClass = new MyClass(); + * + * myClass.blorg(); // => 'blorg!' + */ +export declare function Mixin(...srcs: Object[]): ClassDecorator; +/** + * Dispatch event on the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Object} data - The additional event data. + * @returns {boolean} Indicate if the event is default prevented or not. + */ +export declare function dispatchEvent(element: any, type: any, data?: any): any; diff --git a/packages/meta/lib/ImageEditor/utils.js b/packages/meta/lib/ImageEditor/utils.js new file mode 100644 index 0000000..d3c9226 --- /dev/null +++ b/packages/meta/lib/ImageEditor/utils.js @@ -0,0 +1,149 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/utils.ts +var utils_exports = {}; +__export(utils_exports, { + HAS_POINTER_EVENT: () => HAS_POINTER_EVENT, + IS_BROWSER: () => IS_BROWSER, + IS_TOUCH_DEVICE: () => IS_TOUCH_DEVICE, + Mixin: () => Mixin, + WINDOW: () => WINDOW, + dispatchEvent: () => dispatchEvent, + getData: () => getData, + getOffset: () => getOffset, + getPointer: () => getPointer, + getTransforms: () => getTransforms, + toParamCase: () => toParamCase, + toggleClass: () => toggleClass +}); +module.exports = __toCommonJS(utils_exports); +var import_func = require("@zhst/func"); +var import_class = require("rc-util/lib/Dom/class"); +var IS_BROWSER = typeof window !== "undefined" && typeof window.document !== "undefined"; +var WINDOW = IS_BROWSER ? window : {}; +var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? "ontouchstart" in WINDOW.document.documentElement : false; +var HAS_POINTER_EVENT = IS_BROWSER ? "PointerEvent" in WINDOW : false; +function toHump(name) { + return name.replace(/\-(\w)/g, function(all, letter) { + return letter.toUpperCase(); + }); +} +var REGEXP_CAMEL_CASE = /([a-z\d])([A-Z])/g; +function toParamCase(value) { + return value.replace(REGEXP_CAMEL_CASE, "$1-$2").toLowerCase(); +} +function getData(element, name) { + if ((0, import_func.isObject)(element[name])) { + return element[name]; + } + if (element.dataset) { + return element.dataset[toHump(name)]; + } + return element.getAttribute(`data-${toParamCase(name)}`); +} +function toggleClass(node, className) { + if ((0, import_class.hasClass)(node, className)) { + (0, import_class.addClass)(node, className); + } else { + (0, import_class.removeClass)(node, className); + } +} +function getPointer({ pageX, pageY }, endOnly) { + const end = { + endX: pageX, + endY: pageY + }; + return endOnly ? end : { + startX: pageX, + startY: pageY, + ...end + }; +} +function getOffset(element) { + const box = element.getBoundingClientRect(); + return { + left: box.left + (window.pageXOffset - document.documentElement.clientLeft), + top: box.top + (window.pageYOffset - document.documentElement.clientTop) + }; +} +function getTransforms({ + rotate, + scaleX, + scaleY, + translateX, + translateY +}) { + const values = []; + if ((0, import_func.isNumber)(translateX) && translateX !== 0) { + values.push(`translateX(${translateX}px)`); + } + if ((0, import_func.isNumber)(translateY) && translateY !== 0) { + values.push(`translateY(${translateY}px)`); + } + if ((0, import_func.isNumber)(rotate) && rotate !== 0) { + values.push(`rotate(${rotate}deg)`); + } + if ((0, import_func.isNumber)(scaleX) && scaleX !== 1) { + values.push(`scaleX(${scaleX})`); + } + if ((0, import_func.isNumber)(scaleY) && scaleY !== 1) { + values.push(`scaleY(${scaleY})`); + } + const transform = values.length ? values.join(" ") : "none"; + return { + WebkitTransform: transform, + msTransform: transform, + transform + }; +} +function Mixin(...srcs) { + return (target) => { + (0, import_func.assign)(target.prototype, ...srcs); + return target; + }; +} +function dispatchEvent(element, type, data) { + let event; + if ((0, import_func.isFunction)(Event) && (0, import_func.isFunction)(CustomEvent)) { + event = new CustomEvent(type, { + detail: data, + bubbles: true, + cancelable: true + }); + } else { + event = document.createEvent("CustomEvent"); + event.initCustomEvent(type, true, true, data); + } + return element.dispatchEvent(event); +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + HAS_POINTER_EVENT, + IS_BROWSER, + IS_TOUCH_DEVICE, + Mixin, + WINDOW, + dispatchEvent, + getData, + getOffset, + getPointer, + getTransforms, + toParamCase, + toggleClass +}); diff --git a/packages/meta/lib/ImageEditor/viewer/constants.d.ts b/packages/meta/lib/ImageEditor/viewer/constants.d.ts new file mode 100644 index 0000000..78e2e09 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/constants.d.ts @@ -0,0 +1,26 @@ +export declare const NAMESPACE = "zhst-viewer"; +export declare const ACTION_DRAG = "drag"; +export declare const CLASS_CANVAS: string; +export declare const CLASS_MOVE: string; +export declare const EVENT_CLICK = "click"; +export declare const EVENT_TOUCH_START: string; +export declare const EVENT_TOUCH_MOVE: string; +export declare const EVENT_TOUCH_END: string; +export declare const EVENT_POINTER_DOWN: string; +export declare const EVENT_POINTER_MOVE: string; +export declare const EVENT_POINTER_UP: string; +export declare const EVENT_WHEEL = "wheel"; +export declare const EVENT_LEAVEL = "mouseleave"; +export declare const EVENT_ENTER = "mouseenter"; +export declare const EVENT_VIEWER_TRANSFORM_CHANGE = "viewer-transform-change"; +export declare const EVENT_VIEWER_READY = "viewer-ready"; +export declare const EVENT_VIEWER_ERROR = "viewer-error"; +export declare const EVENT_SHAPE_SELECT = "shape-select"; +export declare const EVENT_EYE_DONE = "eye-done"; +export declare const REGEXP_SPACES: RegExp; +export declare const AXIS_TYPE_ORIGIN = 1; +export declare const AXIS_TYPE_CANVAS = 2; +export declare const AXIS_TYPE_IMAGE = 3; +export declare const SHAPE_TYPE_CUSTOM = 1; +export declare const SHAPE_TYPE_RECT = 2; +export declare const SHAPE_TYPE_CIRCLE = 3; diff --git a/packages/meta/lib/ImageEditor/viewer/constants.js b/packages/meta/lib/ImageEditor/viewer/constants.js new file mode 100644 index 0000000..d36fb1e --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/constants.js @@ -0,0 +1,105 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/viewer/constants.ts +var constants_exports = {}; +__export(constants_exports, { + ACTION_DRAG: () => ACTION_DRAG, + AXIS_TYPE_CANVAS: () => AXIS_TYPE_CANVAS, + AXIS_TYPE_IMAGE: () => AXIS_TYPE_IMAGE, + AXIS_TYPE_ORIGIN: () => AXIS_TYPE_ORIGIN, + CLASS_CANVAS: () => CLASS_CANVAS, + CLASS_MOVE: () => CLASS_MOVE, + EVENT_CLICK: () => EVENT_CLICK, + EVENT_ENTER: () => EVENT_ENTER, + EVENT_EYE_DONE: () => EVENT_EYE_DONE, + EVENT_LEAVEL: () => EVENT_LEAVEL, + EVENT_POINTER_DOWN: () => EVENT_POINTER_DOWN, + EVENT_POINTER_MOVE: () => EVENT_POINTER_MOVE, + EVENT_POINTER_UP: () => EVENT_POINTER_UP, + EVENT_SHAPE_SELECT: () => EVENT_SHAPE_SELECT, + EVENT_TOUCH_END: () => EVENT_TOUCH_END, + EVENT_TOUCH_MOVE: () => EVENT_TOUCH_MOVE, + EVENT_TOUCH_START: () => EVENT_TOUCH_START, + EVENT_VIEWER_ERROR: () => EVENT_VIEWER_ERROR, + EVENT_VIEWER_READY: () => EVENT_VIEWER_READY, + EVENT_VIEWER_TRANSFORM_CHANGE: () => EVENT_VIEWER_TRANSFORM_CHANGE, + EVENT_WHEEL: () => EVENT_WHEEL, + NAMESPACE: () => NAMESPACE, + REGEXP_SPACES: () => REGEXP_SPACES, + SHAPE_TYPE_CIRCLE: () => SHAPE_TYPE_CIRCLE, + SHAPE_TYPE_CUSTOM: () => SHAPE_TYPE_CUSTOM, + SHAPE_TYPE_RECT: () => SHAPE_TYPE_RECT +}); +module.exports = __toCommonJS(constants_exports); +var import_utils = require("../utils"); +var NAMESPACE = "zhst-viewer"; +var ACTION_DRAG = "drag"; +var CLASS_CANVAS = `${NAMESPACE}-canvas`; +var CLASS_MOVE = `${NAMESPACE}-move`; +var EVENT_CLICK = "click"; +var EVENT_TOUCH_START = import_utils.IS_TOUCH_DEVICE ? "touchstart" : "mousedown"; +var EVENT_TOUCH_MOVE = import_utils.IS_TOUCH_DEVICE ? "touchmove" : "mousemove"; +var EVENT_TOUCH_END = import_utils.IS_TOUCH_DEVICE ? "touchend touchcancel" : "mouseup"; +var EVENT_POINTER_DOWN = import_utils.HAS_POINTER_EVENT ? "pointerdown" : EVENT_TOUCH_START; +var EVENT_POINTER_MOVE = import_utils.HAS_POINTER_EVENT ? "pointermove" : EVENT_TOUCH_MOVE; +var EVENT_POINTER_UP = import_utils.HAS_POINTER_EVENT ? "pointerup pointercancel" : EVENT_TOUCH_END; +var EVENT_WHEEL = "wheel"; +var EVENT_LEAVEL = "mouseleave"; +var EVENT_ENTER = "mouseenter"; +var EVENT_VIEWER_TRANSFORM_CHANGE = "viewer-transform-change"; +var EVENT_VIEWER_READY = "viewer-ready"; +var EVENT_VIEWER_ERROR = "viewer-error"; +var EVENT_SHAPE_SELECT = "shape-select"; +var EVENT_EYE_DONE = "eye-done"; +var REGEXP_SPACES = /\s\s*/; +var AXIS_TYPE_ORIGIN = 1; +var AXIS_TYPE_CANVAS = 2; +var AXIS_TYPE_IMAGE = 3; +var SHAPE_TYPE_CUSTOM = 1; +var SHAPE_TYPE_RECT = 2; +var SHAPE_TYPE_CIRCLE = 3; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ACTION_DRAG, + AXIS_TYPE_CANVAS, + AXIS_TYPE_IMAGE, + AXIS_TYPE_ORIGIN, + CLASS_CANVAS, + CLASS_MOVE, + EVENT_CLICK, + EVENT_ENTER, + EVENT_EYE_DONE, + EVENT_LEAVEL, + EVENT_POINTER_DOWN, + EVENT_POINTER_MOVE, + EVENT_POINTER_UP, + EVENT_SHAPE_SELECT, + EVENT_TOUCH_END, + EVENT_TOUCH_MOVE, + EVENT_TOUCH_START, + EVENT_VIEWER_ERROR, + EVENT_VIEWER_READY, + EVENT_VIEWER_TRANSFORM_CHANGE, + EVENT_WHEEL, + NAMESPACE, + REGEXP_SPACES, + SHAPE_TYPE_CIRCLE, + SHAPE_TYPE_CUSTOM, + SHAPE_TYPE_RECT +}); diff --git a/packages/meta/lib/ImageEditor/viewer/event.d.ts b/packages/meta/lib/ImageEditor/viewer/event.d.ts new file mode 100644 index 0000000..9d75922 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/event.d.ts @@ -0,0 +1,15 @@ +declare const _default: { + disabled: boolean; + eventHandleList: never[]; + wheeling: boolean; + pointer: null; + action: null; + bind(): void; + unbind(): void; + onWheel(event: any, cropBox?: any): void; + onDragStart(event: any): void; + onDragMove(event: any): void; + onDragEnd(event: any): void; + onClick(event: any): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/viewer/event.js b/packages/meta/lib/ImageEditor/viewer/event.js new file mode 100644 index 0000000..40d67c0 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/event.js @@ -0,0 +1,202 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/viewer/event.ts +var event_exports = {}; +__export(event_exports, { + default: () => event_default +}); +module.exports = __toCommonJS(event_exports); +var import_func = require("@zhst/func"); +var import_class = require("rc-util/lib/Dom/class.js"); +var import_guid = __toESM(require("rc-util/lib/guid")); +var import_warn = __toESM(require("rc-util/lib/warn")); +var import_utils = require("../utils"); +var import_constants = require("./constants"); +var event_default = { + //store + disabled: false, + eventHandleList: [], + wheeling: false, + pointer: null, + action: null, + //method + bind() { + const { canvas, element, eventHandleList = [], options } = this; + const scaleAble = (0, import_func.get)(options, "scaleAble", true); + if (scaleAble) { + const handleWhele = (0, import_func.addEventListener)(canvas, import_constants.EVENT_WHEEL, this.onWheel.bind(this)); + eventHandleList.push(handleWhele); + } + const dragAble = (0, import_func.get)(options, "dragAble", true); + if (dragAble) { + const handleDragStart = (0, import_func.addEventListener)( + canvas, + import_constants.EVENT_POINTER_DOWN, + this.onDragStart.bind(this) + ); + eventHandleList.push(import_func.addEventListener); + const handleDragMove = (0, import_func.addEventListener)( + element.ownerDocument, + import_constants.EVENT_POINTER_MOVE, + this.onDragMove.bind(this) + ); + eventHandleList.push(handleDragMove); + import_constants.EVENT_POINTER_UP.trim().split(import_constants.REGEXP_SPACES).forEach((eventName) => { + const handleDragEnd = (0, import_func.addEventListener)( + element.ownerDocument, + eventName, + this.onDragEnd.bind(this) + ); + eventHandleList.push(handleDragEnd); + }); + } + const handleClick = (0, import_func.addEventListener)(canvas, import_constants.EVENT_CLICK, this.onClick.bind(this)); + eventHandleList.push(handleClick); + }, + unbind() { + const { eventHandleList } = this; + for (let index = eventHandleList.length; index > 0; index--) { + const handler = eventHandleList.shift(); + try { + handler.remove(); + } catch (error) { + (0, import_warn.default)("VIEWER:REMOVE_EVENT_FAIL,", error); + } + } + }, + /* 图片事件 */ + onWheel(event, cropBox) { + event.stopPropagation(); + event.preventDefault(); + if (this.wheeling || !this.zoomable) { + return; + } + this.wheeling = true; + setTimeout(() => { + this.wheeling = false; + }, 16); + const ratio = Number(this.options.zoomRatio) || 0.1; + let delta = 1; + if (event.deltaY) { + delta = event.deltaY > 0 ? 1 : -1; + } else if (event.wheelDelta) { + delta = -event.wheelDelta / 120; + } else if (event.detail) { + delta = event.detail > 0 ? 1 : -1; + } + const step = -delta * ratio; + const pos = this.windowToCanvasAxis(event); + this.calcTransform( + { + scaleCenter: { + ...pos, + step + } + }, + cropBox + ); + }, + onDragStart(event) { + event.stopPropagation(); + event.preventDefault(); + const { buttons, button } = event; + if (!this.movable) { + return; + } + if (this.disabled || // Handle mouse event and pointer event and ignore touch event + (event.type === "mousedown" || event.type === "pointerdown" && event.pointerType === "mouse") && // No primary button (Usually the left button) + ((0, import_func.isNumber)(buttons) && buttons !== 1 || (0, import_func.isNumber)(button) && button !== 0 || // Open context menu + event.ctrlKey)) { + return; + } + this.pointer = (0, import_utils.getPointer)(event); + this.action = import_constants.ACTION_DRAG; + (0, import_class.addClass)(this.canvas, import_constants.CLASS_MOVE); + }, + onDragMove(event) { + event.stopPropagation(); + const pointerCenter = this.windowToCanvasAxis(event); + const id = this.calcSelectShape(pointerCenter); + this.hoverShapId = id; + const { action } = this; + if (!action) { + return; + } + this.pointer = Object.assign({}, this.pointer, (0, import_utils.getPointer)(event, true)); + event.preventDefault(); + const range = { + x: this.pointer.endX - this.pointer.startX, + y: this.pointer.endY - this.pointer.startY + }; + this.calcTransform({ translateX: range.x, translateY: range.y }); + this.pointer.startX = this.pointer.endX; + this.pointer.startY = this.pointer.endY; + }, + onDragEnd(event) { + event.stopPropagation(); + const { action } = this; + if (!action) { + return; + } + event.preventDefault(); + this.action = null; + this.point = null; + (0, import_class.removeClass)(this.canvas, import_constants.CLASS_MOVE); + }, + /* rect事件 */ + // onLeavel(event) { + // const pointerCenter = this.windowToCanvasAxis(event); + // this.highlightShape(pointerCenter); + // }, + // onEnter(event) { + // this.highlightShape(null); + // }, + onClick(event) { + event.stopPropagation(); + const pointerCenter = this.windowToCanvasAxis(event); + if (!this.isEyeOpen) { + const id = this.calcSelectShape(pointerCenter); + this.setSelectShapId(id); + } else { + let pointShapeList = this.shapeList.filter((v) => !v["w"]); + if (pointShapeList.length === 5) + return; + const originAxis = this.canvasAxisToOriginAxis(pointerCenter); + const imageAxis = this.originAxisToImgAxis(originAxis); + this.addShape( + { id: `pointer_${(0, import_guid.default)()}`, selectAble: false, ...imageAxis }, + import_constants.SHAPE_TYPE_CIRCLE + ); + pointShapeList = this.shapeList.filter((v) => !v["w"]); + if (pointShapeList.length === 5) { + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_EYE_DONE); + } + } + } +}; diff --git a/packages/meta/lib/ImageEditor/viewer/helper.d.ts b/packages/meta/lib/ImageEditor/viewer/helper.d.ts new file mode 100644 index 0000000..8869f7c --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/helper.d.ts @@ -0,0 +1,43 @@ +export declare const setNumberAccuracy: (originNumber: number, accuracy?: number, isCeil?: boolean) => number; +declare const _default: { + windowToCanvasAxis(event: any): any; + offsetAxisToCanvasAxis({ x, y }: { + x: any; + y: any; + }): any; + originAxisToCanvasAxis({ x, y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + canvasAxisToOriginAxis({ x, y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + imgRectAxisToCanvasAxisRect({ x, y, w, h, ...others }: { + [x: string]: any; + x?: number | undefined; + y?: number | undefined; + w?: number | undefined; + h?: number | undefined; + }): any; + originAxisToImgAxis({ x, y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + imgAxisToOriginAxis({ x: _x, y: _y, ...others }: { + [x: string]: any; + x: any; + y: any; + }): any; + getDataUrlbyOriginAxis({ x, y, w, h, ...others }: { + [x: string]: any; + x?: number | undefined; + y?: number | undefined; + w?: number | undefined; + h?: number | undefined; + }): string; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/viewer/helper.js b/packages/meta/lib/ImageEditor/viewer/helper.js new file mode 100644 index 0000000..ac3da56 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/helper.js @@ -0,0 +1,161 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/viewer/helper.ts +var helper_exports = {}; +__export(helper_exports, { + default: () => helper_default, + setNumberAccuracy: () => setNumberAccuracy +}); +module.exports = __toCommonJS(helper_exports); +var import_constants = require("./constants"); +var setNumberAccuracy = (originNumber, accuracy = 0, isCeil = true) => { + if (originNumber === 0) { + return 0; + } + let returnData = 0; + if (isCeil) { + returnData = Math.ceil(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy); + } else { + returnData = Math.floor(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy); + } + if (accuracy < 0) { + returnData = Number(returnData.toFixed(-accuracy)); + } else { + returnData = Number(returnData.toFixed(0)); + } + return returnData; +}; +var helper_default = { + windowToCanvasAxis(event) { + const { x, y } = this.canvas.getBoundingClientRect(); + return { + x: event.pageX - x, + y: event.pageY - y, + __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS + }; + }, + offsetAxisToCanvasAxis({ x, y }) { + const { targetTransform } = this; + const { translateX, translateY, scale } = targetTransform; + return { + x: (x + translateX) / scale + translateX / scale, + y: y / scale + translateY / scale, + __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS + }; + }, + originAxisToCanvasAxis({ x, y, ...others }) { + const { targetTransform } = this; + const { translateX, translateY, scale } = targetTransform; + const axis = { + x: translateX + x * scale, + y: translateY + y * scale, + ...others, + __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS + }; + return axis; + }, + canvasAxisToOriginAxis({ x, y, ...others }) { + const { targetTransform } = this; + const { translateX, translateY, scale } = targetTransform; + const axis = { + x: (x - translateX) / scale, + y: (y - translateY) / scale, + ...others, + __AXIS_TYPE__: import_constants.AXIS_TYPE_ORIGIN + }; + return axis; + }, + imgRectAxisToCanvasAxisRect({ x = 0, y = 0, w = 0, h = 0, ...others }) { + const { width, height } = this.image; + const { targetTransform } = this; + const { rotate } = targetTransform; + const theta = Math.PI / 180 * rotate; + const offsetRect = { + x: width * x, + y: height * y, + x2: width * w + width * x, + y2: height * h + height * y + }; + const newX = (offsetRect.x - width / 2) * Math.cos(theta) - (offsetRect.y - height / 2) * Math.sin(theta) + width / 2; + const newY = (offsetRect.x - width / 2) * Math.sin(theta) + (offsetRect.y - height / 2) * Math.cos(theta) + height / 2; + const newX2 = (offsetRect.x2 - width / 2) * Math.cos(theta) - (offsetRect.y2 - height / 2) * Math.sin(theta) + width / 2; + const newY2 = (offsetRect.x2 - width / 2) * Math.sin(theta) + (offsetRect.y2 - height / 2) * Math.cos(theta) + height / 2; + const newAxis1 = this.originAxisToCanvasAxis({ x: newX, y: newY }); + const newAxis2 = this.originAxisToCanvasAxis({ + x: newX2, + y: newY2 + }); + return { + x: newAxis1.x, + y: newAxis1.y, + x2: newAxis2.x, + y2: newAxis2.y, + ...others, + __AXIS_TYPE__: import_constants.AXIS_TYPE_CANVAS + }; + }, + originAxisToImgAxis({ x, y, ...others }) { + const { width, height } = this.image; + const { targetTransform } = this; + const { rotate } = targetTransform; + const theta = Math.PI / 180 * (360 - rotate); + const newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2; + const newY = (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2; + return { + x: newX / width, + y: newY / height, + ...others, + __AXIS_TYPE__: import_constants.AXIS_TYPE_IMAGE + }; + }, + imgAxisToOriginAxis({ x: _x, y: _y, ...others }) { + const { width, height } = this.image; + const x = width * _x; + const y = height * _y; + const { targetTransform } = this; + const { rotate } = targetTransform; + const theta = Math.PI / 180 * rotate; + const newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2; + const newY = (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2; + return { + x: newX, + y: newY, + ...others, + __AXIS_TYPE__: import_constants.AXIS_TYPE_ORIGIN + }; + }, + getDataUrlbyOriginAxis({ x = 0, y = 0, w = 0, h = 0, ...others }) { + const ctx = this.canvas.getContext("2d"); + const commonCanvas = document.createElement("canvas"); + commonCanvas.width = w; + commonCanvas.height = h; + commonCanvas.style.display = "none"; + document.body.appendChild(commonCanvas); + const commonCtx = commonCanvas.getContext("2d"); + const imageData = ctx.getImageData(x, y, w, h); + commonCtx.putImageData(imageData, 0, 0); + const dataUrl = commonCanvas.toDataURL("image/jpeg"); + commonCanvas.parentNode.removeChild(commonCanvas); + return dataUrl; + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + setNumberAccuracy +}); diff --git a/packages/meta/lib/ImageEditor/viewer/index.d.ts b/packages/meta/lib/ImageEditor/viewer/index.d.ts new file mode 100644 index 0000000..a71e6f3 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/index.d.ts @@ -0,0 +1,21 @@ +import './index.scss'; +export interface Option { + image?: string | HTMLImageElement; + wheelZoomRatio?: number; + scaleAble?: boolean; + dragAble?: boolean; + fitScaleAsMinScale?: boolean; +} +declare class Viewer { + element: HTMLDivElement; + image: HTMLImageElement; + canvas: Element; + options: Option; + ready: boolean; + constructor(element: any, options: any); + init(): Promise; + build(): void; + refleshImage(options: any): void; + destroy(): void; +} +export default Viewer; diff --git a/packages/meta/lib/ImageEditor/viewer/index.js b/packages/meta/lib/ImageEditor/viewer/index.js new file mode 100644 index 0000000..741d084 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/index.js @@ -0,0 +1,93 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __decorateClass = (decorators, target, key, kind) => { + var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; + for (var i = decorators.length - 1, decorator; i >= 0; i--) + if (decorator = decorators[i]) + result = (kind ? decorator(target, key, result) : decorator(result)) || result; + if (kind && result) + __defProp(target, key, result); + return result; +}; + +// src/ImageEditor/viewer/index.ts +var viewer_exports = {}; +__export(viewer_exports, { + default: () => viewer_default +}); +module.exports = __toCommonJS(viewer_exports); +var import_func = require("@zhst/func"); +var import_class = require("rc-util/lib/Dom/class"); +var import_utils = require("../utils"); +var import_render = __toESM(require("./render")); +var import_event = __toESM(require("./event")); +var import_shape = __toESM(require("./shape")); +var import_helper = __toESM(require("./helper")); +var import_constants = require("./constants"); +var import_index = require("./index.scss"); +var Viewer = class { + constructor(element, options) { + this.element = element; + this.options = Object.assign({}, (0, import_func.isPlainObject)(options) && options); + this.ready = false; + this.init(); + } + async init() { + try { + this.build(); + this.bind(); + await this.render(); + this.ready = true; + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_READY); + } catch (error) { + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_ERROR); + } + } + build() { + const canvas = document.createElement("canvas"); + (0, import_class.addClass)(canvas, import_constants.CLASS_CANVAS); + this.element.appendChild(canvas); + this.canvas = canvas; + } + refleshImage(options) { + this.options = Object.assign({}, (0, import_func.isPlainObject)(options) && options); + this.ready = false; + this.element.removeChild(this.canvas); + this.init(); + } + destroy() { + var _a, _b; + window.cancelAnimationFrame(this.animationFrame); + this.unbind(); + (_b = (_a = this.element) == null ? void 0 : _a.removeChild) == null ? void 0 : _b.call(_a, this.canvas); + } +}; +Viewer = __decorateClass([ + (0, import_utils.Mixin)(import_render.default, import_event.default, import_shape.default, import_helper.default) +], Viewer); +var viewer_default = Viewer; diff --git a/packages/meta/lib/ImageEditor/viewer/index.scss b/packages/meta/lib/ImageEditor/viewer/index.scss new file mode 100644 index 0000000..fcc2881 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/index.scss @@ -0,0 +1,44 @@ +$prefix: zhst; + +:global { + // .zhst-cropper-container { + // width: 100px; + // } + .zhst-viewer { + &-canvas { + // cursor: grab; + cursor: pointer; + } + + //辅助class + &-invisible { + opacity: 0; + } + + &-hide { + position: absolute; + display: block; + width: 0; + height: 0; + } + + &-hidden { + display: none !important; + } + + &-move { + cursor: move; + } + + &-crop { + cursor: crosshair; + } + + &-disabled &-drag-box, + &-disabled &-face, + &-disabled &-line, + &-disabled &-point { + cursor: not-allowed; + } + } +} diff --git a/packages/meta/lib/ImageEditor/viewer/render.d.ts b/packages/meta/lib/ImageEditor/viewer/render.d.ts new file mode 100644 index 0000000..ec4f170 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/render.d.ts @@ -0,0 +1,35 @@ +declare const _default: { + image: null; + canvas: null; + containerData: { + width: number; + height: number; + }; + animationFrame: null; + backgroundColor: string; + targetTransform: { + translateX: number; + translateY: number; + scale: number; + rotate: number; + }; + render(): Promise; + initImg(): Promise; + initCanvas(): void; + startRaf(): void; + renderCanvas(_ctx: any): void; + scaleTo(offsetScale: any): void; + rotateTo(T: number | ((preDeg: number) => number)): void; + reset(): void; + getImgSize(): { + w: any; + h: any; + } | undefined; + calcFitScreen(): { + translateX: number; + translateY: number; + scale: number; + } | undefined; + calcTransform(newTransform: any, cropBox: any): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/viewer/render.js b/packages/meta/lib/ImageEditor/viewer/render.js new file mode 100644 index 0000000..24b7822 --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/render.js @@ -0,0 +1,284 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/viewer/render.ts +var render_exports = {}; +__export(render_exports, { + default: () => render_default +}); +module.exports = __toCommonJS(render_exports); +var import_css = require("rc-util/lib/Dom/css"); +var import_func = require("@zhst/func"); +var import_utils = require("../utils"); +var import_constants = require("./constants"); +var render_default = { + // store + image: null, + canvas: null, + containerData: { + width: 0, + height: 0 + }, + animationFrame: null, + backgroundColor: "#fff", + targetTransform: { + translateX: 0, + translateY: 0, + scale: 0, + rotate: 0 + // rotate: 90, + }, + //method + async render() { + await this.initImg(); + this.initCanvas(); + this.startRaf(); + }, + initImg() { + return new Promise((resolve, reject) => { + const { image: propImage } = this.options; + if ((0, import_func.isString)(propImage)) { + const image = new Image(); + image.crossOrigin = "anonymous"; + image.src = propImage; + image.onload = () => { + this.image = image; + resolve(image); + }; + image.onerror = (err) => { + reject(err); + }; + } else { + this.image = propImage; + resolve(propImage); + } + }); + }, + initCanvas() { + if (!this.image) + return; + const { element, canvas, limit = {}, options } = this; + const containerData = { + width: (0, import_css.getOuterWidth)(element), + height: (0, import_css.getOuterHeight)(element) + }; + this.containerData = containerData; + (0, import_css.set)(canvas, containerData); + canvas.width = containerData.width; + canvas.height = containerData.height; + const fitTransform = this.calcFitScreen(); + this.targetTransform = Object.assign({}, this.targetTransform, fitTransform); + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_TRANSFORM_CHANGE, (0, import_func.cloneDeep)(this.targetTransform)); + const { fitScaleAsMinScale = false } = options; + if (fitScaleAsMinScale) { + this.limit = Object.assign({ minScale: this.targetTransform.scale }, this.limit); + } + }, + startRaf() { + window.cancelAnimationFrame(this.animationFrame); + const loop = () => { + this.renderCanvas(); + window.cancelAnimationFrame(this.animationFrame); + this.animationFrame = window.requestAnimationFrame(loop); + }; + loop(); + }, + renderCanvas(_ctx) { + if (!this.image || !this.canvas) + return; + const { containerData, canvas, targetTransform, options } = this; + const { translateX, translateY, scale, rotate } = targetTransform; + const ctx = _ctx ? _ctx : canvas.getContext("2d"); + ctx.clearRect(0, 0, containerData.width, containerData.height); + ctx.fillStyle = options.backgroundColor; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.save(); + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + const centerX = this.image.width / 2; + const centerY = this.image.height / 2; + ctx.translate(centerX, centerY); + ctx.rotate(rotate / 180 * Math.PI); + ctx.translate(-centerX, -centerY); + ctx.drawImage(this.image, 0, 0); + ctx.restore(); + ctx.save(); + this.renderShape(ctx); + ctx.restore(); + }, + scaleTo(offsetScale) { + const { containerData } = this; + this.calcTransform({ + scaleCenter: { + x: containerData.width / 2, + y: containerData.height / 2, + step: offsetScale + } + }); + }, + //暂时只支持90deg旋转 否则limit 不能做 + rotateTo(T) { + if (!this.image) + return; + const { targetTransform } = this; + const { rotate } = targetTransform; + const newDeg = (0, import_func.isFunction)(T) ? T(rotate) : T; + this.calcTransform({ + rotate: newDeg + }); + }, + reset() { + this.targetTransform.rotate = 0; + const fitTransform = this.calcFitScreen(); + this.targetTransform = Object.assign({}, this.targetTransform, fitTransform); + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_TRANSFORM_CHANGE, (0, import_func.cloneDeep)(this.targetTransform)); + }, + getImgSize() { + if (!this.image) + return; + return { w: this.image.width, h: this.image.height }; + }, + calcFitScreen() { + if (!this.image) + return; + const w = this.containerData.width; + const h = this.containerData.height; + const iw = this.image.width; + const ih = this.image.height; + const { rotate = 0 } = this.targetTransform; + const wToh = w / h; + let imgwToh = iw / ih; + if (rotate % 180 !== 0) { + imgwToh = ih / iw; + } + let scale; + let translateX = 0; + let translateY = 0; + if (imgwToh > wToh) { + scale = w / iw; + translateX = 0; + translateY = (h - ih * scale) / 2; + if (rotate % 180 !== 0) { + scale = w / ih; + translateX = (ih - iw) / 2 * scale; + translateY = (h - iw * scale) / 2 + (iw - ih) / 2 * scale; + } + } else { + scale = h / ih; + translateX = (w - iw * scale) / 2; + translateY = 0; + if (rotate % 180 !== 0) { + scale = h / iw; + translateX = (w - ih * scale) / 2 + (ih - iw) / 2 * scale; + translateY = (iw - ih) / 2 * scale; + } + } + const fitTransform = { + translateX, + translateY, + scale + }; + return fitTransform; + }, + calcTransform(newTransform, cropBox) { + if (!this.image) + return; + const { translateX, translateY, scaleCenter, rotate } = newTransform; + if (!(0, import_func.isNil)(scaleCenter)) { + const { targetTransform: targetTransform2, limit = {} } = this; + let { minScale = 0.1, maxScale = Number.MAX_VALUE } = limit; + if (cropBox) { + let { width: iw, height: ih } = this.image; + if (targetTransform2.rotate % 180 !== 0) + [iw, ih] = [ih, iw]; + const { width: cw, height: ch } = cropBox; + const corpMinScale = Math.max(cw / iw, ch / ih); + minScale = Math.max(corpMinScale, minScale); + } + const { x, y, step } = scaleCenter; + const preScale = targetTransform2.scale; + let newScale = targetTransform2.scale + step; + newScale = Math.min(maxScale, Math.max(newScale, minScale)); + const newStep = newScale - preScale; + if (newScale != preScale) { + const offsetX = (x - targetTransform2.translateX) / targetTransform2.scale * newStep; + const offsetY = (y - targetTransform2.translateY) / targetTransform2.scale * newStep; + this.targetTransform.translateX = this.targetTransform.translateX - offsetX; + this.targetTransform.translateY = this.targetTransform.translateY - offsetY; + } + this.targetTransform.scale = newScale; + } + if (!(0, import_func.isNil)(translateX)) { + this.targetTransform.translateX += translateX; + } + if (!(0, import_func.isNil)(translateY)) { + this.targetTransform.translateY += translateY; + } + if (!(0, import_func.isNil)(rotate)) { + this.targetTransform.rotate = rotate; + } + const { targetTransform, containerData } = this; + const minMargin = 50; + let imgWidth = this.image.width; + let imgHeight = this.image.height; + if (this.targetTransform.rotate % 180 !== 0) { + imgWidth = this.image.height; + imgHeight = this.image.width; + } + const minX = minMargin - imgWidth * targetTransform.scale; + const maxX = containerData.width - minMargin; + const minY = minMargin - imgHeight * targetTransform.scale; + const maxY = containerData.height - minMargin; + this.targetTransform.translateX = Math.min( + maxX, + Math.max(this.targetTransform.translateX, minX) + ); + this.targetTransform.translateY = Math.min( + maxY, + Math.max(this.targetTransform.translateY, minY) + ); + if (cropBox) { + const { width: cw, height: ch, top, left } = cropBox; + const { width: iw, height: ih } = this.image; + let imgLeftTop = { x: 0, y: 0 }; + let imgRightBottom = { x: iw, y: ih }; + if (this.targetTransform.rotate % 180 !== 0) { + imgLeftTop = { + x: (iw - ih) / 2, + y: (ih - iw) / 2 + }; + imgRightBottom = { + x: (iw + ih) / 2, + y: (iw + ih) / 2 + }; + } + const maxX2 = left - imgLeftTop.x * this.targetTransform.scale; + const maxY2 = top - imgLeftTop.y * this.targetTransform.scale; + const minX2 = left + cw - imgRightBottom.x * this.targetTransform.scale; + const minY2 = top + ch - imgRightBottom.y * this.targetTransform.scale; + this.targetTransform.translateX = Math.min( + maxX2, + Math.max(this.targetTransform.translateX, minX2) + ); + this.targetTransform.translateY = Math.min( + maxY2, + Math.max(this.targetTransform.translateY, minY2) + ); + } + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_VIEWER_TRANSFORM_CHANGE, (0, import_func.cloneDeep)(this.targetTransform)); + } +}; diff --git a/packages/meta/lib/ImageEditor/viewer/shape.d.ts b/packages/meta/lib/ImageEditor/viewer/shape.d.ts new file mode 100644 index 0000000..5586a2f --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/shape.d.ts @@ -0,0 +1,40 @@ +export interface Shape { + id: number | string; + selectAble: boolean; + color: string; +} +export interface Rect extends Shape { + x: number; + y: number; + w: number; + h: number; +} +export interface Point extends Shape { + x: number; + y: number; +} +declare const _default: { + shapeList: never[]; + hoverShapId: null; + selectShapId: null; + isEyeOpen: boolean; + movable: boolean; + zoomable: boolean; + disableAdd: boolean; + color: string; + changeEyeModel(isOpen: any): void; + addShape(shap: Shape | Array, type?: number): void; + setSelectShapId(id: number): void; + getSelectShape(contain?: boolean): any[]; + replaceShape(shape: Shape | Shape[] | ((shape: Shape) => Shape | Array), type?: number): void; + clearShape(): void; + calcSelectShape(canvasPoint: any): null; + clearSelectShape(): void; + changeMoveAble(movable?: boolean): void; + changeZoonAble(zoomable?: boolean): void; + disabledAddShap(value?: boolean): void; + renderShape(ctx: any): void; + renderRect(ctx: any, shape: any, type: any): void; + renderPoint(ctx: any, shape: any): void; +}; +export default _default; diff --git a/packages/meta/lib/ImageEditor/viewer/shape.js b/packages/meta/lib/ImageEditor/viewer/shape.js new file mode 100644 index 0000000..5c24cdf --- /dev/null +++ b/packages/meta/lib/ImageEditor/viewer/shape.js @@ -0,0 +1,262 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImageEditor/viewer/shape.ts +var shape_exports = {}; +__export(shape_exports, { + default: () => shape_default +}); +module.exports = __toCommonJS(shape_exports); +var import_func = require("@zhst/func"); +var turf = __toESM(require("@turf/turf")); +var import_boolean_point_in_polygon = __toESM(require("@turf/boolean-point-in-polygon")); +var import_helper = require("./helper"); +var import_constants = require("./constants"); +var import_utils = require("../utils"); +function rectToPolygon(axisRect) { + const polygon2 = turf.polygon([ + [ + [(0, import_helper.setNumberAccuracy)(axisRect.x, -2), (0, import_helper.setNumberAccuracy)(axisRect.y, -2)], + [(0, import_helper.setNumberAccuracy)(axisRect.x2, -2), (0, import_helper.setNumberAccuracy)(axisRect.y, -2)], + [(0, import_helper.setNumberAccuracy)(axisRect.x2, -2), (0, import_helper.setNumberAccuracy)(axisRect.y2, -2)], + [(0, import_helper.setNumberAccuracy)(axisRect.x, -2), (0, import_helper.setNumberAccuracy)(axisRect.y2, -2)], + [(0, import_helper.setNumberAccuracy)(axisRect.x, -2), (0, import_helper.setNumberAccuracy)(axisRect.y, -2)] + ] + ]); + return polygon2; +} +var shape_default = { + //store + shapeList: [], + hoverShapId: null, + selectShapId: null, + //是否开启人脸 + isEyeOpen: false, + //是否移动 + movable: true, + //是否放大缩小 + zoomable: true, + //禁止添加shap + disableAdd: false, + //自定义画框的颜色 + color: "", + changeEyeModel(isOpen) { + if (isOpen) { + this.isEyeOpen = true; + this.changeMoveAble(false); + this.changeZoonAble(false); + } else { + this.isEyeOpen = false; + this.changeMoveAble(true); + this.changeZoonAble(true); + } + }, + //method + addShape(shap, type = import_constants.SHAPE_TYPE_RECT) { + this.color = shap.color ? shap.color : ""; + if ((0, import_func.isNil)(shap) || this.disableAdd) + return; + const { shapeList: preShapeList = [] } = this; + let shapList = (0, import_func.isArray)(shap) ? shap : [shap]; + shapList = shapList.map((v) => ({ ...v, __SHAPE_TYPE__: type })); + this.shapeList = [...preShapeList, ...shapList]; + }, + // + setSelectShapId(id) { + this.selectShapId = id; + (0, import_utils.dispatchEvent)(this.element, import_constants.EVENT_SHAPE_SELECT, id); + }, + getSelectShape(contain = true) { + const selectShapeList = []; + const selectShape = this.shapeList.find((v) => v["id"] === this.selectShapId); + selectShape && selectShapeList.push(selectShape); + if (contain && selectShape) { + const originFeature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(selectShape)); + for (let i = 0; i < this.shapeList.length; i++) { + const shape = this.shapeList[i]; + if (shape["id"] !== this.selectShapId) { + const feature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(shape)); + const isContain = turf.booleanContains(originFeature, feature); + isContain && selectShapeList.push(shape); + } + } + } + return selectShapeList; + }, + replaceShape(shape, type = import_constants.SHAPE_TYPE_RECT) { + if ((0, import_func.isNil)(shape)) + return; + const { shapeList: preShapeList = [] } = this; + let _shape; + if ((0, import_func.isFunction)(shape)) { + _shape = shape(preShapeList); + } else { + _shape = shape; + } + let shapList = (0, import_func.isArray)(_shape) ? _shape : [_shape]; + shapList = shapList.map((v) => ({ ...v, __SHAPE_TYPE__: type })); + this.shapeList = [...shapList]; + }, + clearShape() { + this.shapeList = []; + }, + calcSelectShape(canvasPoint) { + const { shapeList, image } = this; + const selectAbleShape = shapeList.filter(({ selectAble = true }) => !!selectAble); + let minId = null; + let minDis = Number.MAX_VALUE; + const pt = turf.point([canvasPoint.x, canvasPoint.y]); + for (let i = 0; i < selectAbleShape.length; i++) { + const shape = selectAbleShape[i]; + const axisRect = this.imgRectAxisToCanvasAxisRect(shape); + const polygon2 = turf.polygon([ + [ + [axisRect.x, axisRect.y], + [axisRect.x2, axisRect.y], + [axisRect.x2, axisRect.y2], + [axisRect.x, axisRect.y2], + [axisRect.x, axisRect.y] + ] + ]); + const isPtInPolygon = (0, import_boolean_point_in_polygon.default)(pt, polygon2); + if (isPtInPolygon) { + const line = turf.polygonToLine(polygon2); + const distance = turf.pointToLineDistance(pt, line, { method: "planar" }); + if (distance < minDis) { + minDis = distance; + minId = shape["id"]; + } + } + } + return minId; + }, + clearSelectShape() { + this.setSelectShapId(null); + }, + changeMoveAble(movable = true) { + this.movable = movable; + }, + changeZoonAble(zoomable = true) { + this.zoomable = zoomable; + }, + disabledAddShap(value = false) { + this.disableAdd = value; + }, + renderShape(ctx) { + const { shapeList } = this; + const selectShapeList = []; + const hoverShapeList = []; + const normalShapeList = []; + for (let i = 0; i < shapeList.length; i++) { + const shape = shapeList[i]; + const isSelectShape = this.selectShapId === shape["id"]; + const isHoverShape = this.hoverShapId === shape["id"]; + if (isSelectShape) { + selectShapeList.push(shape); + } else if (isHoverShape) { + hoverShapeList.push(shape); + } else { + normalShapeList.push(shape); + } + } + for (let i = 0; i < normalShapeList.length; i++) { + const shape = normalShapeList[i]; + const { __SHAPE_TYPE__ } = shape; + switch (__SHAPE_TYPE__) { + case import_constants.SHAPE_TYPE_RECT: + this.renderRect(ctx, shape, "normal"); + break; + case import_constants.SHAPE_TYPE_CIRCLE: + this.renderPoint(ctx, shape, "normal"); + break; + default: + break; + } + } + for (let i = 0; i < hoverShapeList.length; i++) { + const shape = hoverShapeList[i]; + const { __SHAPE_TYPE__ } = shape; + switch (__SHAPE_TYPE__) { + case import_constants.SHAPE_TYPE_RECT: + this.renderRect(ctx, shape, "hover"); + break; + default: + break; + } + } + for (let i = 0; i < selectShapeList.length; i++) { + const shape = selectShapeList[i]; + const { __SHAPE_TYPE__ } = shape; + switch (__SHAPE_TYPE__) { + case import_constants.SHAPE_TYPE_RECT: + this.renderRect(ctx, shape, "select"); + break; + default: + break; + } + } + }, + renderRect(ctx, shape, type) { + const axisRect = this.imgRectAxisToCanvasAxisRect(shape); + const rect = { + x: axisRect.x2 > axisRect.x ? axisRect.x : axisRect.x2, + y: axisRect.y2 > axisRect.y ? axisRect.y : axisRect.y2, + w: Math.abs(axisRect.x2 - axisRect.x), + h: Math.abs(axisRect.y2 - axisRect.y) + }; + ctx.save(); + if (type === "normal") { + ctx.strokeStyle = this.color ? this.color : "#FFF566"; + ctx.lineWidth = 2; + ctx.strokeRect(...Object.values(rect)); + } + if (type === "hover") { + ctx.fillStyle = "rgba(0, 153, 255, 0.3)"; + ctx.fillRect(...Object.values(rect)); + ctx.strokeStyle = "rgba(92, 219, 211, 1)"; + ctx.lineWidth = 2; + ctx.strokeRect(...Object.values(rect)); + } + if (type === "select") { + ctx.strokeStyle = "rgba(255, 0, 0, 1)"; + ctx.lineWidth = 2; + ctx.strokeRect(...Object.values(rect)); + } + ctx.restore(); + }, + renderPoint(ctx, shape) { + const originAxis = this.imgAxisToOriginAxis(shape); + const canvasAxis = this.originAxisToCanvasAxis(originAxis); + ctx.save(); + ctx.beginPath(); + ctx.arc(canvasAxis.x, canvasAxis.y, 2, 0, 2 * Math.PI); + ctx.fillStyle = "#DF0101"; + ctx.fill(); + ctx.restore(); + } +}; diff --git a/packages/meta/lib/ImagePreview/components/CornerScore/index.d.ts b/packages/meta/lib/ImagePreview/components/CornerScore/index.d.ts new file mode 100644 index 0000000..5feea96 --- /dev/null +++ b/packages/meta/lib/ImagePreview/components/CornerScore/index.d.ts @@ -0,0 +1,7 @@ +import React from 'react'; +import './index.less'; +export interface ScoreProps { + scoreTxt: number; +} +export declare const CornerScore: React.FC; +export default CornerScore; diff --git a/packages/meta/lib/ImagePreview/components/CornerScore/index.js b/packages/meta/lib/ImagePreview/components/CornerScore/index.js new file mode 100644 index 0000000..f4800a2 --- /dev/null +++ b/packages/meta/lib/ImagePreview/components/CornerScore/index.js @@ -0,0 +1,52 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImagePreview/components/CornerScore/index.tsx +var CornerScore_exports = {}; +__export(CornerScore_exports, { + CornerScore: () => CornerScore, + default: () => CornerScore_default +}); +module.exports = __toCommonJS(CornerScore_exports); +var import_react = __toESM(require("react")); +var import_classnames = __toESM(require("classnames")); +var import_index = require("./index.less"); +var componentName = `zhst-image__CornerScore`; +var CornerScore = (props) => { + const { scoreTxt } = props; + return (0, import_react.useMemo)( + () => /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}`) }, /* @__PURE__ */ import_react.default.createElement("span", null, ~~(scoreTxt * 100), "%")), + [scoreTxt] + ); +}; +CornerScore.displayName = componentName; +var CornerScore_default = CornerScore; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + CornerScore +}); diff --git a/packages/meta/lib/ImagePreview/components/CornerScore/index.less b/packages/meta/lib/ImagePreview/components/CornerScore/index.less new file mode 100644 index 0000000..e69de29 diff --git a/packages/meta/lib/ImagePreview/images/emptyImage.png b/packages/meta/lib/ImagePreview/images/emptyImage.png new file mode 100644 index 0000000000000000000000000000000000000000..97629573a5196529f63a8365baeeadab76209c1a GIT binary patch literal 5786 zcmV;L7G>#)P)Py0R7pfZRCodHooj4d$92bd`4%Zsq^uWZNtSHcN#rDoE!&A)M@k*V&ZCVHJ64LM ziBR`TjRFM<^g~g!sQWO`4@rs?MUf(n<6153SbhYF65Dke*sdEluLF4^-N4mbU^nvH#h&drKRON3l=PRCs*JK48*U%Hs_iQKw2+cxUe07d=Y;e zpjbg>lQEDV8y_FHXbheVkumt*21GyT?(Y6BX{T}wS3uy30t^7?I)DEBSLoy~G{xha znp;|y(8on>-~-0Tg8+oT0C;{0eX6IY=TYdW&v!Y+iyG^4Xe1rp#|ZK@I`JMlbtAry zc7<+pDZuzPqMi(+&oK0L=;K{oT~836^7-a+JhbuVLL)~q6!{tr{}UFd>oG`kJ&aJS&UymI*GT{ZJj2cL_>X#edmr%g zYZb36V1|Z*sRSWhDW279DYasjCqI%(CSSq`i#ir8$ZMWDDxFSiXEg?(9L-~>QKVjg$$=!3X<=&aL=V58 zF0jV=U}tCNks6sIS50mkJeN{~0AN`USf0laiwadIpa3K{+OVdHO-@Y2CMPFj3SX{{ zHmBKrJ`Y$%X?q;Hh{b-fZGs-`@kjw6MQ)y&1LoAJQ~iMD-)QXeu&u*z4m^}`z+rRF zjX+_`H!7b%f<9hCsN?=n7ioRx&YkNU9~*m_j{lHV zr1gqFC0Sl6Dgeo26t;b`rU0CDxaxD^;-@qg4z{9$SHP0zJ=6qNg)#MXM@aGssbR2@&rny=m z$x{>C-ogIWALb=S7^!4945bzgiXS_6Y$tQaR|*xVWJ)R|&rbtDQ~0+?ABA3z@Ar9% z#nHX2DM=tfmTrOD0Z62eErL4JrUd>bZngg>m>xwqa=@_H@-4vf2gQ_+8Zdsn7n1!%hablGVdxLi>3KWN#Q+0;lCl@^I=;2FdJH^xtMXZHbiTLqAY1W8cuY4l|442ZOLk}hg=S1TF*I}+ zBg@V(V3|=+9W&9rlSdOD<^0Vm76-kkGFQMNt8HXM@6V$$UsVBf{P^*Y@}%q;l&$Hx zm8gs(xl`=z%t80ZoC3Ht3cafa7^a~O=~U_`T%BD}C|WO>dI*|qz|Fv!>_H!B@&3=y zs*j9SIY)42XlP9$oqho&7thd;N#@lftZm+bXOJ!0LDAN>wzbfQ@D1y<5va8m(^JFh z=qm`EM?8|DqzsQ#=H1;@Ph~*1RR6$mX>$8vlv{mWXUmj z^deZEW0&%N8uw&gVuM5&U5>EmT`hG0wmWLkAgYB@1AFV?=2rG+UJX?s1QVA{252NL4)zGwJz*IwtxgsN(OuDIQE{rnhsF&xy$tK>jgmuibDsCPyWtve( zC^&;$W~th+0}MS!dK&*tHt&8BMXmFIDbuQ)7L27?%jgtf1Gx);<)1j``**w$HyEW} z^MIL!bv4S&_LSf(s++0EAVB#RcR~8>h)(fE?&bkA3lnQIPY2R@)-;RKl@|dV|HWcf z)6O%5BR$UGYda4Z-y$L7dXr&6XJ<(6>ac0iolYkAEL*W+b9E$^FJ&Gu<=f1a&~3Kc zo8i5wD4pujy2*h>?`p+jbvbfsZJY;;Sz;DcYZ;C{M6#J@fD}*^ZWK4GhmSNM&MPCI zWJ73Kqco&mdZ9jtYNF-vsj^hrqR|_mWS6Y1L%$d)fJ$rU-CHl?^FjV{(H0(L9 zuvckNV{S@RVwEz=>i7fC(#j}Nm{rpb-@b_@_y}XQ-|!Sjc!2sgef2E;_BQdYg|#T1 zS~g&)R7V$okBX^Wv+PAL&nNBxrK*^AX5#pdiQ=Mb^=w*J<1(6>+B;@GucQ%Vim6A_Ppuq% zb01#kdvhZSaaI3C{C_A=jw^eFp|abkK%p8@ z)%t{y#H~*Rl!(?RGuemr<@@QMYc(Te`^M9DAvhNUdPXe6N`p>)bVED|~3c#^a2&Doy%7~gLZ*w^n&+|rZ zfjiY#cw4`SPV>wf;tM@Hgubn20k=^VW}B%BG&x&E3UAEjO(PdCUR=RY-QU;O*YIDu z4l2)x8v23?maBJIcRyUfH!*r>bSdR}8I5j$X@4n3<%c#13fu@_Z2jU;OPZUKlnzp_ z-?L{=!AH03VtyCi7uhW84x?0~@StdMqS8xSyHK@Dy{^9CcKh9{vR?pb@E3dqg*uH(c zdl-d1&obiM^1+r427Z4zp)Zo24BLRvfB_S30hJZ(07BTUVFVV10fG?S#;DRoSReiC zLh;W-^#-1b>Wc^~0855+ZEWcesjMN&pLZcFfbBZuv0vXM)5l_4wrq)Ur#g}aDdNxm*#^@Zyr!r#N&XjHPf$3+zKwmX*>@U3CA+75RPIu95f>8Y)ymBMeW=f1iu^3G9B<7e}9Hn$kby zo?fwH#i*Ze@o6KBz;N{F(Z%?y077dPwGMeyv2<-JNw)j35 zsk_s}PHwaiRfEaTtymRzhRdcE%2%2>c(rz!pii}?arXD+QExZ)?`G5)=O1xTU3Jw} z(_W6t0}R{$3*US1J>A7z8Y0lilvTx4q(8YF!oN&M>M!;7GpxO39WEXt6M&5fbM7dW<{x8sleU|`e7Oex`)T++(8XE4NC@&Hk?RTF z%L4FmZ23Ix)LJFCh=tF!UsPq#r;y$3j#Vrc&hZ;4xEKYLN&Y(_#p|@TbjahUZ&Zh- zvUd1a@$H{6Mw{cvNJzMx36671wiJPjrIadBriDcvGwBM0#H9e{t2FX;u6(UsidvS6 zZ$|E?D5}-_9uWK-bVm8b@}+}0>TUr%+u+qd+iyk%C)4t)L6LcE^y0G z|0}lHZ}ubZ>?(@vl5-~#+17u)ed@`L=re3l}|*R5N3PHAq0 z;Z|7BdbCcNanWM}X@~f9H6&3a4G0`y07qP5Q3+QV_Xd1pq^(2Q9}C4OpzLYRM+ z?n?AK3}*GLhDRHkT^Rnwj2icHHSYzvdn}&{upV4mj|PGHUFh>rcMxN6}RQak$ zGJ^F5_4WBBpHU~pTIXjJ{~1^JGCFZPK>scB)<|YG9AF$_*nJvhk0}HCZ^&Cd8qRXzy6@kCf{gKH=2Yyj6Wzt;b0xsZll(2qo$Wp z<1=b}jGmKkzWL^`z#{P2+C*VpA#v`vJ2->eiBaO+-Q6+ft(d5sg+=B3e3uyb@%aN; zE?91PpTCrRzrL_>&K~!&-q9V_U85r-$#`?~BiQCe{v{-1I!Kmn2OXd6eG(!6UWtvx?6YJNn*T(F$ zwM{`Fn2j~!3=9mkg0@x~GwpWN2Z)s`MoSscFUPzY1GF(wISY%1apl(M%k<0p`Ik%k zIo_b#?*vqq_RH2BrA=+#yjg1#{n6>P(Zsip z;-LW(ESv>T6QfTv!+JC4X58X=`SRsDR~i$Qql4lYIU}k#Bb5${>+G*nt`xtO6;*lP zm6C6DiK?tG&oA%G_v3zfYpbYSsrJ;n{q$9eX)v{K-@cR`828&)Dn4zRDOEuESu|=t z-|guOK)ZJBYGU`diQ&yr@o9}fnxl&IEF#8{Kt~lisiDbEv7Ftj?bNNv#_WN`TEte{Q~FOwQKdr$GrB;3SM}*28IaCYJ>?P z*WGc!7k}xcmzr2eX~Rqp+9Injj82y;58DCSjLdA>v`OF)D5?UELiVa@2WF=->7jb9 zZlkd`-gqNUqcfs~l(jrj<(J|wB%_?PQuUR}_v?aRI>$t_PVG=zL$!x;0)(977p=yq z;Uvz*9|0=h*-Xut*Q+e@iW_Zu^2sM%STq>+%2^rXan#BLsmht0VAyz6cQ)VYW8pIL z^W+Egv~~t*&K7gAFB?i{4DF05r4%;hEL<$#_>30dH@T9T3x}0wa%Z5XtCK$iU&Cho YKZ_v3%v7MbF#rGn07*qoM6N<$g4h-+kpKVy literal 0 HcmV?d00001 diff --git a/packages/meta/lib/ImagePreview/images/percent_background.png b/packages/meta/lib/ImagePreview/images/percent_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ebde317c473fda46d686dce6ffba98db676f331e GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^1wgFB!3HGvuCY1Jz`%IY)5S5QBJS-RYky`#ffjXL z-6Hmn8Q4;CoAn~}k_ zgW(?Yj*eGfxmGY134fY$J=J!{$wg8RvLC#BaB-8+1Kx)0+#eg)F`bBcXZz`uXaHkP zhUL6}d}8k$87D|j?{9sbwY!$pLG5MvHtUET%B%<68GLRT^KfY}?0dT9sDodH(C3%j z_VYxH4H$aQhcZYV4co!x(7MWPHe-fJ^g}HM(N$8pYzqQ&T30iKtjO9T+2FQObRAQ` z!c`a3uqzH@PT6XzebLB=D}*_v_|#_2Z#x91h;EwFq$(<@#=0t9p?l^fp|mD<^QjEM zXHrQ%!{C#rY{sXUB^51Ds zIdG$NO36ay9Xn^w*y730@V1)ce=Kw5p+k}7MiGCy`Jd}IFq;2R{v>>$L0aa{GSdmO yCvV; + specialTitle: String; + noTargetImageTip?: string; + score?: number; +} +declare const CompaterImage: FC; +export default CompaterImage; diff --git a/packages/meta/lib/ImagePreview/index.js b/packages/meta/lib/ImagePreview/index.js new file mode 100644 index 0000000..79d5a26 --- /dev/null +++ b/packages/meta/lib/ImagePreview/index.js @@ -0,0 +1,164 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/ImagePreview/index.tsx +var ImagePreview_exports = {}; +__export(ImagePreview_exports, { + default: () => ImagePreview_default +}); +module.exports = __toCommonJS(ImagePreview_exports); +var import_react = __toESM(require("react")); +var import_func = require("@zhst/func"); +var import_hooks = require("@zhst/hooks"); +var import_antd = require("antd"); +var import_classnames = __toESM(require("classnames")); +var import_viewer = __toESM(require("../ImageEditor/viewer")); +var import_iconfont = __toESM(require("../iconfont")); +var import_CornerScore = __toESM(require("./components/CornerScore")); +var componentName = `zhst-image__compater-view`; +var CompaterImage = (props) => { + const { url, label, openRoll = false, urls = [], score } = props; + const imgContainerRef = (0, import_react.useRef)(null); + const imgInsRef = (0, import_react.useRef)(null); + const [scale, setScale] = (0, import_react.useState)(0); + const [showUrl, setShowUrl] = (0, import_react.useState)((0, import_func.generateImg)(url)); + (0, import_hooks.useUpdateEffect)(() => { + var _a; + setShowUrl((0, import_func.generateImg)(url)); + if (imgInsRef.current) { + (_a = imgInsRef.current) == null ? void 0 : _a.refleshImage({ + image: (0, import_func.generateImg)(url) + }); + } + }, [url]); + (0, import_react.useEffect)(() => { + setShowUrl(url); + const handleTransformChange = (0, import_func.addEventListener)( + imgContainerRef.current, + "viewer-transform-change", + (event) => { + const data = event.detail; + setScale((0, import_func.get)(data, "scale", 0)); + } + ); + imgInsRef.current = new import_viewer.default(imgContainerRef.current, { + image: (0, import_func.generateImg)(url) + }); + return () => { + var _a, _b; + handleTransformChange == null ? void 0 : handleTransformChange.remove(); + (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.destroy) == null ? void 0 : _b.call(_a); + imgInsRef.current = null; + }; + }, []); + const handlePre = (0, import_react.useCallback)(() => { + var _a; + const index = urls.findIndex((v) => v === showUrl); + if (index > 0) { + const newUrl = urls[index - 1]; + setShowUrl(newUrl); + (_a = imgInsRef.current) == null ? void 0 : _a.refleshImage({ + image: newUrl + }); + } + }, [showUrl, urls]); + const handleNext = (0, import_react.useCallback)(() => { + var _a; + const index = urls.findIndex((v) => v === showUrl); + if (index >= 0 && !!urls[index + 1]) { + const newUrl = urls[index + 1]; + setShowUrl(newUrl); + (_a = imgInsRef.current) == null ? void 0 : _a.refleshImage({ + image: newUrl + }); + } + }, [showUrl, urls]); + return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__container`) }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__label`) }, label), /* @__PURE__ */ import_react.default.createElement("div", { ref: imgContainerRef, className: (0, import_classnames.default)(`${componentName}__view`) }), !url && /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__empty`) }, /* @__PURE__ */ import_react.default.createElement( + "img", + { + src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==", + title: "暂无数据" + } + ), /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_classnames.default)(`${componentName}__empty--text`) }, "暂无匹配数据")), !!url && openRoll && /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__scoll-module`) }, /* @__PURE__ */ import_react.default.createElement( + import_antd.Button, + { + type: "default", + className: (0, import_classnames.default)(`${componentName}__scoll-module__btn`), + disabled: !urls[urls.findIndex((v) => v === showUrl) - 1], + onClick: () => { + handlePre(); + } + }, + /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { icon: "icon-qiehuanzuo", size: 40 }) + ), /* @__PURE__ */ import_react.default.createElement( + import_antd.Button, + { + type: "default", + className: (0, import_classnames.default)(`${componentName}__scoll-module__btn`), + disabled: !urls[urls.findIndex((v) => v === showUrl) + 1], + onClick: () => { + handleNext(); + } + }, + /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { icon: "icon-qiehuanyou", size: 40 }) + )), !!score && /* @__PURE__ */ import_react.default.createElement(import_CornerScore.default, { scoreTxt: score }), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__tool`) }, /* @__PURE__ */ import_react.default.createElement( + import_antd.Button, + { + type: "text", + onClick: () => { + var _a, _b; + (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.scaleTo) == null ? void 0 : _b.call(_a, 0.1); + } + }, + /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 16, icon: "icon-fangda" }), + /* @__PURE__ */ import_react.default.createElement("span", null, "放大") + ), /* @__PURE__ */ import_react.default.createElement( + import_antd.Button, + { + type: "text", + onClick: () => { + var _a, _b; + (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.scaleTo) == null ? void 0 : _b.call(_a, -0.1); + } + }, + /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 16, icon: "icon-suoxiao" }), + /* @__PURE__ */ import_react.default.createElement("span", null, "缩小") + ), /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_classnames.default)(`${componentName}__tool__scale`) }, Math.round(scale * 100) + "%"), /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)(`${componentName}__tool__line`) }), /* @__PURE__ */ import_react.default.createElement( + import_antd.Button, + { + type: "text", + onClick: () => { + var _a, _b; + (_b = (_a = imgInsRef == null ? void 0 : imgInsRef.current) == null ? void 0 : _a.reset) == null ? void 0 : _b.call(_a); + } + }, + /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { size: 16, icon: "icon-zhongzhi3" }), + /* @__PURE__ */ import_react.default.createElement("span", null, "重置") + ))); +}; +var ImagePreview_default = CompaterImage; diff --git a/packages/meta/lib/Button/index.d.ts b/packages/meta/lib/Temp/index.d.ts similarity index 100% rename from packages/meta/lib/Button/index.d.ts rename to packages/meta/lib/Temp/index.d.ts diff --git a/packages/meta/lib/Button/index.js b/packages/meta/lib/Temp/index.js similarity index 89% rename from packages/meta/lib/Button/index.js rename to packages/meta/lib/Temp/index.js index a779c00..cb6c11d 100644 --- a/packages/meta/lib/Button/index.js +++ b/packages/meta/lib/Temp/index.js @@ -26,16 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -// src/Button/index.tsx -var Button_exports = {}; -__export(Button_exports, { - default: () => Button_default +// src/Temp/index.tsx +var Temp_exports = {}; +__export(Temp_exports, { + default: () => Temp_default }); -module.exports = __toCommonJS(Button_exports); +module.exports = __toCommonJS(Temp_exports); var import_react = __toESM(require("react")); var import_antd = require("antd"); var ButtonDemo = (props) => { const { children } = props; return /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { ...props }, children); }; -var Button_default = ButtonDemo; +var Temp_default = ButtonDemo; diff --git a/packages/meta/lib/doubleClick/index.d.ts b/packages/meta/lib/doubleClick/index.d.ts new file mode 100644 index 0000000..8b6b6eb --- /dev/null +++ b/packages/meta/lib/doubleClick/index.d.ts @@ -0,0 +1,5 @@ +export declare const doubleCheck: (title?: string, option?: any) => { + destroy: () => void; + update: (configUpdate: import("antd").ModalFuncProps | ((prevConfig: import("antd").ModalFuncProps) => import("antd").ModalFuncProps)) => void; +}; +export default doubleCheck; diff --git a/packages/meta/lib/doubleClick/index.js b/packages/meta/lib/doubleClick/index.js new file mode 100644 index 0000000..91b93b1 --- /dev/null +++ b/packages/meta/lib/doubleClick/index.js @@ -0,0 +1,70 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/doubleClick/index.tsx +var doubleClick_exports = {}; +__export(doubleClick_exports, { + default: () => doubleClick_default, + doubleCheck: () => doubleCheck +}); +module.exports = __toCommonJS(doubleClick_exports); +var import_func = require("@zhst/func"); +var import_antd = require("antd"); +var import_hooks = require("@zhst/hooks"); +var { confirm } = import_antd.Modal; +var doubleCheck = (title = "警告", option) => { + const { + okFunc = import_func.noop, + cancelFunc = import_func.noop, + doubleCheckKey, + doubleCheckTitle = "不再询问", + ...others + } = option || {}; + return confirm({ + title, + // type: 'warning', + onCancel: async (isOk) => { + if (isOk) { + await okFunc(); + } else { + await cancelFunc(); + } + }, + ...doubleCheckKey ? { + renderFooterRight: () => { + const [value, setValue] = (0, import_hooks.useDoubleCheck)(doubleCheckKey); + return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement( + import_antd.Checkbox, + { + checked: value, + onChange: (v) => { + setValue(v); + } + }, + doubleCheckTitle + )); + } + } : {}, + ...others + }); +}; +var doubleClick_default = doubleCheck; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + doubleCheck +}); diff --git a/packages/meta/lib/iconfont/index.d.ts b/packages/meta/lib/iconfont/index.d.ts new file mode 100644 index 0000000..e769332 --- /dev/null +++ b/packages/meta/lib/iconfont/index.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; +interface IconFontProps { + styles?: React.CSSProperties; + icon?: string; + size?: number; + color?: string; + title?: string; + className?: string; + onIconClick?: (e: React.MouseEvent) => void; + children?: React.ReactNode; + active?: boolean; + disable?: boolean; +} +declare const IconFont: React.FC; +export default IconFont; diff --git a/packages/meta/lib/iconfont/index.js b/packages/meta/lib/iconfont/index.js new file mode 100644 index 0000000..900a9ac --- /dev/null +++ b/packages/meta/lib/iconfont/index.js @@ -0,0 +1,68 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/iconfont/index.tsx +var iconfont_exports = {}; +__export(iconfont_exports, { + default: () => iconfont_default +}); +module.exports = __toCommonJS(iconfont_exports); +var import_react = __toESM(require("react")); +var import_classnames = __toESM(require("classnames")); +var IconFont = (props) => { + const { + title = "", + className = "", + styles = {}, + icon, + size = 14, + onIconClick, + children, + active = false, + color = "" + } = props || {}; + return /* @__PURE__ */ import_react.default.createElement( + "i", + { + title, + onClick: (e) => { + onIconClick && onIconClick(e); + }, + style: { + ...styles, + cursor: "pointer", + fontSize: size, + color, + ...active ? { color: "#09f" } : {} + }, + className: (0, import_classnames.default)("iconfont", icon, className) + }, + children + ); +}; +var iconfont_default = IconFont; diff --git a/packages/meta/lib/index.d.ts b/packages/meta/lib/index.d.ts index eae9c8e..241716b 100644 --- a/packages/meta/lib/index.d.ts +++ b/packages/meta/lib/index.d.ts @@ -1 +1,3 @@ -export { default as Button } from './Button'; +export { default as doubleClick } from './doubleClick'; +export { default as Icon } from './iconfont'; +export { default as ImagePreview } from './ImagePreview'; diff --git a/packages/meta/lib/index.js b/packages/meta/lib/index.js index 69e86c6..f9d0355 100644 --- a/packages/meta/lib/index.js +++ b/packages/meta/lib/index.js @@ -29,11 +29,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru // src/index.tsx var src_exports = {}; __export(src_exports, { - Button: () => import_Button.default + Icon: () => import_iconfont.default, + ImagePreview: () => import_ImagePreview.default, + doubleClick: () => import_doubleClick.default }); module.exports = __toCommonJS(src_exports); -var import_Button = __toESM(require("./Button")); +var import_doubleClick = __toESM(require("./doubleClick")); +var import_iconfont = __toESM(require("./iconfont")); +var import_ImagePreview = __toESM(require("./ImagePreview")); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { - Button + Icon, + ImagePreview, + doubleClick }); diff --git a/packages/meta/lib/utils/index.d.ts b/packages/meta/lib/utils/index.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/meta/lib/utils/index.js b/packages/meta/lib/utils/index.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/meta/package.json b/packages/meta/package.json index 0d61882..1f16a8a 100644 --- a/packages/meta/package.json +++ b/packages/meta/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/meta", - "version": "0.2.3", + "version": "0.2.4", "description": "原子组件", "keywords": [ "meta", @@ -17,6 +17,9 @@ "main": "lib/index.tsx", "module": "es/index.js", "typings": "es/index.d.ts", + "exports": { + "./package.json": "./package.json" + }, "files": [ "es", "lib", @@ -30,6 +33,14 @@ "registry": "http://10.0.0.77:4874" }, "dependencies": { - "antd": "^5.12.5" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/turf": "^6.5.0", + "@zhst/func": "workspace:^", + "@zhst/hooks": "workspace:^", + "antd": "^5.12.5", + "classnames": "^2.5.1", + "rc-util": "^5.38.1", + "react": "^18.0.0", + "react-dom": "^18.0.0" } } diff --git a/packages/meta/src/Button/index.md b/packages/meta/src/Button/index.md deleted file mode 100644 index 3dcf5bd..0000000 --- a/packages/meta/src/Button/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -nav: - title: 元组件 -title: 按钮 -order: 2 ---- - -## 基本按钮 - -```jsx -import React from 'react'; -import { Button } from '@zhst/meta' - -export default () => { - return ( - - ) -} -``` diff --git a/packages/meta/src/ImageEditor/cropper/constants.ts b/packages/meta/src/ImageEditor/cropper/constants.ts new file mode 100644 index 0000000..7a1cf7f --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/constants.ts @@ -0,0 +1,41 @@ +//@ts-nocheck +import { IS_TOUCH_DEVICE, HAS_POINTER_EVENT } from '../utils'; + +export const NAMESPACE = 'zhst-cropper'; + +// Actions +export const ACTION_MOVE = 'move'; +export const ACTION_CROP = 'crop'; +export const ACTION_EAST = 'e'; +export const ACTION_WEST = 'w'; +export const ACTION_SOUTH = 's'; +export const ACTION_NORTH = 'n'; +export const ACTION_NORTH_EAST = 'ne'; +export const ACTION_NORTH_WEST = 'nw'; +export const ACTION_SOUTH_EAST = 'se'; +export const ACTION_SOUTH_WEST = 'sw'; + +// Classes +export const CLASS_HIDDEN = `${NAMESPACE}-hidden`; +export const CLASS_MASK = `${NAMESPACE}-mask`; + +// Data keys +export const DATA_ACTION = `${NAMESPACE}-action`; + +// Events +export const EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown'; +export const EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove'; +export const EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup'; +export const EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START; +export const EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE; +export const EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END; +export const EVENT_WHEEL = 'wheel'; + +//custom event +export const EVENT_CROP_CHANGE = 'crop-change'; +export const EVENT_CROP_START = 'crop-start'; +export const EVENT_CROP_END = 'crop-end'; + +// RegExps +export const REGEXP_SPACES = /\s\s*/; +export const REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/; diff --git a/packages/meta/src/ImageEditor/cropper/event.ts b/packages/meta/src/ImageEditor/cropper/event.ts new file mode 100644 index 0000000..28036a1 --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/event.ts @@ -0,0 +1,493 @@ +//@ts-nocheck +import { addClass, removeClass } from 'rc-util/lib/Dom/class'; +import { addEventlistener, isNumber, get } from '@zhst/func'; +import warn from 'rc-util/lib/warn'; +import { getData, getPointer, getOffset, dispatchEvent } from '../utils'; +import { + //class + CLASS_MASK, + DATA_ACTION, + ACTION_CROP, + ACTION_MOVE, + ACTION_EAST, + ACTION_NORTH, + ACTION_NORTH_EAST, + ACTION_NORTH_WEST, + ACTION_SOUTH, + ACTION_SOUTH_EAST, + ACTION_SOUTH_WEST, + ACTION_WEST, + CLASS_HIDDEN, + // event + EVENT_POINTER_DOWN, + EVENT_POINTER_MOVE, + EVENT_POINTER_UP, + EVENT_CROP_CHANGE, + EVENT_CROP_START, + EVENT_CROP_END, + EVENT_WHEEL, + + // 正则 + REGEXP_ACTIONS, + REGEXP_SPACES, +} from './constants'; + +export default { + bind() { + const { container, element, eventHandleList = [], option } = this; + + const handleCropStart = addEventlistener( + container, + EVENT_POINTER_DOWN, + this.onCropStart.bind(this) + ); + eventHandleList.push(handleCropStart); + const handleCropMove = addEventlistener( + element.ownerDocument, + EVENT_POINTER_MOVE, + this.onCropMove.bind(this) + ); + eventHandleList.push(handleCropMove); + EVENT_POINTER_UP.trim() + .split(REGEXP_SPACES) + .forEach((eventName) => { + const handleCropEnd = addEventlistener( + element.ownerDocument, + eventName, + this.onCropEnd.bind(this) + ); + eventHandleList.push(handleCropEnd); + }); + }, + unbind() { + const { eventHandleList } = this; + for (let index = eventHandleList.length; index > 0; index--) { + const handler = eventHandleList.shift; + try { + handler.remove(); + } catch (error) { + warn('CROP:REMOVE_EVENT_FAIL,', error); + } + } + }, + + onCropStart(event) { + const { buttons, button } = event; + if ( + this.disabled || + // Handle mouse event and pointer event and ignore touch event + ((event.type === 'mousedown' || + (event.type === 'pointerdown' && event.pointerType === 'mouse')) && + // No primary button (Usually the left button) + ((isNumber(buttons) && buttons !== 1) || + (isNumber(button) && button !== 0) || + // Open context menu + event.ctrlKey)) + ) { + return; + } + const action = getData(event.target, DATA_ACTION); + this.pointer = getPointer(event); + if (!REGEXP_ACTIONS.test(action)) { + return; + } + // This line is required for preventing page zooming in iOS browsers + event.preventDefault(); + this.action = action; + this.cropping = false; + + if (action === ACTION_CROP) { + this.cropping = true; + const { showMask } = this.options; + if (showMask) { + addClass(this.dragBox, CLASS_MASK); + } + } + + const hasCrop = + get(this, 'cropBoxData.width', 0) !== 0 && get(this, 'cropBoxData.height', 0) !== 0; + dispatchEvent(this.element, EVENT_CROP_START, hasCrop ? this?.cropBoxData : null); + dispatchEvent(this.element, EVENT_CROP_CHANGE, hasCrop ? this?.cropBoxData : null); + }, + onCropMove(event) { + const { action } = this; + if (!action) { + return; + } + this.pointer = Object.assign({}, this.pointer, getPointer(event, true)); + event.preventDefault(); + //添加事件 + this.change(event); + }, + onCropEnd(event) { + const { action } = this; + if (!action) { + return; + } + event.preventDefault(); + + this.action = null; + this.point = null; + if (this.cropping) { + this.cropping = false; + // removeClass(this.dragBox, CLASS_MASK); + } + const hasCrop = + get(this, 'cropBoxData.width', 0) !== 0 && get(this, 'cropBoxData.height', 0) !== 0; + dispatchEvent(this.element, EVENT_CROP_CHANGE, hasCrop ? this?.cropBoxData : null); + hasCrop && dispatchEvent(this.element, EVENT_CROP_END, hasCrop ? this?.cropBoxData : null); + }, + change(event) { + const { options, containerData, cropBoxData = {}, pointer = {}, wrapper } = this; + let { action } = this; + //位置参数 + let { left, top, width, height } = cropBoxData; + const right = left + width; + const bottom = top + height; + const minLeft = 0; + const minTop = 0; + const maxWidth = containerData.width; + const maxHeight = containerData.height; + //各种转换后是否需要渲染 + let renderable = true; + let offset; + + const range = { + x: pointer.endX - pointer.startX, + y: pointer.endY - pointer.startY, + }; + + const check = (side) => { + switch (side) { + case ACTION_EAST: + if (right + range.x > maxWidth) { + range.x = maxWidth - right; + } + break; + + case ACTION_WEST: + if (left + range.x < minLeft) { + range.x = minLeft - left; + } + + break; + + case ACTION_NORTH: + if (top + range.y < minTop) { + range.y = minTop - top; + } + + break; + + case ACTION_SOUTH: + if (bottom + range.y > maxHeight) { + range.y = maxHeight - bottom; + } + + break; + + default: + } + }; + switch (action) { + // Create crop box + case ACTION_CROP: + if (!range.x || !range.y) { + renderable = false; + break; + } + offset = getOffset(this.container); + + left = pointer.startX - offset.left; + top = pointer.startY - offset.top; + width = cropBoxData.minWidth; + height = cropBoxData.minHeight; + + if (!left) { + debugger; + } + + if (range.x > 0) { + action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST; + } else if (range.x < 0) { + left -= width; + action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST; + } + + if (range.y < 0) { + top -= height; + } + + // Show the crop box if is hidden + if (!this.cropped) { + removeClass(this.cropBox, CLASS_HIDDEN); + this.cropped = true; + + if (this.limited) { + this.limitCropBox(true, true); + } + } + + break; + // Move canvas + case ACTION_MOVE: + left += range.x; + top += range.y; + break; + + // 北n + // 东w 西e + // 南s + + // Resize crop box + case ACTION_EAST: + if (range.x >= 0 && right >= maxWidth) { + renderable = false; + break; + } + check(ACTION_EAST); + width += range.x; + + if (width < 0) { + action = ACTION_WEST; + width = -width; + left -= width; + } + break; + + case ACTION_NORTH: + if (range.y <= 0 && top <= minTop) { + renderable = false; + break; + } + + check(ACTION_NORTH); + height -= range.y; + top += range.y; + + if (height < 0) { + action = ACTION_SOUTH; + height = -height; + top -= height; + } + + break; + + case ACTION_WEST: + if (range.x <= 0 && left <= minLeft) { + renderable = false; + break; + } + + check(ACTION_WEST); + width -= range.x; + left += range.x; + + if (width < 0) { + action = ACTION_EAST; + width = -width; + left -= width; + } + break; + + case ACTION_SOUTH: + if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + break; + } + + check(ACTION_SOUTH); + height += range.y; + + if (height < 0) { + action = ACTION_NORTH; + height = -height; + top -= height; + } + break; + + case ACTION_NORTH_EAST: + check(ACTION_NORTH); + check(ACTION_EAST); + + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width += range.x; + } + + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + + if (width < 0 && height < 0) { + action = ACTION_SOUTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_NORTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_SOUTH_EAST; + height = -height; + top -= height; + } + + break; + + case ACTION_NORTH_WEST: + check(ACTION_NORTH); + check(ACTION_WEST); + + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + + if (width < 0 && height < 0) { + action = ACTION_SOUTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_NORTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_SOUTH_WEST; + height = -height; + top -= height; + } + + break; + + case ACTION_SOUTH_WEST: + check(ACTION_SOUTH); + check(ACTION_WEST); + + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + + if (width < 0 && height < 0) { + action = ACTION_NORTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_SOUTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_NORTH_WEST; + height = -height; + top -= height; + } + + break; + + case ACTION_SOUTH_EAST: + check(ACTION_SOUTH); + check(ACTION_EAST); + + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width += range.x; + } + + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + + if (width < 0 && height < 0) { + action = ACTION_NORTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_SOUTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_NORTH_EAST; + height = -height; + top -= height; + } + break; + + default: + break; + } + + if (renderable) { + cropBoxData.width = width; + cropBoxData.height = height; + cropBoxData.left = left; + cropBoxData.top = top; + this.action = action; + this.cropBoxData = cropBoxData; + this.renderCropBox(); + } + // Override + this.pointer.startX = this.pointer.endX; + this.pointer.startY = this.pointer.endY; + }, +}; diff --git a/packages/meta/src/ImageEditor/cropper/index.module.scss b/packages/meta/src/ImageEditor/cropper/index.module.scss new file mode 100644 index 0000000..f341aee --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/index.module.scss @@ -0,0 +1,194 @@ +$prefix: zhst; + +:global { + // .zhst-cropper-container { + // width: 100px; + // } + .zhst-cropper { + &-container { + position: relative; + direction: ltr; + font-size: 0; + line-height: 0; + touch-action: none; + user-select: none; + } + + &-container, + &-wrap-box, + &-canvas, + &-drag-box, + &-crop-box, + &-face, + &-modal { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + + &-drag-box { + cursor: crosshair; + } + + &-view-box { + display: block; + overflow: hidden; + width: 100%; + height: 100%; + outline: 1px solid #39f; + outline-color: rgb(51 153 255 / 75%); + } + + //mask + &-mask { + background-color: rgb(0 0 0 / 50%); + } + + //拖拽 + &-face { + background-color: #fff; + cursor: move; + opacity: 0; + } + + //点 + &-point { + position: absolute; + width: 6px; + height: 6px; + + // background: #fff; + background-color: #39f; + border-radius: 50%; + + // border: 0.2px solid #000; + + // 北n + // 东w 西e + // 南s + + &.point-nw { + top: -3px; + left: -3px; + cursor: nwse-resize; + } + + &.point-n { + top: -3px; + left: 50%; + cursor: ns-resize; + transform: translateX(-50%); + } + + &.point-ne { + top: -3px; + right: -3px; + cursor: nesw-resize; + } + + &.point-w { + top: 50%; + left: -3px; + cursor: ew-resize; + transform: translateY(-50%); + } + + &.point-e { + top: 50%; + right: -3px; + cursor: ew-resize; + transform: translateY(-50%); + } + + &.point-sw { + bottom: -3px; + left: -3px; + cursor: nesw-resize; + } + + &.point-s { + bottom: -3px; + left: 50%; + cursor: ns-resize; + transform: translateX(-50%); + } + + &.point-se { + right: -3px; + bottom: -3px; + cursor: nwse-resize; + } + } + + //线 + &-line { + // opacity: 0.1; + position: absolute; + display: block; + width: 100%; + height: 100%; + background-color: #39f; + + &.line-e { + top: 0; + right: -1px; + width: 2px; + cursor: ew-resize; + } + + &.line-n { + top: -1px; + left: 0; + height: 2px; + cursor: ns-resize; + } + + &.line-w { + top: 0; + left: -1px; + width: 2px; + cursor: ew-resize; + } + + &.line-s { + bottom: -1px; + left: 0; + height: 2px; + cursor: ns-resize; + } + } + + //辅助class + &-invisible { + opacity: 0; + } + + &-hide { + position: absolute; + display: block; + width: 0; + height: 0; + } + + &-hidden { + display: none !important; + } + + &-move { + cursor: move; + } + + &-crop { + cursor: crosshair; + } + + &-disabled &-drag-box, + &-disabled &-face, + &-disabled &-line, + &-disabled &-point { + cursor: not-allowed; + } + } +} diff --git a/packages/meta/src/ImageEditor/cropper/index.ts b/packages/meta/src/ImageEditor/cropper/index.ts new file mode 100644 index 0000000..c12ffd9 --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/index.ts @@ -0,0 +1,172 @@ +//@ts-nocheck +import { get, isPlainObject, isString, isNil } from '@zhst/func'; +import { addClass, removeClass } from 'rc-util/lib/Dom/class'; +import { Mixin, dispatchEvent } from '../utils'; +import { + NAMESPACE, + CLASS_HIDDEN, + CLASS_MASK, + EVENT_CROP_CHANGE, + EVENT_CROP_END, +} from './constants'; +import TEMPLATE from './template'; +import Render from './render'; +import Event from './event'; +import ViewerBridge from './viewerBridge'; +import Preview from './preview'; +import './index.module.scss'; + +export interface Option { + /* 图片url */ + image?: string | HTMLImageElement; + /* 是否需要遮盖 */ + showMask?: boolean; + //限制crop的范围 + cropBoxLimited?: { + width: number; + height: number; + top: number; + left: number; + }; + minCropBoxWidth?: number; + minCropBoxHeight?: number; + /* 支持传viewer 做联动 */ + viewer?: any; + /* default cropdata */ + initialCropBoxData?; +} + +@Mixin(Render, Event, ViewerBridge, Preview) +class Cropper { + /* 容器:挂在的节点 */ + element: HTMLDivElement; + + /* 配置项 */ + options: Option; + + /* 是否截图 */ + cropped: boolean; + + /* crop框是否有限制 */ + limited: boolean; + + /* 维护图片对象 */ + image: HTMLImageElement; + + /* 所有事件 */ + // eventHandleList: Array; + eventHandleList = []; + + /* 方便访问dom元素 */ + container: Element; + dragBox: Element; + cropBox: Element; + viewBox: Element; + + constructor(element, options?) { + this.element = element; + this.options = Object.assign({}, isPlainObject(options) && options); + this.limited = isNil(this.options.cropBoxLimited) ? false : true; + this.cropped = false; + this.init(); + } + + async init() { + this.build(); + //@ts-ignore + this.bind(); + //@ts-ignore + this.render(); + //@ts-ignore + this.initPreview(); + if (this.options.viewer) { + //@ts-ignore + this.initBridge(); + } + //初始化crop + this.initDefaultCropBox(); + } + + initDefaultCropBox() { + const { initialCropBoxData } = this.options || {}; + + // const initialCropBoxData = { + // height: 158.02902221679688, + // left: 410.132080078125, + // top: 133.201904296875, + // width: 211.97821044921875, + // }; + if (initialCropBoxData) { + this.cropped = true; + const { showMask } = this.options; + showMask && addClass(this.dragBox, CLASS_MASK); + removeClass(this.cropBox, CLASS_HIDDEN); + //@ts-ignore + this.cropBoxData = { ...this.cropBoxData, ...initialCropBoxData }; + //@ts-ignore + this.renderCropBox(); + const hasCrop = + get(this, 'cropBoxData.width', 0) !== 0 && get(this, 'cropBoxData.height', 0) !== 0; + //@ts-ignore + dispatchEvent(this.element, EVENT_CROP_CHANGE, hasCrop ? this?.cropBoxData : null); + //@ts-ignore + hasCrop && dispatchEvent(this.element, EVENT_CROP_END, hasCrop ? this?.cropBoxData : null); + } + } + + load() { + return new Promise((resolve, reject) => { + const { image: propImage } = this.options; + if (isString(propImage)) { + const image = new Image(); + const imgUrl = propImage; + image.crossOrigin = 'anonymous'; + image.src = imgUrl; + image.onload = () => { + this.image = image; + resolve(image); + }; + image.onerror = (err) => { + reject(err); + }; + } else { + this.image = propImage; + resolve(propImage); + } + }); + } + + build() { + // Create cropper elements + const template = document.createElement('div'); + template.innerHTML = TEMPLATE; + + const container = template.querySelector(`.${NAMESPACE}-container`); + const dragBox = container.querySelector(`.${NAMESPACE}-drag-box`); + const cropBox = container.querySelector(`.${NAMESPACE}-crop-box`); + const viewBox = container.querySelector(`.${NAMESPACE}-view-box`); + + this.element.appendChild(container); + this.container = container; + this.dragBox = dragBox; + this.cropBox = cropBox; + this.viewBox = viewBox; + + //先隐藏crop + addClass(cropBox, CLASS_HIDDEN); + } + + destroy() { + if (this.options.viewer) { + //@ts-ignore + this.clearBridge(); + } + //清理事件 + //@ts-ignore + this.unbind(); + //清理dom + this.element?.removeChild?.(this.container); + } +} + +export default Cropper; diff --git a/packages/meta/src/ImageEditor/cropper/preview.ts b/packages/meta/src/ImageEditor/cropper/preview.ts new file mode 100644 index 0000000..5c618d1 --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/preview.ts @@ -0,0 +1,61 @@ +//@ts-nocheck +import { set } from 'rc-util/lib/Dom/css'; +import { getTransforms } from '../utils'; + +export default { + //var + previewBox: null, + + //method + initPreview() { + const { showMask, img, viewer } = this.options; + if (!showMask) return; + + if (viewer) { + //如果是传了一个viewer 进来 + //整一个canvas 渲染 + const canvas = document.createElement('canvas'); + canvas.width = this.containerData.width; + canvas.height = this.containerData.height; + this.viewBox.appendChild(canvas); + this.previewBox = canvas; + //设置canvas 监听 + } else { + //如果是传了图片 则渲染图片 + const image = document.createElement('img'); + image.src = img; + this.viewBox.appendChild(image); + this.previewBox = image; + } + }, + + renderPreview() { + const { showMask, img, viewer } = this.options; + if (!showMask) return; + + const { containerData, cropBoxData } = this; + const { width, height } = containerData; + const left = cropBoxData.left; + const top = cropBoxData.top; + + if (!this.cropped || this.disabled) { + return; + } + + set( + this.previewBox, + Object.assign( + { + width, + height, + }, + getTransforms( + Object.assign({ + translateX: -left, + translateY: -top, + }) + ) + ) + ); + }, +}; diff --git a/packages/meta/src/ImageEditor/cropper/render.ts b/packages/meta/src/ImageEditor/cropper/render.ts new file mode 100644 index 0000000..7abf173 --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/render.ts @@ -0,0 +1,175 @@ +//@ts-nocheck +import { set, getOuterWidth, getOuterHeight } from 'rc-util/lib/Dom/css'; +import { addClass, removeClass } from 'rc-util/lib/Dom/class'; +import { getTransforms } from '../utils'; +import { CLASS_MASK, CLASS_HIDDEN } from './constants'; + +export default { + cropBoxData: null, + viewBoxImage: null, + render() { + this.initContainer(); + this.initCropBox(); + this.limitCropBox(true, true); + }, + + initContainer() { + //通过样式设置 不依赖父元素的prosition + const { element, container } = this; + const containerData = { + width: getOuterWidth(element), + height: getOuterHeight(element), + }; + this.containerData = containerData; + set(container, containerData); + }, + initCropBox() { + const { containerData, options } = this; + + const cropBoxData = { + // width: containerData.width, + // height: containerData.height, + width: 0, + height: 0, + left: 0, + top: 0, + minWidth: 0, + minHeight: 0, + maxWidth: containerData.width, + maxHeight: containerData.height, + minLeft: 0, + maxLeft: containerData.width, + minTop: 0, + maxTop: containerData.height, + oldLeft: 0, + oldTop: 0, + }; + + this.cropBoxData = cropBoxData; + this.limitCropBox(true, true); + }, + renderCropBox() { + const { cropBoxData } = this; + + if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) { + cropBoxData.left = cropBoxData.oldLeft; + } + + if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) { + cropBoxData.top = cropBoxData.oldTop; + } + + cropBoxData.width = Math.min( + Math.max(cropBoxData.width, cropBoxData.minWidth), + cropBoxData.maxWidth + ); + cropBoxData.height = Math.min( + Math.max(cropBoxData.height, cropBoxData.minHeight), + cropBoxData.maxHeight + ); + this.limitCropBox(false, true); + + cropBoxData.left = Math.min( + Math.max(cropBoxData.left, cropBoxData.minLeft), + cropBoxData.maxLeft + ); + cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop); + cropBoxData.oldLeft = cropBoxData.left; + cropBoxData.oldTop = cropBoxData.top; + + set( + this.cropBox, + Object.assign( + { + width: cropBoxData.width, + height: cropBoxData.height, + }, + getTransforms({ + translateX: cropBoxData.left, + translateY: cropBoxData.top, + }) + ) + ); + + if (this.options.showMask) { + this.renderPreview(); + } + }, + + clearCropBox() { + // Clear the crop box + if (this.cropped && !this.disabled) { + Object.assign(this.cropBoxData, { + left: 0, + top: 0, + width: 0, + height: 0, + }); + + this.cropped = false; + this.renderCropBox(); + + // Render canvas after crop box rendered + // this.renderCanvas(); + removeClass(this.dragBox, CLASS_MASK); + addClass(this.cropBox, CLASS_HIDDEN); + } + + return this; + }, + + limitCropBox(sizeLimited, positionLimited) { + // return + const { options, containerData, cropBoxData, limited } = this; + const { cropBoxLimited = {} } = options; + + if (sizeLimited) { + let minCropBoxWidth = Number(options.minCropBoxWidth) || 0; + let minCropBoxHeight = Number(options.minCropBoxHeight) || 0; + const maxCropBoxWidth = limited + ? Math.min( + containerData.width, + cropBoxLimited.width, + cropBoxLimited.width + cropBoxLimited.left, + containerData.width - cropBoxLimited.left + ) + : containerData.width; + const maxCropBoxHeight = limited + ? Math.min( + containerData.height, + cropBoxLimited.height, + cropBoxLimited.height + cropBoxLimited.top, + containerData.height - cropBoxLimited.top + ) + : containerData.height; + + // The min/maxCropBoxWidth/Height must be less than container's width/height + minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width); + minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height); + + // The minWidth/Height must be less than maxWidth/Height + cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth); + cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight); + cropBoxData.maxWidth = maxCropBoxWidth; + cropBoxData.maxHeight = maxCropBoxHeight; + } + + if (positionLimited) { + if (limited) { + cropBoxData.minLeft = Math.max(0, cropBoxLimited.left); + cropBoxData.minTop = Math.max(0, cropBoxLimited.top); + cropBoxData.maxLeft = + Math.min(containerData.width, cropBoxLimited.left + cropBoxLimited.width) - + cropBoxData.width; + cropBoxData.maxTop = + Math.min(containerData.height, cropBoxLimited.top + cropBoxLimited.height) - + cropBoxData.height; + } else { + cropBoxData.minLeft = 0; + cropBoxData.minTop = 0; + cropBoxData.maxLeft = containerData.width - cropBoxData.width; + cropBoxData.maxTop = containerData.height - cropBoxData.height; + } + } + }, +}; diff --git a/packages/meta/src/ImageEditor/cropper/template.js b/packages/meta/src/ImageEditor/cropper/template.js new file mode 100644 index 0000000..002ce16 --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/template.js @@ -0,0 +1,23 @@ +import { NAMESPACE } from './constants'; + +export default ` +
+
+
+ + > + + + + + + + + + + + + +
+
+`; diff --git a/packages/meta/src/ImageEditor/cropper/viewerBridge.ts b/packages/meta/src/ImageEditor/cropper/viewerBridge.ts new file mode 100644 index 0000000..43662ef --- /dev/null +++ b/packages/meta/src/ImageEditor/cropper/viewerBridge.ts @@ -0,0 +1,80 @@ +//@ts-nocheck +import {addEventlistener} from '@zhst/func'; +import { EVENT_WHEEL } from './constants'; +import { EVENT_VIEWER_TRANSFORM_CHANGE } from '../viewer/constants'; + +export default { + initBridge() { + const { container, element, eventHandleList = [], option } = this; + + if (this.options.viewer) { + const viewer = this.options.viewer; + //添加缩放事件 + const handleWhele = addEventlistener(container, EVENT_WHEEL, this.onWheel.bind(this)); + eventHandleList.push(handleWhele); + //添加事件监听 获取limit crop box & 渲染canvas + this.onTransformChange(viewer); + this.limited = true; + const handleTransformChange = addEventlistener( + viewer.element, + EVENT_VIEWER_TRANSFORM_CHANGE, + (event) => { + this.onTransformChange(viewer); + } + ); + eventHandleList.push(handleTransformChange); + } + }, + onTransformChange(viewer) { + if (!viewer.image) return; + const { width: imgWidth, height: imgHeight } = viewer.image; + const { rotate = 0 } = viewer.targetTransform || {}; + let imgLeftTop = { x: 0, y: 0 }; + let imgRightBottom = { x: imgWidth, y: imgHeight }; + if (rotate % 180 !== 0) { + //todo:旋转测试 + const diffx = (imgWidth - imgHeight) / 2; + const diffy = (imgHeight - imgWidth) / 2; + imgLeftTop = { + x: imgLeftTop.x + diffx, + y: imgLeftTop.y + diffy, + }; + imgRightBottom = { + x: imgRightBottom.x - diffx, + y: imgRightBottom.y - diffy, + }; + } + + const { x: x1, y: y1 } = viewer.originAxisToCanvasAxis({ x: imgLeftTop.x, y: imgLeftTop.y }); + const { x: x2, y: y2 } = viewer.originAxisToCanvasAxis({ + x: imgRightBottom.x, + y: imgRightBottom.y, + }); + const limitCropBox = { + left: x1, + top: y1, + width: x2 - x1, + height: y2 - y1, + }; + this.options.cropBoxLimited = limitCropBox; + this.limitCropBox(true, true); + + //渲染预览框 + if (this.previewBox) { + const canvas = this.previewBox; + + const ctx = canvas.getContext('2d'); + const viewerRender = viewer.renderCanvas.bind(viewer); + viewerRender(ctx); + } + }, + + onWheel(event) { + const viewer = this.options.viewer; + //onwheel + const onViewerWheelHandler = viewer.onWheel.bind(viewer); + onViewerWheelHandler(event, this.cropped ? this.cropBoxData : null); + }, + + clearBridge() {}, +}; diff --git a/packages/meta/src/ImageEditor/index.ts b/packages/meta/src/ImageEditor/index.ts new file mode 100644 index 0000000..ada531d --- /dev/null +++ b/packages/meta/src/ImageEditor/index.ts @@ -0,0 +1,15 @@ +//@ts-nocheck +export { default as Cropper } from './cropper'; + +export { default as Viewer } from './viewer'; + +//custom event +export { EVENT_CROP_CHANGE, EVENT_CROP_START, EVENT_CROP_END } from './cropper/constants'; + +export { + EVENT_VIEWER_TRANSFORM_CHANGE, + EVENT_VIEWER_READY, + EVENT_VIEWER_ERROR, + EVENT_SHAPE_SELECT, + EVENT_EYE_DONE, +} from './viewer/constants'; diff --git a/packages/meta/src/ImageEditor/interface.d.ts b/packages/meta/src/ImageEditor/interface.d.ts new file mode 100644 index 0000000..54ccf05 --- /dev/null +++ b/packages/meta/src/ImageEditor/interface.d.ts @@ -0,0 +1,3 @@ +//@ts-nocheck +export { Option as CropOption } from './cropper'; +export { Option as ViewOption } from './viewer'; diff --git a/packages/meta/src/ImageEditor/utils.ts b/packages/meta/src/ImageEditor/utils.ts new file mode 100644 index 0000000..5e354e8 --- /dev/null +++ b/packages/meta/src/ImageEditor/utils.ts @@ -0,0 +1,190 @@ +//@ts-nocheck +import { isObject, isNumber, assign, isFunction } from '@zhst/func'; +import { hasClass, addClass, removeClass } from 'rc-util/lib/Dom/class'; + +export const IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined'; +export const WINDOW = IS_BROWSER ? window : {}; +export const IS_TOUCH_DEVICE = + IS_BROWSER && WINDOW.document.documentElement + ? 'ontouchstart' in WINDOW.document.documentElement + : false; +export const HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false; + +// 横杠转换驼峰 +function toHump(name) { + return name.replace(/\-(\w)/g, function (all, letter) { + return letter.toUpperCase(); + }); +} + +const REGEXP_CAMEL_CASE = /([a-z\d])([A-Z])/g; +/** + * Transform the given string from camelCase to kebab-case + * @param {string} value - The value to transform. + * @returns {string} The transformed value. + */ +export function toParamCase(value) { + return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase(); +} + +/** + * Get data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to get. + * @returns {string} The data value. + */ +export function getData(element, name) { + if (isObject(element[name])) { + return element[name]; + } + + if (element.dataset) { + return element.dataset[toHump(name)]; + } + + return element.getAttribute(`data-${toParamCase(name)}`); +} + +export function toggleClass(node: HTMLElement, className: string) { + if (hasClass(node, className)) { + addClass(node, className); + } else { + removeClass(node, className); + } +} + +/** + * Get a pointer from an event object. + * @param {Object} event - The target event object. + * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. + * @returns {Object} The result pointer contains start and/or end point coordinates. + */ +export function getPointer({ pageX, pageY }, endOnly?) { + const end = { + endX: pageX, + endY: pageY, + }; + + return endOnly + ? end + : { + startX: pageX, + startY: pageY, + ...end, + }; +} + +/** + * Get the offset base on the document. + * @param {Element} element - The target element. + * @returns {Object} The offset data. + */ +export function getOffset(element) { + const box = element.getBoundingClientRect(); + + return { + left: box.left + (window.pageXOffset - document.documentElement.clientLeft), + top: box.top + (window.pageYOffset - document.documentElement.clientTop), + }; +} + +/** + * Get transforms base on the given object. + * @param {Object} obj - The target object. + * @returns {string} A string contains transform values. + */ +export function getTransforms({ + rotate, + scaleX, + scaleY, + translateX, + translateY, +}: { + rotate?: number; + scaleX?: number; + scaleY?: number; + translateX?: number; + translateY?: number; +}) { + const values = []; + + if (isNumber(translateX) && translateX !== 0) { + values.push(`translateX(${translateX}px)`); + } + + if (isNumber(translateY) && translateY !== 0) { + values.push(`translateY(${translateY}px)`); + } + + // Rotate should come first before scale to match orientation transform + if (isNumber(rotate) && rotate !== 0) { + values.push(`rotate(${rotate}deg)`); + } + + if (isNumber(scaleX) && scaleX !== 1) { + values.push(`scaleX(${scaleX})`); + } + + if (isNumber(scaleY) && scaleY !== 1) { + values.push(`scaleY(${scaleY})`); + } + + const transform = values.length ? values.join(' ') : 'none'; + + return { + WebkitTransform: transform, + msTransform: transform, + transform, + }; +} + +/** + * copy from https://github.com/steelsojka/lodash-decorators/blob/master/src/mixin.ts + * Mixins an object into the classes prototype. + * @export + * @param {...Object[]} srcs + * @returns {ClassDecorator} + * @example + * + * const myMixin = { + * blorg: () => 'blorg!' + * } + * + * @Mixin(myMixin) + * class MyClass {} + * + * const myClass = new MyClass(); + * + * myClass.blorg(); // => 'blorg!' + */ +export function Mixin(...srcs: Object[]): ClassDecorator { + return ((target: Function) => { + assign(target.prototype, ...srcs); + + return target; + }) as any; +} + +/** + * Dispatch event on the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Object} data - The additional event data. + * @returns {boolean} Indicate if the event is default prevented or not. + */ +export function dispatchEvent(element, type, data?) { + let event; + // Event and CustomEvent on IE9-11 are global objects, not constructors + if (isFunction(Event) && isFunction(CustomEvent)) { + event = new CustomEvent(type, { + detail: data, + bubbles: true, + cancelable: true, + }); + } else { + event = document.createEvent('CustomEvent'); + event.initCustomEvent(type, true, true, data); + } + + return element.dispatchEvent(event); +} diff --git a/packages/meta/src/ImageEditor/viewer/constants.ts b/packages/meta/src/ImageEditor/viewer/constants.ts new file mode 100644 index 0000000..08a3d3d --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/constants.ts @@ -0,0 +1,43 @@ +import { IS_TOUCH_DEVICE, HAS_POINTER_EVENT } from '../utils'; + +export const NAMESPACE = 'zhst-viewer'; + +// Actions +export const ACTION_DRAG = 'drag'; + +// Classes +export const CLASS_CANVAS = `${NAMESPACE}-canvas`; +export const CLASS_MOVE = `${NAMESPACE}-move`; + +// Events +export const EVENT_CLICK = 'click'; +export const EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown'; +export const EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove'; +export const EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup'; +export const EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START; +export const EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE; +export const EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END; +export const EVENT_WHEEL = 'wheel'; +export const EVENT_LEAVEL = 'mouseleave'; +export const EVENT_ENTER = 'mouseenter'; +//custom event +export const EVENT_VIEWER_TRANSFORM_CHANGE = 'viewer-transform-change'; +export const EVENT_VIEWER_READY = 'viewer-ready'; +export const EVENT_VIEWER_ERROR = 'viewer-error'; +export const EVENT_SHAPE_SELECT = 'shape-select'; +export const EVENT_EYE_DONE = 'eye-done'; + +// RegExps +export const REGEXP_SPACES = /\s\s*/; + +//变换前的坐标(左上角为原点) +export const AXIS_TYPE_ORIGIN = 1; +//变换后显示在画布中的坐标(还是左上角为原点) +export const AXIS_TYPE_CANVAS = 2; +//基于图片的坐标轴 原点为图片左上角 +export const AXIS_TYPE_IMAGE = 3; + +//形状 +export const SHAPE_TYPE_CUSTOM = 1; +export const SHAPE_TYPE_RECT = 2; +export const SHAPE_TYPE_CIRCLE = 3; diff --git a/packages/meta/src/ImageEditor/viewer/event.ts b/packages/meta/src/ImageEditor/viewer/event.ts new file mode 100644 index 0000000..810b980 --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/event.ts @@ -0,0 +1,225 @@ +//@ts-nocheck +import { isNumber, get, addEventListener } from '@zhst/func'; +import { addClass, removeClass } from 'rc-util/lib/Dom/class.js'; +import guid from 'rc-util/lib/guid'; +import warn from 'rc-util/lib/warn'; +import { getPointer, dispatchEvent } from '../utils'; +import { + CLASS_MOVE, + ACTION_DRAG, + // event + EVENT_CLICK, + EVENT_WHEEL, + EVENT_POINTER_DOWN, + EVENT_POINTER_MOVE, + EVENT_POINTER_UP, + EVENT_EYE_DONE, + //正则 + REGEXP_SPACES, + SHAPE_TYPE_CIRCLE, +} from './constants'; + +export default { + //store + disabled: false, + eventHandleList: [], + wheeling: false, + pointer: null, + action: null, + + //method + bind() { + const { canvas, element, eventHandleList = [], options } = this; + //图片事件 + const scaleAble = get(options, 'scaleAble', true); + if (scaleAble) { + const handleWhele = addEventListener(canvas, EVENT_WHEEL, this.onWheel.bind(this)); + eventHandleList.push(handleWhele); + } + + const dragAble = get(options, 'dragAble', true); + if (dragAble) { + const handleDragStart = addEventListener( + canvas, + EVENT_POINTER_DOWN, + this.onDragStart.bind(this) + ); + eventHandleList.push(addEventListener); + const handleDragMove = addEventListener( + element.ownerDocument, + EVENT_POINTER_MOVE, + this.onDragMove.bind(this) + ); + eventHandleList.push(handleDragMove); + EVENT_POINTER_UP.trim() + .split(REGEXP_SPACES) + .forEach((eventName) => { + const handleDragEnd = addEventListener( + element.ownerDocument, + eventName, + this.onDragEnd.bind(this) + ); + eventHandleList.push(handleDragEnd); + }); + } + + //rect事件 + const handleClick = addEventListener(canvas, EVENT_CLICK, this.onClick.bind(this)); + eventHandleList.push(handleClick); + // const handleLeveal = addEventListener(canvas, EVENT_LEAVEL, this.onLeavel.bind(this)); + // eventHandleList.push(handleLeveal); + // const handleEnter = addEventListener(canvas, EVENT_ENTER, this.onEnter.bind(this)); + // eventHandleList.push(handleEnter); + }, + unbind() { + const { eventHandleList } = this; + for (let index = eventHandleList.length; index > 0; index--) { + const handler = eventHandleList.shift(); + try { + handler.remove(); + } catch (error) { + warn('VIEWER:REMOVE_EVENT_FAIL,', error); + } + } + }, + + /* 图片事件 */ + onWheel(event, cropBox?) { + event.stopPropagation(); + event.preventDefault(); + + // Limit wheel speed to prevent zoom too fast + if (this.wheeling || !this.zoomable) { + return; + } + + this.wheeling = true; + + setTimeout(() => { + this.wheeling = false; + }, 16); + + const ratio = Number(this.options.zoomRatio) || 0.1; + let delta = 1; + + if (event.deltaY) { + delta = event.deltaY > 0 ? 1 : -1; + } else if (event.wheelDelta) { + delta = -event.wheelDelta / 120; + } else if (event.detail) { + delta = event.detail > 0 ? 1 : -1; + } + + const step = -delta * ratio; + const pos = this.windowToCanvasAxis(event); + this.calcTransform( + { + scaleCenter: { + ...pos, + step, + }, + }, + cropBox + ); + }, + + onDragStart(event) { + event.stopPropagation(); + // This line is required for preventing page zooming in iOS browsers + event.preventDefault(); + const { buttons, button } = event; + if (!this.movable) { + return; + } + if ( + this.disabled || + // Handle mouse event and pointer event and ignore touch event + ((event.type === 'mousedown' || + (event.type === 'pointerdown' && event.pointerType === 'mouse')) && + // No primary button (Usually the left button) + ((isNumber(buttons) && buttons !== 1) || + (isNumber(button) && button !== 0) || + // Open context menu + event.ctrlKey)) + ) { + return; + } + + this.pointer = getPointer(event); + this.action = ACTION_DRAG; + + addClass(this.canvas, CLASS_MOVE); + }, + onDragMove(event) { + event.stopPropagation(); + + /***************************************************/ + //todo:看下怎么拆shape 事件 + const pointerCenter = this.windowToCanvasAxis(event); + const id = this.calcSelectShape(pointerCenter); + this.hoverShapId = id; + /***************************************************/ + + const { action } = this; + if (!action) { + return; + } + this.pointer = Object.assign({}, this.pointer, getPointer(event, true)); + event.preventDefault(); + const range = { + x: this.pointer.endX - this.pointer.startX, + y: this.pointer.endY - this.pointer.startY, + }; + this.calcTransform({ translateX: range.x, translateY: range.y }); + // Override + this.pointer.startX = this.pointer.endX; + this.pointer.startY = this.pointer.endY; + }, + onDragEnd(event) { + event.stopPropagation(); + + const { action } = this; + if (!action) { + return; + } + event.preventDefault(); + + this.action = null; + this.point = null; + + removeClass(this.canvas, CLASS_MOVE); + }, + + /* rect事件 */ + // onLeavel(event) { + // const pointerCenter = this.windowToCanvasAxis(event); + // this.highlightShape(pointerCenter); + // }, + // onEnter(event) { + // this.highlightShape(null); + // }, + onClick(event) { + event.stopPropagation(); + const pointerCenter = this.windowToCanvasAxis(event); + if (!this.isEyeOpen) { + const id = this.calcSelectShape(pointerCenter); + this.setSelectShapId(id); + } else { + //双目 + //先直接写在这里 + //过滤掉框,只有point + let pointShapeList = this.shapeList.filter((v) => !v['w']); + if (pointShapeList.length === 5) return; + const originAxis = this.canvasAxisToOriginAxis(pointerCenter); + const imageAxis = this.originAxisToImgAxis(originAxis); + this.addShape( + { id: `pointer_${guid()}`, selectAble: false, ...imageAxis }, + SHAPE_TYPE_CIRCLE + ); + pointShapeList = this.shapeList.filter((v) => !v['w']); + if (pointShapeList.length === 5) { + dispatchEvent(this.element, EVENT_EYE_DONE); + } + } + }, +}; diff --git a/packages/meta/src/ImageEditor/viewer/helper.ts b/packages/meta/src/ImageEditor/viewer/helper.ts new file mode 100644 index 0000000..1396bd5 --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/helper.ts @@ -0,0 +1,166 @@ +//@ts-nocheck +import { AXIS_TYPE_ORIGIN, AXIS_TYPE_CANVAS, AXIS_TYPE_IMAGE } from './constants'; + +//设置数据的精度 +//accuracy 表示精度 以原点为中心向左为正,向右为负, +//isCeil 表示是否为向上取整 +export const setNumberAccuracy = (originNumber: number, accuracy = 0, isCeil = true) => { + if (originNumber === 0) { + return 0; + } + let returnData = 0; + + if (isCeil) { + returnData = Math.ceil(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy); + } else { + returnData = Math.floor(originNumber / Math.pow(10, accuracy)) * Math.pow(10, accuracy); + } + //设置精度 + if (accuracy < 0) { + returnData = Number(returnData.toFixed(-accuracy)); + } else { + returnData = Number(returnData.toFixed(0)); + } + return returnData; +} + +export default { + + windowToCanvasAxis(event) { + const { x, y } = this.canvas.getBoundingClientRect(); + return { + x: event.pageX - x, + y: event.pageY - y, + __AXIS_TYPE__: AXIS_TYPE_CANVAS, + }; + }, + offsetAxisToCanvasAxis({ x, y }) { + const { targetTransform } = this; + const { translateX, translateY, scale } = targetTransform; + return { + x: (x + translateX) / scale + translateX / scale, + y: y / scale + translateY / scale, + __AXIS_TYPE__: AXIS_TYPE_CANVAS, + }; + }, + originAxisToCanvasAxis({ x, y, ...others }) { + const { targetTransform } = this; + const { translateX, translateY, scale } = targetTransform; + const axis = { + x: translateX + x * scale, + y: translateY + y * scale, + ...others, + __AXIS_TYPE__: AXIS_TYPE_CANVAS, + }; + return axis; + }, + canvasAxisToOriginAxis({ x, y, ...others }) { + const { targetTransform } = this; + const { translateX, translateY, scale } = targetTransform; + const axis = { + x: (x - translateX) / scale, + y: (y - translateY) / scale, + ...others, + __AXIS_TYPE__: AXIS_TYPE_ORIGIN, + }; + return axis; + }, + imgRectAxisToCanvasAxisRect({ x = 0, y = 0, w = 0, h = 0, ...others }) { + const { width, height } = this.image; + const { targetTransform } = this; + const { rotate } = targetTransform; + const theta = (Math.PI / 180) * rotate; + const offsetRect = { + x: width * x, + y: height * y, + x2: width * w + width * x, + y2: height * h + height * y, + }; + //旋转 + // x' = x * cos(Theta) - y * sin(Theta); + // (dx,dy) = (x2-x1,y2-y1); + const newX = + (offsetRect.x - width / 2) * Math.cos(theta) - + (offsetRect.y - height / 2) * Math.sin(theta) + + width / 2; + const newY = + (offsetRect.x - width / 2) * Math.sin(theta) + + (offsetRect.y - height / 2) * Math.cos(theta) + + height / 2; + + const newX2 = + (offsetRect.x2 - width / 2) * Math.cos(theta) - + (offsetRect.y2 - height / 2) * Math.sin(theta) + + width / 2; + const newY2 = + (offsetRect.x2 - width / 2) * Math.sin(theta) + + (offsetRect.y2 - height / 2) * Math.cos(theta) + + height / 2; + + const newAxis1 = this.originAxisToCanvasAxis({ x: newX, y: newY }); + const newAxis2 = this.originAxisToCanvasAxis({ + x: newX2, + y: newY2, + }); + + return { + x: newAxis1.x, + y: newAxis1.y, + x2: newAxis2.x, + y2: newAxis2.y, + ...others, + __AXIS_TYPE__: AXIS_TYPE_CANVAS, + }; + }, + originAxisToImgAxis({ x, y, ...others }) { + const { width, height } = this.image; + const { targetTransform } = this; + const { rotate } = targetTransform; + const theta = (Math.PI / 180) * (360 - rotate); + + const newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2; + const newY = + (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2; + + return { + x: newX / width, + y: newY / height, + ...others, + __AXIS_TYPE__: AXIS_TYPE_IMAGE, + }; + }, + imgAxisToOriginAxis({ x: _x, y: _y, ...others }) { + const { width, height } = this.image; + // + const x = width * _x; + const y = height * _y; + // + const { targetTransform } = this; + const { rotate } = targetTransform; + const theta = (Math.PI / 180) * rotate; + const newX = (x - width / 2) * Math.cos(theta) - (y - height / 2) * Math.sin(theta) + width / 2; + const newY = + (x - width / 2) * Math.sin(theta) + (y - height / 2) * Math.cos(theta) + height / 2; + + return { + x: newX, + y: newY, + ...others, + __AXIS_TYPE__: AXIS_TYPE_ORIGIN, + }; + }, + getDataUrlbyOriginAxis({ x = 0, y = 0, w = 0, h = 0, ...others }) { + const ctx = this.canvas.getContext('2d'); + const commonCanvas = document.createElement('canvas'); + commonCanvas.width = w; + commonCanvas.height = h; + commonCanvas.style.display = 'none'; + document.body.appendChild(commonCanvas); + const commonCtx = commonCanvas.getContext('2d'); + const imageData = ctx.getImageData(x, y, w, h); + commonCtx.putImageData(imageData, 0, 0); + const dataUrl = commonCanvas.toDataURL('image/jpeg'); + commonCanvas.parentNode.removeChild(commonCanvas); + return dataUrl; + }, +}; diff --git a/packages/meta/src/ImageEditor/viewer/index.scss b/packages/meta/src/ImageEditor/viewer/index.scss new file mode 100644 index 0000000..fcc2881 --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/index.scss @@ -0,0 +1,44 @@ +$prefix: zhst; + +:global { + // .zhst-cropper-container { + // width: 100px; + // } + .zhst-viewer { + &-canvas { + // cursor: grab; + cursor: pointer; + } + + //辅助class + &-invisible { + opacity: 0; + } + + &-hide { + position: absolute; + display: block; + width: 0; + height: 0; + } + + &-hidden { + display: none !important; + } + + &-move { + cursor: move; + } + + &-crop { + cursor: crosshair; + } + + &-disabled &-drag-box, + &-disabled &-face, + &-disabled &-line, + &-disabled &-point { + cursor: not-allowed; + } + } +} diff --git a/packages/meta/src/ImageEditor/viewer/index.ts b/packages/meta/src/ImageEditor/viewer/index.ts new file mode 100644 index 0000000..1b89837 --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/index.ts @@ -0,0 +1,101 @@ +//@ts-nocheck +import { isPlainObject } from '@zhst/func'; +import { addClass } from 'rc-util/lib/Dom/class'; +import { Mixin, dispatchEvent } from '../utils'; +import Render from './render'; +import Event from './event'; +import Shape from './shape'; +import Helper from './helper'; +import { CLASS_CANVAS, EVENT_VIEWER_READY, EVENT_VIEWER_ERROR } from './constants'; +import './index.scss'; + +export interface Option { + /* 图片url */ + image?: string | HTMLImageElement; + + /* 缩放灵敏度(0,1],default: 0.1 */ + wheelZoomRatio?: number; + + /* + * 是否允许缩放 + * @default: true + */ + scaleAble?: boolean; + + /* + * 是否允许拖拽 + * @default: true + */ + dragAble?: boolean; + + /* + * fit scale 作为 最小缩放 + * @default: false + */ + fitScaleAsMinScale?: boolean; +} + +@Mixin(Render, Event, Shape, Helper) +class Viewer { + /* 方便访问dom元素 */ + /* 容器:挂在的节点 */ + element: HTMLDivElement; + + /* 图片对象 */ + image: HTMLImageElement; + + /* canvas对象 */ + canvas: Element; + + /* 配置项 */ + options: Option; + + /* 是否初始化完成 */ + ready: boolean; + + constructor(element, options) { + this.element = element; + this.options = Object.assign({}, isPlainObject(options) && options); + this.ready = false; + this.init(); + } + + async init() { + try { + this.build(); + //@ts-ignore + this.bind(); + //@ts-ignore + await this.render(); + this.ready = true; + dispatchEvent(this.element, EVENT_VIEWER_READY); + } catch (error) { + dispatchEvent(this.element, EVENT_VIEWER_ERROR); + } + } + + build() { + const canvas = document.createElement('canvas'); + addClass(canvas, CLASS_CANVAS); + this.element.appendChild(canvas); + this.canvas = canvas; + } + refleshImage(options) { + this.options = Object.assign({}, isPlainObject(options) && options); + this.ready = false; + this.element.removeChild(this.canvas); + this.init(); + } + destroy() { + //清理动画 + //@ts-ignore + window.cancelAnimationFrame(this.animationFrame); + //清理事件 + //@ts-ignore + this.unbind(); + //清理dom + this.element?.removeChild?.(this.canvas); + } +} + +export default Viewer; diff --git a/packages/meta/src/ImageEditor/viewer/render.ts b/packages/meta/src/ImageEditor/viewer/render.ts new file mode 100644 index 0000000..c948d3d --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/render.ts @@ -0,0 +1,295 @@ +//@ts-nocheck +import { set, getOuterWidth, getOuterHeight } from 'rc-util/lib/Dom/css'; +import { isNil, isString, isFunction, cloneDeep } from '@zhst/func'; +import { dispatchEvent } from '../utils'; +import { EVENT_VIEWER_TRANSFORM_CHANGE } from './constants'; + +export default { + // store + image: null, + canvas: null, + containerData: { + width: 0, + height: 0, + }, + animationFrame: null, + backgroundColor: '#fff', + targetTransform: { + translateX: 0, + translateY: 0, + scale: 0, + rotate: 0, + // rotate: 90, + }, + + //method + async render() { + await this.initImg(); + this.initCanvas(); + this.startRaf(); + }, + + initImg() { + return new Promise((resolve, reject) => { + const { image: propImage } = this.options; + if (isString(propImage)) { + const image = new Image(); + image.crossOrigin = 'anonymous'; + image.src = propImage; + image.onload = () => { + this.image = image; + resolve(image); + }; + image.onerror = (err) => { + reject(err); + }; + } else { + this.image = propImage; + resolve(propImage); + } + }); + }, + + initCanvas() { + if (!this.image) return; + //通过样式设置 不依赖父元素的prosition + const { element, canvas, limit = {}, options } = this; + const containerData = { + width: getOuterWidth(element), + height: getOuterHeight(element), + }; + this.containerData = containerData; + set(canvas, containerData); + canvas.width = containerData.width; + canvas.height = containerData.height; + const fitTransform = this.calcFitScreen(); + this.targetTransform = Object.assign({}, this.targetTransform, fitTransform); + dispatchEvent(this.element, EVENT_VIEWER_TRANSFORM_CHANGE, cloneDeep(this.targetTransform)); + //产品需求:fitscale 是minscale + const { fitScaleAsMinScale = false } = options; + if (fitScaleAsMinScale) { + this.limit = Object.assign({ minScale: this.targetTransform.scale }, this.limit); + } + }, + + startRaf() { + //清理动画 + window.cancelAnimationFrame(this.animationFrame); + + //渲染 + const loop = () => { + // this.update(); //先update + this.renderCanvas(); + window.cancelAnimationFrame(this.animationFrame); + this.animationFrame = window.requestAnimationFrame(loop); + }; + loop(); + }, + + renderCanvas(_ctx) { + if (!this.image || !this.canvas) return; + const { containerData, canvas, targetTransform, options } = this; + const { translateX, translateY, scale, rotate } = targetTransform; + const ctx = _ctx ? _ctx : canvas.getContext('2d'); + //画背景 + ctx.clearRect(0, 0, containerData.width, containerData.height); + ctx.fillStyle = options.backgroundColor; //todo@wdy OD框背景颜色 + ctx.fillRect(0, 0, canvas.width, canvas.height); + //画图 + ctx.save(); + + //缩放移动 + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + // ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + //旋转 + const centerX = this.image.width / 2; + const centerY = this.image.height / 2; + ctx.translate(centerX, centerY); + ctx.rotate((rotate / 180) * Math.PI); + ctx.translate(-centerX, -centerY); + + //图片 + ctx.drawImage(this.image, 0, 0); + + ctx.restore(); + //画图形 + ctx.save(); + this.renderShape(ctx); + ctx.restore(); + }, + + scaleTo(offsetScale) { + //获取图片中心点 + const { containerData } = this; + this.calcTransform({ + scaleCenter: { + x: containerData.width / 2, + y: containerData.height / 2, + step: offsetScale, + }, + }); + }, + + //暂时只支持90deg旋转 否则limit 不能做 + rotateTo(T: number | ((preDeg: number) => number)) { + if (!this.image) return; + const { targetTransform } = this; + const { rotate } = targetTransform; + const newDeg = isFunction(T) ? T(rotate) : T; + this.calcTransform({ + rotate: newDeg, + }); + }, + + reset() { + this.targetTransform.rotate = 0; + const fitTransform = this.calcFitScreen(); + this.targetTransform = Object.assign({}, this.targetTransform, fitTransform); + dispatchEvent(this.element, EVENT_VIEWER_TRANSFORM_CHANGE, cloneDeep(this.targetTransform)); + }, + + getImgSize() { + if (!this.image) return; + return { w: this.image.width, h: this.image.height }; + }, + + calcFitScreen() { + if (!this.image) return; + const w = this.containerData.width; + const h = this.containerData.height; + const iw = this.image.width; + const ih = this.image.height; + //算图片显示长款 (todo:旋转算旋转后) + const { rotate = 0 } = this.targetTransform; + const wToh = w / h; + let imgwToh = iw / ih; + if (rotate % 180 !== 0) { + imgwToh = ih / iw; + } + //计算后的位置 + let scale; + let translateX = 0; + let translateY = 0; + + if (imgwToh > wToh) { + scale = w / iw; + translateX = 0; + translateY = (h - ih * scale) / 2; + if (rotate % 180 !== 0) { + scale = w / ih; + translateX = ((ih - iw) / 2) * scale; + translateY = (h - iw * scale) / 2 + ((iw - ih) / 2) * scale; + } + } else { + scale = h / ih; + translateX = (w - iw * scale) / 2; + translateY = 0; + if (rotate % 180 !== 0) { + scale = h / iw; + translateX = (w - ih * scale) / 2 + ((ih - iw) / 2) * scale; + translateY = ((iw - ih) / 2) * scale; + } + } + const fitTransform = { + translateX: translateX, + translateY: translateY, + scale: scale, + }; + return fitTransform; + }, + + calcTransform(newTransform, cropBox) { + if (!this.image) return; + const { translateX, translateY, scaleCenter, rotate } = newTransform; + if (!isNil(scaleCenter)) { + const { targetTransform, limit = {} } = this; + let { minScale = 0.1, maxScale = Number.MAX_VALUE } = limit; + if (cropBox) { + //如果有cropbox 最小缩放值需要重新计算 + let { width: iw, height: ih } = this.image; + if (targetTransform.rotate % 180 !== 0) [iw, ih] = [ih, iw]; + const { width: cw, height: ch } = cropBox; + const corpMinScale = Math.max(cw / iw, ch / ih); + minScale = Math.max(corpMinScale, minScale); + } + const { x, y, step } = scaleCenter; + const preScale = targetTransform.scale; + let newScale = targetTransform.scale + step; + newScale = Math.min(maxScale, Math.max(newScale, minScale)); + const newStep = newScale - preScale; + if (newScale != preScale) { + const offsetX = ((x - targetTransform.translateX) / targetTransform.scale) * newStep; + const offsetY = ((y - targetTransform.translateY) / targetTransform.scale) * newStep; + this.targetTransform.translateX = this.targetTransform.translateX - offsetX; + this.targetTransform.translateY = this.targetTransform.translateY - offsetY; + } + this.targetTransform.scale = newScale; + } + if (!isNil(translateX)) { + this.targetTransform.translateX += translateX; + } + if (!isNil(translateY)) { + this.targetTransform.translateY += translateY; + } + if (!isNil(rotate)) { + this.targetTransform.rotate = rotate; + } + + //阻止拖出边界 + const { targetTransform, containerData } = this; + const minMargin = 50; + let imgWidth = this.image.width; + let imgHeight = this.image.height; + if (this.targetTransform.rotate % 180 !== 0) { + imgWidth = this.image.height; + imgHeight = this.image.width; + } + const minX = minMargin - imgWidth * targetTransform.scale; + const maxX = containerData.width - minMargin; + const minY = minMargin - imgHeight * targetTransform.scale; + const maxY = containerData.height - minMargin; + this.targetTransform.translateX = Math.min( + maxX, + Math.max(this.targetTransform.translateX, minX) + ); + this.targetTransform.translateY = Math.min( + maxY, + Math.max(this.targetTransform.translateY, minY) + ); + + //限制截图框不能超出拖动范围 + if (cropBox) { + const { width: cw, height: ch, top, left } = cropBox; + const { width: iw, height: ih } = this.image; + let imgLeftTop = { x: 0, y: 0 }; + let imgRightBottom = { x: iw, y: ih }; + if (this.targetTransform.rotate % 180 !== 0) { + imgLeftTop = { + x: (iw - ih) / 2, + y: (ih - iw) / 2, + }; + imgRightBottom = { + x: (iw + ih) / 2, + y: (iw + ih) / 2, + }; + } + //图片左上角不能大于crop左上角 + const maxX = left - imgLeftTop.x * this.targetTransform.scale; + const maxY = top - imgLeftTop.y * this.targetTransform.scale; + //图片右下角不能小于crop 右下角 + const minX = left + cw - imgRightBottom.x * this.targetTransform.scale; + const minY = top + ch - imgRightBottom.y * this.targetTransform.scale; + + this.targetTransform.translateX = Math.min( + maxX, + Math.max(this.targetTransform.translateX, minX) + ); + this.targetTransform.translateY = Math.min( + maxY, + Math.max(this.targetTransform.translateY, minY) + ); + } + + dispatchEvent(this.element, EVENT_VIEWER_TRANSFORM_CHANGE, cloneDeep(this.targetTransform)); + }, +}; diff --git a/packages/meta/src/ImageEditor/viewer/shape.ts b/packages/meta/src/ImageEditor/viewer/shape.ts new file mode 100644 index 0000000..03aa7b4 --- /dev/null +++ b/packages/meta/src/ImageEditor/viewer/shape.ts @@ -0,0 +1,271 @@ +// @ts-nocheck +import { isNil, isArray, isFunction } from '@zhst/func'; +import * as turf from '@turf/turf'; +import booleanPointInPolygon from '@turf/boolean-point-in-polygon'; +import { setNumberAccuracy } from './helper'; +import { SHAPE_TYPE_RECT, SHAPE_TYPE_CIRCLE, EVENT_SHAPE_SELECT } from './constants'; +import { dispatchEvent } from '../utils'; + +function rectToPolygon(axisRect: any) { + const polygon = turf.polygon([ + [ + [setNumberAccuracy(axisRect.x, -2), setNumberAccuracy(axisRect.y, -2)], + [setNumberAccuracy(axisRect.x2, -2), setNumberAccuracy(axisRect.y, -2)], + [setNumberAccuracy(axisRect.x2, -2), setNumberAccuracy(axisRect.y2, -2)], + [setNumberAccuracy(axisRect.x, -2), setNumberAccuracy(axisRect.y2, -2)], + [setNumberAccuracy(axisRect.x, -2), setNumberAccuracy(axisRect.y, -2)], + ], + ]); + return polygon; +} +export interface Shape { + id: number | string; //uuid + selectAble: boolean; + color: string; +} + +export interface Rect extends Shape { + /* 基于图片的位置,归一化坐标 */ + x: number; + y: number; + w: number; + h: number; +} +export interface Point extends Shape { + /* 基于图片的位置,归一化坐标 */ + x: number; + y: number; +} + +export default { + //store + shapeList: [], + hoverShapId: null, + selectShapId: null, + //是否开启人脸 + isEyeOpen: false, + //是否移动 + movable: true, + //是否放大缩小 + zoomable: true, + //禁止添加shap + disableAdd: false, + //自定义画框的颜色 + color: '', + changeEyeModel(isOpen: any) { + if (isOpen) { + this.isEyeOpen = true; + this.changeMoveAble(false); + this.changeZoonAble(false); + } else { + this.isEyeOpen = false; + this.changeMoveAble(true); + this.changeZoonAble(true); + } + }, + + //method + addShape(shap: Shape | Array, type = SHAPE_TYPE_RECT) { + this.color = shap.color ? shap.color : ''; + if (isNil(shap) || this.disableAdd) return; + const { shapeList: preShapeList = [] } = this; + let shapList = isArray(shap) ? shap : [shap]; + shapList = shapList.map((v) => ({ ...v, __SHAPE_TYPE__: type })); + this.shapeList = [...preShapeList, ...shapList]; + }, + // + setSelectShapId(id: number) { + this.selectShapId = id; + dispatchEvent(this.element, EVENT_SHAPE_SELECT, id); + }, + getSelectShape(contain = true) { + const selectShapeList = []; + const selectShape = this.shapeList.find((v) => v['id'] === this.selectShapId); + selectShape && selectShapeList.push(selectShape); + if (contain && selectShape) { + const originFeature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(selectShape)); + for (let i = 0; i < this.shapeList.length; i++) { + const shape = this.shapeList[i]; + if (shape['id'] !== this.selectShapId) { + const feature = rectToPolygon(this.imgRectAxisToCanvasAxisRect(shape)); + const isContain = turf.booleanContains(originFeature, feature); + isContain && selectShapeList.push(shape); + } + } + } + return selectShapeList; + }, + + replaceShape( + shape: Shape | Array | ((shape: Shape) => Shape | Array), + type = SHAPE_TYPE_RECT + ) { + if (isNil(shape)) return; + const { shapeList: preShapeList = [] } = this; + let _shape; + if (isFunction(shape)) { + _shape = shape(preShapeList); + } else { + _shape = shape; + } + let shapList = isArray(_shape) ? _shape : [_shape]; + shapList = shapList.map((v) => ({ ...v, __SHAPE_TYPE__: type })); + this.shapeList = [...shapList]; + }, + + clearShape() { + this.shapeList = []; + }, + + calcSelectShape(canvasPoint) { + // todo:有问题 + const { shapeList, image } = this; + const selectAbleShape = shapeList.filter(({ selectAble = true }) => !!selectAble); + //判断落点离哪个形状最近 + let minId = null; + let minDis = Number.MAX_VALUE; + const pt = turf.point([canvasPoint.x, canvasPoint.y]); + for (let i = 0; i < selectAbleShape.length; i++) { + const shape = selectAbleShape[i]; + const axisRect = this.imgRectAxisToCanvasAxisRect(shape); + const polygon = turf.polygon([ + [ + [axisRect.x, axisRect.y], + [axisRect.x2, axisRect.y], + [axisRect.x2, axisRect.y2], + [axisRect.x, axisRect.y2], + [axisRect.x, axisRect.y], + ], + ]); + const isPtInPolygon = booleanPointInPolygon(pt, polygon); + if (isPtInPolygon) { + //如果点在多变形内 判断距离是否是最短 + const line = turf.polygonToLine(polygon); + const distance = turf.pointToLineDistance(pt, line, { method: 'planar' }); + if (distance < minDis) { + minDis = distance; + minId = shape['id']; + } + } + } + return minId; + }, + + clearSelectShape() { + this.setSelectShapId(null); + }, + + changeMoveAble(movable = true) { + this.movable = movable; + }, + + changeZoonAble(zoomable = true) { + this.zoomable = zoomable; + }, + + disabledAddShap(value = false) { + this.disableAdd = value; + }, + + renderShape(ctx) { + const { shapeList } = this; + //先排序 + const selectShapeList = []; + const hoverShapeList = []; + const normalShapeList = []; + + for (let i = 0; i < shapeList.length; i++) { + const shape = shapeList[i]; + const isSelectShape = this.selectShapId === shape['id']; + const isHoverShape = this.hoverShapId === shape['id']; + if (isSelectShape) { + selectShapeList.push(shape); + } else if (isHoverShape) { + hoverShapeList.push(shape); + } else { + normalShapeList.push(shape); + } + } + // const sortShapeList = shapeList.sort((a, b) => (this.isHightLight(a) ? 1 : -1)); + //渲染 + for (let i = 0; i < normalShapeList.length; i++) { + const shape = normalShapeList[i]; + const { __SHAPE_TYPE__ } = shape; + switch (__SHAPE_TYPE__) { + case SHAPE_TYPE_RECT: + this.renderRect(ctx, shape, 'normal'); + break; + case SHAPE_TYPE_CIRCLE: + this.renderPoint(ctx, shape, 'normal'); + break; + default: + break; + } + } + for (let i = 0; i < hoverShapeList.length; i++) { + const shape = hoverShapeList[i]; + const { __SHAPE_TYPE__ } = shape; + switch (__SHAPE_TYPE__) { + case SHAPE_TYPE_RECT: + this.renderRect(ctx, shape, 'hover'); + break; + default: + break; + } + } + for (let i = 0; i < selectShapeList.length; i++) { + const shape = selectShapeList[i]; + const { __SHAPE_TYPE__ } = shape; + switch (__SHAPE_TYPE__) { + case SHAPE_TYPE_RECT: + this.renderRect(ctx, shape, 'select'); + break; + default: + break; + } + } + }, + + renderRect(ctx, shape, type) { + //算rect + const axisRect = this.imgRectAxisToCanvasAxisRect(shape); + const rect = { + x: axisRect.x2 > axisRect.x ? axisRect.x : axisRect.x2, + y: axisRect.y2 > axisRect.y ? axisRect.y : axisRect.y2, + w: Math.abs(axisRect.x2 - axisRect.x), + h: Math.abs(axisRect.y2 - axisRect.y), + }; + //画 + ctx.save(); + if (type === 'normal') { + ctx.strokeStyle = this.color ? this.color : '#FFF566'; + ctx.lineWidth = 2; + ctx.strokeRect(...Object.values(rect)); + } + if (type === 'hover') { + ctx.fillStyle = 'rgba(0, 153, 255, 0.3)'; + ctx.fillRect(...Object.values(rect)); + ctx.strokeStyle = 'rgba(92, 219, 211, 1)'; + ctx.lineWidth = 2; + ctx.strokeRect(...Object.values(rect)); + } + if (type === 'select') { + ctx.strokeStyle = 'rgba(255, 0, 0, 1)'; + ctx.lineWidth = 2; + ctx.strokeRect(...Object.values(rect)); + } + ctx.restore(); + }, + + renderPoint(ctx, shape) { + const originAxis = this.imgAxisToOriginAxis(shape); + const canvasAxis = this.originAxisToCanvasAxis(originAxis); + //画 + ctx.save(); + ctx.beginPath(); + ctx.arc(canvasAxis.x, canvasAxis.y, 2, 0, 2 * Math.PI); + ctx.fillStyle = '#DF0101'; + ctx.fill(); + ctx.restore(); + }, +}; diff --git a/packages/meta/src/ImagePreview/components/CornerScore/index.less b/packages/meta/src/ImagePreview/components/CornerScore/index.less new file mode 100644 index 0000000..432e1b2 --- /dev/null +++ b/packages/meta/src/ImagePreview/components/CornerScore/index.less @@ -0,0 +1,22 @@ +.zhst-image__CornerScore { + position: absolute; + right: 0; + bottom: 0; + width: 56px; + height: 22px; + line-height: 22px; + text-align: right; + vertical-align: bottom; + padding-right: 1px; + background-size: 100%; + background-image: url('data: image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAAsCAYAAAC9rDzHAAAByUlEQVR4Xu2cO08DMRCEJy0tlNBCSwmU0EIJLbS0UEILLTX/Fo3kk1AUHrrsjB3dWIoUnZTdvfnOZ6+1mxXGGHsADgEcA9hvnyMAvJ7xiwKrjuoQ0HmDxu8ZMxToAZDQrgAE2gxg6z9xAjwFcAvgoCDumGgKuADeA7iI6vUKqAFyE/KU12U9uMmiGuBr4Ong0bIS4A2Aa234sa4CyFzuPfLqFVABfGg5nv4OFu5BAZAbl4+F62q7fQVAJul3tjtYuCMFwEcATNozDAooAL7ltMVATngS8+kLP54UMzAAjc9VABrFVrgKQIWqRpsBaBRb4SoAFaoabQagUWyFqwBUqGq0GYBGsRWuAlChqtFmABrFVrgKQIWqRpsBaBRb4SoAFaoabVYDZLU1K9EyTApUA2RzyrMp9rgRlBWylIIlFRkmBapnIIuZ0hJmgkc3lQBTzGQEN7mqApjNSwd4VTOQr8yXFDL1IbjtDOTMY/dR1r0+/LZaA1n7yb6/wOsEb+4rlMDYdZR0oSO4uZuYtEkPAO17CP9dA3nCwll3Mlj8iw/nL4ABN/gj8hPAgBsc3KY1kJuTs7Y5yV+B7BBA5nKXrSUsKcGOgJvC/ALSJBp5mBHCFAAAAABJRU5ErkJggg=='); + z-index: 99; + + &>span { + padding-right: 6px; + line-height: 22px; + font-size: 12px; + vertical-align: middle; + color: rgba(255, 255, 255, 1); + } +} diff --git a/packages/meta/src/ImagePreview/components/CornerScore/index.tsx b/packages/meta/src/ImagePreview/components/CornerScore/index.tsx new file mode 100644 index 0000000..6ab4fe6 --- /dev/null +++ b/packages/meta/src/ImagePreview/components/CornerScore/index.tsx @@ -0,0 +1,25 @@ +//@ts-nocheck +import React, { useMemo } from 'react'; +import classNames from 'classnames'; +import './index.less'; + +const componentName = `zhst-image__CornerScore`; + +export interface ScoreProps { + scoreTxt: number; +} +export const CornerScore: React.FC = (props) => { + const { scoreTxt } = props; + return useMemo( + () => ( +
+ {~~(scoreTxt * 100)}% +
+ ), + [scoreTxt] + ); +}; + +CornerScore.displayName = componentName; + +export default CornerScore; diff --git a/packages/meta/src/ImagePreview/images/emptyImage.png b/packages/meta/src/ImagePreview/images/emptyImage.png new file mode 100644 index 0000000000000000000000000000000000000000..97629573a5196529f63a8365baeeadab76209c1a GIT binary patch literal 5786 zcmV;L7G>#)P)Py0R7pfZRCodHooj4d$92bd`4%Zsq^uWZNtSHcN#rDoE!&A)M@k*V&ZCVHJ64LM ziBR`TjRFM<^g~g!sQWO`4@rs?MUf(n<6153SbhYF65Dke*sdEluLF4^-N4mbU^nvH#h&drKRON3l=PRCs*JK48*U%Hs_iQKw2+cxUe07d=Y;e zpjbg>lQEDV8y_FHXbheVkumt*21GyT?(Y6BX{T}wS3uy30t^7?I)DEBSLoy~G{xha znp;|y(8on>-~-0Tg8+oT0C;{0eX6IY=TYdW&v!Y+iyG^4Xe1rp#|ZK@I`JMlbtAry zc7<+pDZuzPqMi(+&oK0L=;K{oT~836^7-a+JhbuVLL)~q6!{tr{}UFd>oG`kJ&aJS&UymI*GT{ZJj2cL_>X#edmr%g zYZb36V1|Z*sRSWhDW279DYasjCqI%(CSSq`i#ir8$ZMWDDxFSiXEg?(9L-~>QKVjg$$=!3X<=&aL=V58 zF0jV=U}tCNks6sIS50mkJeN{~0AN`USf0laiwadIpa3K{+OVdHO-@Y2CMPFj3SX{{ zHmBKrJ`Y$%X?q;Hh{b-fZGs-`@kjw6MQ)y&1LoAJQ~iMD-)QXeu&u*z4m^}`z+rRF zjX+_`H!7b%f<9hCsN?=n7ioRx&YkNU9~*m_j{lHV zr1gqFC0Sl6Dgeo26t;b`rU0CDxaxD^;-@qg4z{9$SHP0zJ=6qNg)#MXM@aGssbR2@&rny=m z$x{>C-ogIWALb=S7^!4945bzgiXS_6Y$tQaR|*xVWJ)R|&rbtDQ~0+?ABA3z@Ar9% z#nHX2DM=tfmTrOD0Z62eErL4JrUd>bZngg>m>xwqa=@_H@-4vf2gQ_+8Zdsn7n1!%hablGVdxLi>3KWN#Q+0;lCl@^I=;2FdJH^xtMXZHbiTLqAY1W8cuY4l|442ZOLk}hg=S1TF*I}+ zBg@V(V3|=+9W&9rlSdOD<^0Vm76-kkGFQMNt8HXM@6V$$UsVBf{P^*Y@}%q;l&$Hx zm8gs(xl`=z%t80ZoC3Ht3cafa7^a~O=~U_`T%BD}C|WO>dI*|qz|Fv!>_H!B@&3=y zs*j9SIY)42XlP9$oqho&7thd;N#@lftZm+bXOJ!0LDAN>wzbfQ@D1y<5va8m(^JFh z=qm`EM?8|DqzsQ#=H1;@Ph~*1RR6$mX>$8vlv{mWXUmj z^deZEW0&%N8uw&gVuM5&U5>EmT`hG0wmWLkAgYB@1AFV?=2rG+UJX?s1QVA{252NL4)zGwJz*IwtxgsN(OuDIQE{rnhsF&xy$tK>jgmuibDsCPyWtve( zC^&;$W~th+0}MS!dK&*tHt&8BMXmFIDbuQ)7L27?%jgtf1Gx);<)1j``**w$HyEW} z^MIL!bv4S&_LSf(s++0EAVB#RcR~8>h)(fE?&bkA3lnQIPY2R@)-;RKl@|dV|HWcf z)6O%5BR$UGYda4Z-y$L7dXr&6XJ<(6>ac0iolYkAEL*W+b9E$^FJ&Gu<=f1a&~3Kc zo8i5wD4pujy2*h>?`p+jbvbfsZJY;;Sz;DcYZ;C{M6#J@fD}*^ZWK4GhmSNM&MPCI zWJ73Kqco&mdZ9jtYNF-vsj^hrqR|_mWS6Y1L%$d)fJ$rU-CHl?^FjV{(H0(L9 zuvckNV{S@RVwEz=>i7fC(#j}Nm{rpb-@b_@_y}XQ-|!Sjc!2sgef2E;_BQdYg|#T1 zS~g&)R7V$okBX^Wv+PAL&nNBxrK*^AX5#pdiQ=Mb^=w*J<1(6>+B;@GucQ%Vim6A_Ppuq% zb01#kdvhZSaaI3C{C_A=jw^eFp|abkK%p8@ z)%t{y#H~*Rl!(?RGuemr<@@QMYc(Te`^M9DAvhNUdPXe6N`p>)bVED|~3c#^a2&Doy%7~gLZ*w^n&+|rZ zfjiY#cw4`SPV>wf;tM@Hgubn20k=^VW}B%BG&x&E3UAEjO(PdCUR=RY-QU;O*YIDu z4l2)x8v23?maBJIcRyUfH!*r>bSdR}8I5j$X@4n3<%c#13fu@_Z2jU;OPZUKlnzp_ z-?L{=!AH03VtyCi7uhW84x?0~@StdMqS8xSyHK@Dy{^9CcKh9{vR?pb@E3dqg*uH(c zdl-d1&obiM^1+r427Z4zp)Zo24BLRvfB_S30hJZ(07BTUVFVV10fG?S#;DRoSReiC zLh;W-^#-1b>Wc^~0855+ZEWcesjMN&pLZcFfbBZuv0vXM)5l_4wrq)Ur#g}aDdNxm*#^@Zyr!r#N&XjHPf$3+zKwmX*>@U3CA+75RPIu95f>8Y)ymBMeW=f1iu^3G9B<7e}9Hn$kby zo?fwH#i*Ze@o6KBz;N{F(Z%?y077dPwGMeyv2<-JNw)j35 zsk_s}PHwaiRfEaTtymRzhRdcE%2%2>c(rz!pii}?arXD+QExZ)?`G5)=O1xTU3Jw} z(_W6t0}R{$3*US1J>A7z8Y0lilvTx4q(8YF!oN&M>M!;7GpxO39WEXt6M&5fbM7dW<{x8sleU|`e7Oex`)T++(8XE4NC@&Hk?RTF z%L4FmZ23Ix)LJFCh=tF!UsPq#r;y$3j#Vrc&hZ;4xEKYLN&Y(_#p|@TbjahUZ&Zh- zvUd1a@$H{6Mw{cvNJzMx36671wiJPjrIadBriDcvGwBM0#H9e{t2FX;u6(UsidvS6 zZ$|E?D5}-_9uWK-bVm8b@}+}0>TUr%+u+qd+iyk%C)4t)L6LcE^y0G z|0}lHZ}ubZ>?(@vl5-~#+17u)ed@`L=re3l}|*R5N3PHAq0 z;Z|7BdbCcNanWM}X@~f9H6&3a4G0`y07qP5Q3+QV_Xd1pq^(2Q9}C4OpzLYRM+ z?n?AK3}*GLhDRHkT^Rnwj2icHHSYzvdn}&{upV4mj|PGHUFh>rcMxN6}RQak$ zGJ^F5_4WBBpHU~pTIXjJ{~1^JGCFZPK>scB)<|YG9AF$_*nJvhk0}HCZ^&Cd8qRXzy6@kCf{gKH=2Yyj6Wzt;b0xsZll(2qo$Wp z<1=b}jGmKkzWL^`z#{P2+C*VpA#v`vJ2->eiBaO+-Q6+ft(d5sg+=B3e3uyb@%aN; zE?91PpTCrRzrL_>&K~!&-q9V_U85r-$#`?~BiQCe{v{-1I!Kmn2OXd6eG(!6UWtvx?6YJNn*T(F$ zwM{`Fn2j~!3=9mkg0@x~GwpWN2Z)s`MoSscFUPzY1GF(wISY%1apl(M%k<0p`Ik%k zIo_b#?*vqq_RH2BrA=+#yjg1#{n6>P(Zsip z;-LW(ESv>T6QfTv!+JC4X58X=`SRsDR~i$Qql4lYIU}k#Bb5${>+G*nt`xtO6;*lP zm6C6DiK?tG&oA%G_v3zfYpbYSsrJ;n{q$9eX)v{K-@cR`828&)Dn4zRDOEuESu|=t z-|guOK)ZJBYGU`diQ&yr@o9}fnxl&IEF#8{Kt~lisiDbEv7Ftj?bNNv#_WN`TEte{Q~FOwQKdr$GrB;3SM}*28IaCYJ>?P z*WGc!7k}xcmzr2eX~Rqp+9Injj82y;58DCSjLdA>v`OF)D5?UELiVa@2WF=->7jb9 zZlkd`-gqNUqcfs~l(jrj<(J|wB%_?PQuUR}_v?aRI>$t_PVG=zL$!x;0)(977p=yq z;Uvz*9|0=h*-Xut*Q+e@iW_Zu^2sM%STq>+%2^rXan#BLsmht0VAyz6cQ)VYW8pIL z^W+Egv~~t*&K7gAFB?i{4DF05r4%;hEL<$#_>30dH@T9T3x}0wa%Z5XtCK$iU&Cho YKZ_v3%v7MbF#rGn07*qoM6N<$g4h-+kpKVy literal 0 HcmV?d00001 diff --git a/packages/meta/src/ImagePreview/images/percent_background.png b/packages/meta/src/ImagePreview/images/percent_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ebde317c473fda46d686dce6ffba98db676f331e GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^1wgFB!3HGvuCY1Jz`%IY)5S5QBJS-RYky`#ffjXL z-6Hmn8Q4;CoAn~}k_ zgW(?Yj*eGfxmGY134fY$J=J!{$wg8RvLC#BaB-8+1Kx)0+#eg)F`bBcXZz`uXaHkP zhUL6}d}8k$87D|j?{9sbwY!$pLG5MvHtUET%B%<68GLRT^KfY}?0dT9sDodH(C3%j z_VYxH4H$aQhcZYV4co!x(7MWPHe-fJ^g}HM(N$8pYzqQ&T30iKtjO9T+2FQObRAQ` z!c`a3uqzH@PT6XzebLB=D}*_v_|#_2Z#x91h;EwFq$(<@#=0t9p?l^fp|mD<^QjEM zXHrQ%!{C#rY{sXUB^51Ds zIdG$NO36ay9Xn^w*y730@V1)ce=Kw5p+k}7MiGCy`Jd}IFq;2R{v>>$L0aa{GSdmO yCvVdiv:first-child { + margin-right: 25px; + } + + &>div:last-child { + margin-left: 25px; + } + + &__container { + position: relative; + width: 345px; + height: 460px; + box-sizing: content-box; + border: 1px solid #f0f0f0; + } + + &__view { + width: 345px; + height: 460px; + } + + &__label { + position: absolute; + z-index: 99; + top: 0; + left: 0; + display: flex; + height: 34px; + align-items: center; + justify-content: center; + + // width: 48px; + padding: 0 6px; + background: #09f; + color: #fff; + } + + &__tool { + display: flex; + width: 345px; + height: 40px; + align-items: center; + justify-content: center; + background: #f9f9f9; + + i, + span { + color: #333 !important; + } + + i { + margin-right: 4px; + } + + &>*:not(:last-child) { + margin-right: 20px; + } + + &__scale { + display: inline-block; + width: 38px; + height: 16px; + + // margin-left: 15px; + box-sizing: content-box; + border: 1px solid rgb(77 77 77 / 100%); + background: rgb(255 255 255 / 100%); + border-radius: 2px; + color: #4d4d4d; + cursor: default; + font-size: 12px; + line-height: 16px; + text-align: center; + } + + &__line { + width: 1px; + height: 14px; + background: #e6e6e6; + } + } + + &__empty { + position: absolute; + z-index: 9; + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + background: #f9f9f9; + transform: translateY(-100%); + + &>img { + width: 140px; + height: 80px; + } + + &--text { + color: #999; + font-size: 14px; + line-height: 22px; + } + } + + &__scoll-module { + position: absolute; + top: 0%; + left: 0%; + display: flex; + width: 100%; + height: 100%; + align-items: flex-end; + justify-content: space-between; + pointer-events: none; + + &__btn { + display: flex; + width: 50px; + height: 50px; + align-items: center; + justify-content: center; + margin: 6px; + border-radius: 50%; + opacity: 0.5; + pointer-events: all; + + &>span { + display: flex; + align-items: center; + justify-content: center; + } + } + + &__btn:hover { + background-color: #09f !important; + color: #fff !important; + } + } +} diff --git a/packages/meta/src/ImagePreview/index.md b/packages/meta/src/ImagePreview/index.md new file mode 100644 index 0000000..c487093 --- /dev/null +++ b/packages/meta/src/ImagePreview/index.md @@ -0,0 +1,40 @@ +--- +nav: + title: 元组件 + order: 1 +group: + title: 通用 + order: 3 +--- + +# ImagePreview 图片预览 + +```jsx +import React from 'react'; +import { ImagePreview } from '@zhst/meta' + +const props = { + label:"目标图", + url:"http://10.0.0.120:30003/file/public/public_20240110/file/60f26318-19fc-40b3-b249-91bd2a4da3f3.jpg", + openRoll:true, + score: 0.8, + urls:[ + "http://10.0.0.120:30003/file/public/public_20240110/file/60f26318-19fc-40b3-b249-91bd2a4da3f3.jpg", + "http://10.0.0.120:30003/file/public/public_20240110/file/7c9b33a8-5106-4982-9d58-a593ad8acbf6.jpg" + ] +} + +export default () => { + return ( + + ) +} +``` + +| 参数名 | 参数类型 | 参数说明 | +| ------ | -------- | ---- | +|label|string|左上角标题| +|url|string|链接| +|openRoll|boolean|是否支持鼠标滚动放大缩小| +|urls|string[]|链接数组| +|score|string|相似度| diff --git a/packages/meta/src/ImagePreview/index.tsx b/packages/meta/src/ImagePreview/index.tsx new file mode 100644 index 0000000..1986e10 --- /dev/null +++ b/packages/meta/src/ImagePreview/index.tsx @@ -0,0 +1,166 @@ +import React, { useRef, useState, FC, useEffect, useCallback } from 'react' +import { generateImg, get, addEventListener } from '@zhst/func'; +import { useUpdateEffect } from '@zhst/hooks'; +import { Button } from 'antd'; +import classNames from 'classnames' +import Viewer from '../ImageEditor/viewer'; +import Icon from '../iconfont' +import CornerScore from './components/CornerScore'; +import './index.less' + +const componentName = `zhst-image__compater-view`; + +export interface CompaterImageProps { + /** + * @description 属性描述 + * @default "默认值" + */ + url: string; + label: string; + openRoll?: boolean; //开启滚动模式 + urls?: Array; + specialTitle: String; + noTargetImageTip?: string; + score?: number; +} +// 对比图组件 +const CompaterImage: FC = (props) => { + const { url, label, openRoll = false, urls = [], score } = props; + const imgContainerRef = useRef(null); + const imgInsRef = useRef(null); + const [scale, setScale] = useState(0); + //图片翻页机制 + const [showUrl, setShowUrl] = useState(generateImg(url)); //记录显示的图片 + + useUpdateEffect(() => { + setShowUrl(generateImg(url)); + if (imgInsRef.current) { + imgInsRef.current?.refleshImage({ + image: generateImg(url), + }); + } + }, [url]); + + useEffect(() => { + setShowUrl(url); + const handleTransformChange = addEventListener( + imgContainerRef.current, + 'viewer-transform-change', + (event: any) => { + const data = event.detail; + setScale(get(data, 'scale', 0)); + } + ); + + imgInsRef.current = new Viewer(imgContainerRef.current, { + image: generateImg(url), + }); + + return () => { + handleTransformChange?.remove(); + imgInsRef?.current?.destroy?.(); + imgInsRef.current = null; + }; + }, []); + + //向前翻页 + const handlePre = useCallback(() => { + const index = urls.findIndex((v) => v === showUrl); + if (index > 0) { + const newUrl = urls[index - 1]; + setShowUrl(newUrl); + imgInsRef.current?.refleshImage({ + image: newUrl, + }); + } + }, [showUrl, urls]); + //向后翻页 + const handleNext = useCallback(() => { + const index = urls.findIndex((v) => v === showUrl); + if (index >= 0 && !!urls[index + 1]) { + const newUrl = urls[index + 1]; + setShowUrl(newUrl); + imgInsRef.current?.refleshImage({ + image: newUrl, + }); + } + }, [showUrl, urls]); + + return ( +
+
{label}
+
+ {!url && ( +
+ + 暂无匹配数据 +
+ )} + {score && } + {!!url && openRoll && ( +
+ {/*
*/} + + +
+ )} +
+ + + {/* */} + +
+
+ ); +}; + +export default CompaterImage diff --git a/packages/meta/src/Button/index.tsx b/packages/meta/src/Temp/index.tsx similarity index 100% rename from packages/meta/src/Button/index.tsx rename to packages/meta/src/Temp/index.tsx diff --git a/packages/meta/src/changelog/index.md b/packages/meta/src/changelog/index.md index d4333e4..23dfb51 100644 --- a/packages/meta/src/changelog/index.md +++ b/packages/meta/src/changelog/index.md @@ -2,7 +2,7 @@ nav: title: 元组件 title: 版本更新日志 -order: 99 +order: 9999 --- diff --git a/packages/meta/src/doubleClick/index.md b/packages/meta/src/doubleClick/index.md new file mode 100644 index 0000000..453fa4f --- /dev/null +++ b/packages/meta/src/doubleClick/index.md @@ -0,0 +1,22 @@ +--- +nav: + title: 元组件 + order: 1 +group: + title: 通用 + order: 3 +--- + +# doubleClick + +```jsx +import React from 'react'; +import { Button } from 'antd' +import { doubleClick } from '@zhst/meta' + +export default () => { + return ( + + ) +} +``` diff --git a/packages/meta/src/doubleClick/index.tsx b/packages/meta/src/doubleClick/index.tsx new file mode 100644 index 0000000..0c4fe92 --- /dev/null +++ b/packages/meta/src/doubleClick/index.tsx @@ -0,0 +1,50 @@ +//@ts-nocheck +import { noop } from '@zhst/func'; +import { Modal, Checkbox } from 'antd'; +import { useDoubleCheck } from '@zhst/hooks'; +const { confirm } = Modal; + +//二次确认 +export const doubleCheck = (title = '警告', option?) => { + const { + okFunc = noop, + cancelFunc = noop, + doubleCheckKey, + doubleCheckTitle = '不再询问', + ...others + } = option || {}; + + return confirm({ + title, + // type: 'warning', + onCancel: async (isOk) => { + if (isOk) { + await okFunc(); + } else { + await cancelFunc(); + } + }, + ...(doubleCheckKey + ? { + renderFooterRight: () => { + const [value, setValue] = useDoubleCheck(doubleCheckKey); + return ( +
+ { + setValue(v); + }} + > + {doubleCheckTitle} + +
+ ); + }, + } + : {}), + ...others, + }); +}; + +export default doubleCheck; diff --git a/packages/meta/src/iconfont/index.tsx b/packages/meta/src/iconfont/index.tsx new file mode 100644 index 0000000..382e505 --- /dev/null +++ b/packages/meta/src/iconfont/index.tsx @@ -0,0 +1,48 @@ +import React from 'react'; +import classNames from 'classnames'; + +interface IconFontProps { + styles?: React.CSSProperties; + icon?: string; + size?: number; + color?: string; + title?: string; + className?: string; + onIconClick?: (e: React.MouseEvent) => void; + children?: React.ReactNode; + active?: boolean; + disable?: boolean; +} + +const IconFont: React.FC = (props) => { + const { + title = '', + className = '', + styles = {}, + icon, + size = 14, + onIconClick, + children, + active = false, + color = '', + } = props || {}; + return ( + { + onIconClick && onIconClick(e); + }} + style={{ + ...styles, + cursor: 'pointer', + fontSize: size, + color, + ...(active ? { color: '#09f' } : {}), + }} + className={classNames('iconfont', icon, className)} + > + {children} + + ); +}; +export default IconFont; diff --git a/packages/meta/src/index.tsx b/packages/meta/src/index.tsx index eae9c8e..dd9206b 100644 --- a/packages/meta/src/index.tsx +++ b/packages/meta/src/index.tsx @@ -1 +1,3 @@ -export { default as Button } from './Button'; +export { default as doubleClick } from './doubleClick'; +export { default as Icon } from './iconfont'; +export { default as ImagePreview } from './ImagePreview' diff --git a/packages/meta/src/utils/index.ts b/packages/meta/src/utils/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md new file mode 100644 index 0000000..4b45684 --- /dev/null +++ b/packages/types/CHANGELOG.md @@ -0,0 +1,19 @@ +# @zhst/types + +## 0.2.4 + +### Patch Changes + +- feat: 新增 meta 包 +- Updated dependencies + - @zhst/func@0.2.4 + - @zhst/hooks@0.2.4 + - @zhst/meta@0.2.4 + +## 0.2.3 + +### Patch Changes + +- fix: 调试包 link +- Updated dependencies + - @zhst/hooks@0.2.3 diff --git a/packages/types/README.md b/packages/types/README.md new file mode 100644 index 0000000..0ca9437 --- /dev/null +++ b/packages/types/README.md @@ -0,0 +1,15 @@ +## 介绍 + +业务库 + +## 安装 + +> pnpm install @zhst/constants + +## 使用 + +```js +import React from 'react'; +import { TYPE } from '@zhst/constants' + +``` diff --git a/packages/types/index.d.ts b/packages/types/index.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/types/package.json b/packages/types/package.json new file mode 100644 index 0000000..27c9284 --- /dev/null +++ b/packages/types/package.json @@ -0,0 +1,32 @@ +{ + "name": "@zhst/types", + "version": "0.2.4", + "description": "变量定义库", + "keywords": [ + "types", + "biz", + "zhst", + "变量定义库" + ], + "license": "ISC", + "author": "dev", + "main": "", + "typings": "es/index.d.ts", + "exports": { + ".": { + "types": { + "default": "./index.d.ts" + } + }, + "./package.json": "./package.json" + }, + "scripts": { + "build": "father build" + }, + "publishConfig": { + "access": "public", + "registry": "http://10.0.0.77:4874" + }, + "dependencies": { + } +} diff --git a/packages/types/src/index.md b/packages/types/src/index.md new file mode 100644 index 0000000..8742313 --- /dev/null +++ b/packages/types/src/index.md @@ -0,0 +1,8 @@ +--- +nav: + title: types +order: 1 +title: 快速上手 +--- + + diff --git a/packages/types/src/index.tsx b/packages/types/src/index.tsx new file mode 100644 index 0000000..e69de29 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9197407..4283a6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,23 @@ importers: '@zhst/meta': specifier: workspace:^ version: link:../meta + antd: + specifier: ^5.12.5 + version: 5.12.5(react-dom@18.2.0)(react@18.2.0) + base-64: + specifier: ^1.0.0 + version: 1.0.0 + classnames: + specifier: ^2.5.1 + version: 2.5.1 + rc-util: + specifier: ^5.38.1 + version: 5.38.1(react-dom@18.2.0)(react@18.2.0) + umi-request: + specifier: ^1.4.0 + version: 1.4.0 + + packages/constants: {} packages/func: dependencies: @@ -108,145 +125,74 @@ importers: packages/hooks: dependencies: + '@zhst/func': + specifier: workspace:^ + version: link:../func ahooks: specifier: ^3.7.8 version: 3.7.8(react@18.2.0) - react: - specifier: ^18.0.0 - version: 18.2.0 - - packages/material: - dependencies: - i18next: - specifier: ^20.3.1 - version: 20.6.1 - postcss-scss: - specifier: ^2.1.1 - version: 2.1.1 - react-i18next: - specifier: ^11.10.0 - version: 11.18.6(i18next@20.6.1)(react-dom@16.14.0)(react@16.14.0) - devDependencies: - '@babel/cli': - specifier: ^7.10.5 - version: 7.23.4(@babel/core@7.23.3) - '@babel/core': - specifier: ^7.9.6 - version: 7.23.3 - '@babel/plugin-proposal-class-properties': - specifier: ^7.8.3 - version: 7.18.6(@babel/core@7.23.3) - '@babel/plugin-proposal-decorators': - specifier: ^7.8.3 - version: 7.23.6(@babel/core@7.23.3) - '@babel/plugin-transform-runtime': - specifier: ^7.9.6 - version: 7.23.6(@babel/core@7.23.3) - '@babel/preset-env': - specifier: ^7.9.6 - version: 7.23.6(@babel/core@7.23.3) - '@babel/preset-react': - specifier: ^7.9.4 - version: 7.23.3(@babel/core@7.23.3) - '@babel/preset-typescript': - specifier: ^7.9.0 - version: 7.23.3(@babel/core@7.23.3) - '@storybook/addon-actions': - specifier: ^6.0.16 - version: 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-essentials': - specifier: ^6.0.16 - version: 6.5.16(@babel/core@7.23.3)(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(vue@2.7.16)(webpack@5.89.0) - '@storybook/addon-links': - specifier: ^6.0.16 - version: 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-notes': - specifier: ^5.3.19 - version: 5.3.21(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0)(regenerator-runtime@0.14.0) - '@storybook/preset-scss': - specifier: ^1.0.2 - version: 1.0.3(css-loader@4.3.0)(sass-loader@9.0.3)(style-loader@1.3.0) - '@storybook/react': - specifier: ^6.0.16 - version: 6.5.16(@babel/core@7.23.3)(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(require-from-string@2.0.2)(typescript@5.3.2) - add: - specifier: ^2.0.6 - version: 2.0.6 - babel-loader: - specifier: ^8.1.0 - version: 8.3.0(@babel/core@7.23.3)(webpack@5.89.0) - babel-plugin-import-postcss: - specifier: ^2.0.0 - version: 2.0.0 - cross-env: - specifier: ^7.0.2 - version: 7.0.3 - css-loader: - specifier: ^4.2.1 - version: 4.3.0(webpack@5.89.0) - file-loader: - specifier: ^6.0.0 - version: 6.2.0(webpack@5.89.0) - flv.js: - specifier: ^1.5.0 - version: 1.6.2 - lerna: - specifier: ^3.20.2 - version: 3.22.1(@octokit/core@4.2.4) - mini-css-extract-plugin: - specifier: ^0.11.0 - version: 0.11.3(webpack@5.89.0) - npm-run-all: - specifier: ^4.1.5 - version: 4.1.5 - postcss-import: - specifier: ^12.0.1 - version: 12.0.1 - postcss-preset-env: - specifier: ^6.7.0 - version: 6.7.2 - react: - specifier: ^16.13.1 - version: 16.14.0 - react-dom: - specifier: ^16.13.1 - version: 16.14.0(react@16.14.0) - react-is: - specifier: ^16.13.1 - version: 16.13.1 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - rollup: - specifier: ^2.15.0 - version: 2.79.1 - sass: - specifier: ^1.26.5 - version: 1.69.5 - sass-loader: - specifier: ^9.0.3 - version: 9.0.3(sass@1.69.5)(webpack@5.89.0) - shelljs: - specifier: ^0.8.4 - version: 0.8.5 - storybook-readme: - specifier: ^5.0.8 - version: 5.0.9(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0)(vue@2.7.16) - style-loader: - specifier: ^1.2.1 - version: 1.3.0(webpack@5.89.0) - url-loader: - specifier: ^4.1.0 - version: 4.1.1(file-loader@6.2.0)(webpack@5.89.0) - yarn: - specifier: ^1.22.10 - version: 1.22.21 - - packages/meta: - dependencies: antd: specifier: ^5.12.5 version: 5.12.5(react-dom@18.2.0)(react@18.2.0) + events: + specifier: ^3.3.0 + version: 3.3.0 + react: + specifier: ^18.0.0 + version: 18.2.0 + react-activation: + specifier: ^0.12.4 + version: 0.12.4(prop-types@15.8.1)(react@18.2.0) + react-router-dom: + specifier: ^6.21.1 + version: 6.21.1(react-dom@18.2.0)(react@18.2.0) + + packages/material: + dependencies: + '@zhst/biz': + specifier: workspace:^ + version: link:../biz + '@zhst/func': + specifier: workspace:^ + version: link:../func + '@zhst/hooks': + specifier: workspace:^ + version: link:../hooks + '@zhst/meta': + specifier: workspace:^ + version: link:../meta + + packages/meta: + dependencies: + '@turf/boolean-point-in-polygon': + specifier: ^6.5.0 + version: 6.5.0 + '@turf/turf': + specifier: ^6.5.0 + version: 6.5.0 + '@zhst/func': + specifier: workspace:^ + version: link:../func + '@zhst/hooks': + specifier: workspace:^ + version: link:../hooks + antd: + specifier: ^5.12.5 + version: 5.12.5(react-dom@18.2.0)(react@18.2.0) + classnames: + specifier: ^2.5.1 + version: 2.5.1 + rc-util: + specifier: ^5.38.1 + version: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18.0.0 + version: 18.2.0 + react-dom: + specifier: ^18.0.0 + version: 18.2.0(react@18.2.0) + + packages/types: {} packages: @@ -278,7 +224,7 @@ packages: '@babel/runtime': 7.23.4 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 - classnames: 2.3.2 + classnames: 2.5.1 csstype: 3.1.3 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -299,7 +245,7 @@ packages: '@ant-design/colors': 7.0.0 '@ant-design/icons-svg': 4.3.1 '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -311,7 +257,7 @@ packages: react: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 json2mq: 0.2.0 react: 18.2.0 resize-observer-polyfill: 1.5.1 @@ -329,26 +275,6 @@ packages: resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} dev: true - /@babel/cli@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==} - engines: {node: '>=6.9.0'} - hasBin: true - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@jridgewell/trace-mapping': 0.3.20 - commander: 4.1.1 - convert-source-map: 2.0.0 - fs-readdir-recursive: 1.1.0 - glob: 7.2.3 - make-dir: 2.1.0 - slash: 2.0.0 - optionalDependencies: - '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 - chokidar: 3.5.3 - dev: true - /@babel/code-frame@7.23.4: resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} engines: {node: '>=6.9.0'} @@ -367,30 +293,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.12.9: - resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.12.9) - '@babel/helpers': 7.23.4 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - lodash: 4.17.21 - resolve: 1.22.8 - semver: 5.7.2 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/core@7.23.2: resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} engines: {node: '>=6.9.0'} @@ -461,20 +363,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - dev: true - - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - dev: true - /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -497,69 +385,6 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.3): - resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: true - - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - - /@babel/helper-define-polyfill-provider@0.1.5(@babel/core@7.23.3): - resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/traverse': 7.23.4 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.3): - resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} @@ -580,13 +405,6 @@ packages: '@babel/types': 7.23.4 dev: true - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - dev: true - /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} @@ -594,20 +412,6 @@ packages: '@babel/types': 7.23.4 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.12.9): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -636,46 +440,11 @@ packages: '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - dev: true - - /@babel/helper-plugin-utils@7.10.4: - resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} - dev: true - /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - dev: true - - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: true - /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -683,13 +452,6 @@ packages: '@babel/types': 7.23.4 dev: true - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - dev: true - /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} @@ -717,15 +479,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.4 - dev: true - /@babel/helpers@7.23.4: resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} engines: {node: '>=6.9.0'} @@ -754,164 +507,6 @@ packages: '@babel/types': 7.23.4 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) - dev: true - - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.3): - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-proposal-decorators@7.23.6(@babel/core@7.23.3): - resolution: {integrity: sha512-D7Ccq9LfkBFnow3azZGJvZYgcfeqAw3I1e5LoTpj6UKIFQilh8yqXsIGcRIqbBdsPWIz+Ze7ZZfggSj62Qp+Fg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.3): - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9): - resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.12.9) - dev: true - - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.3): - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.3): - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.3): - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - dev: true - - /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.23.3): - resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -939,84 +534,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -1035,25 +552,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9): - resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1081,15 +579,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -1117,16 +606,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} @@ -1137,285 +616,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.3): - resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: true - - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 - dev: true - - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.3): - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3): resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} engines: {node: '>=6.9.0'} @@ -1428,207 +628,6 @@ packages: '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.12.9): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) - dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} @@ -1649,337 +648,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) - '@babel/types': 7.23.4 - dev: true - - /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - dev: true - - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-runtime@7.23.6(@babel/core@7.23.3): - resolution: {integrity: sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.3) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.3): - resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/preset-env@7.23.6(@babel/core@7.23.3): - resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.3) - core-js-compat: 3.34.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/preset-flow@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.4 - esutils: 2.0.3 - dev: true - - /@babel/preset-react@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.3) - dev: true - - /@babel/preset-typescript@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.3) - dev: true - - /@babel/register@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - dev: true - - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: true - /@babel/runtime@7.23.2: resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} @@ -2029,14 +697,6 @@ packages: to-fast-properties: 2.0.0 dev: true - /@base2/pretty-print-object@1.0.1: - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} - dev: true - - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - /@bloomberg/record-tuple-polyfill@0.0.4: resolution: {integrity: sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==} dev: true @@ -2224,22 +884,6 @@ packages: prettier: 2.8.8 dev: true - /@cnakazawa/watch@1.0.4: - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} - hasBin: true - dependencies: - exec-sh: 0.3.6 - minimist: 1.2.8 - dev: true - - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true - /@commitlint/cli@17.8.1: resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==} engines: {node: '>=v14'} @@ -2415,11 +1059,6 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@csstools/convert-colors@1.4.0: - resolution: {integrity: sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==} - engines: {node: '>=4.0.0'} - dev: true - /@csstools/postcss-color-function@1.1.1(postcss@8.4.31): resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==} engines: {node: ^12 || ^14 || >=16} @@ -2537,109 +1176,13 @@ packages: engines: {node: '>=10'} dev: false - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - dev: true - - /@emotion/cache@10.0.29: - resolution: {integrity: sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==} - dependencies: - '@emotion/sheet': 0.9.4 - '@emotion/stylis': 0.8.5 - '@emotion/utils': 0.11.3 - '@emotion/weak-memoize': 0.2.5 - dev: true - - /@emotion/core@10.3.1(react@16.14.0): - resolution: {integrity: sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==} - peerDependencies: - react: '>=16.3.0' - dependencies: - '@babel/runtime': 7.23.4 - '@emotion/cache': 10.0.29 - '@emotion/css': 10.0.27 - '@emotion/serialize': 0.11.16 - '@emotion/sheet': 0.9.4 - '@emotion/utils': 0.11.3 - react: 16.14.0 - dev: true - - /@emotion/css@10.0.27: - resolution: {integrity: sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==} - dependencies: - '@emotion/serialize': 0.11.16 - '@emotion/utils': 0.11.3 - babel-plugin-emotion: 10.2.2 - dev: true - /@emotion/hash@0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - - /@emotion/is-prop-valid@0.8.8: - resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} - dependencies: - '@emotion/memoize': 0.7.4 - dev: true - - /@emotion/memoize@0.7.4: - resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - dev: true - - /@emotion/serialize@0.11.16: - resolution: {integrity: sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==} - dependencies: - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.4 - '@emotion/unitless': 0.7.5 - '@emotion/utils': 0.11.3 - csstype: 2.6.21 - dev: true - - /@emotion/sheet@0.9.4: - resolution: {integrity: sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==} - dev: true - - /@emotion/styled-base@10.3.0(@emotion/core@10.3.1)(react@16.14.0): - resolution: {integrity: sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==} - peerDependencies: - '@emotion/core': ^10.0.28 - react: '>=16.3.0' - dependencies: - '@babel/runtime': 7.23.4 - '@emotion/core': 10.3.1(react@16.14.0) - '@emotion/is-prop-valid': 0.8.8 - '@emotion/serialize': 0.11.16 - '@emotion/utils': 0.11.3 - react: 16.14.0 - dev: true - - /@emotion/styled@10.3.0(@emotion/core@10.3.1)(react@16.14.0): - resolution: {integrity: sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==} - peerDependencies: - '@emotion/core': ^10.0.27 - react: '>=16.3.0' - dependencies: - '@emotion/core': 10.3.1(react@16.14.0) - '@emotion/styled-base': 10.3.0(@emotion/core@10.3.1)(react@16.14.0) - babel-plugin-emotion: 10.2.2 - react: 16.14.0 - dev: true - - /@emotion/stylis@0.8.5: - resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} - dev: true + dev: false /@emotion/unitless@0.7.5: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - - /@emotion/utils@0.11.3: - resolution: {integrity: sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==} - dev: true - - /@emotion/weak-memoize@0.2.5: - resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} - dev: true + dev: false /@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} @@ -3074,88 +1617,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@evocateur/libnpmaccess@3.1.2: - resolution: {integrity: sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@evocateur/npm-registry-fetch': 4.0.0 - aproba: 2.0.0 - figgy-pudding: 3.5.2 - get-stream: 4.1.0 - npm-package-arg: 6.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@evocateur/libnpmpublish@1.2.2: - resolution: {integrity: sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@evocateur/npm-registry-fetch': 4.0.0 - aproba: 2.0.0 - figgy-pudding: 3.5.2 - get-stream: 4.1.0 - lodash.clonedeep: 4.5.0 - normalize-package-data: 2.5.0 - npm-package-arg: 6.1.1 - semver: 5.7.2 - ssri: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@evocateur/npm-registry-fetch@4.0.0: - resolution: {integrity: sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - JSONStream: 1.3.5 - bluebird: 3.7.2 - figgy-pudding: 3.5.2 - lru-cache: 5.1.1 - make-fetch-happen: 5.0.2 - npm-package-arg: 6.1.1 - safe-buffer: 5.2.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@evocateur/pacote@9.6.5: - resolution: {integrity: sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@evocateur/npm-registry-fetch': 4.0.0 - bluebird: 3.7.2 - cacache: 12.0.4 - chownr: 1.1.4 - figgy-pudding: 3.5.2 - get-stream: 4.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 5.1.1 - make-fetch-happen: 5.0.2 - minimatch: 3.1.2 - minipass: 2.9.0 - mississippi: 3.0.0 - mkdirp: 0.5.6 - normalize-package-data: 2.5.0 - npm-package-arg: 6.1.1 - npm-packlist: 1.4.8 - npm-pick-manifest: 3.0.2 - osenv: 0.1.5 - promise-inflight: 1.0.1(bluebird@3.7.2) - promise-retry: 1.1.1 - protoduck: 5.0.1 - rimraf: 2.7.1 - safe-buffer: 5.2.1 - semver: 5.7.2 - ssri: 6.0.2 - tar: 4.4.19 - unique-filename: 1.1.1 - which: 1.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@floating-ui/core@0.6.2: resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==} dev: true @@ -3291,18 +1752,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@hypnosphi/create-react-context@0.3.1(prop-types@15.8.1)(react@16.14.0): - resolution: {integrity: sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==} - peerDependencies: - prop-types: ^15.0.0 - react: '>=0.14.0' - dependencies: - gud: 1.0.0 - prop-types: 15.8.1 - react: 16.14.0 - warning: 4.0.3 - dev: true - /@iconify/types@2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} dev: true @@ -3355,29 +1804,6 @@ packages: '@sinclair/typebox': 0.27.8 dev: true - /@jest/transform@26.6.2: - resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/core': 7.23.3 - '@jest/types': 26.6.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.9.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 26.6.2 - jest-regex-util: 26.0.0 - jest-util: 26.6.2 - micromatch: 4.0.5 - pirates: 4.0.6 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/transform@29.7.0: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3401,17 +1827,6 @@ packages: - supports-color dev: true - /@jest/types@26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.0 - '@types/yargs': 15.0.19 - chalk: 4.1.2 - dev: true - /@jest/types@27.5.1: resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -3479,203 +1894,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@lerna/add@3.21.0: - resolution: {integrity: sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==} - engines: {node: '>= 6.9.0'} - dependencies: - '@evocateur/pacote': 9.6.5 - '@lerna/bootstrap': 3.21.0 - '@lerna/command': 3.21.0 - '@lerna/filter-options': 3.20.0 - '@lerna/npm-conf': 3.16.0 - '@lerna/validation-error': 3.13.0 - dedent: 0.7.0 - npm-package-arg: 6.1.1 - p-map: 2.1.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/bootstrap@3.21.0: - resolution: {integrity: sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/command': 3.21.0 - '@lerna/filter-options': 3.20.0 - '@lerna/has-npm-version': 3.16.5 - '@lerna/npm-install': 3.16.5 - '@lerna/package-graph': 3.18.5 - '@lerna/pulse-till-done': 3.13.0 - '@lerna/rimraf-dir': 3.16.5 - '@lerna/run-lifecycle': 3.16.2 - '@lerna/run-topologically': 3.18.5 - '@lerna/symlink-binary': 3.17.0 - '@lerna/symlink-dependencies': 3.17.0 - '@lerna/validation-error': 3.13.0 - dedent: 0.7.0 - get-port: 4.2.0 - multimatch: 3.0.0 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - p-finally: 1.0.0 - p-map: 2.1.0 - p-map-series: 1.0.0 - p-waterfall: 1.0.0 - read-package-tree: 5.3.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/changed@3.21.0: - resolution: {integrity: sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/collect-updates': 3.20.0 - '@lerna/command': 3.21.0 - '@lerna/listable': 3.18.5 - '@lerna/output': 3.13.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/check-working-tree@3.16.5: - resolution: {integrity: sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/collect-uncommitted': 3.16.5 - '@lerna/describe-ref': 3.16.5 - '@lerna/validation-error': 3.13.0 - dev: true - - /@lerna/child-process@3.16.5: - resolution: {integrity: sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==} - engines: {node: '>= 6.9.0'} - dependencies: - chalk: 2.4.2 - execa: 1.0.0 - strong-log-transformer: 2.1.0 - dev: true - - /@lerna/clean@3.21.0: - resolution: {integrity: sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/command': 3.21.0 - '@lerna/filter-options': 3.20.0 - '@lerna/prompt': 3.18.5 - '@lerna/pulse-till-done': 3.13.0 - '@lerna/rimraf-dir': 3.16.5 - p-map: 2.1.0 - p-map-series: 1.0.0 - p-waterfall: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/cli@3.18.5: - resolution: {integrity: sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@lerna/global-options': 3.13.0 - dedent: 0.7.0 - npmlog: 4.1.2 - yargs: 14.2.3 - dev: true - - /@lerna/collect-uncommitted@3.16.5: - resolution: {integrity: sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - chalk: 2.4.2 - figgy-pudding: 3.5.2 - npmlog: 4.1.2 - dev: true - - /@lerna/collect-updates@3.20.0: - resolution: {integrity: sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/describe-ref': 3.16.5 - minimatch: 3.1.2 - npmlog: 4.1.2 - slash: 2.0.0 - dev: true - - /@lerna/command@3.21.0: - resolution: {integrity: sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/package-graph': 3.18.5 - '@lerna/project': 3.21.0 - '@lerna/validation-error': 3.13.0 - '@lerna/write-log-file': 3.13.0 - clone-deep: 4.0.1 - dedent: 0.7.0 - execa: 1.0.0 - is-ci: 2.0.0 - npmlog: 4.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/conventional-commits@3.22.0: - resolution: {integrity: sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/validation-error': 3.13.0 - conventional-changelog-angular: 5.0.13 - conventional-changelog-core: 3.2.3 - conventional-recommended-bump: 5.0.1 - fs-extra: 8.1.0 - get-stream: 4.1.0 - lodash.template: 4.5.0 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - pify: 4.0.1 - semver: 6.3.1 - dev: true - - /@lerna/create-symlink@3.16.2: - resolution: {integrity: sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@zkochan/cmd-shim': 3.1.0 - fs-extra: 8.1.0 - npmlog: 4.1.2 - dev: true - - /@lerna/create@3.22.0: - resolution: {integrity: sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@evocateur/pacote': 9.6.5 - '@lerna/child-process': 3.16.5 - '@lerna/command': 3.21.0 - '@lerna/npm-conf': 3.16.0 - '@lerna/validation-error': 3.13.0 - camelcase: 5.3.1 - dedent: 0.7.0 - fs-extra: 8.1.0 - globby: 9.2.0 - init-package-json: 1.10.3 - npm-package-arg: 6.1.1 - p-reduce: 1.0.0 - pify: 4.0.1 - semver: 6.3.1 - slash: 2.0.0 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 3.0.0 - whatwg-url: 7.1.0 - transitivePeerDependencies: - - supports-color - dev: true - /@lerna/create@8.0.0(typescript@5.3.2): resolution: {integrity: sha512-mCeEhjFDRwPY7J4uxCjqdzPwPFBUGlkdlQjBidaX5XaoQcxR2hAAvgHZKfVGkUUEZKfyPcWwKzen4KydNB2G7A==} engines: {node: '>=18.0.0'} @@ -3754,546 +1972,6 @@ packages: - typescript dev: true - /@lerna/describe-ref@3.16.5: - resolution: {integrity: sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - npmlog: 4.1.2 - dev: true - - /@lerna/diff@3.21.0: - resolution: {integrity: sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/command': 3.21.0 - '@lerna/validation-error': 3.13.0 - npmlog: 4.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/exec@3.21.0: - resolution: {integrity: sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/command': 3.21.0 - '@lerna/filter-options': 3.20.0 - '@lerna/profiler': 3.20.0 - '@lerna/run-topologically': 3.18.5 - '@lerna/validation-error': 3.13.0 - p-map: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/filter-options@3.20.0: - resolution: {integrity: sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/collect-updates': 3.20.0 - '@lerna/filter-packages': 3.18.0 - dedent: 0.7.0 - figgy-pudding: 3.5.2 - npmlog: 4.1.2 - dev: true - - /@lerna/filter-packages@3.18.0: - resolution: {integrity: sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@lerna/validation-error': 3.13.0 - multimatch: 3.0.0 - npmlog: 4.1.2 - dev: true - - /@lerna/get-npm-exec-opts@3.13.0: - resolution: {integrity: sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==} - engines: {node: '>= 6.9.0'} - dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/get-packed@3.16.0: - resolution: {integrity: sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==} - dependencies: - fs-extra: 8.1.0 - ssri: 6.0.2 - tar: 4.4.19 - dev: true - - /@lerna/github-client@3.22.0(@octokit/core@4.2.4): - resolution: {integrity: sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 16.43.2(@octokit/core@4.2.4) - git-url-parse: 11.6.0 - npmlog: 4.1.2 - transitivePeerDependencies: - - '@octokit/core' - - encoding - dev: true - - /@lerna/gitlab-client@3.15.0: - resolution: {integrity: sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==} - engines: {node: '>= 6.9.0'} - dependencies: - node-fetch: 2.6.7 - npmlog: 4.1.2 - whatwg-url: 7.1.0 - transitivePeerDependencies: - - encoding - dev: true - - /@lerna/global-options@3.13.0: - resolution: {integrity: sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==} - engines: {node: '>= 6.9.0'} - dev: true - - /@lerna/has-npm-version@3.16.5: - resolution: {integrity: sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - semver: 6.3.1 - dev: true - - /@lerna/import@3.22.0: - resolution: {integrity: sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/command': 3.21.0 - '@lerna/prompt': 3.18.5 - '@lerna/pulse-till-done': 3.13.0 - '@lerna/validation-error': 3.13.0 - dedent: 0.7.0 - fs-extra: 8.1.0 - p-map-series: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/info@3.21.0: - resolution: {integrity: sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/command': 3.21.0 - '@lerna/output': 3.13.0 - envinfo: 7.8.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/init@3.21.0: - resolution: {integrity: sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/command': 3.21.0 - fs-extra: 8.1.0 - p-map: 2.1.0 - write-json-file: 3.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/link@3.21.0: - resolution: {integrity: sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/command': 3.21.0 - '@lerna/package-graph': 3.18.5 - '@lerna/symlink-dependencies': 3.17.0 - p-map: 2.1.0 - slash: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/list@3.21.0: - resolution: {integrity: sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/command': 3.21.0 - '@lerna/filter-options': 3.20.0 - '@lerna/listable': 3.18.5 - '@lerna/output': 3.13.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/listable@3.18.5: - resolution: {integrity: sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/query-graph': 3.18.5 - chalk: 2.4.2 - columnify: 1.6.0 - dev: true - - /@lerna/log-packed@3.16.0: - resolution: {integrity: sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==} - engines: {node: '>= 6.9.0'} - dependencies: - byte-size: 5.0.1 - columnify: 1.6.0 - has-unicode: 2.0.1 - npmlog: 4.1.2 - dev: true - - /@lerna/npm-conf@3.16.0: - resolution: {integrity: sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==} - engines: {node: '>= 6.9.0'} - dependencies: - config-chain: 1.1.13 - pify: 4.0.1 - dev: true - - /@lerna/npm-dist-tag@3.18.5: - resolution: {integrity: sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ==} - engines: {node: '>= 6.9.0'} - dependencies: - '@evocateur/npm-registry-fetch': 4.0.0 - '@lerna/otplease': 3.18.5 - figgy-pudding: 3.5.2 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/npm-install@3.16.5: - resolution: {integrity: sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/get-npm-exec-opts': 3.13.0 - fs-extra: 8.1.0 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - signal-exit: 3.0.7 - write-pkg: 3.2.0 - dev: true - - /@lerna/npm-publish@3.18.5: - resolution: {integrity: sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@evocateur/libnpmpublish': 1.2.2 - '@lerna/otplease': 3.18.5 - '@lerna/run-lifecycle': 3.16.2 - figgy-pudding: 3.5.2 - fs-extra: 8.1.0 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - pify: 4.0.1 - read-package-json: 2.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/npm-run-script@3.16.5: - resolution: {integrity: sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - '@lerna/get-npm-exec-opts': 3.13.0 - npmlog: 4.1.2 - dev: true - - /@lerna/otplease@3.18.5: - resolution: {integrity: sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/prompt': 3.18.5 - figgy-pudding: 3.5.2 - dev: true - - /@lerna/output@3.13.0: - resolution: {integrity: sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==} - engines: {node: '>= 6.9.0'} - dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/pack-directory@3.16.4: - resolution: {integrity: sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==} - dependencies: - '@lerna/get-packed': 3.16.0 - '@lerna/package': 3.16.0 - '@lerna/run-lifecycle': 3.16.2 - figgy-pudding: 3.5.2 - npm-packlist: 1.4.8 - npmlog: 4.1.2 - tar: 4.4.19 - temp-write: 3.4.0 - dev: true - - /@lerna/package-graph@3.18.5: - resolution: {integrity: sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@lerna/prerelease-id-from-version': 3.16.0 - '@lerna/validation-error': 3.13.0 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - semver: 6.3.1 - dev: true - - /@lerna/package@3.16.0: - resolution: {integrity: sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - load-json-file: 5.3.0 - npm-package-arg: 6.1.1 - write-pkg: 3.2.0 - dev: true - - /@lerna/prerelease-id-from-version@3.16.0: - resolution: {integrity: sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==} - engines: {node: '>= 6.9.0'} - dependencies: - semver: 6.3.1 - dev: true - - /@lerna/profiler@3.20.0: - resolution: {integrity: sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==} - engines: {node: '>= 6.9.0'} - dependencies: - figgy-pudding: 3.5.2 - fs-extra: 8.1.0 - npmlog: 4.1.2 - upath: 1.2.0 - dev: true - - /@lerna/project@3.21.0: - resolution: {integrity: sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@lerna/package': 3.16.0 - '@lerna/validation-error': 3.13.0 - cosmiconfig: 5.2.1 - dedent: 0.7.0 - dot-prop: 4.2.1 - glob-parent: 5.1.2 - globby: 9.2.0 - load-json-file: 5.3.0 - npmlog: 4.1.2 - p-map: 2.1.0 - resolve-from: 4.0.0 - write-json-file: 3.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/prompt@3.18.5: - resolution: {integrity: sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==} - engines: {node: '>= 6.9.0'} - dependencies: - inquirer: 6.5.2 - npmlog: 4.1.2 - dev: true - - /@lerna/publish@3.22.1(@octokit/core@4.2.4): - resolution: {integrity: sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==} - engines: {node: '>= 6.9.0'} - dependencies: - '@evocateur/libnpmaccess': 3.1.2 - '@evocateur/npm-registry-fetch': 4.0.0 - '@evocateur/pacote': 9.6.5 - '@lerna/check-working-tree': 3.16.5 - '@lerna/child-process': 3.16.5 - '@lerna/collect-updates': 3.20.0 - '@lerna/command': 3.21.0 - '@lerna/describe-ref': 3.16.5 - '@lerna/log-packed': 3.16.0 - '@lerna/npm-conf': 3.16.0 - '@lerna/npm-dist-tag': 3.18.5 - '@lerna/npm-publish': 3.18.5 - '@lerna/otplease': 3.18.5 - '@lerna/output': 3.13.0 - '@lerna/pack-directory': 3.16.4 - '@lerna/prerelease-id-from-version': 3.16.0 - '@lerna/prompt': 3.18.5 - '@lerna/pulse-till-done': 3.13.0 - '@lerna/run-lifecycle': 3.16.2 - '@lerna/run-topologically': 3.18.5 - '@lerna/validation-error': 3.13.0 - '@lerna/version': 3.22.1(@octokit/core@4.2.4) - figgy-pudding: 3.5.2 - fs-extra: 8.1.0 - npm-package-arg: 6.1.1 - npmlog: 4.1.2 - p-finally: 1.0.0 - p-map: 2.1.0 - p-pipe: 1.2.0 - semver: 6.3.1 - transitivePeerDependencies: - - '@octokit/core' - - encoding - - supports-color - dev: true - - /@lerna/pulse-till-done@3.13.0: - resolution: {integrity: sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==} - engines: {node: '>= 6.9.0'} - dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/query-graph@3.18.5: - resolution: {integrity: sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/package-graph': 3.18.5 - figgy-pudding: 3.5.2 - dev: true - - /@lerna/resolve-symlink@3.16.0: - resolution: {integrity: sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==} - engines: {node: '>= 6.9.0'} - dependencies: - fs-extra: 8.1.0 - npmlog: 4.1.2 - read-cmd-shim: 1.0.5 - dev: true - - /@lerna/rimraf-dir@3.16.5: - resolution: {integrity: sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/child-process': 3.16.5 - npmlog: 4.1.2 - path-exists: 3.0.0 - rimraf: 2.7.1 - dev: true - - /@lerna/run-lifecycle@3.16.2: - resolution: {integrity: sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/npm-conf': 3.16.0 - figgy-pudding: 3.5.2 - npm-lifecycle: 3.1.5 - npmlog: 4.1.2 - dev: true - - /@lerna/run-topologically@3.18.5: - resolution: {integrity: sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/query-graph': 3.18.5 - figgy-pudding: 3.5.2 - p-queue: 4.0.0 - dev: true - - /@lerna/run@3.21.0: - resolution: {integrity: sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/command': 3.21.0 - '@lerna/filter-options': 3.20.0 - '@lerna/npm-run-script': 3.16.5 - '@lerna/output': 3.13.0 - '@lerna/profiler': 3.20.0 - '@lerna/run-topologically': 3.18.5 - '@lerna/timer': 3.13.0 - '@lerna/validation-error': 3.13.0 - p-map: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@lerna/symlink-binary@3.17.0: - resolution: {integrity: sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/create-symlink': 3.16.2 - '@lerna/package': 3.16.0 - fs-extra: 8.1.0 - p-map: 2.1.0 - dev: true - - /@lerna/symlink-dependencies@3.17.0: - resolution: {integrity: sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==} - engines: {node: '>= 6.9.0'} - dependencies: - '@lerna/create-symlink': 3.16.2 - '@lerna/resolve-symlink': 3.16.0 - '@lerna/symlink-binary': 3.17.0 - fs-extra: 8.1.0 - p-finally: 1.0.0 - p-map: 2.1.0 - p-map-series: 1.0.0 - dev: true - - /@lerna/timer@3.13.0: - resolution: {integrity: sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==} - engines: {node: '>= 6.9.0'} - dev: true - - /@lerna/validation-error@3.13.0: - resolution: {integrity: sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==} - engines: {node: '>= 6.9.0'} - dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/version@3.22.1(@octokit/core@4.2.4): - resolution: {integrity: sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==} - engines: {node: '>= 6.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - '@lerna/check-working-tree': 3.16.5 - '@lerna/child-process': 3.16.5 - '@lerna/collect-updates': 3.20.0 - '@lerna/command': 3.21.0 - '@lerna/conventional-commits': 3.22.0 - '@lerna/github-client': 3.22.0(@octokit/core@4.2.4) - '@lerna/gitlab-client': 3.15.0 - '@lerna/output': 3.13.0 - '@lerna/prerelease-id-from-version': 3.16.0 - '@lerna/prompt': 3.18.5 - '@lerna/run-lifecycle': 3.16.2 - '@lerna/run-topologically': 3.18.5 - '@lerna/validation-error': 3.13.0 - chalk: 2.4.2 - dedent: 0.7.0 - load-json-file: 5.3.0 - minimatch: 3.1.2 - npmlog: 4.1.2 - p-map: 2.1.0 - p-pipe: 1.2.0 - p-reduce: 1.0.0 - p-waterfall: 1.0.0 - semver: 6.3.1 - slash: 2.0.0 - temp-write: 3.4.0 - write-json-file: 3.2.0 - transitivePeerDependencies: - - '@octokit/core' - - encoding - - supports-color - dev: true - - /@lerna/write-log-file@3.13.0: - resolution: {integrity: sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==} - engines: {node: '>= 6.9.0'} - dependencies: - npmlog: 4.1.2 - write-file-atomic: 2.4.3 - dev: true - /@loadable/component@5.15.2(react@18.1.0): resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==} engines: {node: '>=8'} @@ -4347,44 +2025,6 @@ packages: read-yaml-file: 1.1.0 dev: true - /@mdx-js/mdx@1.6.22: - resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==} - dependencies: - '@babel/core': 7.12.9 - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - babel-plugin-apply-mdx-type-prop: 1.6.22(@babel/core@7.12.9) - babel-plugin-extract-import-names: 1.6.22 - camelcase-css: 2.0.1 - detab: 2.0.4 - hast-util-raw: 6.0.1 - lodash.uniq: 4.5.0 - mdast-util-to-hast: 10.0.1 - remark-footnotes: 2.0.0 - remark-mdx: 1.6.22 - remark-parse: 8.0.3 - remark-squeeze-paragraphs: 4.0.0 - style-to-object: 0.3.0 - unified: 9.2.0 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@mdx-js/react@1.6.22(react@16.14.0): - resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==} - peerDependencies: - react: ^16.13.1 || ^17.0.0 - dependencies: - react: 16.14.0 - dev: true - - /@mdx-js/util@1.6.22: - resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} - dev: true - /@microsoft/api-extractor-model@7.27.5(@types/node@20.5.1): resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==} dependencies: @@ -4428,20 +2068,6 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mrmlnc/readdir-enhanced@2.2.1: - resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} - engines: {node: '>=4'} - dependencies: - call-me-maybe: 1.0.2 - glob-to-regexp: 0.3.0 - dev: true - - /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3: - resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} - requiresBuild: true - dev: true - optional: true - /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} dependencies: @@ -4456,11 +2082,6 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat@1.1.3: - resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} - engines: {node: '>= 6'} - dev: true - /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} @@ -4474,13 +2095,6 @@ packages: fastq: 1.15.0 dev: true - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.5.4 - dev: true - /@npmcli/fs@2.1.2: resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4521,15 +2135,6 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - dev: true - /@npmcli/move-file@2.0.1: resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4694,12 +2299,6 @@ packages: dev: true optional: true - /@octokit/auth-token@2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} - dependencies: - '@octokit/types': 6.41.0 - dev: true - /@octokit/auth-token@3.0.4: resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} engines: {node: '>= 14'} @@ -4720,14 +2319,6 @@ packages: - encoding dev: true - /@octokit/endpoint@6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} - dependencies: - '@octokit/types': 6.41.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.1 - dev: true - /@octokit/endpoint@7.0.6: resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} engines: {node: '>= 14'} @@ -4748,10 +2339,6 @@ packages: - encoding dev: true - /@octokit/openapi-types@12.11.0: - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - dev: true - /@octokit/openapi-types@18.1.1: resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} dev: true @@ -4760,12 +2347,6 @@ packages: resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} dev: true - /@octokit/plugin-paginate-rest@1.1.2: - resolution: {integrity: sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==} - dependencies: - '@octokit/types': 2.16.2 - dev: true - /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4): resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} engines: {node: '>= 14'} @@ -4785,13 +2366,6 @@ packages: '@octokit/core': 4.2.4 dev: true - /@octokit/plugin-rest-endpoint-methods@2.4.0: - resolution: {integrity: sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==} - dependencies: - '@octokit/types': 2.16.2 - deprecation: 2.3.1 - dev: true - /@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4): resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} engines: {node: '>= 14'} @@ -4802,22 +2376,6 @@ packages: '@octokit/types': 10.0.0 dev: true - /@octokit/request-error@1.2.1: - resolution: {integrity: sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==} - dependencies: - '@octokit/types': 2.16.2 - deprecation: 2.3.1 - once: 1.4.0 - dev: true - - /@octokit/request-error@2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} - dependencies: - '@octokit/types': 6.41.0 - deprecation: 2.3.1 - once: 1.4.0 - dev: true - /@octokit/request-error@3.0.3: resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} engines: {node: '>= 14'} @@ -4827,19 +2385,6 @@ packages: once: 1.4.0 dev: true - /@octokit/request@5.6.3: - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} - dependencies: - '@octokit/endpoint': 6.0.12 - '@octokit/request-error': 2.1.0 - '@octokit/types': 6.41.0 - is-plain-object: 5.0.0 - node-fetch: 2.6.7 - universal-user-agent: 6.0.1 - transitivePeerDependencies: - - encoding - dev: true - /@octokit/request@6.2.8: resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} engines: {node: '>= 14'} @@ -4854,30 +2399,6 @@ packages: - encoding dev: true - /@octokit/rest@16.43.2(@octokit/core@4.2.4): - resolution: {integrity: sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==} - dependencies: - '@octokit/auth-token': 2.5.0 - '@octokit/plugin-paginate-rest': 1.1.2 - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.4) - '@octokit/plugin-rest-endpoint-methods': 2.4.0 - '@octokit/request': 5.6.3 - '@octokit/request-error': 1.2.1 - atob-lite: 2.0.0 - before-after-hook: 2.2.3 - btoa-lite: 1.0.0 - deprecation: 2.3.1 - lodash.get: 4.4.2 - lodash.set: 4.3.2 - lodash.uniq: 4.5.0 - octokit-pagination-methods: 1.1.0 - once: 1.4.0 - universal-user-agent: 4.0.1 - transitivePeerDependencies: - - '@octokit/core' - - encoding - dev: true - /@octokit/rest@19.0.11: resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==} engines: {node: '>= 14'} @@ -4900,18 +2421,6 @@ packages: '@octokit/openapi-types': 18.1.1 dev: true - /@octokit/types@2.16.2: - resolution: {integrity: sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==} - dependencies: - '@types/node': 20.10.0 - dev: true - - /@octokit/types@6.41.0: - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} - dependencies: - '@octokit/openapi-types': 12.11.0 - dev: true - /@octokit/types@9.3.2: resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} dependencies: @@ -4937,45 +2446,6 @@ packages: tslib: 2.6.2 dev: true - /@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.11.0)(webpack@5.89.0): - resolution: {integrity: sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==} - engines: {node: '>= 10.13'} - peerDependencies: - '@types/webpack': 4.x || 5.x - react-refresh: '>=0.10.0 <1.0.0' - sockjs-client: ^1.4.0 - type-fest: '>=0.17.0 <5.0.0' - webpack: '>=4.43.0 <6.0.0' - webpack-dev-server: 3.x || 4.x - webpack-hot-middleware: 2.x - webpack-plugin-serve: 0.x || 1.x - peerDependenciesMeta: - '@types/webpack': - optional: true - sockjs-client: - optional: true - type-fest: - optional: true - webpack-dev-server: - optional: true - webpack-hot-middleware: - optional: true - webpack-plugin-serve: - optional: true - dependencies: - ansi-html-community: 0.0.8 - common-path-prefix: 3.0.0 - core-js-pure: 3.33.3 - error-stack-parser: 2.1.4 - find-up: 5.0.0 - html-entities: 2.4.0 - loader-utils: 2.0.4 - react-refresh: 0.11.0 - schema-utils: 3.3.0 - source-map: 0.7.4 - webpack: 5.89.0 - dev: true - /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} peerDependencies: @@ -4984,7 +2454,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@ctrl/tinycolor': 3.6.1 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5017,7 +2487,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5031,7 +2501,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5046,7 +2516,7 @@ packages: '@babel/runtime': 7.23.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5061,26 +2531,17 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@reach/router@1.3.4(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==} - peerDependencies: - react: 15.x || 16.x || 16.4.0-alpha.0911da3 - react-dom: 15.x || 16.x || 16.4.0-alpha.0911da3 - dependencies: - create-react-context: 0.3.0(prop-types@15.8.1)(react@16.14.0) - invariant: 2.2.4 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-lifecycles-compat: 3.0.4 - dev: true + /@remix-run/router@1.14.1: + resolution: {integrity: sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==} + engines: {node: '>=14.0.0'} + dev: false /@rushstack/node-core-library@3.59.6(@types/node@20.5.1): resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==} @@ -5168,1486 +2629,6 @@ packages: resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==} dev: true - /@storybook/addon-actions@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-aADjilFmuD6TNGz2CRPSupnyiA/IGkPJHDBTqMpsDXTUr8xnuD122xkIhg6UxmCM2y1c+ncwYXy3WPK2xXK57g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - polished: 4.2.2 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-inspector: 5.1.1(react@16.14.0) - regenerator-runtime: 0.13.11 - telejson: 6.0.8 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - uuid-browser: 3.1.0 - dev: true - - /@storybook/addon-backgrounds@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-t7qooZ892BruhilFmzYPbysFwpULt/q4zYXNSmKVbAYta8UVvitjcU4F18p8FpWd9WvhiTr0SDlyhNZuzvDfug==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - global: 4.4.0 - memoizerific: 1.11.3 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - - /@storybook/addon-controls@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2): - resolution: {integrity: sha512-kShSGjq1MjmmyL3l8i+uPz6yddtf82mzys0l82VKtcuyjrr5944wYFJ5NTXMfZxrO/U6FeFsfuFZE/k6ex3EMg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/node-logger': 6.5.16 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - lodash: 4.17.21 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/addon-docs@6.5.16(@babel/core@7.23.3)(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-QM9WDZG9P02UvbzLu947a8ZngOrQeAKAT8jCibQFM/+RJ39xBlfm8rm+cQy3dm94wgtjmVkA3mKGOV/yrrsddg==} - peerDependencies: - '@storybook/mdx2-csf': ^0.0.3 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@storybook/mdx2-csf': - optional: true - react: - optional: true - react-dom: - optional: true - dependencies: - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) - '@babel/preset-env': 7.23.6(@babel/core@7.23.3) - '@jest/transform': 26.6.2 - '@mdx-js/react': 1.6.22(react@16.14.0) - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/docs-tools': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/mdx1-csf': 0.0.1(@babel/core@7.23.3) - '@storybook/node-logger': 6.5.16 - '@storybook/postinstall': 6.5.16 - '@storybook/preview-web': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/source-loader': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@5.89.0) - core-js: 3.28.0 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - remark-external-links: 8.0.0 - remark-slug: 6.1.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@babel/core' - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack - - webpack-cli - - webpack-command - dev: true - - /@storybook/addon-essentials@6.5.16(@babel/core@7.23.3)(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(vue@2.7.16)(webpack@5.89.0): - resolution: {integrity: sha512-TeoMr6tEit4Pe91GH6f8g/oar1P4M0JL9S6oMcFxxrhhtOGO7XkWD5EnfyCx272Ok2VYfE58FNBTGPNBVIqYKQ==} - peerDependencies: - '@babel/core': ^7.9.6 - '@storybook/angular': '*' - '@storybook/builder-manager4': '*' - '@storybook/builder-manager5': '*' - '@storybook/builder-webpack4': '*' - '@storybook/builder-webpack5': '*' - '@storybook/html': '*' - '@storybook/vue': '*' - '@storybook/vue3': '*' - '@storybook/web-components': '*' - lit: '*' - lit-html: '*' - react: '*' - react-dom: '*' - svelte: '*' - sveltedoc-parser: '*' - vue: '*' - webpack: '*' - peerDependenciesMeta: - '@storybook/angular': - optional: true - '@storybook/builder-manager4': - optional: true - '@storybook/builder-manager5': - optional: true - '@storybook/builder-webpack4': - optional: true - '@storybook/builder-webpack5': - optional: true - '@storybook/html': - optional: true - '@storybook/vue': - optional: true - '@storybook/vue3': - optional: true - '@storybook/web-components': - optional: true - lit: - optional: true - lit-html: - optional: true - react: - optional: true - react-dom: - optional: true - svelte: - optional: true - sveltedoc-parser: - optional: true - vue: - optional: true - webpack: - optional: true - dependencies: - '@babel/core': 7.23.3 - '@storybook/addon-actions': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-backgrounds': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-controls': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/addon-docs': 6.5.16(@babel/core@7.23.3)(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@5.89.0) - '@storybook/addon-measure': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-outline': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-toolbars': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addon-viewport': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/node-logger': 6.5.16 - core-js: 3.28.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - vue: 2.7.16 - webpack: 5.89.0 - transitivePeerDependencies: - - '@storybook/mdx2-csf' - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/addon-links@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-P/mmqK57NGXnR0i3d/T5B0rIt0Lg8Yq+qionRr3LK3AwG/4yGnYt4GNomLEknn/eEwABYq1Q/Z1aOpgIhNdq5A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@types/qs': 6.9.11 - core-js: 3.28.0 - global: 4.4.0 - prop-types: 15.8.1 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - dev: true - - /@storybook/addon-measure@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-DMwnXkmM2L6POTh4KaOWvOAtQ2p9Tr1UUNxz6VXiN5cKFohpCs6x0txdLU5WN8eWIq0VFsO7u5ZX34CGCc6gCg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.28.0 - global: 4.4.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - dev: true - - /@storybook/addon-notes@5.3.21(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0)(regenerator-runtime@0.14.0): - resolution: {integrity: sha512-lPqIm8LDOqHpfoLeBNCObNfoI2ZMDuBILJAgfCYMy0D+uJbxUi2oAVayxNAZJNuCooMLcb90gc3kMoSVbmW8Sw==} - peerDependencies: - react: '*' - dependencies: - '@storybook/addons': 5.3.21(react-dom@16.14.0)(regenerator-runtime@0.14.0) - '@storybook/api': 5.3.21(react-dom@16.14.0)(regenerator-runtime@0.14.0) - '@storybook/client-logger': 5.3.21 - '@storybook/components': 5.3.21(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 5.3.21 - '@storybook/router': 5.3.21(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 5.3.21(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - global: 4.4.0 - markdown-to-jsx: 6.11.4(react@16.14.0) - memoizerific: 1.11.3 - prop-types: 15.8.1 - react: 16.14.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - react-dom - - regenerator-runtime - dev: true - - /@storybook/addon-outline@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-0du96nha4qltexO0Xq1xB7LeRSbqjC9XqtZLflXG7/X3ABoPD2cXgOV97eeaXUodIyb2qYBbHUfftBeA75x0+w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.28.0 - global: 4.4.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - dev: true - - /@storybook/addon-toolbars@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-y3PuUKiwOWrAvqx1YdUvArg0UaAwmboXFeR2bkrowk1xcT+xnRO3rML4npFeUl26OQ1FzwxX/cw6nknREBBLEA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - dev: true - - /@storybook/addon-viewport@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-1Vyqf1U6Qng6TXlf4SdqUKyizlw1Wn6+qW8YeA2q1lbkJqn3UlnHXIp8Q0t/5q1dK5BFtREox3+jkGwbJrzkmA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 6.5.16 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - global: 4.4.0 - memoizerific: 1.11.3 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - dev: true - - /@storybook/addons@5.3.21(react-dom@16.14.0)(regenerator-runtime@0.14.0): - resolution: {integrity: sha512-Ji/21WADTLVbTbiKcZ64BcL0Es+h1Afxx3kNmGJqPSTUYroCwIFCT9mUzCqU6G+YyWaISAmTii5UJkTwMkChwA==} - dependencies: - '@storybook/api': 5.3.21(react-dom@16.14.0)(regenerator-runtime@0.14.0) - '@storybook/channels': 5.3.21 - '@storybook/client-logger': 5.3.21 - '@storybook/core-events': 5.3.21 - core-js: 3.28.0 - global: 4.4.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - react-dom - - regenerator-runtime - dev: true - - /@storybook/addons@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-p3DqQi+8QRL5k7jXhXmJZLsE/GqHqyY6PcoA1oNTJr0try48uhTGUOYkgzmqtDaa/qPFO5LP+xCPzZXckGtquQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@types/webpack-env': 1.18.4 - core-js: 3.28.0 - global: 4.4.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - dev: true - - /@storybook/api@5.3.21(react-dom@16.14.0)(regenerator-runtime@0.14.0): - resolution: {integrity: sha512-K1o4an/Rx8daKRDooks6qzN6ZGyqizeacZZbair3F8CsSfTgrr2zCcf9pgKojLQa9koEmMHlcdb2KnS+GwPEgA==} - peerDependencies: - regenerator-runtime: '*' - dependencies: - '@reach/router': 1.3.4(react-dom@16.14.0)(react@16.14.0) - '@storybook/channels': 5.3.21 - '@storybook/client-logger': 5.3.21 - '@storybook/core-events': 5.3.21 - '@storybook/csf': 0.0.1 - '@storybook/router': 5.3.21(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 5.3.21(react-dom@16.14.0)(react@16.14.0) - '@types/reach__router': 1.3.14 - core-js: 3.28.0 - fast-deep-equal: 2.0.1 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - prop-types: 15.8.1 - react: 16.14.0 - regenerator-runtime: 0.14.0 - semver: 6.3.1 - shallow-equal: 1.2.1 - store2: 2.14.2 - telejson: 3.3.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - react-dom - dev: true - - /@storybook/api@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-HOsuT8iomqeTMQJrRx5U8nsC7lJTwRr1DhdD0SzlqL4c80S/7uuCy4IZvOt4sYQjOzW5fOo/kamcoBXyLproTA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/semver': 7.3.2 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - store2: 2.14.2 - telejson: 6.0.8 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - - /@storybook/builder-webpack4@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2): - resolution: {integrity: sha512-YqDIrVNsUo8r9xc6AxsYDLxVYtMgl5Bxk+8/h1adsOko+jAFhdg6hOcAVxEmoSI0TMASOOVMFlT2hr23ppN2rQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@babel/core': 7.23.3 - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channels': 6.5.16 - '@storybook/client-api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/core-events': 6.5.16 - '@storybook/node-logger': 6.5.16 - '@storybook/preview-web': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/router': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/semver': 7.3.2 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/ui': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@types/node': 16.18.68 - '@types/webpack': 4.41.38 - autoprefixer: 9.8.8 - babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@4.47.0) - case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.28.0 - css-loader: 3.6.0(webpack@4.47.0) - file-loader: 6.2.0(webpack@4.47.0) - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 4.1.6(eslint@8.54.0)(typescript@5.3.2)(webpack@4.47.0) - glob: 7.2.3 - glob-promise: 3.4.0(glob@7.2.3) - global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@4.47.0) - pnp-webpack-plugin: 1.6.4(typescript@5.3.2) - postcss: 7.0.39 - postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@4.47.0) - raw-loader: 4.0.2(webpack@4.47.0) - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - stable: 0.1.8 - style-loader: 1.3.0(webpack@4.47.0) - terser-webpack-plugin: 4.2.3(webpack@4.47.0) - ts-dedent: 2.2.0 - typescript: 5.3.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@4.47.0) - util-deprecate: 1.0.2 - webpack: 4.47.0 - webpack-dev-middleware: 3.7.3(webpack@4.47.0) - webpack-filter-warnings-plugin: 1.2.1(webpack@4.47.0) - webpack-hot-middleware: 2.26.0 - webpack-virtual-modules: 0.2.2 - transitivePeerDependencies: - - bluebird - - eslint - - supports-color - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/channel-postmessage@6.5.16: - resolution: {integrity: sha512-fZZSN29dsUArWOx7e7lTdMA9+7zijVwCwbvi2Fo4fqhRLh1DsTb/VXfz1FKMCWAjNlcX7QQvV25tnxbqsD6lyw==} - dependencies: - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - core-js: 3.28.0 - global: 4.4.0 - qs: 6.11.2 - telejson: 6.0.8 - dev: true - - /@storybook/channel-websocket@6.5.16: - resolution: {integrity: sha512-wJg2lpBjmRC2GJFzmhB9kxlh109VE58r/0WhFtLbwKvPqsvGf82xkBEl6BtBCvIQ4stzYnj/XijjA8qSi2zpOg==} - dependencies: - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - core-js: 3.28.0 - global: 4.4.0 - telejson: 6.0.8 - dev: true - - /@storybook/channels@5.3.21: - resolution: {integrity: sha512-OXoFs9XtBVg/cCk6lYMrxkzaNlJRf54ABdorp7YAAj7S9tRL1JxOZHxmjNQwEoiRvssmem2rAWtEAxfuEANsAA==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/channels@6.5.16: - resolution: {integrity: sha512-VylzaWQZaMozEwZPJdyJoz+0jpDa8GRyaqu9TGG6QGv+KU5POoZaGLDkRE7TzWkyyP0KQLo80K99MssZCpgSeg==} - dependencies: - core-js: 3.28.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - - /@storybook/client-api@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-i3UwkzzUFw8I+E6fOcgB5sc4oU2fhvaKnqC1mpd9IYGJ9JN9MnGIaVl3Ko28DtFItu/QabC9JsLIJVripFLktQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@types/qs': 6.9.11 - '@types/webpack-env': 1.18.4 - core-js: 3.28.0 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - store2: 2.14.2 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - - /@storybook/client-logger@5.3.21: - resolution: {integrity: sha512-OzQkwpZ5SK9cXD9Mv6lxPGPot+hSZvnkEW12kpt1AHfJz4ET26YTDOI3oetPsjfRJo6qYLeQX8+wF7rklfXbzA==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/client-logger@5.3.22: - resolution: {integrity: sha512-kcAm56izhmN3ulOJf0YRPNSmG9OUUqSfFx5K3hrBUaSImpBU6XTweFLsPhcXK77RTVpdf+aumkw4prEyicJzww==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/client-logger@6.5.16: - resolution: {integrity: sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q==} - dependencies: - core-js: 3.28.0 - global: 4.4.0 - dev: true - - /@storybook/components@5.3.21(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-42QQk6qZl6wrtajP8yNCfmNS2t8Iod5QY+4V/l6iNnnT9O+j6cWOlnO+ZyvjNv0Xm0zIOt+VyVjdkKh8FUjQmA==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@storybook/client-logger': 5.3.21 - '@storybook/theming': 5.3.21(react-dom@16.14.0)(react@16.14.0) - '@types/react-syntax-highlighter': 11.0.4 - '@types/react-textarea-autosize': 4.3.6 - core-js: 3.28.0 - global: 4.4.0 - lodash: 4.17.21 - markdown-to-jsx: 6.11.4(react@16.14.0) - memoizerific: 1.11.3 - polished: 3.7.2 - popper.js: 1.16.1 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-focus-lock: 2.9.6(@types/react@18.2.39)(react@16.14.0) - react-helmet-async: 1.3.0(react-dom@16.14.0)(react@16.14.0) - react-popper-tooltip: 2.11.1(react-dom@16.14.0)(react@16.14.0) - react-syntax-highlighter: 11.0.3(react@16.14.0) - react-textarea-autosize: 7.1.2(react@16.14.0) - simplebar-react: 1.2.3(react-dom@16.14.0)(react@16.14.0) - ts-dedent: 1.2.0 - transitivePeerDependencies: - - '@types/react' - dev: true - - /@storybook/components@5.3.22(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-BryiizAjE3uXrK6AYX85HN6aFrzaaXu6BB5AtuEnxYFhGkOTzHKR7wCPSBa/bZzrIdjqmnXDPQIceXu/Yz/X6Q==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@storybook/client-logger': 5.3.22 - '@storybook/theming': 5.3.22(react-dom@16.14.0)(react@16.14.0) - '@types/react-syntax-highlighter': 11.0.4 - '@types/react-textarea-autosize': 4.3.6 - core-js: 3.28.0 - global: 4.4.0 - lodash: 4.17.21 - markdown-to-jsx: 6.11.4(react@16.14.0) - memoizerific: 1.11.3 - polished: 3.7.2 - popper.js: 1.16.1 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-focus-lock: 2.9.6(@types/react@18.2.39)(react@16.14.0) - react-helmet-async: 1.3.0(react-dom@16.14.0)(react@16.14.0) - react-popper-tooltip: 2.11.1(react-dom@16.14.0)(react@16.14.0) - react-syntax-highlighter: 11.0.3(react@16.14.0) - react-textarea-autosize: 7.1.2(react@16.14.0) - simplebar-react: 1.2.3(react-dom@16.14.0)(react@16.14.0) - ts-dedent: 1.2.0 - transitivePeerDependencies: - - '@types/react' - dev: true - - /@storybook/components@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-LzBOFJKITLtDcbW9jXl0/PaG+4xAz25PK8JxPZpIALbmOpYWOAPcO6V9C2heX6e6NgWFMUxjplkULEk9RCQMNA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/client-logger': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - memoizerific: 1.11.3 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - util-deprecate: 1.0.2 - dev: true - - /@storybook/core-client@6.5.16(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@4.47.0): - resolution: {integrity: sha512-14IRaDrVtKrQ+gNWC0wPwkCNfkZOKghYV/swCUnQX3rP99defsZK8Hc7xHIYoAiOP5+sc3sweRAxgmFiJeQ1Ig==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - webpack: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channel-websocket': 6.5.16 - '@storybook/client-api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/preview-web': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/ui': 6.5.16(react-dom@16.14.0)(react@16.14.0) - airbnb-js-shims: 2.2.1 - ansi-to-html: 0.6.15 - core-js: 3.28.0 - global: 4.4.0 - lodash: 4.17.21 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - typescript: 5.3.2 - unfetch: 4.2.0 - util-deprecate: 1.0.2 - webpack: 4.47.0 - dev: true - - /@storybook/core-client@6.5.16(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-14IRaDrVtKrQ+gNWC0wPwkCNfkZOKghYV/swCUnQX3rP99defsZK8Hc7xHIYoAiOP5+sc3sweRAxgmFiJeQ1Ig==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - webpack: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channel-websocket': 6.5.16 - '@storybook/client-api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/preview-web': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/ui': 6.5.16(react-dom@16.14.0)(react@16.14.0) - airbnb-js-shims: 2.2.1 - ansi-to-html: 0.6.15 - core-js: 3.28.0 - global: 4.4.0 - lodash: 4.17.21 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - typescript: 5.3.2 - unfetch: 4.2.0 - util-deprecate: 1.0.2 - webpack: 5.89.0 - dev: true - - /@storybook/core-common@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2): - resolution: {integrity: sha512-2qtnKP3TTOzt2cp6LXKRTh7XrI9z5VanMnMTgeoFcA5ebnndD4V6BExQUdYPClE/QooLx6blUWNgS9dFEpjSqQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-proposal-decorators': 7.23.6(@babel/core@7.23.3) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.3) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.3) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) - '@babel/preset-env': 7.23.6(@babel/core@7.23.3) - '@babel/preset-react': 7.23.3(@babel/core@7.23.3) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.3) - '@babel/register': 7.22.15(@babel/core@7.23.3) - '@storybook/node-logger': 6.5.16 - '@storybook/semver': 7.3.2 - '@types/node': 16.18.68 - '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@4.47.0) - babel-plugin-macros: 3.1.0 - babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.23.3) - chalk: 4.1.2 - core-js: 3.28.0 - express: 4.18.2 - file-system-cache: 1.1.0 - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.54.0)(typescript@5.3.2)(webpack@4.47.0) - fs-extra: 9.1.0 - glob: 7.2.3 - handlebars: 4.7.8 - interpret: 2.2.0 - json5: 2.2.3 - lazy-universal-dotenv: 3.0.1 - picomatch: 2.3.1 - pkg-dir: 5.0.0 - pretty-hrtime: 1.0.3 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - resolve-from: 5.0.0 - slash: 3.0.0 - telejson: 6.0.8 - ts-dedent: 2.2.0 - typescript: 5.3.2 - util-deprecate: 1.0.2 - webpack: 4.47.0 - transitivePeerDependencies: - - eslint - - supports-color - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/core-events@5.3.21: - resolution: {integrity: sha512-/Zsm1sKAh6pzQv8jQUmuhM7nuM01ZljIRKy8p2HjPNlMjDB5yaRkBfyeAUXUg+qXNI6aHVWa4jGdPEdwwY4oLA==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/core-events@5.3.22: - resolution: {integrity: sha512-dGRIMwbX47dTBe5Bc9jI9+iABwSFgQPvZXb56uvPsNBUd7/fDfryqSVrc/YfiQzhs0YS1IN6NCKEbOGbNRbpvg==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/core-events@6.5.16: - resolution: {integrity: sha512-qMZQwmvzpH5F2uwNUllTPg6eZXr2OaYZQRRN8VZJiuorZzDNdAFmiVWMWdkThwmyLEJuQKXxqCL8lMj/7PPM+g==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/core-server@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2): - resolution: {integrity: sha512-/3NPfmNyply395Dm0zaVZ8P9aruwO+tPx4D6/jpw8aqrRSwvAMndPMpoMCm0NXcpSm5rdX+Je4S3JW6JcggFkA==} - peerDependencies: - '@storybook/builder-webpack5': '*' - '@storybook/manager-webpack5': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - '@storybook/builder-webpack5': - optional: true - '@storybook/manager-webpack5': - optional: true - typescript: - optional: true - dependencies: - '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-webpack4': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/core-client': 6.5.16(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@4.47.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/csf-tools': 6.5.16 - '@storybook/manager-webpack4': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/node-logger': 6.5.16 - '@storybook/semver': 7.3.2 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/telemetry': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@types/node': 16.18.68 - '@types/node-fetch': 2.6.9 - '@types/pretty-hrtime': 1.0.3 - '@types/webpack': 4.41.38 - better-opn: 2.1.1 - boxen: 5.1.2 - chalk: 4.1.2 - cli-table3: 0.6.3 - commander: 6.2.1 - compression: 1.7.4 - core-js: 3.28.0 - cpy: 8.1.2 - detect-port: 1.5.1 - express: 4.18.2 - fs-extra: 9.1.0 - global: 4.4.0 - globby: 11.1.0 - ip: 2.0.0 - lodash: 4.17.21 - node-fetch: 2.6.7 - open: 8.4.2 - pretty-hrtime: 1.0.3 - prompts: 2.4.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - serve-favicon: 2.5.0 - slash: 3.0.0 - telejson: 6.0.8 - ts-dedent: 2.2.0 - typescript: 5.3.2 - util-deprecate: 1.0.2 - watchpack: 2.4.0 - webpack: 4.47.0 - ws: 8.15.1 - x-default-browser: 0.4.0 - transitivePeerDependencies: - - '@storybook/mdx2-csf' - - bluebird - - bufferutil - - encoding - - eslint - - supports-color - - utf-8-validate - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/core@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-CEF3QFTsm/VMnMKtRNr4rRdLeIkIG0g1t26WcmxTdSThNPBd8CsWzQJ7Jqu7CKiut+MU4A1LMOwbwCE5F2gmyA==} - peerDependencies: - '@storybook/builder-webpack5': '*' - '@storybook/manager-webpack5': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - webpack: '*' - peerDependenciesMeta: - '@storybook/builder-webpack5': - optional: true - '@storybook/manager-webpack5': - optional: true - typescript: - optional: true - dependencies: - '@storybook/core-client': 6.5.16(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@5.89.0) - '@storybook/core-server': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - typescript: 5.3.2 - webpack: 5.89.0 - transitivePeerDependencies: - - '@storybook/mdx2-csf' - - bluebird - - bufferutil - - encoding - - eslint - - supports-color - - utf-8-validate - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/csf-tools@6.5.16: - resolution: {integrity: sha512-+WD4sH/OwAfXZX3IN6/LOZ9D9iGEFcN+Vvgv9wOsLRgsAZ10DG/NK6c1unXKDM/ogJtJYccNI8Hd+qNE/GFV6A==} - peerDependencies: - '@storybook/mdx2-csf': ^0.0.3 - peerDependenciesMeta: - '@storybook/mdx2-csf': - optional: true - dependencies: - '@babel/core': 7.23.3 - '@babel/generator': 7.23.4 - '@babel/parser': 7.23.6 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) - '@babel/preset-env': 7.23.6(@babel/core@7.23.3) - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/mdx1-csf': 0.0.1(@babel/core@7.23.3) - core-js: 3.28.0 - fs-extra: 9.1.0 - global: 4.4.0 - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@storybook/csf@0.0.1: - resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} - dependencies: - lodash: 4.17.21 - dev: true - - /@storybook/csf@0.0.2--canary.4566f4d.1: - resolution: {integrity: sha512-9OVvMVh3t9znYZwb0Svf/YQoxX2gVOeQTGe2bses2yj+a3+OJnCrUF3/hGv6Em7KujtOdL2LL+JnG49oMVGFgQ==} - dependencies: - lodash: 4.17.21 - dev: true - - /@storybook/docs-tools@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-o+rAWPRGifjBF5xZzTKOqnHN3XQWkl0QFJYVDIiJYJrVll7ExCkpEq/PahOGzIBBV+tpMstJgmKM3lr/lu/jmg==} - dependencies: - '@babel/core': 7.23.3 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - doctrine: 3.0.0 - lodash: 4.17.21 - regenerator-runtime: 0.13.11 - transitivePeerDependencies: - - react - - react-dom - - supports-color - dev: true - - /@storybook/manager-webpack4@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2): - resolution: {integrity: sha512-5VJZwmQU6AgdsBPsYdu886UKBHQ9SJEnFMaeUxKEclXk+iRsmbzlL4GHKyVd6oGX/ZaecZtcHPR6xrzmA4Ziew==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) - '@babel/preset-react': 7.23.3(@babel/core@7.23.3) - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-client': 6.5.16(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@4.47.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/node-logger': 6.5.16 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/ui': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@types/node': 16.18.68 - '@types/webpack': 4.41.38 - babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@4.47.0) - case-sensitive-paths-webpack-plugin: 2.4.0 - chalk: 4.1.2 - core-js: 3.28.0 - css-loader: 3.6.0(webpack@4.47.0) - express: 4.18.2 - file-loader: 6.2.0(webpack@4.47.0) - find-up: 5.0.0 - fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@4.47.0) - node-fetch: 2.6.7 - pnp-webpack-plugin: 1.6.4(typescript@5.3.2) - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - read-pkg-up: 7.0.1 - regenerator-runtime: 0.13.11 - resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@4.47.0) - telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@4.47.0) - ts-dedent: 2.2.0 - typescript: 5.3.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@4.47.0) - util-deprecate: 1.0.2 - webpack: 4.47.0 - webpack-dev-middleware: 3.7.3(webpack@4.47.0) - webpack-virtual-modules: 0.2.2 - transitivePeerDependencies: - - bluebird - - encoding - - eslint - - supports-color - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/mdx1-csf@0.0.1(@babel/core@7.23.3): - resolution: {integrity: sha512-4biZIWWzoWlCarMZmTpqcJNgo/RBesYZwGFbQeXiGYsswuvfWARZnW9RE9aUEMZ4XPn7B1N3EKkWcdcWe/K2tg==} - dependencies: - '@babel/generator': 7.23.4 - '@babel/parser': 7.23.6 - '@babel/preset-env': 7.23.6(@babel/core@7.23.3) - '@babel/types': 7.23.4 - '@mdx-js/mdx': 1.6.22 - '@types/lodash': 4.14.202 - js-string-escape: 1.0.1 - loader-utils: 2.0.4 - lodash: 4.17.21 - prettier: 2.3.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - - /@storybook/node-logger@6.5.16: - resolution: {integrity: sha512-YjhBKrclQtjhqFNSO+BZK+RXOx6EQypAELJKoLFaawg331e8VUfvUuRCNB3fcEWp8G9oH13PQQte0OTjLyyOYg==} - dependencies: - '@types/npmlog': 4.1.6 - chalk: 4.1.2 - core-js: 3.28.0 - npmlog: 5.0.1 - pretty-hrtime: 1.0.3 - dev: true - - /@storybook/postinstall@6.5.16: - resolution: {integrity: sha512-08K2q+qN6pqyPW7PHLCZ5G5Xa6Wosd6t0F16PQ4abX2ItlJLabVoJN5mZ0gm/aeLTjD8QYr8IDvacu4eXh0SVA==} - dependencies: - core-js: 3.28.0 - dev: true - - /@storybook/preset-scss@1.0.3(css-loader@4.3.0)(sass-loader@9.0.3)(style-loader@1.3.0): - resolution: {integrity: sha512-o9Iz6wxPeNENrQa2mKlsDKynBfqU2uWaRP80HeWp4TkGgf7/x3DVF2O7yi9N0x/PI1qzzTTpxlQ90D62XmpiTw==} - peerDependencies: - css-loader: '*' - sass-loader: '*' - style-loader: '*' - dependencies: - css-loader: 4.3.0(webpack@5.89.0) - sass-loader: 9.0.3(sass@1.69.5)(webpack@5.89.0) - style-loader: 1.3.0(webpack@5.89.0) - dev: true - - /@storybook/preview-web@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-IJnvfe2sKCfk7apN9Fu9U8qibbarrPX5JB55ZzK1amSHVmSDuYk5MIMc/U3NnSQNnvd1DO5v/zMcGgj563hrtg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - ansi-to-html: 0.6.15 - core-js: 3.28.0 - global: 4.4.0 - lodash: 4.17.21 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - unfetch: 4.2.0 - util-deprecate: 1.0.2 - dev: true - - /@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-eVg3BxlOm2P+chijHBTByr90IZVUtgRW56qEOLX7xlww2NBuKrcavBlcmn+HH7GIUktquWkMPtvy6e0W0NgA5w==} - peerDependencies: - typescript: '>= 3.x' - webpack: '>= 4' - dependencies: - debug: 4.3.4 - endent: 2.1.0 - find-cache-dir: 3.3.2 - flat-cache: 3.2.0 - micromatch: 4.0.5 - react-docgen-typescript: 2.2.2(typescript@5.3.2) - tslib: 2.6.2 - typescript: 5.3.2 - webpack: 5.89.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@storybook/react@6.5.16(@babel/core@7.23.3)(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(require-from-string@2.0.2)(typescript@5.3.2): - resolution: {integrity: sha512-cBtNlOzf/MySpNLBK22lJ8wFU22HnfTB2xJyBk7W7Zi71Lm7Uxkhv1Pz8HdiQndJ0SlsAAQOWjQYsSZsGkZIaA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - '@babel/core': ^7.11.5 - '@storybook/builder-webpack4': '*' - '@storybook/builder-webpack5': '*' - '@storybook/manager-webpack4': '*' - '@storybook/manager-webpack5': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - require-from-string: ^2.0.2 - typescript: '*' - peerDependenciesMeta: - '@babel/core': - optional: true - '@storybook/builder-webpack4': - optional: true - '@storybook/builder-webpack5': - optional: true - '@storybook/manager-webpack4': - optional: true - '@storybook/manager-webpack5': - optional: true - typescript: - optional: true - dependencies: - '@babel/core': 7.23.3 - '@babel/preset-flow': 7.23.3(@babel/core@7.23.3) - '@babel/preset-react': 7.23.3(@babel/core@7.23.3) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.11.0)(webpack@5.89.0) - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2)(webpack@5.89.0) - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/docs-tools': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.3.2)(webpack@5.89.0) - '@storybook/semver': 7.3.2 - '@storybook/store': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@types/estree': 0.0.51 - '@types/node': 16.18.68 - '@types/webpack-env': 1.18.4 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - babel-plugin-add-react-displayname: 0.0.5 - babel-plugin-react-docgen: 4.2.1 - core-js: 3.28.0 - escodegen: 2.1.0 - fs-extra: 9.1.0 - global: 4.4.0 - html-tags: 3.3.1 - lodash: 4.17.21 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-element-to-jsx-string: 14.3.4(react-dom@16.14.0)(react@16.14.0) - react-refresh: 0.11.0 - read-pkg-up: 7.0.1 - regenerator-runtime: 0.13.11 - require-from-string: 2.0.2 - ts-dedent: 2.2.0 - typescript: 5.3.2 - util-deprecate: 1.0.2 - webpack: 5.89.0 - transitivePeerDependencies: - - '@storybook/mdx2-csf' - - '@swc/core' - - '@types/webpack' - - bluebird - - bufferutil - - encoding - - esbuild - - eslint - - sockjs-client - - supports-color - - type-fest - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - webpack-command - - webpack-dev-server - - webpack-hot-middleware - - webpack-plugin-serve - dev: true - - /@storybook/router@5.3.21(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-c29m5UikK5Q1lyd6FltOGFhIcpd6PIb855YS3OUNe3F6ZA1tfJ+aNKrCBc65d1c+fvCGG76dYYYv0RvwEmKXXg==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@reach/router': 1.3.4(react-dom@16.14.0)(react@16.14.0) - '@storybook/csf': 0.0.1 - '@types/reach__router': 1.3.14 - core-js: 3.28.0 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - util-deprecate: 1.0.2 - dev: true - - /@storybook/router@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-ZgeP8a5YV/iuKbv31V8DjPxlV4AzorRiR8OuSt/KqaiYXNXlOoQDz/qMmiNcrshrfLpmkzoq7fSo4T8lWo2UwQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/client-logger': 6.5.16 - core-js: 3.28.0 - memoizerific: 1.11.3 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - dev: true - - /@storybook/semver@7.3.2: - resolution: {integrity: sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - core-js: 3.28.0 - find-up: 4.1.0 - dev: true - - /@storybook/source-loader@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-fyVl4jrM/5JLrb48aqXPu7sTsmySQaVGFp1zfeqvPPlJRFMastDrePm5XGPN7Qjv1wsKmpuBvuweFKOT1pru3g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.28.0 - estraverse: 5.3.0 - global: 4.4.0 - loader-utils: 2.0.4 - lodash: 4.17.21 - prettier: 2.3.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - dev: true - - /@storybook/store@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-g+bVL5hmMq/9cM51K04e37OviUPHT0rHHrRm5wj/hrf18Kd9120b3sxdQ5Dc+HZ292yuME0n+cyrQPTYx9Epmw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.28.0 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - slash: 3.0.0 - stable: 0.1.8 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - - /@storybook/telemetry@6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2): - resolution: {integrity: sha512-CWr5Uko1l9jJW88yTXsZTj/3GTabPvw0o7pDPOXPp8JRZiJTxv1JFaFCafhK9UzYbgcRuGfCC8kEWPZims7iKA==} - dependencies: - '@storybook/client-logger': 6.5.16 - '@storybook/core-common': 6.5.16(eslint@8.54.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.2) - chalk: 4.1.2 - core-js: 3.28.0 - detect-package-manager: 2.0.1 - fetch-retry: 5.0.6 - fs-extra: 9.1.0 - global: 4.4.0 - isomorphic-unfetch: 3.1.0 - nanoid: 3.3.7 - read-pkg-up: 7.0.1 - regenerator-runtime: 0.13.11 - transitivePeerDependencies: - - encoding - - eslint - - react - - react-dom - - supports-color - - typescript - - vue-template-compiler - - webpack-cli - - webpack-command - dev: true - - /@storybook/theming@5.3.21(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-FZbxjizqdO9lV5LUixPio/7+6UdPiswCzTJn8Hcot9uwwgfnrViRdN7xyjmSYRqv9nHP3OlYbtdeCAgZ4aPq8g==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@emotion/core': 10.3.1(react@16.14.0) - '@emotion/styled': 10.3.0(@emotion/core@10.3.1)(react@16.14.0) - '@storybook/client-logger': 5.3.21 - core-js: 3.28.0 - deep-object-diff: 1.1.9 - emotion-theming: 10.3.0(@emotion/core@10.3.1)(react@16.14.0) - global: 4.4.0 - memoizerific: 1.11.3 - polished: 3.7.2 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - resolve-from: 5.0.0 - ts-dedent: 1.2.0 - dev: true - - /@storybook/theming@5.3.22(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-YwS7tTeKW5gQvC+lYhghHi5ranEtWCAxfqM5WbnAnEkvtSAFBvofmtZQxATTmhy/eVvkQAJiSpe/hFsbnpsZLg==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@emotion/core': 10.3.1(react@16.14.0) - '@emotion/styled': 10.3.0(@emotion/core@10.3.1)(react@16.14.0) - '@storybook/client-logger': 5.3.22 - core-js: 3.28.0 - deep-object-diff: 1.1.9 - emotion-theming: 10.3.0(@emotion/core@10.3.1)(react@16.14.0) - global: 4.4.0 - memoizerific: 1.11.3 - polished: 3.7.2 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - resolve-from: 5.0.0 - ts-dedent: 1.2.0 - dev: true - - /@storybook/theming@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/client-logger': 6.5.16 - core-js: 3.28.0 - memoizerific: 1.11.3 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - dev: true - - /@storybook/ui@6.5.16(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-rHn/n12WM8BaXtZ3IApNZCiS+C4Oc5+Lkl4MoctX8V7QSml0SxZBB5hsJ/AiWkgbRxjQpa/L/Nt7/Qw0FjTH/A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/addons': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/api': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 6.5.16 - '@storybook/router': 6.5.16(react-dom@16.14.0)(react@16.14.0) - '@storybook/semver': 7.3.2 - '@storybook/theming': 6.5.16(react-dom@16.14.0)(react@16.14.0) - core-js: 3.28.0 - memoizerific: 1.11.3 - qs: 6.11.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - regenerator-runtime: 0.13.11 - resolve-from: 5.0.0 - dev: true - /@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31): resolution: {integrity: sha512-XOz5CAe49kS95p5yRd+DAIWDojTjfmyAQ4bbDlXMdbZTQ5t0ThjSLvWI6JI2uiS7MFurVBkZ6zUqcimzcLTBoQ==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -6954,6 +2935,1036 @@ packages: minimatch: 9.0.3 dev: true + /@turf/along@6.5.0: + resolution: {integrity: sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==} + dependencies: + '@turf/bearing': 6.5.0 + '@turf/destination': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/angle@6.5.0: + resolution: {integrity: sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==} + dependencies: + '@turf/bearing': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/rhumb-bearing': 6.5.0 + dev: false + + /@turf/area@6.5.0: + resolution: {integrity: sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/bbox-clip@6.5.0: + resolution: {integrity: sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/bbox-polygon@6.5.0: + resolution: {integrity: sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/bbox@6.5.0: + resolution: {integrity: sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/bearing@6.5.0: + resolution: {integrity: sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/bezier-spline@6.5.0: + resolution: {integrity: sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/boolean-clockwise@6.5.0: + resolution: {integrity: sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/boolean-contains@6.5.0: + resolution: {integrity: sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/boolean-point-on-line': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/boolean-crosses@6.5.0: + resolution: {integrity: sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==} + dependencies: + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-intersect': 6.5.0 + '@turf/polygon-to-line': 6.5.0 + dev: false + + /@turf/boolean-disjoint@6.5.0: + resolution: {integrity: sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==} + dependencies: + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/line-intersect': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/polygon-to-line': 6.5.0 + dev: false + + /@turf/boolean-equal@6.5.0: + resolution: {integrity: sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==} + dependencies: + '@turf/clean-coords': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + geojson-equality: 0.1.6 + dev: false + + /@turf/boolean-intersects@6.5.0: + resolution: {integrity: sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==} + dependencies: + '@turf/boolean-disjoint': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/boolean-overlap@6.5.0: + resolution: {integrity: sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-intersect': 6.5.0 + '@turf/line-overlap': 6.5.0 + '@turf/meta': 6.5.0 + geojson-equality: 0.1.6 + dev: false + + /@turf/boolean-parallel@6.5.0: + resolution: {integrity: sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==} + dependencies: + '@turf/clean-coords': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/line-segment': 6.5.0 + '@turf/rhumb-bearing': 6.5.0 + dev: false + + /@turf/boolean-point-in-polygon@6.5.0: + resolution: {integrity: sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/boolean-point-on-line@6.5.0: + resolution: {integrity: sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/boolean-within@6.5.0: + resolution: {integrity: sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/boolean-point-on-line': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/buffer@6.5.0: + resolution: {integrity: sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/center': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/projection': 6.5.0 + d3-geo: 1.7.1 + turf-jsts: 1.2.3 + dev: false + + /@turf/center-mean@6.5.0: + resolution: {integrity: sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/center-median@6.5.0: + resolution: {integrity: sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==} + dependencies: + '@turf/center-mean': 6.5.0 + '@turf/centroid': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/center-of-mass@6.5.0: + resolution: {integrity: sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==} + dependencies: + '@turf/centroid': 6.5.0 + '@turf/convex': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/center@6.5.0: + resolution: {integrity: sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/centroid@6.5.0: + resolution: {integrity: sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/circle@6.5.0: + resolution: {integrity: sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==} + dependencies: + '@turf/destination': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/clean-coords@6.5.0: + resolution: {integrity: sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/clone@6.5.0: + resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/clusters-dbscan@6.5.0: + resolution: {integrity: sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + density-clustering: 1.3.0 + dev: false + + /@turf/clusters-kmeans@6.5.0: + resolution: {integrity: sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + skmeans: 0.9.7 + dev: false + + /@turf/clusters@6.5.0: + resolution: {integrity: sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/collect@6.5.0: + resolution: {integrity: sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/helpers': 6.5.0 + rbush: 2.0.2 + dev: false + + /@turf/combine@6.5.0: + resolution: {integrity: sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/concave@6.5.0: + resolution: {integrity: sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/tin': 6.5.0 + topojson-client: 3.1.0 + topojson-server: 3.0.1 + dev: false + + /@turf/convex@6.5.0: + resolution: {integrity: sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + concaveman: 1.2.1 + dev: false + + /@turf/destination@6.5.0: + resolution: {integrity: sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/difference@6.5.0: + resolution: {integrity: sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + polygon-clipping: 0.15.7 + dev: false + + /@turf/dissolve@6.5.0: + resolution: {integrity: sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + polygon-clipping: 0.15.7 + dev: false + + /@turf/distance-weight@6.5.0: + resolution: {integrity: sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==} + dependencies: + '@turf/centroid': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/distance@6.5.0: + resolution: {integrity: sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/ellipse@6.5.0: + resolution: {integrity: sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/rhumb-destination': 6.5.0 + '@turf/transform-rotate': 6.5.0 + dev: false + + /@turf/envelope@6.5.0: + resolution: {integrity: sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/bbox-polygon': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/explode@6.5.0: + resolution: {integrity: sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/flatten@6.5.0: + resolution: {integrity: sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/flip@6.5.0: + resolution: {integrity: sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/great-circle@6.5.0: + resolution: {integrity: sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/helpers@6.5.0: + resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==} + dev: false + + /@turf/hex-grid@6.5.0: + resolution: {integrity: sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==} + dependencies: + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/intersect': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/interpolate@6.5.0: + resolution: {integrity: sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/centroid': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/hex-grid': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/point-grid': 6.5.0 + '@turf/square-grid': 6.5.0 + '@turf/triangle-grid': 6.5.0 + dev: false + + /@turf/intersect@6.5.0: + resolution: {integrity: sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + polygon-clipping: 0.15.7 + dev: false + + /@turf/invariant@6.5.0: + resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/isobands@6.5.0: + resolution: {integrity: sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==} + dependencies: + '@turf/area': 6.5.0 + '@turf/bbox': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/explode': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + object-assign: 4.1.1 + dev: false + + /@turf/isolines@6.5.0: + resolution: {integrity: sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + object-assign: 4.1.1 + dev: false + + /@turf/kinks@6.5.0: + resolution: {integrity: sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/length@6.5.0: + resolution: {integrity: sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==} + dependencies: + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/line-arc@6.5.0: + resolution: {integrity: sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==} + dependencies: + '@turf/circle': 6.5.0 + '@turf/destination': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/line-chunk@6.5.0: + resolution: {integrity: sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/length': 6.5.0 + '@turf/line-slice-along': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/line-intersect@6.5.0: + resolution: {integrity: sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-segment': 6.5.0 + '@turf/meta': 6.5.0 + geojson-rbush: 3.2.0 + dev: false + + /@turf/line-offset@6.5.0: + resolution: {integrity: sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/line-overlap@6.5.0: + resolution: {integrity: sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==} + dependencies: + '@turf/boolean-point-on-line': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-segment': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/nearest-point-on-line': 6.5.0 + deep-equal: 1.1.2 + geojson-rbush: 3.2.0 + dev: false + + /@turf/line-segment@6.5.0: + resolution: {integrity: sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/line-slice-along@6.5.0: + resolution: {integrity: sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==} + dependencies: + '@turf/bearing': 6.5.0 + '@turf/destination': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/line-slice@6.5.0: + resolution: {integrity: sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/nearest-point-on-line': 6.5.0 + dev: false + + /@turf/line-split@6.5.0: + resolution: {integrity: sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-intersect': 6.5.0 + '@turf/line-segment': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/nearest-point-on-line': 6.5.0 + '@turf/square': 6.5.0 + '@turf/truncate': 6.5.0 + geojson-rbush: 3.2.0 + dev: false + + /@turf/line-to-polygon@6.5.0: + resolution: {integrity: sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/mask@6.5.0: + resolution: {integrity: sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==} + dependencies: + '@turf/helpers': 6.5.0 + polygon-clipping: 0.15.7 + dev: false + + /@turf/meta@6.5.0: + resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/midpoint@6.5.0: + resolution: {integrity: sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==} + dependencies: + '@turf/bearing': 6.5.0 + '@turf/destination': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/moran-index@6.5.0: + resolution: {integrity: sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==} + dependencies: + '@turf/distance-weight': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/nearest-point-on-line@6.5.0: + resolution: {integrity: sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==} + dependencies: + '@turf/bearing': 6.5.0 + '@turf/destination': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-intersect': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/nearest-point-to-line@6.5.0: + resolution: {integrity: sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/point-to-line-distance': 6.5.0 + object-assign: 4.1.1 + dev: false + + /@turf/nearest-point@6.5.0: + resolution: {integrity: sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/planepoint@6.5.0: + resolution: {integrity: sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/point-grid@6.5.0: + resolution: {integrity: sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==} + dependencies: + '@turf/boolean-within': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/point-on-feature@6.5.0: + resolution: {integrity: sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==} + dependencies: + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/center': 6.5.0 + '@turf/explode': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/nearest-point': 6.5.0 + dev: false + + /@turf/point-to-line-distance@6.5.0: + resolution: {integrity: sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==} + dependencies: + '@turf/bearing': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/projection': 6.5.0 + '@turf/rhumb-bearing': 6.5.0 + '@turf/rhumb-distance': 6.5.0 + dev: false + + /@turf/points-within-polygon@6.5.0: + resolution: {integrity: sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==} + dependencies: + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/polygon-smooth@6.5.0: + resolution: {integrity: sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/polygon-tangents@6.5.0: + resolution: {integrity: sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/boolean-within': 6.5.0 + '@turf/explode': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/nearest-point': 6.5.0 + dev: false + + /@turf/polygon-to-line@6.5.0: + resolution: {integrity: sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/polygonize@6.5.0: + resolution: {integrity: sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==} + dependencies: + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/envelope': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/projection@6.5.0: + resolution: {integrity: sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/random@6.5.0: + resolution: {integrity: sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/rectangle-grid@6.5.0: + resolution: {integrity: sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==} + dependencies: + '@turf/boolean-intersects': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/rewind@6.5.0: + resolution: {integrity: sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==} + dependencies: + '@turf/boolean-clockwise': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/rhumb-bearing@6.5.0: + resolution: {integrity: sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/rhumb-destination@6.5.0: + resolution: {integrity: sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/rhumb-distance@6.5.0: + resolution: {integrity: sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: false + + /@turf/sample@6.5.0: + resolution: {integrity: sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/sector@6.5.0: + resolution: {integrity: sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==} + dependencies: + '@turf/circle': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/line-arc': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/shortest-path@6.5.0: + resolution: {integrity: sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/bbox-polygon': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/clean-coords': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/transform-scale': 6.5.0 + dev: false + + /@turf/simplify@6.5.0: + resolution: {integrity: sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==} + dependencies: + '@turf/clean-coords': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/square-grid@6.5.0: + resolution: {integrity: sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/rectangle-grid': 6.5.0 + dev: false + + /@turf/square@6.5.0: + resolution: {integrity: sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==} + dependencies: + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + dev: false + + /@turf/standard-deviational-ellipse@6.5.0: + resolution: {integrity: sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==} + dependencies: + '@turf/center-mean': 6.5.0 + '@turf/ellipse': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/points-within-polygon': 6.5.0 + dev: false + + /@turf/tag@6.5.0: + resolution: {integrity: sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==} + dependencies: + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/tesselate@6.5.0: + resolution: {integrity: sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==} + dependencies: + '@turf/helpers': 6.5.0 + earcut: 2.2.4 + dev: false + + /@turf/tin@6.5.0: + resolution: {integrity: sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==} + dependencies: + '@turf/helpers': 6.5.0 + dev: false + + /@turf/transform-rotate@6.5.0: + resolution: {integrity: sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==} + dependencies: + '@turf/centroid': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/rhumb-bearing': 6.5.0 + '@turf/rhumb-destination': 6.5.0 + '@turf/rhumb-distance': 6.5.0 + dev: false + + /@turf/transform-scale@6.5.0: + resolution: {integrity: sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/center': 6.5.0 + '@turf/centroid': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/rhumb-bearing': 6.5.0 + '@turf/rhumb-destination': 6.5.0 + '@turf/rhumb-distance': 6.5.0 + dev: false + + /@turf/transform-translate@6.5.0: + resolution: {integrity: sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==} + dependencies: + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/rhumb-destination': 6.5.0 + dev: false + + /@turf/triangle-grid@6.5.0: + resolution: {integrity: sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==} + dependencies: + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/intersect': 6.5.0 + dev: false + + /@turf/truncate@6.5.0: + resolution: {integrity: sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: false + + /@turf/turf@6.5.0: + resolution: {integrity: sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==} + dependencies: + '@turf/along': 6.5.0 + '@turf/angle': 6.5.0 + '@turf/area': 6.5.0 + '@turf/bbox': 6.5.0 + '@turf/bbox-clip': 6.5.0 + '@turf/bbox-polygon': 6.5.0 + '@turf/bearing': 6.5.0 + '@turf/bezier-spline': 6.5.0 + '@turf/boolean-clockwise': 6.5.0 + '@turf/boolean-contains': 6.5.0 + '@turf/boolean-crosses': 6.5.0 + '@turf/boolean-disjoint': 6.5.0 + '@turf/boolean-equal': 6.5.0 + '@turf/boolean-intersects': 6.5.0 + '@turf/boolean-overlap': 6.5.0 + '@turf/boolean-parallel': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/boolean-point-on-line': 6.5.0 + '@turf/boolean-within': 6.5.0 + '@turf/buffer': 6.5.0 + '@turf/center': 6.5.0 + '@turf/center-mean': 6.5.0 + '@turf/center-median': 6.5.0 + '@turf/center-of-mass': 6.5.0 + '@turf/centroid': 6.5.0 + '@turf/circle': 6.5.0 + '@turf/clean-coords': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/clusters': 6.5.0 + '@turf/clusters-dbscan': 6.5.0 + '@turf/clusters-kmeans': 6.5.0 + '@turf/collect': 6.5.0 + '@turf/combine': 6.5.0 + '@turf/concave': 6.5.0 + '@turf/convex': 6.5.0 + '@turf/destination': 6.5.0 + '@turf/difference': 6.5.0 + '@turf/dissolve': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/distance-weight': 6.5.0 + '@turf/ellipse': 6.5.0 + '@turf/envelope': 6.5.0 + '@turf/explode': 6.5.0 + '@turf/flatten': 6.5.0 + '@turf/flip': 6.5.0 + '@turf/great-circle': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/hex-grid': 6.5.0 + '@turf/interpolate': 6.5.0 + '@turf/intersect': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/isobands': 6.5.0 + '@turf/isolines': 6.5.0 + '@turf/kinks': 6.5.0 + '@turf/length': 6.5.0 + '@turf/line-arc': 6.5.0 + '@turf/line-chunk': 6.5.0 + '@turf/line-intersect': 6.5.0 + '@turf/line-offset': 6.5.0 + '@turf/line-overlap': 6.5.0 + '@turf/line-segment': 6.5.0 + '@turf/line-slice': 6.5.0 + '@turf/line-slice-along': 6.5.0 + '@turf/line-split': 6.5.0 + '@turf/line-to-polygon': 6.5.0 + '@turf/mask': 6.5.0 + '@turf/meta': 6.5.0 + '@turf/midpoint': 6.5.0 + '@turf/moran-index': 6.5.0 + '@turf/nearest-point': 6.5.0 + '@turf/nearest-point-on-line': 6.5.0 + '@turf/nearest-point-to-line': 6.5.0 + '@turf/planepoint': 6.5.0 + '@turf/point-grid': 6.5.0 + '@turf/point-on-feature': 6.5.0 + '@turf/point-to-line-distance': 6.5.0 + '@turf/points-within-polygon': 6.5.0 + '@turf/polygon-smooth': 6.5.0 + '@turf/polygon-tangents': 6.5.0 + '@turf/polygon-to-line': 6.5.0 + '@turf/polygonize': 6.5.0 + '@turf/projection': 6.5.0 + '@turf/random': 6.5.0 + '@turf/rewind': 6.5.0 + '@turf/rhumb-bearing': 6.5.0 + '@turf/rhumb-destination': 6.5.0 + '@turf/rhumb-distance': 6.5.0 + '@turf/sample': 6.5.0 + '@turf/sector': 6.5.0 + '@turf/shortest-path': 6.5.0 + '@turf/simplify': 6.5.0 + '@turf/square': 6.5.0 + '@turf/square-grid': 6.5.0 + '@turf/standard-deviational-ellipse': 6.5.0 + '@turf/tag': 6.5.0 + '@turf/tesselate': 6.5.0 + '@turf/tin': 6.5.0 + '@turf/transform-rotate': 6.5.0 + '@turf/transform-scale': 6.5.0 + '@turf/transform-translate': 6.5.0 + '@turf/triangle-grid': 6.5.0 + '@turf/truncate': 6.5.0 + '@turf/union': 6.5.0 + '@turf/unkink-polygon': 6.5.0 + '@turf/voronoi': 6.5.0 + dev: false + + /@turf/union@6.5.0: + resolution: {integrity: sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + polygon-clipping: 0.15.7 + dev: false + + /@turf/unkink-polygon@6.5.0: + resolution: {integrity: sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==} + dependencies: + '@turf/area': 6.5.0 + '@turf/boolean-point-in-polygon': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + rbush: 2.0.2 + dev: false + + /@turf/voronoi@6.5.0: + resolution: {integrity: sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + d3-voronoi: 1.1.2 + dev: false + /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true @@ -7017,10 +4028,6 @@ packages: '@types/estree': 1.0.5 dev: true - /@types/estree@0.0.51: - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - dev: true - /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true @@ -7036,19 +4043,9 @@ packages: '@types/node': 20.10.0 dev: true - /@types/glob@7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.10.0 - dev: true - - /@types/glob@8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.10.0 - dev: true + /@types/geojson@7946.0.8: + resolution: {integrity: sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==} + dev: false /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -7073,18 +4070,10 @@ packages: hoist-non-react-statics: 3.3.2 dev: true - /@types/html-minifier-terser@5.1.2: - resolution: {integrity: sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==} - dev: true - /@types/html-minifier-terser@6.1.0: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} dev: true - /@types/is-function@1.0.3: - resolution: {integrity: sha512-/CLhCW79JUeLKznI6mbVieGbl4QU5Hfn+6udw1YHZoofASjbQ5zaP5LzAUZYDpRYEjS4/P+DhEgyJ/PQmGGTWw==} - dev: true - /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true @@ -7141,10 +4130,6 @@ packages: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - /@types/minimist@1.2.5: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true @@ -7153,21 +4138,10 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node-fetch@2.6.9: - resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==} - dependencies: - '@types/node': 20.10.0 - form-data: 4.0.0 - dev: true - /@types/node@12.20.55: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@16.18.68: - resolution: {integrity: sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg==} - dev: true - /@types/node@17.0.45: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true @@ -7186,28 +4160,14 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/npmlog@4.1.6: - resolution: {integrity: sha512-0l3z16vnlJGl2Mi/rgJFrdwfLZ4jfNYgE6ZShEpjqhHuGTqdEzNles03NpYHwUMVYZa+Tj46UxKIEpE78lQ3DQ==} - dependencies: - '@types/node': 20.10.0 - dev: true - /@types/parse-json@4.0.2: resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} dev: true - /@types/parse5@5.0.3: - resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} - dev: true - /@types/parse5@6.0.3: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: true - /@types/pretty-hrtime@1.0.3: - resolution: {integrity: sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==} - dev: true - /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} dev: true @@ -7216,40 +4176,18 @@ packages: resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} dev: true - /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} - dev: true - /@types/ramda@0.29.3: resolution: {integrity: sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==} dependencies: types-ramda: 0.29.6 dev: true - /@types/reach__router@1.3.14: - resolution: {integrity: sha512-2iOQZbwfw1ZYwYK+dRp7D1b8kU6GlFPJ/iEt33zDYxfId5CAKT7vX3lN/XmJ+FaMZ3FyB99tPgfajcmZnTqdtg==} - dependencies: - '@types/react': 18.2.39 - dev: true - /@types/react-dom@18.2.17: resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} dependencies: '@types/react': 18.2.39 dev: true - /@types/react-syntax-highlighter@11.0.4: - resolution: {integrity: sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg==} - dependencies: - '@types/react': 18.2.39 - dev: true - - /@types/react-textarea-autosize@4.3.6: - resolution: {integrity: sha512-cTf8tCem0c8A7CERYbTuF+bRFaqYu7N7HLCa6ZhUhDx8XnUsTpGx5udMWljt87JpciUKuUkImKPEsy6kcKhrcQ==} - dependencies: - '@types/react': 18.2.39 - dev: true - /@types/react@18.2.39: resolution: {integrity: sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==} dependencies: @@ -7278,57 +4216,14 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@types/source-list-map@0.1.6: - resolution: {integrity: sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==} - dev: true - - /@types/tapable@1.0.12: - resolution: {integrity: sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==} - dev: true - - /@types/uglify-js@3.17.4: - resolution: {integrity: sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==} - dependencies: - source-map: 0.6.1 - dev: true - /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true - /@types/webpack-env@1.18.4: - resolution: {integrity: sha512-I6e+9+HtWADAWeeJWDFQtdk4EVSAbj6Rtz4q8fJ7mSr1M0jzlFcs8/HZ+Xb5SHzVm1dxH7aUiI+A8kA8Gcrm0A==} - dev: true - - /@types/webpack-sources@3.2.3: - resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==} - dependencies: - '@types/node': 20.10.0 - '@types/source-list-map': 0.1.6 - source-map: 0.7.4 - dev: true - - /@types/webpack@4.41.38: - resolution: {integrity: sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==} - dependencies: - '@types/node': 20.10.0 - '@types/tapable': 1.0.12 - '@types/uglify-js': 3.17.4 - '@types/webpack-sources': 3.2.3 - anymatch: 3.1.3 - source-map: 0.6.1 - dev: true - /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@types/yargs@15.0.19: - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} - dependencies: - '@types/yargs-parser': 21.0.3 - dev: true - /@types/yargs@16.0.9: resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} dependencies: @@ -7979,16 +4874,6 @@ packages: - supports-color dev: true - /@vue/compiler-sfc@2.7.16: - resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} - dependencies: - '@babel/parser': 7.23.6 - postcss: 8.4.32 - source-map: 0.6.1 - optionalDependencies: - prettier: 2.8.8 - dev: true - /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} dependencies: @@ -7996,54 +4881,18 @@ packages: '@webassemblyjs/helper-wasm-bytecode': 1.11.6 dev: true - /@webassemblyjs/ast@1.9.0: - resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} - dependencies: - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - dev: true - /@webassemblyjs/floating-point-hex-parser@1.11.6: resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} dev: true - /@webassemblyjs/floating-point-hex-parser@1.9.0: - resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==} - dev: true - /@webassemblyjs/helper-api-error@1.11.6: resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} dev: true - /@webassemblyjs/helper-api-error@1.9.0: - resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==} - dev: true - /@webassemblyjs/helper-buffer@1.11.6: resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} dev: true - /@webassemblyjs/helper-buffer@1.9.0: - resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} - dev: true - - /@webassemblyjs/helper-code-frame@1.9.0: - resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==} - dependencies: - '@webassemblyjs/wast-printer': 1.9.0 - dev: true - - /@webassemblyjs/helper-fsm@1.9.0: - resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==} - dev: true - - /@webassemblyjs/helper-module-context@1.9.0: - resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - dev: true - /@webassemblyjs/helper-numbers@1.11.6: resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} dependencies: @@ -8056,10 +4905,6 @@ packages: resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} dev: true - /@webassemblyjs/helper-wasm-bytecode@1.9.0: - resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==} - dev: true - /@webassemblyjs/helper-wasm-section@1.11.6: resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} dependencies: @@ -8069,47 +4914,22 @@ packages: '@webassemblyjs/wasm-gen': 1.11.6 dev: true - /@webassemblyjs/helper-wasm-section@1.9.0: - resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - dev: true - /@webassemblyjs/ieee754@1.11.6: resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} dependencies: '@xtuc/ieee754': 1.2.0 dev: true - /@webassemblyjs/ieee754@1.9.0: - resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==} - dependencies: - '@xtuc/ieee754': 1.2.0 - dev: true - /@webassemblyjs/leb128@1.11.6: resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} dependencies: '@xtuc/long': 4.2.2 dev: true - /@webassemblyjs/leb128@1.9.0: - resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==} - dependencies: - '@xtuc/long': 4.2.2 - dev: true - /@webassemblyjs/utf8@1.11.6: resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} dev: true - /@webassemblyjs/utf8@1.9.0: - resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==} - dev: true - /@webassemblyjs/wasm-edit@1.11.6: resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} dependencies: @@ -8123,19 +4943,6 @@ packages: '@webassemblyjs/wast-printer': 1.11.6 dev: true - /@webassemblyjs/wasm-edit@1.9.0: - resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/helper-wasm-section': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-opt': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - '@webassemblyjs/wast-printer': 1.9.0 - dev: true - /@webassemblyjs/wasm-gen@1.11.6: resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} dependencies: @@ -8146,16 +4953,6 @@ packages: '@webassemblyjs/utf8': 1.11.6 dev: true - /@webassemblyjs/wasm-gen@1.9.0: - resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 - dev: true - /@webassemblyjs/wasm-opt@1.11.6: resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} dependencies: @@ -8165,15 +4962,6 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 dev: true - /@webassemblyjs/wasm-opt@1.9.0: - resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - dev: true - /@webassemblyjs/wasm-parser@1.11.6: resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} dependencies: @@ -8185,28 +4973,6 @@ packages: '@webassemblyjs/utf8': 1.11.6 dev: true - /@webassemblyjs/wasm-parser@1.9.0: - resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 - dev: true - - /@webassemblyjs/wast-parser@1.9.0: - resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/floating-point-hex-parser': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-code-frame': 1.9.0 - '@webassemblyjs/helper-fsm': 1.9.0 - '@xtuc/long': 4.2.2 - dev: true - /@webassemblyjs/wast-printer@1.11.6: resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} dependencies: @@ -8214,14 +4980,6 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@webassemblyjs/wast-printer@1.9.0: - resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - '@xtuc/long': 4.2.2 - dev: true - /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: true @@ -8242,15 +5000,6 @@ packages: tslib: 2.6.2 dev: true - /@zkochan/cmd-shim@3.1.0: - resolution: {integrity: sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==} - engines: {node: '>=6'} - dependencies: - is-windows: 1.0.2 - mkdirp-promise: 5.0.1 - mz: 2.7.0 - dev: true - /@zkochan/js-yaml@0.0.6: resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} hasBin: true @@ -8270,14 +5019,6 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.11.2): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: @@ -8286,14 +5027,6 @@ packages: acorn: 8.11.2 dev: true - /acorn-jsx@5.3.2(acorn@7.4.1): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 - dev: true - /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -8302,28 +5035,11 @@ packages: acorn: 8.11.2 dev: true - /acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - /acorn-walk@8.3.0: resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} dev: true - /acorn@6.4.2: - resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.11.2: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} @@ -8334,22 +5050,6 @@ packages: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true - /add@2.0.6: - resolution: {integrity: sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q==} - dev: true - - /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - dev: true - - /agent-base@4.2.1: - resolution: {integrity: sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==} - engines: {node: '>= 4.0.0'} - dependencies: - es6-promisify: 5.0.0 - dev: true - /agent-base@4.3.0: resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==} engines: {node: '>= 4.0.0'} @@ -8411,36 +5111,6 @@ packages: tslib: 2.6.2 dev: false - /airbnb-js-shims@2.2.1: - resolution: {integrity: sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==} - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - es5-shim: 4.6.7 - es6-shim: 0.35.8 - function.prototype.name: 1.1.6 - globalthis: 1.0.3 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.getownpropertydescriptors: 2.1.7 - object.values: 1.1.7 - promise.allsettled: 1.0.7 - promise.prototype.finally: 3.1.7 - string.prototype.matchall: 4.0.10 - string.prototype.padend: 3.1.5 - string.prototype.padstart: 3.1.5 - symbol.prototype.description: 1.0.5 - dev: true - - /ajv-errors@1.0.1(ajv@6.12.6): - resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} - peerDependencies: - ajv: '>=5.0.0' - dependencies: - ajv: 6.12.6 - dev: true - /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -8477,17 +5147,6 @@ packages: string-width: 2.1.1 dev: true - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: true - - /ansi-colors@3.2.4: - resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==} - engines: {node: '>=6'} - dev: true - /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -8518,11 +5177,6 @@ packages: hasBin: true dev: true - /ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - dev: true - /ansi-regex@3.0.1: resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} engines: {node: '>=4'} @@ -8567,14 +5221,6 @@ packages: engines: {node: '>=12'} dev: true - /ansi-to-html@0.6.15: - resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - entities: 2.2.0 - dev: true - /antd@5.12.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-m9r9VhTmANS4kdBwHcxI4QWIGoZh3LspXNb2SxoezRSUZ9RUFpf+gO0AjPx8EPeO/nLKsHAoCSLza9r041bAgw==} peerDependencies: @@ -8591,7 +5237,7 @@ packages: '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) '@rc-component/tour': 1.11.1(react-dom@18.2.0)(react@18.2.0) '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 copy-to-clipboard: 3.3.3 dayjs: 1.11.10 qrcode.react: 3.1.0(react@18.2.0) @@ -8637,19 +5283,6 @@ packages: - moment dev: false - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /anymatch@2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -8658,33 +5291,10 @@ packages: picomatch: 2.3.1 dev: true - /app-root-dir@1.0.2: - resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} - dev: true - /aproba@1.2.0: resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} dev: true - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - - /are-we-there-yet@1.1.7: - resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} - dependencies: - delegates: 1.0.0 - readable-stream: 2.3.8 - dev: true - - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: true - /are-we-there-yet@3.0.1: resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -8718,47 +5328,17 @@ packages: tslib: 2.6.2 dev: true - /arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-flatten@1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: true - /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: call-bind: 1.0.5 is-array-buffer: 3.0.2 - dev: true - - /array-differ@2.1.0: - resolution: {integrity: sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==} - engines: {node: '>=6'} - dev: true /array-differ@3.0.0: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} engines: {node: '>=8'} dev: true - /array-find-index@1.0.2: - resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} - engines: {node: '>=0.10.0'} - dev: true - - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - dev: true - /array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true @@ -8772,34 +5352,16 @@ packages: es-abstract: 1.22.3 get-intrinsic: 1.2.2 is-string: 1.0.7 - dev: true /array-tree-filter@2.1.0: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} dev: false - /array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} - dependencies: - array-uniq: 1.0.3 - dev: true - /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - dev: true - - /array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true - /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -8820,17 +5382,6 @@ packages: es-shim-unscopables: 1.0.2 dev: true - /array.prototype.map@1.0.6: - resolution: {integrity: sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-array-method-boxes-properly: 1.0.0 - is-string: 1.0.7 - dev: true - /array.prototype.reduce@1.0.6: resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} engines: {node: '>= 0.4'} @@ -8863,7 +5414,6 @@ packages: get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: true /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} @@ -8875,10 +5425,6 @@ packages: engines: {node: '>=8'} dev: true - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: true - /asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} dependencies: @@ -8888,17 +5434,6 @@ packages: safer-buffer: 2.1.2 dev: true - /asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - dev: true - /assert@1.5.1: resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} dependencies: @@ -8906,23 +5441,6 @@ packages: util: 0.10.4 dev: true - /assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: true - - /ast-types@0.14.2: - resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} - engines: {node: '>=4'} - dependencies: - tslib: 2.6.2 - dev: true - - /ast-types@0.9.6: - resolution: {integrity: sha512-qEdtR2UH78yyHX/AUNfXmJTlM48XoFZKBdwi1nzkI1mJL21cmbu0cvjxjpkXJ5NENMq42H+hNs8VLJcqXLerBQ==} - engines: {node: '>= 0.8'} - dev: true - /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -8933,12 +5451,6 @@ packages: hasBin: true dev: true - /async-each@1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - requiresBuild: true - dev: true - optional: true - /async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: false @@ -8957,15 +5469,6 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true - - /atob-lite@2.0.0: - resolution: {integrity: sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw==} - dev: true - /atob@2.1.2: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} @@ -8993,31 +5496,9 @@ packages: postcss-value-parser: 4.2.0 dev: true - /autoprefixer@9.8.8: - resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==} - hasBin: true - dependencies: - browserslist: 4.22.1 - caniuse-lite: 1.0.30001565 - normalize-range: 0.1.2 - num2fraction: 1.2.2 - picocolors: 0.2.1 - postcss: 7.0.39 - postcss-value-parser: 4.2.0 - dev: true - /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: true - - /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: true - - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: true /axios@0.18.1: resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==} @@ -9057,86 +5538,12 @@ packages: - supports-color dev: true - /babel-loader@8.3.0(@babel/core@7.23.3)(webpack@4.47.0): - resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} - engines: {node: '>= 8.9'} - peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' - dependencies: - '@babel/core': 7.23.3 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 4.47.0 - dev: true - - /babel-loader@8.3.0(@babel/core@7.23.3)(webpack@5.89.0): - resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} - engines: {node: '>= 8.9'} - peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' - dependencies: - '@babel/core': 7.23.3 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 5.89.0 - dev: true - - /babel-plugin-add-react-displayname@0.0.5: - resolution: {integrity: sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==} - dev: true - - /babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): - resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} - peerDependencies: - '@babel/core': ^7.11.6 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@mdx-js/util': 1.6.22 - dev: true - /babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.4 dev: true - /babel-plugin-emotion@10.2.2: - resolution: {integrity: sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==} - dependencies: - '@babel/helper-module-imports': 7.22.15 - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.4 - '@emotion/serialize': 0.11.16 - babel-plugin-macros: 2.8.0 - babel-plugin-syntax-jsx: 6.18.0 - convert-source-map: 1.9.0 - escape-string-regexp: 1.0.5 - find-root: 1.1.0 - source-map: 0.5.7 - dev: true - - /babel-plugin-extract-import-names@1.6.22: - resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} - dependencies: - '@babel/helper-plugin-utils': 7.10.4 - dev: true - - /babel-plugin-import-postcss@2.0.0: - resolution: {integrity: sha512-LwF0L956E7MqZtMOVQ7cotVpSpVSSynYyXgksrdli91KIeWdKkaxh8ybYmmyNqitHC0jq+cyWCKnWFn9blc9qQ==} - engines: {node: '>=8.0.0'} - dependencies: - cosmiconfig: 5.2.1 - deasync: 0.1.29 - postcss: 7.0.39 - dev: true - /babel-plugin-import@1.13.8: resolution: {integrity: sha512-36babpjra5m3gca44V6tSTomeBlPA7cHUynrE2WiQIm3rEGD9xy28MKsx5IdO45EbnpJY7Jrgd00C6Dwt/l/2Q==} dependencies: @@ -9166,23 +5573,6 @@ packages: '@types/babel__traverse': 7.20.4 dev: true - /babel-plugin-macros@2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} - dependencies: - '@babel/runtime': 7.23.4 - cosmiconfig: 6.0.0 - resolve: 1.22.8 - dev: true - - /babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - dependencies: - '@babel/runtime': 7.23.4 - cosmiconfig: 7.1.0 - resolve: 1.22.8 - dev: true - /babel-plugin-module-resolver@4.1.0: resolution: {integrity: sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==} engines: {node: '>= 8.0.0'} @@ -9194,68 +5584,6 @@ packages: resolve: 1.22.8 dev: true - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.3): - resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.3) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3@0.1.7(@babel/core@7.23.3): - resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.1.5(@babel/core@7.23.3) - core-js-compat: 3.34.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.3): - resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.3) - core-js-compat: 3.34.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.3): - resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.3) - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-react-docgen@4.2.1: - resolution: {integrity: sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==} - dependencies: - ast-types: 0.14.2 - lodash: 4.17.21 - react-docgen: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-syntax-jsx@6.18.0: - resolution: {integrity: sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==} - dev: true - /babel-plugin-transform-define@2.0.1: resolution: {integrity: sha512-7lDR1nFGSJHmhq/ScQtp9LTDmNE2yKPoLtwfiu+WQZnj84XL/J/5AZWZXwYcOwbDtUPhtg+y0yxTiP/oGDU6Kw==} engines: {node: '>= 8.x.x'} @@ -9295,10 +5623,6 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true - /bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: true - /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: true @@ -9319,36 +5643,10 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true - /base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.1 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: true - - /bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - dependencies: - tweetnacl: 0.14.5 - dev: true - /before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true - /better-opn@2.1.1: - resolution: {integrity: sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==} - engines: {node: '>8.0.0'} - dependencies: - open: 7.4.2 - dev: true - /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -9365,13 +5663,6 @@ packages: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true - /binary-extensions@1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -9383,12 +5674,6 @@ packages: engines: {node: '>=0.8'} dev: true - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - dev: true - /bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} dependencies: @@ -9416,26 +5701,6 @@ packages: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} dev: true - /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -9453,28 +5718,6 @@ packages: widest-line: 2.0.1 dev: true - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - dev: true - - /bplist-parser@0.1.1: - resolution: {integrity: sha512-2AEM0FXy8ZxVLBuqX0hqt1gDwcnz2zygEkQ6zaD5Wko/sB9paUNwlpawrFtKeHUAQUOzjVy9AO4oeonqIHKA9Q==} - requiresBuild: true - dependencies: - big-integer: 1.6.52 - dev: true - optional: true - /bplist-parser@0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} @@ -9495,24 +5738,6 @@ packages: balanced-match: 1.0.2 dev: true - /braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -9586,17 +5811,6 @@ packages: pako: 1.0.11 dev: true - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001565 - electron-to-chromium: 1.4.596 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) - dev: true - /browserslist@4.22.2: resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -9614,10 +5828,6 @@ packages: node-int64: 0.4.0 dev: true - /btoa-lite@1.0.0: - resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==} - dev: true - /buffer-alloc-unsafe@1.1.0: resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} dev: true @@ -9677,50 +5887,11 @@ packages: run-applescript: 5.0.0 dev: true - /byline@5.0.0: - resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} - engines: {node: '>=0.10.0'} - dev: true - - /byte-size@5.0.1: - resolution: {integrity: sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==} - engines: {node: '>=6.0.0'} - dev: true - /byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} dev: true - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - dev: true - - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true - - /c8@7.14.0: - resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} - engines: {node: '>=10.12.0'} - hasBin: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 2.0.0 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.6 - rimraf: 3.0.2 - test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 - yargs: 16.2.0 - yargs-parser: 20.2.9 - dev: true - /cacache@10.0.4: resolution: {integrity: sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==} dependencies: @@ -9739,52 +5910,6 @@ packages: y18n: 4.0.3 dev: true - /cacache@12.0.4: - resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} - dependencies: - bluebird: 3.7.2 - chownr: 1.1.4 - figgy-pudding: 3.5.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - infer-owner: 1.0.4 - lru-cache: 5.1.1 - mississippi: 3.0.0 - mkdirp: 0.5.6 - move-concurrently: 1.0.1 - promise-inflight: 1.0.1(bluebird@3.7.2) - rimraf: 2.7.1 - ssri: 6.0.2 - unique-filename: 1.1.1 - y18n: 4.0.3 - dev: true - - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1(bluebird@3.7.2) - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 6.2.0 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - dev: true - /cacache@16.1.3: resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -9847,64 +5972,18 @@ packages: y18n: 3.2.2 dev: true - /cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.1 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: true - /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 set-function-length: 1.1.1 - dev: true - - /call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} - dev: true - - /caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - dependencies: - callsites: 2.0.0 - dev: true - - /caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - dependencies: - caller-callsite: 2.0.0 - dev: true - - /callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - dev: true /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camel-case@3.0.0: - resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} - dependencies: - no-case: 2.3.2 - upper-case: 1.1.3 - dev: true - /camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: @@ -9912,29 +5991,6 @@ packages: tslib: 2.6.2 dev: true - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true - - /camelcase-keys@2.1.0: - resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - camelcase: 2.1.1 - map-obj: 1.0.1 - dev: true - - /camelcase-keys@4.2.0: - resolution: {integrity: sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==} - engines: {node: '>=4'} - dependencies: - camelcase: 4.1.0 - map-obj: 2.0.0 - quick-lru: 1.1.0 - dev: true - /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -9944,12 +6000,6 @@ packages: quick-lru: 4.0.1 dev: true - /camelcase@2.1.1: - resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - /camelcase@4.1.0: resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} engines: {node: '>=4'} @@ -9965,39 +6015,15 @@ packages: engines: {node: '>=10'} dev: true - /can-use-dom@0.1.0: - resolution: {integrity: sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==} - dev: true - /caniuse-lite@1.0.30001565: resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} dev: true - /capture-exit@2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} - dependencies: - rsvp: 4.8.5 - dev: true - /capture-stack-trace@1.0.2: resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==} engines: {node: '>=0.10.0'} dev: true - /case-sensitive-paths-webpack-plugin@2.4.0: - resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} - engines: {node: '>=4'} - dev: true - - /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - dev: true - - /ccount@1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - dev: true - /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: true @@ -10036,26 +6062,14 @@ packages: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} dev: true - /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: true - /character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} dev: true - /character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: true - /character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} dev: true - /character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: true - /character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} dev: true @@ -10064,29 +6078,6 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies - requiresBuild: true - dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.3 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - optionalDependencies: - fsevents: 1.2.13 - transitivePeerDependencies: - - supports-color - dev: true - optional: true - /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -10120,10 +6111,6 @@ packages: resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==} dev: true - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true - /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -10136,26 +6123,13 @@ packages: safe-buffer: 5.2.1 dev: true - /class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: true - /classnames@2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - - /clean-css@4.2.4: - resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} - engines: {node: '>= 4.0'} - dependencies: - source-map: 0.6.1 dev: true + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + /clean-css@5.3.2: resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} engines: {node: '>= 10.0'} @@ -10173,11 +6147,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: true - /cli-cursor@2.1.0: resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} engines: {node: '>=4'} @@ -10214,15 +6183,6 @@ packages: engines: {node: '>=6'} dev: true - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - dev: true - /cli-truncate@3.1.0: resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -10254,24 +6214,6 @@ packages: - react-dom dev: true - /clipboard@2.0.11: - resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==} - requiresBuild: true - dependencies: - good-listener: 1.2.2 - select: 1.1.2 - tiny-emitter: 2.1.0 - dev: true - optional: true - - /cliui@5.0.0: - resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} - dependencies: - string-width: 3.1.0 - strip-ansi: 5.2.0 - wrap-ansi: 5.1.0 - dev: true - /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: @@ -10325,11 +6267,6 @@ packages: q: 1.5.1 dev: true - /code-point-at@1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} - dev: true - /codesandbox-import-util-types@2.2.3: resolution: {integrity: sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ==} dev: true @@ -10371,18 +6308,6 @@ packages: - supports-color dev: true - /collapse-white-space@1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} - dev: true - - /collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: true - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -10451,10 +6376,6 @@ packages: delayed-stream: 1.0.0 dev: true - /comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: true - /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: true @@ -10464,27 +6385,8 @@ packages: engines: {node: '>=16'} dev: true - /commander@2.17.1: - resolution: {integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==} - dev: true - - /commander@2.19.0: - resolution: {integrity: sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==} - dev: true - /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - - /commander@6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} - dev: true /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} @@ -10507,10 +6409,6 @@ packages: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} dev: true - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true - /compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -10518,32 +6416,6 @@ packages: dot-prop: 5.3.0 dev: true - /component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - dev: true - - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /compute-scroll-into-view@3.1.0: resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} dev: false @@ -10572,12 +6444,14 @@ packages: typedarray: 0.0.6 dev: true - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + /concaveman@1.2.1: + resolution: {integrity: sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==} dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - dev: true + point-in-polygon: 1.1.0 + rbush: 3.0.1 + robust-predicates: 2.0.4 + tinyqueue: 2.0.3 + dev: false /configstore@3.1.5: resolution: {integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==} @@ -10603,26 +6477,6 @@ packages: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} dev: true - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: true - - /conventional-changelog-angular@5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - /conventional-changelog-angular@6.0.0: resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} engines: {node: '>=14'} @@ -10644,25 +6498,6 @@ packages: compare-func: 2.0.0 dev: true - /conventional-changelog-core@3.2.3: - resolution: {integrity: sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==} - engines: {node: '>=6.9.0'} - dependencies: - conventional-changelog-writer: 4.1.0 - conventional-commits-parser: 3.2.4 - dateformat: 3.0.3 - get-pkg-repo: 1.4.0 - git-raw-commits: 2.0.0 - git-remote-origin-url: 2.0.0 - git-semver-tags: 2.0.3 - lodash: 4.17.21 - normalize-package-data: 2.5.0 - q: 1.5.1 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - through2: 3.0.2 - dev: true - /conventional-changelog-core@5.0.1: resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} engines: {node: '>=14'} @@ -10680,33 +6515,11 @@ packages: read-pkg-up: 3.0.0 dev: true - /conventional-changelog-preset-loader@2.3.4: - resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} - engines: {node: '>=10'} - dev: true - /conventional-changelog-preset-loader@3.0.0: resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} engines: {node: '>=14'} dev: true - /conventional-changelog-writer@4.1.0: - resolution: {integrity: sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - compare-func: 2.0.0 - conventional-commits-filter: 2.0.7 - dateformat: 3.0.3 - handlebars: 4.7.8 - json-stringify-safe: 5.0.1 - lodash: 4.17.21 - meow: 8.1.2 - semver: 6.3.1 - split: 1.0.1 - through2: 4.0.2 - dev: true - /conventional-changelog-writer@6.0.1: resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} engines: {node: '>=14'} @@ -10721,14 +6534,6 @@ packages: split: 1.0.1 dev: true - /conventional-commits-filter@2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - dev: true - /conventional-commits-filter@3.0.0: resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} engines: {node: '>=14'} @@ -10737,19 +6542,6 @@ packages: modify-values: 1.0.1 dev: true - /conventional-commits-parser@3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - /conventional-commits-parser@4.0.0: resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} engines: {node: '>=14'} @@ -10761,21 +6553,6 @@ packages: split2: 3.2.2 dev: true - /conventional-recommended-bump@5.0.1: - resolution: {integrity: sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==} - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 2.3.4 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - git-raw-commits: 2.0.0 - git-semver-tags: 2.0.3 - meow: 4.0.1 - q: 1.5.1 - dev: true - /conventional-recommended-bump@7.0.1: resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} engines: {node: '>=14'} @@ -10790,23 +6567,10 @@ packages: meow: 8.1.2 dev: true - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true - /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - dev: true - - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: true - /copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} dependencies: @@ -10824,22 +6588,11 @@ packages: run-queue: 1.0.3 dev: true - /copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true - /copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} dependencies: toggle-selection: 1.0.6 - /core-js-compat@3.34.0: - resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} - dependencies: - browserslist: 4.22.2 - dev: true - /core-js-pure@3.33.3: resolution: {integrity: sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ==} requiresBuild: true @@ -10850,10 +6603,6 @@ packages: requiresBuild: true dev: true - /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - dev: true - /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -10880,27 +6629,6 @@ packages: typescript: 5.3.2 dev: true - /cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 - dev: true - - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - /cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} @@ -10928,33 +6656,6 @@ packages: typescript: 5.3.2 dev: true - /cp-file@7.0.0: - resolution: {integrity: sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - make-dir: 3.1.0 - nested-error-stacks: 2.1.1 - p-event: 4.2.0 - dev: true - - /cpy@8.1.2: - resolution: {integrity: sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==} - engines: {node: '>=8'} - dependencies: - arrify: 2.0.1 - cp-file: 7.0.0 - globby: 9.2.0 - has-glob: 1.0.0 - junk: 3.1.0 - nested-error-stacks: 2.1.1 - p-all: 2.1.0 - p-filter: 2.1.0 - p-map: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: @@ -10990,7 +6691,7 @@ packages: sha.js: 2.4.11 dev: true - /create-react-context@0.3.0(prop-types@15.8.1)(react@16.14.0): + /create-react-context@0.3.0(prop-types@15.8.1)(react@18.2.0): resolution: {integrity: sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==} peerDependencies: prop-types: ^15.0.0 @@ -10998,22 +6699,14 @@ packages: dependencies: gud: 1.0.0 prop-types: 15.8.1 - react: 16.14.0 + react: 18.2.0 warning: 4.0.3 - dev: true + dev: false /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - /cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true - dependencies: - cross-spawn: 7.0.3 - dev: true - /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -11022,17 +6715,6 @@ packages: which: 1.3.1 dev: true - /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -11063,14 +6745,6 @@ packages: engines: {node: '>=4'} dev: true - /css-blank-pseudo@0.1.4: - resolution: {integrity: sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - postcss: 7.0.39 - dev: true - /css-blank-pseudo@3.0.3(postcss@8.4.31): resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==} engines: {node: ^12 || ^14 || >=16} @@ -11087,15 +6761,6 @@ packages: engines: {node: '>=12 || >=16'} dev: true - /css-has-pseudo@0.10.0: - resolution: {integrity: sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 5.0.0 - dev: true - /css-has-pseudo@3.0.4(postcss@8.4.31): resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==} engines: {node: ^12 || ^14 || >=16} @@ -11107,49 +6772,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /css-loader@3.6.0(webpack@4.47.0): - resolution: {integrity: sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==} - engines: {node: '>= 8.9.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - camelcase: 5.3.1 - cssesc: 3.0.0 - icss-utils: 4.1.1 - loader-utils: 1.4.2 - normalize-path: 3.0.0 - postcss: 7.0.39 - postcss-modules-extract-imports: 2.0.0 - postcss-modules-local-by-default: 3.0.3 - postcss-modules-scope: 2.2.0 - postcss-modules-values: 3.0.0 - postcss-value-parser: 4.2.0 - schema-utils: 2.7.1 - semver: 6.3.1 - webpack: 4.47.0 - dev: true - - /css-loader@4.3.0(webpack@5.89.0): - resolution: {integrity: sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.27.0 || ^5.0.0 - dependencies: - camelcase: 6.3.0 - cssesc: 3.0.0 - icss-utils: 4.1.1 - loader-utils: 2.0.4 - postcss: 7.0.39 - postcss-modules-extract-imports: 2.0.0 - postcss-modules-local-by-default: 3.0.3 - postcss-modules-scope: 2.2.0 - postcss-modules-values: 3.0.0 - postcss-value-parser: 4.2.0 - schema-utils: 2.7.1 - semver: 7.5.4 - webpack: 5.89.0 - dev: true - /css-loader@6.7.1(webpack@5.89.0): resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==} engines: {node: '>= 12.13.0'} @@ -11167,14 +6789,6 @@ packages: webpack: 5.89.0 dev: true - /css-prefers-color-scheme@3.1.1: - resolution: {integrity: sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - postcss: 7.0.39 - dev: true - /css-prefers-color-scheme@6.0.3(postcss@8.4.31): resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==} engines: {node: ^12 || ^14 || >=16} @@ -11242,20 +6856,10 @@ packages: source-map-resolve: 0.6.0 dev: true - /cssdb@4.4.0: - resolution: {integrity: sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==} - dev: true - /cssdb@6.6.3: resolution: {integrity: sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==} dev: true - /cssesc@2.0.0: - resolution: {integrity: sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==} - engines: {node: '>=4'} - hasBin: true - dev: true - /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -11269,10 +6873,6 @@ packages: css-tree: 1.1.3 dev: true - /csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - dev: true - /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -11302,13 +6902,6 @@ packages: resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==} dev: true - /currently-unhandled@0.4.1: - resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} - engines: {node: '>=0.10.0'} - dependencies: - array-find-index: 1.0.2 - dev: true - /cwd@0.9.1: resolution: {integrity: sha512-4+0D+ojEasdLndYX4Cqff057I/Jp6ysXpwKkdLQLnZxV8f6IYZmZtTP5uqD91a/kWqejoc0sSqK4u8wpTKCh8A==} engines: {node: '>=0.8'} @@ -11320,25 +6913,25 @@ packages: resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} dev: true - /dargs@4.1.0: - resolution: {integrity: sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==} - engines: {node: '>=0.10.0'} + /d3-array@1.2.4: + resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==} + dev: false + + /d3-geo@1.7.1: + resolution: {integrity: sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==} dependencies: - number-is-nan: 1.0.1 - dev: true + d3-array: 1.2.4 + dev: false + + /d3-voronoi@1.1.2: + resolution: {integrity: sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==} + dev: false /dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} dev: true - /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: true - /data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -11360,26 +6953,6 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false - /deasync@0.1.29: - resolution: {integrity: sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==} - engines: {node: '>=0.11.0'} - requiresBuild: true - dependencies: - bindings: 1.5.0 - node-addon-api: 1.7.2 - dev: true - - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: true - /debug@3.1.0: resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} peerDependencies: @@ -11414,11 +6987,6 @@ packages: ms: 2.1.2 dev: true - /debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dev: true - /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -11457,7 +7025,7 @@ packages: object-is: 1.1.5 object-keys: 1.1.1 regexp.prototype.flags: 1.5.1 - dev: true + dev: false /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -11468,10 +7036,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deep-object-diff@1.1.9: - resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} - dev: true - /deep-rename-keys@0.2.1: resolution: {integrity: sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==} engines: {node: '>=0.10.0'} @@ -11485,18 +7049,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /default-browser-id@1.0.4: - resolution: {integrity: sha512-qPy925qewwul9Hifs+3sx1ZYn14obHxpkX+mPD369w4Rzg+YkJBgi3SOvwUq81nWSjqGUegIgEPwD8u+HUnxlw==} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - dependencies: - bplist-parser: 0.1.1 - meow: 3.7.0 - untildify: 2.1.0 - dev: true - optional: true - /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -11528,7 +7080,6 @@ packages: get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 - dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -11547,49 +7098,19 @@ packages: define-data-property: 1.1.1 has-property-descriptors: 1.0.1 object-keys: 1.1.1 - dev: true - - /define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 0.1.7 - dev: true - - /define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - dev: true - - /define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - isobject: 3.0.1 - dev: true /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: true - /delegate@3.2.0: - resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} - requiresBuild: true - dev: true - optional: true - /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true + /density-clustering@1.3.0: + resolution: {integrity: sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==} + dev: false /deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} @@ -11607,17 +7128,6 @@ packages: minimalistic-assert: 1.0.1 dev: true - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: true - - /detab@2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - dependencies: - repeat-string: 1.6.1 - dev: true - /detect-indent@5.0.0: resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} engines: {node: '>=4'} @@ -11644,38 +7154,10 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - dev: true - /detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true - /detect-package-manager@2.0.1: - resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: true - - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true - dependencies: - address: 1.2.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: true - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -11699,13 +7181,6 @@ packages: randombytes: 2.1.0 dev: true - /dir-glob@2.2.2: - resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} - engines: {node: '>=4'} - dependencies: - path-type: 3.0.0 - dev: true - /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -11756,10 +7231,6 @@ packages: entities: 4.5.0 dev: true - /dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - dev: true - /domain-browser@1.2.0: resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} engines: {node: '>=0.4', npm: '>=1.2'} @@ -11836,20 +7307,11 @@ packages: engines: {node: '>=12'} dev: true - /dotenv-expand@5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dev: true - /dotenv@16.3.1: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} dev: true - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: true - /dumi-afx-deps@1.0.0-alpha.20: resolution: {integrity: sha512-PRSJlHuJkyHDET7Hukykx/hLULkgUBX5q2CutMG5EDI3eJLzJlX634wNll10m3at1uomcDAVudL7Dgh5UOJ7IQ==} dev: true @@ -11986,17 +7448,14 @@ packages: stream-shift: 1.0.1 dev: true + /earcut@2.2.4: + resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} + dev: false + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: true - /editions@2.3.1: resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==} engines: {node: '>=0.8'} @@ -12005,10 +7464,6 @@ packages: semver: 6.3.1 dev: true - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true - /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} engines: {node: '>=0.10.0'} @@ -12017,10 +7472,6 @@ packages: jake: 10.8.7 dev: true - /electron-to-chromium@1.4.596: - resolution: {integrity: sha512-zW3zbZ40Icb2BCWjm47nxwcFGYlIgdXkAx85XDO7cyky9J4QQfq8t0W19/TLZqq3JPQXtlv8BPIGmfa9Jb4scg==} - dev: true - /electron-to-chromium@1.4.616: resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} dev: true @@ -12037,10 +7488,6 @@ packages: minimalistic-crypto-utils: 1.0.1 dev: true - /emoji-regex@7.0.3: - resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} - dev: true - /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -12054,29 +7501,10 @@ packages: engines: {node: '>= 4'} dev: true - /emotion-theming@10.3.0(@emotion/core@10.3.1)(react@16.14.0): - resolution: {integrity: sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==} - peerDependencies: - '@emotion/core': ^10.0.27 - react: '>=16.3.0' - dependencies: - '@babel/runtime': 7.23.4 - '@emotion/core': 10.3.1(react@16.14.0) - '@emotion/weak-memoize': 0.2.5 - hoist-non-react-statics: 3.3.2 - react: 16.14.0 - dev: true - - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: true - /encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} dependencies: iconv-lite: 0.6.3 - dev: true /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -12084,23 +7512,6 @@ packages: once: 1.4.0 dev: true - /endent@2.1.0: - resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==} - dependencies: - dedent: 0.7.0 - fast-json-parse: 1.0.3 - objectorarray: 1.0.5 - dev: true - - /enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - dependencies: - graceful-fs: 4.2.11 - memory-fs: 0.5.0 - tapable: 1.1.3 - dev: true - /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -12164,6 +7575,7 @@ packages: dependencies: prr: 1.0.1 dev: true + optional: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -12220,7 +7632,6 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - dev: true /es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} @@ -12270,7 +7681,6 @@ packages: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 hasown: 2.0.0 - dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -12285,17 +7695,11 @@ packages: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true /es5-imcompatible-versions@0.1.88: resolution: {integrity: sha512-GDJTmDGd65qyDk9fGClO+MOUgHuBuGMCL6EawvLH8Ob+HN8ui1OJwa4fEK0qh3fg2ieT2/pdZj41yrxnmOrK8w==} dev: true - /es5-shim@4.6.7: - resolution: {integrity: sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==} - engines: {node: '>=0.4.0'} - dev: true - /es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} dev: true @@ -12306,17 +7710,6 @@ packages: es6-promise: 4.2.8 dev: true - /es6-shim@0.35.8: - resolution: {integrity: sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==} - dev: true - - /es6-templates@0.2.3: - resolution: {integrity: sha512-sziUVwcvQ+lOsrTyUY0Q11ilAPj+dy7AQ1E1MgSaHTaaAFTffaa08QSlGNU61iyVaroyb6nYdBV6oD7nzn6i8w==} - dependencies: - recast: 0.11.23 - through: 2.3.8 - dev: true - /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -12382,10 +7775,6 @@ packages: engines: {node: '>=6'} dev: true - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true - /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -12401,18 +7790,6 @@ packages: engines: {node: '>=12'} dev: true - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12468,14 +7845,6 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-scope@4.0.3: - resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} - engines: {node: '>=4.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -12558,12 +7927,6 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /esprima@3.1.3: - resolution: {integrity: sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==} - engines: {node: '>=4'} - hasBin: true - dev: true - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -12594,17 +7957,6 @@ packages: engines: {node: '>=4.0'} dev: true - /estree-to-babel@3.2.1: - resolution: {integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==} - engines: {node: '>=8.3.0'} - dependencies: - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 - c8: 7.14.0 - transitivePeerDependencies: - - supports-color - dev: true - /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: @@ -12635,19 +7987,10 @@ packages: engines: {node: '>=0.10.0'} dev: true - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: true - /eventemitter3@2.0.3: resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==} dev: true - /eventemitter3@3.1.2: - resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} - dev: true - /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true @@ -12659,7 +8002,6 @@ packages: /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - dev: true /evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} @@ -12668,10 +8010,6 @@ packages: safe-buffer: 5.2.1 dev: true - /exec-sh@0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} - dev: true - /execa@0.7.0: resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} engines: {node: '>=4'} @@ -12685,19 +8023,6 @@ packages: strip-eof: 1.0.0 dev: true - /execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - dependencies: - cross-spawn: 6.0.5 - get-stream: 4.1.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - dev: true - /execa@5.0.0: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} engines: {node: '>=10'} @@ -12743,21 +8068,6 @@ packages: strip-final-newline: 3.0.0 dev: true - /expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /expand-tilde@1.2.2: resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==} engines: {node: '>=0.10.0'} @@ -12769,45 +8079,6 @@ packages: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} dev: true - /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.1 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -12815,14 +8086,6 @@ packages: is-extendable: 0.1.1 dev: true - /extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: true - /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true @@ -12840,49 +8103,10 @@ packages: tmp: 0.0.33 dev: true - /extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - dev: true - - /fast-deep-equal@2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} - dev: true - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@2.2.7: - resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} - engines: {node: '>=4.0.0'} - dependencies: - '@mrmlnc/readdir-enhanced': 2.2.1 - '@nodelib/fs.stat': 1.1.3 - glob-parent: 3.1.0 - is-glob: 4.0.3 - merge2: 1.4.1 - micromatch: 3.1.10 - transitivePeerDependencies: - - supports-color - dev: true - /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -12905,10 +8129,6 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-parse@1.0.3: - resolution: {integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==} - dev: true - /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -12927,10 +8147,6 @@ packages: engines: {node: '>= 4.9.1'} dev: true - /fastparse@1.1.2: - resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} - dev: true - /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: @@ -12973,12 +8189,6 @@ packages: - webpack-plugin-serve dev: true - /fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - dependencies: - format: 0.2.2 - dev: true - /fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} dependencies: @@ -12999,14 +8209,6 @@ packages: web-streams-polyfill: 3.2.1 dev: true - /fetch-retry@5.0.6: - resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} - dev: true - - /figgy-pudding@3.5.2: - resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} - dev: true - /figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} @@ -13028,28 +8230,6 @@ packages: flat-cache: 3.2.0 dev: true - /file-loader@6.2.0(webpack@4.47.0): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 4.47.0 - dev: true - - /file-loader@6.2.0(webpack@5.89.0): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.89.0 - dev: true - /file-name@0.1.0: resolution: {integrity: sha512-Q8SskhjF4eUk/xoQkmubwLkoHwOTv6Jj/WGtOVLKkZ0vvM+LipkSXugkn1F/+mjWXU32AXLZB3qaz0arUzgtRw==} engines: {node: '>=0.10.0'} @@ -13059,13 +8239,6 @@ packages: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} dev: false - /file-system-cache@1.1.0: - resolution: {integrity: sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw==} - dependencies: - fs-extra: 10.1.0 - ramda: 0.28.0 - dev: true - /file-system-cache@2.0.0: resolution: {integrity: sha512-QlYut2ZtxRgdW/dboSmiKZWM8FsnpLaLI549hN/RWgwn3FawSil7Jc2n7nFHheclvYxa4LJqwEOvNUYv9VsCXg==} dependencies: @@ -13082,10 +8255,6 @@ packages: ramda: 0.29.0 dev: true - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: true - /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -13097,16 +8266,6 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: true - /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -13119,21 +8278,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /find-babel-config@1.2.0: resolution: {integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==} engines: {node: '>=4.0.0'} @@ -13142,24 +8286,6 @@ packages: path-exists: 3.0.0 dev: true - /find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - dev: true - - /find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - /find-file-up@0.1.3: resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} engines: {node: '>=0.10.0'} @@ -13175,19 +8301,6 @@ packages: find-file-up: 0.1.3 dev: true - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: true - - /find-up@1.1.2: - resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - path-exists: 2.1.0 - pinkie-promise: 2.0.1 - dev: true - /find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} @@ -13243,11 +8356,6 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /flatten@1.0.3: - resolution: {integrity: sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==} - deprecated: flatten is deprecated in favor of utility frameworks such as lodash. - dev: true - /flush-write-stream@1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: @@ -13255,20 +8363,6 @@ packages: readable-stream: 2.3.8 dev: true - /flv.js@1.6.2: - resolution: {integrity: sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==} - dependencies: - es6-promise: 4.2.8 - webworkify-webpack: 2.1.5 - dev: true - - /focus-lock@1.0.0: - resolution: {integrity: sha512-a8Ge6cdKh9za/GZR/qtigTAk7SrGore56EFcoMshClsh7FLk1zwszc/ltuMfKhx56qeuyL/jWQ4J4axou0iJ9w==} - engines: {node: '>=10'} - dependencies: - tslib: 2.6.2 - dev: true - /follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} @@ -13292,20 +8386,6 @@ packages: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - dev: true - - /for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: true - - /foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 3.0.7 - dev: true /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} @@ -13315,70 +8395,6 @@ packages: signal-exit: 4.1.0 dev: true - /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: true - - /fork-ts-checker-webpack-plugin@4.1.6(eslint@8.54.0)(typescript@5.3.2)(webpack@4.47.0): - resolution: {integrity: sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==} - engines: {node: '>=6.11.5', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - dependencies: - '@babel/code-frame': 7.23.4 - chalk: 2.4.2 - eslint: 8.54.0 - micromatch: 3.1.10 - minimatch: 3.1.2 - semver: 5.7.2 - tapable: 1.1.3 - typescript: 5.3.2 - webpack: 4.47.0 - worker-rpc: 0.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.54.0)(typescript@5.3.2)(webpack@4.47.0): - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - dependencies: - '@babel/code-frame': 7.23.4 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.5.3 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - eslint: 8.54.0 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.5.4 - tapable: 1.1.3 - typescript: 5.3.2 - webpack: 4.47.0 - dev: true - /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.89.0): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} @@ -13425,15 +8441,6 @@ packages: webpack: 5.89.0 dev: true - /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -13455,27 +8462,10 @@ packages: fetch-blob: 3.2.0 dev: true - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: true - /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: true - - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: true - /from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} dependencies: @@ -13545,22 +8535,6 @@ packages: universalify: 0.1.2 dev: true - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - - /fs-minipass@1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} - dependencies: - minipass: 2.9.0 - dev: true - /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -13579,10 +8553,6 @@ packages: resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} dev: true - /fs-readdir-recursive@1.1.0: - resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} - dev: true - /fs-write-stream-atomic@1.0.10: resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} dependencies: @@ -13596,18 +8566,6 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 - requiresBuild: true - dependencies: - bindings: 1.5.0 - nan: 2.18.0 - dev: true - optional: true - /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -13618,7 +8576,6 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} @@ -13628,39 +8585,9 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 functions-have-names: 1.2.3 - dev: true /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - - /gauge@2.7.4: - resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} - dependencies: - aproba: 1.2.0 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 1.0.2 - strip-ansi: 3.0.1 - wide-align: 1.1.5 - dev: true - - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - dependencies: - aproba: 1.2.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true /gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} @@ -13680,15 +8607,27 @@ packages: resolution: {integrity: sha512-48yv1eDS5Qrz6cbSDBBik0u7jCgC/eA9eZrl9MIN1LfKzFTuGt6EHgr31YM8yT9cjb5BplXb4Iz3VtOYmgt8Jg==} dev: true - /genfun@5.0.0: - resolution: {integrity: sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==} - dev: true - /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} dev: true + /geojson-equality@0.1.6: + resolution: {integrity: sha512-TqG8YbqizP3EfwP5Uw4aLu6pKkg6JQK9uq/XZ1lXQntvTHD1BBKJWhNpJ2M0ax6TuWMP3oyx6Oq7FCIfznrgpQ==} + dependencies: + deep-equal: 1.1.2 + dev: false + + /geojson-rbush@3.2.0: + resolution: {integrity: sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==} + dependencies: + '@turf/bbox': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + '@types/geojson': 7946.0.8 + rbush: 3.0.1 + dev: false + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -13701,24 +8640,12 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.0 - dev: true /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} dev: true - /get-pkg-repo@1.4.0: - resolution: {integrity: sha512-xPCyvcEOxCJDxhBfXDNH+zA7mIRGb2aY1gIUJWsZkpJbp1BLHl+/Sycg26Dv+ZbZAJkO61tzbBtqHUi30NGBvg==} - hasBin: true - dependencies: - hosted-git-info: 2.8.9 - meow: 3.7.0 - normalize-package-data: 2.5.0 - parse-github-repo-url: 1.4.1 - through2: 2.0.5 - dev: true - /get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -13730,22 +8657,11 @@ packages: yargs: 16.2.0 dev: true - /get-port@4.2.0: - resolution: {integrity: sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==} - engines: {node: '>=6'} - dev: true - /get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} dev: true - /get-stdin@4.0.1: - resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - /get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} @@ -13756,13 +8672,6 @@ packages: engines: {node: '>=4'} dev: true - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.0 - dev: true - /get-stream@6.0.0: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} @@ -13779,7 +8688,6 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - dev: true /get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} @@ -13792,12 +8700,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - dependencies: - assert-plus: 1.0.0 - dev: true - /git-branch@1.0.0: resolution: {integrity: sha512-ZTzuqw5Df8fyLXQWrX6hK+4FpNCdKzMcERlxENEGO5aKcLmG7MAszhrMhluUKNKmOS/JAGijDMQDXDCDw1mE/A==} engines: {node: '>=0.8'} @@ -13816,18 +8718,6 @@ packages: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} dev: true - /git-raw-commits@2.0.0: - resolution: {integrity: sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==} - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - dargs: 4.1.0 - lodash.template: 4.5.0 - meow: 4.0.1 - split2: 2.2.0 - through2: 2.0.5 - dev: true - /git-raw-commits@2.0.11: resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} @@ -13868,15 +8758,6 @@ packages: remote-origin-url: 0.5.3 dev: true - /git-semver-tags@2.0.3: - resolution: {integrity: sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==} - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - meow: 4.0.1 - semver: 6.3.1 - dev: true - /git-semver-tags@5.0.1: resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} engines: {node: '>=14'} @@ -13886,13 +8767,6 @@ packages: semver: 7.5.4 dev: true - /git-up@4.0.5: - resolution: {integrity: sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==} - dependencies: - is-ssh: 1.4.0 - parse-url: 6.0.5 - dev: true - /git-up@7.0.0: resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} dependencies: @@ -13900,12 +8774,6 @@ packages: parse-url: 8.1.0 dev: true - /git-url-parse@11.6.0: - resolution: {integrity: sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==} - dependencies: - git-up: 4.0.5 - dev: true - /git-url-parse@13.1.0: resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} dependencies: @@ -13929,13 +8797,6 @@ packages: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} dev: true - /glob-parent@3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - dev: true - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -13950,20 +8811,6 @@ packages: is-glob: 4.0.3 dev: true - /glob-promise@3.4.0(glob@7.2.3): - resolution: {integrity: sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==} - engines: {node: '>=4'} - peerDependencies: - glob: '*' - dependencies: - '@types/glob': 8.1.0 - glob: 7.2.3 - dev: true - - /glob-to-regexp@0.3.0: - resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==} - dev: true - /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true @@ -14064,13 +8911,6 @@ packages: which: 1.3.1 dev: true - /global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - dependencies: - min-document: 2.19.0 - process: 0.11.10 - dev: true - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -14088,7 +8928,6 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - dev: true /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -14113,39 +8952,14 @@ packages: slash: 4.0.0 dev: true - /globby@9.2.0: - resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==} - engines: {node: '>=6'} - dependencies: - '@types/glob': 7.2.0 - array-union: 1.0.2 - dir-glob: 2.2.2 - fast-glob: 2.2.7 - glob: 7.2.3 - ignore: 4.0.6 - pify: 4.0.1 - slash: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /globjoin@0.1.4: resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} dev: true - /good-listener@1.2.2: - resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} - requiresBuild: true - dependencies: - delegate: 3.2.0 - dev: true - optional: true - /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.2 - dev: true /got@6.7.1: resolution: {integrity: sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg==} @@ -14180,7 +8994,7 @@ packages: /gud@1.0.0: resolution: {integrity: sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==} - dev: true + dev: false /handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} @@ -14199,20 +9013,6 @@ packages: uglify-js: 3.17.4 dev: true - /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: true - - /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: true - /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -14224,7 +9024,6 @@ packages: /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -14236,35 +9035,24 @@ packages: engines: {node: '>=8'} dev: true - /has-glob@1.0.0: - resolution: {integrity: sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==} - engines: {node: '>=0.10.0'} - dependencies: - is-glob: 3.1.0 - dev: true - /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: get-intrinsic: 1.2.2 - dev: true /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dev: true /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: true /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -14279,28 +9067,11 @@ packages: isobject: 2.1.0 dev: true - /has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: true - /has-values@0.1.4: resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} engines: {node: '>=0.10.0'} dev: true - /has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: true - /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -14322,30 +9093,6 @@ packages: engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - dev: true - - /hast-to-hyperscript@9.0.1: - resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} - dependencies: - '@types/unist': 2.0.10 - comma-separated-tokens: 1.0.8 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - style-to-object: 0.3.0 - unist-util-is: 4.1.0 - web-namespaces: 1.1.4 - dev: true - - /hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} - dependencies: - '@types/parse5': 5.0.3 - hastscript: 6.0.0 - property-information: 5.6.0 - vfile: 4.2.1 - vfile-location: 3.2.0 - web-namespaces: 1.1.4 - dev: true /hast-util-from-parse5@7.1.2: resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} @@ -14382,31 +9129,12 @@ packages: '@types/unist': 2.0.10 dev: true - /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - dev: true - /hast-util-parse-selector@3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} dependencies: '@types/hast': 2.3.8 dev: true - /hast-util-raw@6.0.1: - resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==} - dependencies: - '@types/hast': 2.3.8 - hast-util-from-parse5: 6.0.1 - hast-util-to-parse5: 6.0.0 - html-void-elements: 1.0.5 - parse5: 6.0.1 - unist-util-position: 3.1.0 - vfile: 4.2.1 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - dev: true - /hast-util-raw@7.2.3: resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} dependencies: @@ -14478,16 +9206,6 @@ packages: zwitch: 2.0.4 dev: true - /hast-util-to-parse5@6.0.0: - resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} - dependencies: - hast-to-hyperscript: 9.0.1 - property-information: 5.6.0 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - dev: true - /hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} dependencies: @@ -14509,25 +9227,6 @@ packages: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} dev: true - /hastscript@5.1.2: - resolution: {integrity: sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==} - dependencies: - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - dev: true - - /hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - dependencies: - '@types/hast': 2.3.8 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - dev: true - /hastscript@7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} dependencies: @@ -14553,17 +9252,6 @@ packages: heti-findandreplacedomtext: 0.5.0 dev: true - /highlight.js@9.13.1: - resolution: {integrity: sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==} - deprecated: Version no longer supported. Upgrade to @latest - dev: true - - /highlight.js@9.18.5: - resolution: {integrity: sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==} - deprecated: Support has ended for 9.x series. Upgrade to @latest - requiresBuild: true - dev: true - /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: @@ -14582,7 +9270,6 @@ packages: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 - dev: true /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} @@ -14633,34 +9320,6 @@ packages: resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} dev: true - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /html-loader@0.5.5: - resolution: {integrity: sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==} - dependencies: - es6-templates: 0.2.3 - fastparse: 1.1.2 - html-minifier: 3.5.21 - loader-utils: 1.4.2 - object-assign: 4.1.1 - dev: true - - /html-minifier-terser@5.1.1: - resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} - engines: {node: '>=6'} - hasBin: true - dependencies: - camel-case: 4.1.2 - clean-css: 4.2.4 - commander: 4.1.1 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 4.8.1 - dev: true - /html-minifier-terser@6.1.0: resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} engines: {node: '>=12'} @@ -14675,26 +9334,6 @@ packages: terser: 5.24.0 dev: true - /html-minifier@3.5.21: - resolution: {integrity: sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==} - engines: {node: '>=4'} - hasBin: true - dependencies: - camel-case: 3.0.0 - clean-css: 4.2.4 - commander: 2.17.1 - he: 1.2.0 - param-case: 2.1.1 - relateurl: 0.2.7 - uglify-js: 3.4.10 - dev: true - - /html-parse-stringify@3.0.1: - resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} - dependencies: - void-elements: 3.1.0 - dev: false - /html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} @@ -14711,32 +9350,10 @@ packages: selderee: 0.11.0 dev: true - /html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - dev: true - /html-void-elements@2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} dev: true - /html-webpack-plugin@4.5.2(webpack@4.47.0): - resolution: {integrity: sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==} - engines: {node: '>=6.9'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - '@types/html-minifier-terser': 5.1.2 - '@types/tapable': 1.0.12 - '@types/webpack': 4.41.38 - html-minifier-terser: 5.1.1 - loader-utils: 1.4.2 - lodash: 4.17.21 - pretty-error: 2.1.2 - tapable: 1.1.3 - util.promisify: 1.0.0 - webpack: 4.47.0 - dev: true - /html-webpack-plugin@5.5.0(webpack@5.89.0): resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} engines: {node: '>=10.13.0'} @@ -14795,17 +9412,6 @@ packages: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} dev: true - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: true - /http-proxy-agent@2.1.0: resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==} engines: {node: '>= 4.5.0'} @@ -14827,15 +9433,6 @@ packages: - supports-color dev: true - /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.18.0 - dev: true - /https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} dev: true @@ -14890,12 +9487,6 @@ packages: hasBin: true dev: true - /i18next@20.6.1: - resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} - dependencies: - '@babel/runtime': 7.23.4 - dev: false - /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -14909,14 +9500,6 @@ packages: requiresBuild: true dependencies: safer-buffer: 2.1.2 - dev: true - - /icss-utils@4.1.1: - resolution: {integrity: sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==} - engines: {node: '>= 6'} - dependencies: - postcss: 7.0.39 - dev: true /icss-utils@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} @@ -14942,12 +9525,6 @@ packages: resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} dev: true - /ignore-walk@3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - dependencies: - minimatch: 3.1.2 - dev: true - /ignore-walk@5.0.1: resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -14962,11 +9539,6 @@ packages: minimatch: 9.0.3 dev: true - /ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - /ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -14996,14 +9568,6 @@ packages: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} dev: true - /import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - dev: true - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -15022,15 +9586,6 @@ packages: engines: {node: '>=8'} dev: true - /import-local@2.0.0: - resolution: {integrity: sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==} - engines: {node: '>=6'} - hasBin: true - dependencies: - pkg-dir: 3.0.0 - resolve-cwd: 2.0.0 - dev: true - /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -15045,28 +9600,11 @@ packages: engines: {node: '>=0.8.19'} dev: true - /indent-string@2.1.0: - resolution: {integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - repeating: 2.0.1 - dev: true - - /indent-string@3.2.0: - resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==} - engines: {node: '>=4'} - dev: true - /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} dev: true - /indexes-of@1.0.1: - resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==} - dev: true - /infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} dev: true @@ -15089,19 +9627,6 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /init-package-json@1.10.3: - resolution: {integrity: sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==} - dependencies: - glob: 7.2.3 - npm-package-arg: 6.1.1 - promzard: 0.3.0 - read: 1.0.7 - read-package-json: 2.1.2 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 3.0.0 - dev: true - /init-package-json@5.0.0: resolution: {integrity: sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -15166,17 +9691,6 @@ packages: get-intrinsic: 1.2.2 hasown: 2.0.0 side-channel: 1.0.4 - dev: true - - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: true - - /interpret@2.2.0: - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} - engines: {node: '>= 0.10'} - dev: true /intersection-observer@0.12.2: resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} @@ -15197,10 +9711,6 @@ packages: loose-envify: 1.4.0 dev: true - /ip@1.1.5: - resolution: {integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==} - dev: true - /ip@1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: true @@ -15209,38 +9719,10 @@ packages: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: true - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: true - - /is-absolute-url@3.0.3: - resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} - engines: {node: '>=8'} - dev: true - - /is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} - dependencies: - hasown: 2.0.0 - dev: true - - /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: true - /is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} dev: true - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: true - /is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: @@ -15254,7 +9736,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -15262,7 +9743,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -15290,16 +9770,6 @@ packages: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 - dev: true - - /is-binary-path@1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - binary-extensions: 1.13.1 - dev: true - optional: true /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} @@ -15314,7 +9784,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} @@ -15328,7 +9797,6 @@ packages: /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: true /is-ci@1.2.1: resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==} @@ -15337,13 +9805,6 @@ packages: ci-info: 1.6.0 dev: true - /is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: true - /is-ci@3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -15357,49 +9818,16 @@ packages: hasown: 2.0.0 dev: true - /is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.0 - dev: true - /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true - - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: true /is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} dev: true - /is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: true - - /is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: true - - /is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - dev: true - /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -15412,13 +9840,6 @@ packages: hasBin: true dev: true - /is-dom@1.1.0: - resolution: {integrity: sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==} - dependencies: - is-object: 1.0.2 - is-window: 1.0.2 - dev: true - /is-equal@1.7.0: resolution: {integrity: sha512-hErktGR9jmoYXNWlbrwGjc8eHh09mbY6TWSTTFtnMcKaCuSMN8z+Ni5ma/8mkbVpe4CbB7V6kN1MkCg9bCx5bA==} engines: {node: '>= 0.4'} @@ -15452,13 +9873,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: 2.0.4 - dev: true - /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -15470,19 +9884,6 @@ packages: call-bind: 1.0.5 dev: true - /is-finite@1.1.0: - resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - - /is-fullwidth-code-point@1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} - dependencies: - number-is-nan: 1.0.1 - dev: true - /is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} @@ -15498,10 +9899,6 @@ packages: engines: {node: '>=12'} dev: true - /is-function@1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - dev: true - /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -15509,13 +9906,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-glob@3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -15523,10 +9913,6 @@ packages: is-extglob: 2.1.1 dev: true - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: true - /is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: true @@ -15563,7 +9949,6 @@ packages: /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} - dev: true /is-npm@1.0.0: resolution: {integrity: sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==} @@ -15575,14 +9960,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true - - /is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -15599,10 +9976,6 @@ packages: engines: {node: '>=8'} dev: true - /is-object@1.0.2: - resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} - dev: true - /is-path-inside@1.0.1: resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==} engines: {node: '>=0.10.0'} @@ -15620,11 +9993,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true - /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -15653,7 +10021,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-retry-allowed@1.2.0: resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} @@ -15668,7 +10035,6 @@ packages: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.5 - dev: true /is-ssh@1.4.0: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} @@ -15679,7 +10045,6 @@ packages: /is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} - dev: true /is-stream@2.0.0: resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} @@ -15701,7 +10066,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} @@ -15715,7 +10079,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true /is-text-path@1.0.1: resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} @@ -15729,22 +10092,12 @@ packages: engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.13 - dev: true - - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: true /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - requiresBuild: true - dev: true - /is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} dev: true @@ -15753,7 +10106,6 @@ packages: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.5 - dev: true /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} @@ -15766,14 +10118,6 @@ packages: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} dev: true - /is-whitespace-character@1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - dev: true - - /is-window@1.0.2: - resolution: {integrity: sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==} - dev: true - /is-windows@0.2.0: resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==} engines: {node: '>=0.10.0'} @@ -15784,10 +10128,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-word-character@1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} - dev: true - /is-wsl@1.1.0: resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} engines: {node: '>=4'} @@ -15809,7 +10149,6 @@ packages: /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -15827,19 +10166,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /isobject@4.0.0: - resolution: {integrity: sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==} - engines: {node: '>=0.10.0'} - dev: true - - /isomorphic-unfetch@3.1.0: - resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + /isomorphic-fetch@2.2.1: + resolution: {integrity: sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==} dependencies: - node-fetch: 2.6.7 - unfetch: 4.2.0 - transitivePeerDependencies: - - encoding - dev: true + node-fetch: 1.7.3 + whatwg-fetch: 3.6.20 + dev: false /isomorphic-unfetch@4.0.2: resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==} @@ -15848,10 +10180,6 @@ packages: unfetch: 5.0.0 dev: true - /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true - /istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -15870,23 +10198,6 @@ packages: - supports-color dev: true - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - dev: true - - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - dev: true - /istextorbinary@2.6.0: resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==} engines: {node: '>=0.12'} @@ -15896,17 +10207,6 @@ packages: textextensions: 2.6.0 dev: true - /iterate-iterator@1.0.2: - resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==} - dev: true - - /iterate-value@1.0.2: - resolution: {integrity: sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==} - dependencies: - es-get-iterator: 1.1.3 - iterate-iterator: 1.0.2 - dev: true - /iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: @@ -15952,29 +10252,6 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@26.6.2: - resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 26.0.0 - jest-serializer: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - micromatch: 4.0.5 - sane: 4.1.0 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /jest-haste-map@29.7.0: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -15994,36 +10271,11 @@ packages: fsevents: 2.3.3 dev: true - /jest-regex-util@26.0.0: - resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-serializer@26.6.2: - resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/node': 20.10.0 - graceful-fs: 4.2.11 - dev: true - - /jest-util@26.6.2: - resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 20.10.0 - chalk: 4.1.2 - graceful-fs: 4.2.11 - is-ci: 2.0.0 - micromatch: 4.0.5 - dev: true - /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -16036,15 +10288,6 @@ packages: picomatch: 2.3.1 dev: true - /jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 20.10.0 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - /jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -16082,11 +10325,6 @@ packages: resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} dev: false - /js-string-escape@1.0.1: - resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} - engines: {node: '>= 0.8'} - dev: true - /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -16105,15 +10343,6 @@ packages: argparse: 2.0.1 dev: true - /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: true - - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -16145,10 +10374,6 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true - /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -16168,13 +10393,6 @@ packages: hasBin: true dev: true - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -16210,15 +10428,13 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} + /jsx-ast-utils@2.4.1: + resolution: {integrity: sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==} + engines: {node: '>=4.0'} dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: true + array-includes: 3.1.7 + object.assign: 4.1.4 + dev: false /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} @@ -16239,11 +10455,6 @@ packages: setimmediate: 1.0.5 dev: false - /junk@3.1.0: - resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} - engines: {node: '>=8'} - dev: true - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -16257,38 +10468,16 @@ packages: is-buffer: 1.1.6 dev: true - /kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true - /klona@1.1.2: - resolution: {integrity: sha512-xf88rTeHiXk+XE2Vhi6yj8Wm3gMZrygGdKjJqN8HkV+PwF/t50/LdAKHoHpPcxFAlmQszTZ1CugrK25S7qDRLA==} - engines: {node: '>= 8'} - dev: true - - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - dev: true - /known-css-properties@0.26.0: resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} dev: true @@ -16309,50 +10498,10 @@ packages: engines: {node: '>=0.10.0'} dev: true - /lazy-universal-dotenv@3.0.1: - resolution: {integrity: sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==} - engines: {node: '>=6.0.0', npm: '>=6.0.0', yarn: '>=1.0.0'} - dependencies: - '@babel/runtime': 7.23.4 - app-root-dir: 1.0.2 - core-js: 3.28.0 - dotenv: 8.6.0 - dotenv-expand: 5.1.0 - dev: true - /leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} dev: true - /lerna@3.22.1(@octokit/core@4.2.4): - resolution: {integrity: sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==} - engines: {node: '>= 6.9.0'} - hasBin: true - dependencies: - '@lerna/add': 3.21.0 - '@lerna/bootstrap': 3.21.0 - '@lerna/changed': 3.21.0 - '@lerna/clean': 3.21.0 - '@lerna/cli': 3.18.5 - '@lerna/create': 3.22.0 - '@lerna/diff': 3.21.0 - '@lerna/exec': 3.21.0 - '@lerna/import': 3.22.0 - '@lerna/info': 3.21.0 - '@lerna/init': 3.21.0 - '@lerna/link': 3.21.0 - '@lerna/list': 3.21.0 - '@lerna/publish': 3.22.1(@octokit/core@4.2.4) - '@lerna/run': 3.21.0 - '@lerna/version': 3.22.1(@octokit/core@4.2.4) - import-local: 2.0.0 - npmlog: 4.1.2 - transitivePeerDependencies: - - '@octokit/core' - - encoding - - supports-color - dev: true - /lerna@8.0.0: resolution: {integrity: sha512-Ddshct9hJrujtR7t2cAIiiiKnQCKiTvR/Ki3KhzpBNVepYtWq+dg+HxArZrezF+sYxI+OCxL00BxDHY4/H4uGg==} engines: {node: '>=18.0.0'} @@ -16650,18 +10799,6 @@ packages: wrap-ansi: 8.1.0 dev: true - /load-json-file@1.1.0: - resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - graceful-fs: 4.2.11 - parse-json: 2.2.0 - pify: 2.3.0 - pinkie-promise: 2.0.1 - strip-bom: 2.0.0 - dev: true - /load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} @@ -16672,17 +10809,6 @@ packages: strip-bom: 3.0.0 dev: true - /load-json-file@5.3.0: - resolution: {integrity: sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==} - engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 4.0.1 - strip-bom: 3.0.0 - type-fest: 0.3.1 - dev: true - /load-json-file@6.2.0: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} @@ -16703,11 +10829,6 @@ packages: strip-bom: 3.0.0 dev: true - /loader-runner@2.4.0: - resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - dev: true - /loader-runner@4.2.0: resolution: {integrity: sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==} engines: {node: '>=6.11.5'} @@ -16718,15 +10839,6 @@ packages: engines: {node: '>=6.11.5'} dev: true - /loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 - dev: true - /loader-utils@2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} @@ -16775,22 +10887,10 @@ packages: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false - /lodash._reinterpolate@3.0.0: - resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} - dev: true - /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true - /lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - dev: true - - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true - /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true @@ -16815,10 +10915,6 @@ packages: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} dev: true - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true - /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -16827,43 +10923,18 @@ packages: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} dev: true - /lodash.set@4.3.2: - resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} - dev: true - /lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} dev: true - /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true - /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true - /lodash.template@4.5.0: - resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} - dependencies: - lodash._reinterpolate: 3.0.0 - lodash.templatesettings: 4.2.0 - dev: true - - /lodash.templatesettings@4.2.0: - resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} - dependencies: - lodash._reinterpolate: 3.0.0 - dev: true - /lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} dev: true - /lodash.toarray@4.4.0: - resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} - dev: true - /lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true @@ -16915,18 +10986,6 @@ packages: dependencies: js-tokens: 4.0.0 - /loud-rejection@1.6.0: - resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==} - engines: {node: '>=0.10.0'} - dependencies: - currently-unhandled: 0.4.1 - signal-exit: 3.0.7 - dev: true - - /lower-case@1.1.4: - resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} - dev: true - /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: @@ -16938,13 +10997,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /lowlight@1.11.0: - resolution: {integrity: sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A==} - dependencies: - fault: 1.0.4 - highlight.js: 9.13.1 - dev: true - /lru-cache@10.1.0: resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} @@ -16980,11 +11032,6 @@ packages: hasBin: true dev: true - /macos-release@2.5.1: - resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} - engines: {node: '>=6'} - dev: true - /make-dir@1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} @@ -17001,13 +11048,6 @@ packages: semver: 5.7.2 dev: true - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: true - /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -17085,93 +11125,26 @@ packages: - supports-color dev: true - /make-fetch-happen@5.0.2: - resolution: {integrity: sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==} - dependencies: - agentkeepalive: 3.5.2 - cacache: 12.0.4 - http-cache-semantics: 3.8.1 - http-proxy-agent: 2.1.0 - https-proxy-agent: 2.2.4 - lru-cache: 5.1.1 - mississippi: 3.0.0 - node-fetch-npm: 2.0.4 - promise-retry: 1.1.1 - socks-proxy-agent: 4.0.2 - ssri: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 dev: true - /map-cache@0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: true - /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} dev: true - /map-obj@2.0.0: - resolution: {integrity: sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==} - engines: {node: '>=4'} - dev: true - /map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} dev: true - /map-or-similar@1.5.0: - resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - dev: true - - /map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: true - - /markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - dev: true - - /markdown-loader@5.1.0: - resolution: {integrity: sha512-xtQNozLEL+55ZSPTNwro8epZqf1h7HjAZd/69zNe8lbckDiGVHeLQm849bXzocln2pwRK2A/GrW/7MAmwjcFog==} - dependencies: - loader-utils: 1.4.2 - marked: 0.7.0 - dev: true - /markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: true - /markdown-to-jsx@6.11.4(react@16.14.0): - resolution: {integrity: sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==} - engines: {node: '>= 4'} - peerDependencies: - react: '>= 0.14.0' - dependencies: - prop-types: 15.8.1 - react: 16.14.0 - unquote: 1.1.1 - dev: true - - /marked@0.7.0: - resolution: {integrity: sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: true - /mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} dev: true @@ -17184,18 +11157,6 @@ packages: safe-buffer: 5.2.1 dev: true - /mdast-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} - dependencies: - unist-util-remove: 2.1.0 - dev: true - - /mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} - dependencies: - unist-util-visit: 2.0.3 - dev: true - /mdast-util-definitions@5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: @@ -17341,19 +11302,6 @@ packages: unist-util-is: 5.2.1 dev: true - /mdast-util-to-hast@10.0.1: - resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - mdast-util-definitions: 4.0.0 - mdurl: 1.0.1 - unist-builder: 2.0.3 - unist-util-generated: 1.1.6 - unist-util-position: 3.1.0 - unist-util-visit: 2.0.3 - dev: true - /mdast-util-to-hast@12.3.0: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: @@ -17380,10 +11328,6 @@ packages: zwitch: 2.0.4 dev: true - /mdast-util-to-string@1.1.0: - resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} - dev: true - /mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} dependencies: @@ -17398,15 +11342,6 @@ packages: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} dev: true - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - dev: true - - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - dev: true - /memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -17414,63 +11349,6 @@ packages: fs-monkey: 1.0.5 dev: true - /memoizerific@1.11.3: - resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} - dependencies: - map-or-similar: 1.5.0 - dev: true - - /memory-fs@0.4.1: - resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - dev: true - - /memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - dev: true - - /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - - /meow@3.7.0: - resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} - engines: {node: '>=0.10.0'} - dependencies: - camelcase-keys: 2.1.0 - decamelize: 1.2.0 - loud-rejection: 1.6.0 - map-obj: 1.0.1 - minimist: 1.2.8 - normalize-package-data: 2.5.0 - object-assign: 4.1.1 - read-pkg-up: 1.0.1 - redent: 1.0.0 - trim-newlines: 1.0.0 - dev: true - - /meow@4.0.1: - resolution: {integrity: sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==} - engines: {node: '>=4'} - dependencies: - camelcase-keys: 4.2.0 - decamelize-keys: 1.1.1 - loud-rejection: 1.6.0 - minimist: 1.2.8 - minimist-options: 3.0.2 - normalize-package-data: 2.5.0 - read-pkg-up: 3.0.0 - redent: 2.0.0 - trim-newlines: 2.0.0 - dev: true - /meow@6.1.1: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} @@ -17523,10 +11401,6 @@ packages: yargs-parser: 20.2.9 dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - dev: true - /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -17536,15 +11410,6 @@ packages: engines: {node: '>= 8'} dev: true - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - dev: true - - /microevent.ts@0.1.1: - resolution: {integrity: sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==} - dev: true - /micromark-core-commonmark@1.1.0: resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} dependencies: @@ -17813,27 +11678,6 @@ packages: - supports-color dev: true - /micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -17868,12 +11712,7 @@ packages: hasBin: true requiresBuild: true dev: true - - /mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - dev: true + optional: true /mimer@1.1.0: resolution: {integrity: sha512-y9dVfy2uiycQvDNiAYW6zp49ZhFlXDMr5wfdOiMbdzGM/0N5LNR6HTUn3un+WUQcM0koaw8FMTG1bt5EnHJdvQ==} @@ -17896,30 +11735,11 @@ packages: engines: {node: '>=12'} dev: true - /min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - dependencies: - dom-walk: 0.1.2 - dev: true - /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@0.11.3(webpack@5.89.0): - resolution: {integrity: sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==} - engines: {node: '>= 6.9.0'} - peerDependencies: - webpack: ^4.4.0 || ^5.0.0 - dependencies: - loader-utils: 1.4.2 - normalize-url: 1.9.1 - schema-utils: 1.0.0 - webpack: 5.89.0 - webpack-sources: 1.4.3 - dev: true - /minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} dev: true @@ -17961,14 +11781,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist-options@3.0.2: - resolution: {integrity: sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==} - engines: {node: '>= 4'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - dev: true - /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -18039,13 +11851,6 @@ packages: minipass: 3.3.6 dev: true - /minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - dependencies: - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: true - /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -18068,12 +11873,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: true - /minizlib@1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} - dependencies: - minipass: 2.9.0 - dev: true - /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -18113,43 +11912,11 @@ packages: through2: 2.0.5 dev: true - /mississippi@3.0.0: - resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} - engines: {node: '>=4.0.0'} - dependencies: - concat-stream: 1.6.2 - duplexify: 3.7.1 - end-of-stream: 1.4.4 - flush-write-stream: 1.1.1 - from2: 2.3.0 - parallel-transform: 1.2.0 - pump: 3.0.0 - pumpify: 1.5.1 - stream-each: 1.2.3 - through2: 2.0.5 - dev: true - - /mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: true - /mixme@0.5.10: resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} engines: {node: '>= 8.0.0'} dev: true - /mkdirp-promise@5.0.1: - resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} - engines: {node: '>=4'} - deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. - dependencies: - mkdirp: 1.0.4 - dev: true - /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -18188,10 +11955,6 @@ packages: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true - /ms@2.1.1: - resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} - dev: true - /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -18200,16 +11963,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /multimatch@3.0.0: - resolution: {integrity: sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==} - engines: {node: '>=6'} - dependencies: - array-differ: 2.1.0 - array-union: 1.0.2 - arrify: 1.0.1 - minimatch: 3.1.2 - dev: true - /multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -18234,20 +11987,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - - /nan@2.18.0: - resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} - requiresBuild: true - dev: true - optional: true - /nanoid@2.1.11: resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} dev: true @@ -18258,25 +11997,6 @@ packages: hasBin: true dev: true - /nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -18308,20 +12028,6 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /nested-error-stacks@2.1.1: - resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} - dev: true - - /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true - - /no-case@2.3.2: - resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} - dependencies: - lower-case: 1.1.4 - dev: true - /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: @@ -18333,28 +12039,11 @@ packages: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: true - /node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - dev: true - - /node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} - engines: {node: '>= 0.10.5'} - dependencies: - minimatch: 3.1.2 - dev: true - /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} dev: true - /node-emoji@1.10.0: - resolution: {integrity: sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==} - dependencies: - lodash.toarray: 4.4.0 - dev: true - /node-fetch-npm@2.0.4: resolution: {integrity: sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==} engines: {node: '>=4'} @@ -18365,6 +12054,13 @@ packages: safe-buffer: 5.2.1 dev: true + /node-fetch@1.7.3: + resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} + dependencies: + encoding: 0.1.13 + is-stream: 1.1.0 + dev: false + /node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -18386,24 +12082,6 @@ packages: formdata-polyfill: 4.0.10 dev: true - /node-gyp@5.1.1: - resolution: {integrity: sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==} - engines: {node: '>= 6.0.0'} - hasBin: true - dependencies: - env-paths: 2.2.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - nopt: 4.0.3 - npmlog: 4.1.2 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.7.2 - tar: 4.4.19 - which: 1.3.1 - dev: true - /node-gyp@9.4.1: resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} engines: {node: ^12.13 || ^14.13 || >=16} @@ -18461,22 +12139,10 @@ packages: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: true - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true - /nopt@4.0.3: - resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} - hasBin: true - dependencies: - abbrev: 1.1.1 - osenv: 0.1.5 - dev: true - /nopt@6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -18514,13 +12180,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: true - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -18531,21 +12190,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /normalize-url@1.9.1: - resolution: {integrity: sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==} - engines: {node: '>=4'} - dependencies: - object-assign: 4.1.1 - prepend-http: 1.0.4 - query-string: 4.3.4 - sort-keys: 1.1.2 - dev: true - - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: true - /npm-bundled@1.1.2: resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} dependencies: @@ -18566,19 +12210,6 @@ packages: semver: 7.5.4 dev: true - /npm-lifecycle@3.1.5: - resolution: {integrity: sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==} - dependencies: - byline: 5.0.0 - graceful-fs: 4.2.11 - node-gyp: 5.1.1 - resolve-from: 4.0.0 - slide: 1.1.6 - uid-number: 0.0.6 - umask: 1.1.0 - which: 1.3.1 - dev: true - /npm-normalize-package-bin@1.0.1: resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} dev: true @@ -18607,15 +12238,6 @@ packages: validate-npm-package-name: 3.0.0 dev: true - /npm-package-arg@6.1.1: - resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} - dependencies: - hosted-git-info: 2.8.9 - osenv: 0.1.5 - semver: 5.7.2 - validate-npm-package-name: 3.0.0 - dev: true - /npm-package-arg@8.1.1: resolution: {integrity: sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==} engines: {node: '>=10'} @@ -18625,14 +12247,6 @@ packages: validate-npm-package-name: 3.0.0 dev: true - /npm-packlist@1.4.8: - resolution: {integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==} - dependencies: - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: true - /npm-packlist@5.1.1: resolution: {integrity: sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -18658,14 +12272,6 @@ packages: semver: 5.7.2 dev: true - /npm-pick-manifest@3.0.2: - resolution: {integrity: sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==} - dependencies: - figgy-pudding: 3.5.2 - npm-package-arg: 6.1.1 - semver: 5.7.2 - dev: true - /npm-pick-manifest@8.0.2: resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -18691,22 +12297,6 @@ packages: - supports-color dev: true - /npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true - dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.5 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.8.1 - string.prototype.padend: 3.1.5 - dev: true - /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -18728,24 +12318,6 @@ packages: path-key: 4.0.0 dev: true - /npmlog@4.1.2: - resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} - dependencies: - are-we-there-yet: 1.1.7 - console-control-strings: 1.1.0 - gauge: 2.7.4 - set-blocking: 2.0.0 - dev: true - - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - dev: true - /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -18772,15 +12344,6 @@ packages: boolbase: 1.0.0 dev: true - /num2fraction@1.2.2: - resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} - dev: true - - /number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - dev: true - /nx@17.1.3: resolution: {integrity: sha512-6LYoTt01nS1d/dvvYtRs+pEAMQmUVsd2fr/a8+X1cDjWrb8wsf1O3DwlBTqKOXOazpS3eOr0Ukc9N1svbu7uXA==} hasBin: true @@ -18844,26 +12407,12 @@ packages: - debug dev: true - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: true - /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - /object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: true - /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} @@ -18871,19 +12420,11 @@ packages: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 - dev: true + dev: false /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true - - /object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true /object.assign@4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} @@ -18893,7 +12434,6 @@ packages: define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true /object.entries@1.1.7: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} @@ -18941,13 +12481,6 @@ packages: es-abstract: 1.22.3 dev: true - /object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - /object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} @@ -18957,18 +12490,10 @@ packages: es-abstract: 1.22.3 dev: true - /objectorarray@1.0.5: - resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} - dev: true - /obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true - /octokit-pagination-methods@1.1.0: - resolution: {integrity: sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==} - dev: true - /omit-deep@0.3.0: resolution: {integrity: sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==} engines: {node: '>=0.10.0'} @@ -18981,18 +12506,6 @@ packages: resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} dev: true - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - dev: true - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -19027,14 +12540,6 @@ packages: is-wsl: 1.1.0 dev: true - /open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: true - /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -19100,14 +12605,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /os-name@3.1.0: - resolution: {integrity: sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==} - engines: {node: '>=6'} - dependencies: - macos-release: 2.5.1 - windows-release: 3.3.3 - dev: true - /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -19124,20 +12621,6 @@ packages: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: true - /p-all@2.1.0: - resolution: {integrity: sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==} - engines: {node: '>=6'} - dependencies: - p-map: 2.1.0 - dev: true - - /p-event@4.2.0: - resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} - engines: {node: '>=8'} - dependencies: - p-timeout: 3.2.0 - dev: true - /p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -19199,13 +12682,6 @@ packages: p-limit: 3.1.0 dev: true - /p-map-series@1.0.0: - resolution: {integrity: sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==} - engines: {node: '>=4'} - dependencies: - p-reduce: 1.0.0 - dev: true - /p-map-series@2.1.0: resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} engines: {node: '>=8'} @@ -19216,13 +12692,6 @@ packages: engines: {node: '>=6'} dev: true - /p-map@3.0.0: - resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} - engines: {node: '>=8'} - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -19230,23 +12699,11 @@ packages: aggregate-error: 3.1.0 dev: true - /p-pipe@1.2.0: - resolution: {integrity: sha512-IA8SqjIGA8l9qOksXJvsvkeQ+VGb0TAzNCzvKvz9wt5wWLqfWbV6fXy43gpR2L4Te8sOq3S+Ql9biAaMKPdbtw==} - engines: {node: '>=4'} - dev: true - /p-pipe@3.1.0: resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} engines: {node: '>=8'} dev: true - /p-queue@4.0.0: - resolution: {integrity: sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==} - engines: {node: '>=6'} - dependencies: - eventemitter3: 3.1.2 - dev: true - /p-queue@6.6.2: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} @@ -19255,11 +12712,6 @@ packages: p-timeout: 3.2.0 dev: true - /p-reduce@1.0.0: - resolution: {integrity: sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==} - engines: {node: '>=4'} - dev: true - /p-reduce@2.1.0: resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} engines: {node: '>=8'} @@ -19282,13 +12734,6 @@ packages: engines: {node: '>=6'} dev: true - /p-waterfall@1.0.0: - resolution: {integrity: sha512-KeXddIp6jBT8qzyxfQGOGzNYc/7ftxKtRc5Uggre02yvbZrSBHE2M2C842/WizMBFD4s0Ngwz3QFOit2A+Ezrg==} - engines: {node: '>=4'} - dependencies: - p-reduce: 1.0.0 - dev: true - /p-waterfall@2.1.1: resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} engines: {node: '>=8'} @@ -19373,12 +12818,6 @@ packages: readable-stream: 2.3.8 dev: true - /param-case@2.1.1: - resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} - dependencies: - no-case: 2.3.2 - dev: true - /param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: @@ -19403,28 +12842,6 @@ packages: safe-buffer: 5.2.1 dev: true - /parse-entities@1.2.2: - resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: true - - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: true - /parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: @@ -19455,18 +12872,6 @@ packages: ini: 1.3.8 dev: true - /parse-github-repo-url@1.4.1: - resolution: {integrity: sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==} - dev: true - - /parse-json@2.2.0: - resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - error-ex: 1.3.2 - dev: true - /parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -19495,30 +12900,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /parse-path@4.0.4: - resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==} - dependencies: - is-ssh: 1.4.0 - protocols: 1.4.8 - qs: 6.11.2 - query-string: 6.14.1 - dev: true - /parse-path@7.0.0: resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} dependencies: protocols: 2.0.1 dev: true - /parse-url@6.0.5: - resolution: {integrity: sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==} - dependencies: - is-ssh: 1.4.0 - normalize-url: 6.1.0 - parse-path: 4.0.4 - protocols: 1.4.8 - dev: true - /parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} dependencies: @@ -19542,11 +12929,6 @@ packages: peberminta: 0.9.0 dev: true - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: true - /pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: @@ -19554,27 +12936,10 @@ packages: tslib: 2.6.2 dev: true - /pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true - /path-browserify@0.0.1: resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} dev: true - /path-dirname@1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - dev: true - - /path-exists@2.1.0: - resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - pinkie-promise: 2.0.1 - dev: true - /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -19621,26 +12986,12 @@ packages: minipass: 7.0.4 dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - dev: true - /path-to-regexp@1.7.0: resolution: {integrity: sha512-nifX1uj4S9IrK/w3Xe7kKvNEepXivANs9ng60Iq7PU/BlouV3yL/VUhFqTuTq33ykwUqoNcTeGo5vdOBP4jS/Q==} dependencies: isarray: 0.0.1 dev: true - /path-type@1.1.0: - resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - graceful-fs: 4.2.11 - pify: 2.3.0 - pinkie-promise: 2.0.1 - dev: true - /path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -19668,13 +13019,6 @@ packages: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} dev: true - /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: true - - /picocolors@0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -19684,12 +13028,6 @@ packages: engines: {node: '>=8.6'} dev: true - /pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -19717,20 +13055,6 @@ packages: engines: {node: '>=10'} dev: true - /pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - pinkie: 2.0.4 - dev: true - - /pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - /pino-abstract-transport@0.5.0: resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} dependencies: @@ -19764,13 +13088,6 @@ packages: engines: {node: '>= 6'} dev: true - /pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} - dependencies: - find-up: 3.0.0 - dev: true - /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -19778,13 +13095,6 @@ packages: find-up: 4.1.0 dev: true - /pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - dev: true - /pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -19797,49 +13107,15 @@ packages: engines: {node: '>=4'} dev: true - /pnp-webpack-plugin@1.6.4(typescript@5.3.2): - resolution: {integrity: sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==} - engines: {node: '>=6'} - dependencies: - ts-pnp: 1.2.0(typescript@5.3.2) - transitivePeerDependencies: - - typescript - dev: true - /point-in-polygon@1.1.0: resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==} - dev: true - /polished@3.7.2: - resolution: {integrity: sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==} - engines: {node: '>=10'} + /polygon-clipping@0.15.7: + resolution: {integrity: sha512-nhfdr83ECBg6xtqOAJab1tbksbBAOMUltN60bU+llHVOL0e5Onm1WpAXXWXVB39L8AJFssoIhEVuy/S90MmotA==} dependencies: - '@babel/runtime': 7.23.4 - dev: true - - /polished@4.2.2: - resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} - engines: {node: '>=10'} - dependencies: - '@babel/runtime': 7.23.4 - dev: true - - /popper.js@1.16.1: - resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==} - deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 - dev: true - - /posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: true - - /postcss-attribute-case-insensitive@4.0.2: - resolution: {integrity: sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==} - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 6.0.13 - dev: true + robust-predicates: 3.0.2 + splaytree: 3.1.2 + dev: false /postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31): resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==} @@ -19861,14 +13137,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@2.0.1: - resolution: {integrity: sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-color-functional-notation@4.2.4(postcss@8.4.31): resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==} engines: {node: ^12 || ^14 || >=16} @@ -19879,23 +13147,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-color-gray@5.0.0: - resolution: {integrity: sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==} - engines: {node: '>=6.0.0'} - dependencies: - '@csstools/convert-colors': 1.4.0 - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - - /postcss-color-hex-alpha@5.0.3: - resolution: {integrity: sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-color-hex-alpha@8.0.4(postcss@8.4.31): resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==} engines: {node: ^12 || ^14 || >=16} @@ -19906,23 +13157,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-color-mod-function@3.0.3: - resolution: {integrity: sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@csstools/convert-colors': 1.4.0 - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - - /postcss-color-rebeccapurple@4.0.1: - resolution: {integrity: sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-color-rebeccapurple@7.1.1(postcss@8.4.31): resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==} engines: {node: ^12 || ^14 || >=16} @@ -19933,13 +13167,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media@7.0.8: - resolution: {integrity: sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-custom-media@8.0.2(postcss@8.4.31): resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==} engines: {node: ^12 || ^14 || >=16} @@ -19960,22 +13187,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-custom-properties@8.0.11: - resolution: {integrity: sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - - /postcss-custom-selectors@5.1.2: - resolution: {integrity: sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 5.0.0 - dev: true - /postcss-custom-selectors@6.0.3(postcss@8.4.31): resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==} engines: {node: ^12 || ^14 || >=16} @@ -19986,14 +13197,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-dir-pseudo-class@5.0.0: - resolution: {integrity: sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==} - engines: {node: '>=4.0.0'} - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 5.0.0 - dev: true - /postcss-dir-pseudo-class@6.0.5(postcss@8.4.31): resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==} engines: {node: ^12 || ^14 || >=16} @@ -20004,14 +13207,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-double-position-gradients@1.0.0: - resolution: {integrity: sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-double-position-gradients@3.1.2(postcss@8.4.31): resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==} engines: {node: ^12 || ^14 || >=16} @@ -20023,14 +13218,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-env-function@2.0.2: - resolution: {integrity: sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-env-function@4.0.6(postcss@8.4.31): resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==} engines: {node: ^12 || ^14 || >=16} @@ -20041,12 +13228,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-flexbugs-fixes@4.2.1: - resolution: {integrity: sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-flexbugs-fixes@5.0.2(postcss@8.4.31): resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==} peerDependencies: @@ -20055,13 +13236,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-focus-visible@4.0.0: - resolution: {integrity: sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-focus-visible@6.0.4(postcss@8.4.31): resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==} engines: {node: ^12 || ^14 || >=16} @@ -20072,13 +13246,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-focus-within@3.0.0: - resolution: {integrity: sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-focus-within@5.0.4(postcss@8.4.31): resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==} engines: {node: ^12 || ^14 || >=16} @@ -20089,12 +13256,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-font-variant@4.0.1: - resolution: {integrity: sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-font-variant@5.0.0(postcss@8.4.31): resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: @@ -20103,13 +13264,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-gap-properties@2.0.0: - resolution: {integrity: sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-gap-properties@3.0.5(postcss@8.4.31): resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==} engines: {node: ^12 || ^14 || >=16} @@ -20119,14 +13273,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-image-set-function@3.0.1: - resolution: {integrity: sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-image-set-function@4.0.7(postcss@8.4.31): resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==} engines: {node: ^12 || ^14 || >=16} @@ -20137,22 +13283,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-import@12.0.1: - resolution: {integrity: sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - read-cache: 1.0.0 - resolve: 1.22.8 - dev: true - - /postcss-initial@3.0.4: - resolution: {integrity: sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-initial@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} peerDependencies: @@ -20161,15 +13291,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-lab-function@2.0.1: - resolution: {integrity: sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==} - engines: {node: '>=6.0.0'} - dependencies: - '@csstools/convert-colors': 1.4.0 - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-lab-function@4.2.1(postcss@8.4.31): resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==} engines: {node: ^12 || ^14 || >=16} @@ -20181,29 +13302,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-loader@4.3.0(postcss@7.0.39)(webpack@4.47.0): - resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} - engines: {node: '>= 10.13.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^4.0.0 || ^5.0.0 - dependencies: - cosmiconfig: 7.1.0 - klona: 2.0.6 - loader-utils: 2.0.4 - postcss: 7.0.39 - schema-utils: 3.3.0 - semver: 7.5.4 - webpack: 4.47.0 - dev: true - - /postcss-logical@3.0.0: - resolution: {integrity: sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-logical@5.0.4(postcss@8.4.31): resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} engines: {node: ^12 || ^14 || >=16} @@ -20213,13 +13311,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-media-minmax@4.0.0: - resolution: {integrity: sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-media-minmax@5.0.0(postcss@8.4.31): resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==} engines: {node: '>=10.0.0'} @@ -20233,13 +13324,6 @@ packages: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true - /postcss-modules-extract-imports@2.0.0: - resolution: {integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==} - engines: {node: '>= 6'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -20249,16 +13333,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-modules-local-by-default@3.0.3: - resolution: {integrity: sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==} - engines: {node: '>= 6'} - dependencies: - icss-utils: 4.1.1 - postcss: 7.0.39 - postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 - dev: true - /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} @@ -20271,14 +13345,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@2.2.0: - resolution: {integrity: sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==} - engines: {node: '>= 6'} - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 6.0.13 - dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} @@ -20289,13 +13355,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-values@3.0.0: - resolution: {integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==} - dependencies: - icss-utils: 4.1.1 - postcss: 7.0.39 - dev: true - /postcss-modules-values@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} @@ -20317,13 +13376,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-nesting@7.0.1: - resolution: {integrity: sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-opacity-percentage@1.1.3(postcss@8.4.31): resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==} engines: {node: ^12 || ^14 || >=16} @@ -20333,13 +13385,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-overflow-shorthand@2.0.0: - resolution: {integrity: sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-overflow-shorthand@3.0.4(postcss@8.4.31): resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==} engines: {node: ^12 || ^14 || >=16} @@ -20350,12 +13395,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-page-break@2.0.0: - resolution: {integrity: sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-page-break@3.0.4(postcss@8.4.31): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: @@ -20364,14 +13403,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-place@4.0.1: - resolution: {integrity: sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-values-parser: 2.0.1 - dev: true - /postcss-place@7.0.5(postcss@8.4.31): resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==} engines: {node: ^12 || ^14 || >=16} @@ -20390,49 +13421,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-preset-env@6.7.2: - resolution: {integrity: sha512-nz+VyUUEB9uAxo5VxI0Gq4E31UjHCG3cUiZW3PzRn7KqkGlAEWuYgb/VLbAitEq7Ooubfix+H2JCm9v+C6hJuw==} - engines: {node: '>=6.0.0'} - dependencies: - autoprefixer: 9.8.8 - browserslist: 4.22.1 - caniuse-lite: 1.0.30001565 - css-blank-pseudo: 0.1.4 - css-has-pseudo: 0.10.0 - css-prefers-color-scheme: 3.1.1 - cssdb: 4.4.0 - postcss: 7.0.39 - postcss-attribute-case-insensitive: 4.0.2 - postcss-color-functional-notation: 2.0.1 - postcss-color-gray: 5.0.0 - postcss-color-hex-alpha: 5.0.3 - postcss-color-mod-function: 3.0.3 - postcss-color-rebeccapurple: 4.0.1 - postcss-custom-media: 7.0.8 - postcss-custom-properties: 8.0.11 - postcss-custom-selectors: 5.1.2 - postcss-dir-pseudo-class: 5.0.0 - postcss-double-position-gradients: 1.0.0 - postcss-env-function: 2.0.2 - postcss-focus-visible: 4.0.0 - postcss-focus-within: 3.0.0 - postcss-font-variant: 4.0.1 - postcss-gap-properties: 2.0.0 - postcss-image-set-function: 3.0.1 - postcss-initial: 3.0.4 - postcss-lab-function: 2.0.1 - postcss-logical: 3.0.0 - postcss-media-minmax: 4.0.0 - postcss-nesting: 7.0.1 - postcss-overflow-shorthand: 2.0.0 - postcss-page-break: 2.0.0 - postcss-place: 4.0.1 - postcss-pseudo-class-any-link: 6.0.0 - postcss-replace-overflow-wrap: 3.0.0 - postcss-selector-matches: 4.0.0 - postcss-selector-not: 4.0.1 - dev: true - /postcss-preset-env@7.5.0(postcss@8.4.31): resolution: {integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==} engines: {node: ^12 || ^14 || >=16} @@ -20487,14 +13475,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-pseudo-class-any-link@6.0.0: - resolution: {integrity: sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 5.0.0 - dev: true - /postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31): resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==} engines: {node: ^12 || ^14 || >=16} @@ -20505,12 +13485,6 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-replace-overflow-wrap@3.0.0: - resolution: {integrity: sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==} - dependencies: - postcss: 7.0.39 - dev: true - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: @@ -20532,27 +13506,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-scss@2.1.1: - resolution: {integrity: sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: false - - /postcss-selector-matches@4.0.0: - resolution: {integrity: sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==} - dependencies: - balanced-match: 1.0.2 - postcss: 7.0.39 - dev: true - - /postcss-selector-not@4.0.1: - resolution: {integrity: sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==} - dependencies: - balanced-match: 1.0.2 - postcss: 7.0.39 - dev: true - /postcss-selector-not@5.0.0(postcss@8.4.31): resolution: {integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==} peerDependencies: @@ -20562,15 +13515,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-selector-parser@5.0.0: - resolution: {integrity: sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==} - engines: {node: '>=4'} - dependencies: - cssesc: 2.0.0 - indexes-of: 1.0.1 - uniq: 1.0.1 - dev: true - /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} @@ -20603,30 +13547,10 @@ packages: postcss: 8.4.31 dev: true - /postcss-value-parser@3.3.1: - resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} - dev: true - /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss-values-parser@2.0.1: - resolution: {integrity: sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==} - engines: {node: '>=6.14.4'} - dependencies: - flatten: 1.0.3 - indexes-of: 1.0.1 - uniq: 1.0.1 - dev: true - - /postcss@7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} - dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 - /postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -20636,15 +13560,6 @@ packages: source-map-js: 1.0.2 dev: true - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /preferred-pm@3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} @@ -20708,25 +13623,12 @@ packages: synckit: 0.8.5 dev: true - /prettier@2.3.0: - resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: true - /pretty-error@2.1.2: - resolution: {integrity: sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==} - dependencies: - lodash: 4.17.21 - renderkid: 2.0.7 - dev: true - /pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} dependencies: @@ -20743,11 +13645,6 @@ packages: react-is: 18.2.0 dev: true - /pretty-hrtime@1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} - dev: true - /prism-react-renderer@1.3.5(react@18.2.0): resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} peerDependencies: @@ -20760,22 +13657,11 @@ packages: resolution: {integrity: sha512-tX2AYsehKDw1EORwBps+WhBFKc2kxfoFpQAjxBndbZKr4fRmMkv47XN0BghC/K1qwodB1otbe4oF23vUTFDokw==} dev: true - /prismjs@1.17.1: - resolution: {integrity: sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==} - optionalDependencies: - clipboard: 2.0.11 - dev: true - /prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} dev: true - /private@0.1.8: - resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} - engines: {node: '>= 0.6'} - dev: true - /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -20820,43 +13706,6 @@ packages: retry: 0.12.0 dev: true - /promise.allsettled@1.0.7: - resolution: {integrity: sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==} - engines: {node: '>= 0.4'} - dependencies: - array.prototype.map: 1.0.6 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - iterate-value: 1.0.2 - dev: true - - /promise.prototype.finally@3.1.7: - resolution: {integrity: sha512-iL9OcJRUZcCE5xn6IwhZxO+eMM0VEXjkETHy+Nk+d9q3s7kxVtPg+mBlMO+ZGxNKNMODyKmy/bOyt/yhxTnvEw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - set-function-name: 2.0.1 - dev: true - - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /promzard@0.3.0: - resolution: {integrity: sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==} - dependencies: - read: 1.0.7 - dev: true - /promzard@1.0.0: resolution: {integrity: sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -20871,24 +13720,10 @@ packages: object-assign: 4.1.1 react-is: 16.13.1 - /property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - dependencies: - xtend: 4.0.2 - dev: true - /property-information@6.4.0: resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} dev: true - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - dev: true - - /protocols@1.4.8: - resolution: {integrity: sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==} - dev: true - /protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} dev: true @@ -20899,20 +13734,6 @@ packages: genfun: 4.0.1 dev: true - /protoduck@5.0.1: - resolution: {integrity: sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==} - dependencies: - genfun: 5.0.0 - dev: true - - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - dev: true - /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true @@ -20921,15 +13742,12 @@ packages: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} requiresBuild: true dev: true + optional: true /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true - /public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} dependencies: @@ -20955,13 +13773,6 @@ packages: once: 1.4.0 dev: true - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true - /pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} dependencies: @@ -20992,32 +13803,11 @@ packages: react: 18.2.0 dev: false - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: true - /qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 - dev: true - - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - dev: true - - /query-string@4.3.4: - resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} - engines: {node: '>=0.10.0'} - dependencies: - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - dev: true /query-string@6.14.1: resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} @@ -21048,16 +13838,19 @@ packages: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} dev: true - /quick-lru@1.1.0: - resolution: {integrity: sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==} - engines: {node: '>=4'} - dev: true - /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} dev: true + /quickselect@1.1.1: + resolution: {integrity: sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==} + dev: false + + /quickselect@2.0.0: + resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} + dev: false + /ramda@0.28.0: resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==} dev: true @@ -21079,32 +13872,6 @@ packages: safe-buffer: 5.2.1 dev: true - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: true - - /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: true - - /raw-loader@4.0.2(webpack@4.47.0): - resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 4.47.0 - dev: true - /raw-loader@4.0.2(webpack@5.89.0): resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} engines: {node: '>= 10.13.0'} @@ -21116,6 +13883,18 @@ packages: webpack: 5.89.0 dev: true + /rbush@2.0.2: + resolution: {integrity: sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==} + dependencies: + quickselect: 1.1.1 + dev: false + + /rbush@3.0.1: + resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==} + dependencies: + quickselect: 2.0.0 + dev: false + /rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==} peerDependencies: @@ -21124,7 +13903,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 array-tree-filter: 2.1.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -21139,7 +13918,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21152,7 +13931,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21167,7 +13946,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21182,7 +13961,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21197,7 +13976,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21224,7 +14003,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -21240,7 +14019,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/mini-decimal': 1.1.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-input: 1.3.11(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21254,7 +14033,7 @@ packages: react-dom: '>=16.0.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21268,7 +14047,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-input: 1.3.11(react-dom@18.2.0)(react@18.2.0) rc-menu: 9.12.4(react-dom@18.2.0)(react@18.2.0) rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) @@ -21285,7 +14064,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -21299,7 +14078,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21312,7 +14091,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21326,7 +14105,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21339,7 +14118,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21367,7 +14146,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 dayjs: 1.11.10 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21381,7 +14160,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21395,7 +14174,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21408,7 +14187,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21421,7 +14200,7 @@ packages: react-dom: '>=16.0.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21437,7 +14216,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -21454,7 +14233,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21468,7 +14247,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21481,7 +14260,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21496,7 +14275,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) @@ -21512,7 +14291,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) rc-menu: 9.12.4(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) @@ -21528,7 +14307,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-input: 1.3.11(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -21544,7 +14323,7 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -21556,7 +14335,7 @@ packages: react-dom: '*' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -21572,7 +14351,7 @@ packages: react-dom: '*' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) @@ -21586,7 +14365,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21611,7 +14390,7 @@ packages: react-dom: '*' dependencies: '@babel/runtime': 7.23.4 - classnames: 2.3.2 + classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -21627,14 +14406,19 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-clientside-effect@1.2.6(react@16.14.0): - resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + /react-activation@0.12.4(prop-types@15.8.1)(react@18.2.0): + resolution: {integrity: sha512-6jJtnUnQBKCrWgvHkzCJP3QZAtthnhDuoPa5LJnj1+1TxS5qkh3Z74zdNZY40wMbkTsLbo6CYoS51Fx/bTM3/w==} peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react: '>=16' dependencies: - '@babel/runtime': 7.23.4 - react: 16.14.0 - dev: true + create-react-context: 0.3.0(prop-types@15.8.1)(react@18.2.0) + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-node-key: 0.4.0(react@18.2.0) + szfe-tools: 0.0.0-beta.7 + transitivePeerDependencies: + - prop-types + dev: false /react-copy-to-clipboard@5.1.0(react@18.2.0): resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} @@ -21646,44 +14430,6 @@ packages: react: 18.2.0 dev: true - /react-docgen-typescript@2.2.2(typescript@5.3.2): - resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} - peerDependencies: - typescript: '>= 4.3.x' - dependencies: - typescript: 5.3.2 - dev: true - - /react-docgen@5.4.3: - resolution: {integrity: sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA==} - engines: {node: '>=8.10.0'} - hasBin: true - dependencies: - '@babel/core': 7.23.3 - '@babel/generator': 7.23.4 - '@babel/runtime': 7.23.4 - ast-types: 0.14.2 - commander: 2.20.3 - doctrine: 3.0.0 - estree-to-babel: 3.2.1 - neo-async: 2.6.2 - node-dir: 0.1.17 - strip-indent: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /react-dom@16.14.0(react@16.14.0): - resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==} - peerDependencies: - react: ^16.14.0 - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - prop-types: 15.8.1 - react: 16.14.0 - scheduler: 0.19.1 - /react-dom@18.1.0(react@18.1.0): resolution: {integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==} peerDependencies: @@ -21703,19 +14449,6 @@ packages: react: 18.2.0 scheduler: 0.23.0 - /react-element-to-jsx-string@14.3.4(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-t4ZwvV6vwNxzujDQ+37bspnLwA4JlgUPWhLjBJWsNIDceAf6ZKUTCjdm08cN6WeZ5pTMKiCJkmAYnpmR4Bm+dg==} - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 - dependencies: - '@base2/pretty-print-object': 1.0.1 - is-plain-object: 5.0.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-is: 17.0.2 - dev: true - /react-error-boundary@4.0.11(react@18.2.0): resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==} peerDependencies: @@ -21733,40 +14466,6 @@ packages: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: true - /react-focus-lock@2.9.6(@types/react@18.2.39)(react@16.14.0): - resolution: {integrity: sha512-B7gYnCjHNrNYwY2juS71dHbf0+UpXXojt02svxybj8N5bxceAkzPChKEncHuratjUHkIFNCn06k2qj1DRlzTug==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.23.4 - '@types/react': 18.2.39 - focus-lock: 1.0.0 - prop-types: 15.8.1 - react: 16.14.0 - react-clientside-effect: 1.2.6(react@16.14.0) - use-callback-ref: 1.3.1(@types/react@18.2.39)(react@16.14.0) - use-sidecar: 1.1.2(@types/react@18.2.39)(react@16.14.0) - dev: true - - /react-helmet-async@1.3.0(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.23.4 - invariant: 2.2.4 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - dev: true - /react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} peerDependencies: @@ -21797,37 +14496,6 @@ packages: shallowequal: 1.1.0 dev: true - /react-i18next@11.18.6(i18next@20.6.1)(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==} - peerDependencies: - i18next: '>= 19.0.0' - react: '>= 16.8.0' - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - dependencies: - '@babel/runtime': 7.23.4 - html-parse-stringify: 3.0.1 - i18next: 20.6.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - dev: false - - /react-inspector@5.1.1(react@16.14.0): - resolution: {integrity: sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - dependencies: - '@babel/runtime': 7.23.4 - is-dom: 1.1.0 - prop-types: 15.8.1 - react: 16.14.0 - dev: true - /react-intl@6.5.5(react@18.2.0)(typescript@5.3.2): resolution: {integrity: sha512-cI5UKvBh4tc1zxLIziHBYGMX3dhYWDEFlvUDVN6NfT2i96zTXz/zH2AmM8+2waqgOhwkFUzd+7kK1G9q7fiC2g==} peerDependencies: @@ -21854,58 +14522,41 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - /react-lifecycles-compat@3.0.4: - resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - dev: true - /react-merge-refs@1.1.0: resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==} dev: true - /react-popper-tooltip@2.11.1(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ==} + /react-node-key@0.4.0(react@18.2.0): + resolution: {integrity: sha512-puiuP2QYEuNBVVvcjpUE8d8/jdAhiXHBHMmjZzQT4+fe276RMYea/tY7JoZoYlrhAX8DORLPvjySjXYJZ1m6/A==} peerDependencies: - react: ^16.6.0 - react-dom: ^16.6.0 + react: '>=16' dependencies: - '@babel/runtime': 7.23.4 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-popper: 1.3.11(react@16.14.0) - dev: true - - /react-popper@1.3.11(react@16.14.0): - resolution: {integrity: sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==} - peerDependencies: - react: 0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@babel/runtime': 7.23.4 - '@hypnosphi/create-react-context': 0.3.1(prop-types@15.8.1)(react@16.14.0) - deep-equal: 1.1.2 - popper.js: 1.16.1 - prop-types: 15.8.1 - react: 16.14.0 - typed-styles: 0.0.7 - warning: 4.0.3 - dev: true - - /react-refresh@0.11.0: - resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} - engines: {node: '>=0.10.0'} - dev: true + jsx-ast-utils: 2.4.1 + react: 18.2.0 + szfe-tools: 0.0.0-beta.7 + dev: false /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} dev: true + /react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.14.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.21.1(react@18.2.0) + dev: false + /react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} peerDependencies: @@ -21930,6 +14581,16 @@ packages: react-router: 6.3.0(react@18.2.0) dev: true + /react-router@6.21.1(react@18.2.0): + resolution: {integrity: sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.14.1 + react: 18.2.0 + dev: false + /react-router@6.3.0(react@18.1.0): resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==} peerDependencies: @@ -21948,37 +14609,6 @@ packages: react: 18.2.0 dev: true - /react-syntax-highlighter@11.0.3(react@16.14.0): - resolution: {integrity: sha512-0v0ET2qn9oAam4K/Te9Q/2jtS4R2d6wUFqgk5VcxrCBm+4MB5BE+oQf2CA0RanUHbYaYFuagt/AugICU87ufxQ==} - peerDependencies: - react: '>= 0.14.0' - dependencies: - '@babel/runtime': 7.23.4 - highlight.js: 9.18.5 - lowlight: 1.11.0 - prismjs: 1.29.0 - react: 16.14.0 - refractor: 2.10.1 - dev: true - - /react-textarea-autosize@7.1.2(react@16.14.0): - resolution: {integrity: sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==} - peerDependencies: - react: '>=0.14.0 <17.0.0' - dependencies: - '@babel/runtime': 7.23.4 - prop-types: 15.8.1 - react: 16.14.0 - dev: true - - /react@16.14.0: - resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - prop-types: 15.8.1 - /react@18.1.0: resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==} engines: {node: '>=0.10.0'} @@ -21992,18 +14622,6 @@ packages: dependencies: loose-envify: 1.4.0 - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true - - /read-cmd-shim@1.0.5: - resolution: {integrity: sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA==} - dependencies: - graceful-fs: 4.2.11 - dev: true - /read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -22017,15 +14635,6 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /read-package-json@2.1.2: - resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} - dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 2.5.0 - npm-normalize-package-bin: 1.0.1 - dev: true - /read-package-json@6.0.4: resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -22036,24 +14645,6 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /read-package-tree@5.3.1: - resolution: {integrity: sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==} - deprecated: The functionality that this package provided is now in @npmcli/arborist - dependencies: - read-package-json: 2.1.2 - readdir-scoped-modules: 1.1.0 - util-promisify: 2.1.0 - dev: true - - /read-pkg-up@1.0.1: - resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - find-up: 1.1.2 - read-pkg: 1.1.0 - dev: true - /read-pkg-up@3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} @@ -22071,16 +14662,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg@1.1.0: - resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - load-json-file: 1.1.0 - normalize-package-data: 2.5.0 - path-type: 1.1.0 - dev: true - /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -22110,13 +14691,6 @@ packages: strip-bom: 3.0.0 dev: true - /read@1.0.7: - resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} - engines: {node: '>=0.8'} - dependencies: - mute-stream: 0.0.8 - dev: true - /read@2.1.0: resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -22144,29 +14718,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - graceful-fs: 4.2.11 - once: 1.4.0 - dev: true - - /readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color - dev: true - optional: true - /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -22179,40 +14730,6 @@ packages: engines: {node: '>= 12.13.0'} dev: true - /recast@0.11.23: - resolution: {integrity: sha512-+nixG+3NugceyR8O1bLU45qs84JgI3+8EauyRZafLgC9XbdAOIVgwV1Pe2da0YzGo62KzWoZwUpVEQf6qNAXWA==} - engines: {node: '>= 0.8'} - dependencies: - ast-types: 0.9.6 - esprima: 3.1.3 - private: 0.1.8 - source-map: 0.5.7 - dev: true - - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.8 - dev: true - - /redent@1.0.0: - resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - indent-string: 2.1.0 - strip-indent: 1.0.1 - dev: true - - /redent@2.0.0: - resolution: {integrity: sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==} - engines: {node: '>=4'} - dependencies: - indent-string: 3.2.0 - strip-indent: 2.0.0 - dev: true - /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -22233,14 +14750,6 @@ packages: which-builtin-type: 1.1.3 dev: true - /refractor@2.10.1: - resolution: {integrity: sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==} - dependencies: - hastscript: 5.1.2 - parse-entities: 1.2.2 - prismjs: 1.17.1 - dev: true - /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -22259,20 +14768,6 @@ packages: /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.23.4 - dev: true - - /regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: true - /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -22280,19 +14775,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 - dev: true - - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - dev: true /registry-auth-token@3.4.0: resolution: {integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==} @@ -22308,13 +14790,6 @@ packages: rc: 1.2.8 dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: true - /rehype-autolink-headings@6.1.1: resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} dependencies: @@ -22360,20 +14835,6 @@ packages: - supports-color dev: true - /remark-external-links@8.0.0: - resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==} - dependencies: - extend: 3.0.2 - is-absolute-url: 3.0.3 - mdast-util-definitions: 4.0.0 - space-separated-tokens: 1.1.5 - unist-util-visit: 2.0.3 - dev: true - - /remark-footnotes@2.0.0: - resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} - dev: true - /remark-frontmatter@4.0.1: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: @@ -22394,21 +14855,6 @@ packages: - supports-color dev: true - /remark-mdx@1.6.22: - resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@babel/plugin-proposal-object-rest-spread': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - is-alphabetical: 1.0.4 - remark-parse: 8.0.3 - unified: 9.2.0 - transitivePeerDependencies: - - supports-color - dev: true - /remark-parse@10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: @@ -22419,27 +14865,6 @@ packages: - supports-color dev: true - /remark-parse@8.0.3: - resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} - dependencies: - ccount: 1.1.0 - collapse-white-space: 1.0.6 - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - is-word-character: 1.0.4 - markdown-escapes: 1.0.4 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - trim: 0.0.1 - trim-trailing-lines: 1.1.4 - unherit: 1.1.3 - unist-util-remove-position: 2.0.1 - vfile-location: 3.2.0 - xtend: 4.0.2 - dev: true - /remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: @@ -22449,20 +14874,6 @@ packages: unified: 10.1.2 dev: true - /remark-slug@6.1.0: - resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} - dependencies: - github-slugger: 1.5.0 - mdast-util-to-string: 1.1.0 - unist-util-visit: 2.0.3 - dev: true - - /remark-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} - dependencies: - mdast-squeeze-paragraphs: 4.0.0 - dev: true - /remote-origin-url@0.4.0: resolution: {integrity: sha512-HYhdsT2pNd0LP4Osb0vtQ1iassxIc3Yk1oze7j8dMJFciMkW8e0rdg9E/mOunqtSVHSzvMfwLDIYzPnEDmpk6Q==} engines: {node: '>= 0.8.0'} @@ -22477,25 +14888,11 @@ packages: parse-git-config: 1.1.1 dev: true - /remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: true - /rename-keys@1.2.0: resolution: {integrity: sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==} engines: {node: '>= 0.8.0'} dev: true - /renderkid@2.0.7: - resolution: {integrity: sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==} - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 3.0.1 - dev: true - /renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} dependencies: @@ -22506,51 +14903,6 @@ packages: strip-ansi: 6.0.1 dev: true - /repeat-element@1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: true - - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true - - /repeating@2.0.1: - resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - is-finite: 1.1.0 - dev: true - - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: true - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -22572,13 +14924,6 @@ packages: /resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - /resolve-cwd@2.0.0: - resolution: {integrity: sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==} - engines: {node: '>=4'} - dependencies: - resolve-from: 3.0.0 - dev: true - /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -22594,11 +14939,6 @@ packages: global-modules: 0.2.3 dev: true - /resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - dev: true - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -22620,11 +14960,6 @@ packages: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true - /resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true - /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: @@ -22674,11 +15009,6 @@ packages: signal-exit: 3.0.7 dev: true - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true - /retry@0.10.1: resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} dev: true @@ -22726,6 +15056,14 @@ packages: inherits: 2.0.4 dev: true + /robust-predicates@2.0.4: + resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==} + dev: false + + /robust-predicates@3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + dev: false + /rollup-plugin-visualizer@5.9.0: resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} @@ -22742,14 +15080,6 @@ packages: yargs: 17.7.2 dev: true - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -22758,11 +15088,6 @@ packages: fsevents: 2.3.3 dev: true - /rsvp@4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} - dev: true - /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -22815,11 +15140,6 @@ packages: get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - - /safe-buffer@5.1.1: - resolution: {integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==} - dev: true /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -22834,13 +15154,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-regex: 1.1.4 - dev: true - - /safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: true /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} @@ -22849,51 +15162,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - - /sane@4.1.0: - resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} - engines: {node: 6.* || 8.* || >= 10.*} - deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added - hasBin: true - dependencies: - '@cnakazawa/watch': 1.0.4 - anymatch: 2.0.0 - capture-exit: 2.0.0 - exec-sh: 0.3.6 - execa: 1.0.0 - fb-watchman: 2.0.2 - micromatch: 3.1.10 - minimist: 1.2.8 - walker: 1.0.8 - transitivePeerDependencies: - - supports-color - dev: true - - /sass-loader@9.0.3(sass@1.69.5)(webpack@5.89.0): - resolution: {integrity: sha512-fOwsP98ac1VMme+V3+o0HaaMHp8Q/C9P+MUazLFVi3Jl7ORGHQXL1XeRZt3zLSGZQQPC8xE42Y2WptItvGjDQg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^4.0.0 - sass: ^1.3.0 - webpack: ^4.36.0 || ^5.0.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - dependencies: - klona: 1.1.2 - loader-utils: 2.0.4 - neo-async: 2.6.2 - sass: 1.69.5 - schema-utils: 2.7.1 - semver: 7.5.4 - webpack: 5.89.0 - dev: true /sass@1.69.5: resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} @@ -22913,12 +15181,6 @@ packages: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} dev: true - /scheduler@0.19.1: - resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - /scheduler@0.22.0: resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==} dependencies: @@ -22930,33 +15192,6 @@ packages: dependencies: loose-envify: 1.4.0 - /schema-utils@1.0.0: - resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} - engines: {node: '>= 4'} - dependencies: - ajv: 6.12.6 - ajv-errors: 1.0.1(ajv@6.12.6) - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: true - - /schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: true - - /schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: true - /schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -22987,12 +15222,6 @@ packages: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true - /select@1.1.2: - resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==} - requiresBuild: true - dev: true - optional: true - /semver-diff@2.1.0: resolution: {integrity: sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==} engines: {node: '>=0.10.0'} @@ -23026,68 +15255,12 @@ packages: lru-cache: 6.0.0 dev: true - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - dependencies: - randombytes: 2.1.0 - dev: true - - /serialize-javascript@5.0.1: - resolution: {integrity: sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==} - dependencies: - randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: randombytes: 2.1.0 dev: true - /serve-favicon@2.5.0: - resolution: {integrity: sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==} - engines: {node: '>= 0.8.0'} - dependencies: - etag: 1.8.1 - fresh: 0.5.2 - ms: 2.1.1 - parseurl: 1.3.3 - safe-buffer: 5.1.1 - dev: true - - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - dev: true - /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true @@ -23100,7 +15273,6 @@ packages: get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 - dev: true /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} @@ -23109,25 +15281,10 @@ packages: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.1 - dev: true - - /set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: true /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: true - /sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true @@ -23143,10 +15300,6 @@ packages: kind-of: 6.0.3 dev: true - /shallow-equal@1.2.1: - resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==} - dev: true - /shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} dev: true @@ -23175,20 +15328,6 @@ packages: engines: {node: '>=8'} dev: true - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - dev: true - - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - dev: true - /shortid@2.2.16: resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -23202,7 +15341,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 object-inspect: 1.13.1 - dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -23233,33 +15371,6 @@ packages: is-arrayish: 0.3.2 dev: true - /simplebar-react@1.2.3(react-dom@16.14.0)(react@16.14.0): - resolution: {integrity: sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg==} - peerDependencies: - react: ^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 - react-dom: ^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 - dependencies: - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - simplebar: 4.2.3 - dev: true - - /simplebar@4.2.3: - resolution: {integrity: sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g==} - dependencies: - can-use-dom: 0.1.0 - core-js: 3.28.0 - lodash.debounce: 4.0.8 - lodash.memoize: 4.1.2 - lodash.throttle: 4.1.1 - resize-observer-polyfill: 1.5.1 - dev: true - - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - /sitemap@7.1.1: resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} engines: {node: '>=12.0.0', npm: '>=5.6.0'} @@ -23271,10 +15382,9 @@ packages: sax: 1.3.0 dev: true - /slash@2.0.0: - resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} - engines: {node: '>=6'} - dev: true + /skmeans@0.9.7: + resolution: {integrity: sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==} + dev: false /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -23303,10 +15413,6 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /slide@1.1.6: - resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} - dev: true - /smart-buffer@1.1.15: resolution: {integrity: sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==} engines: {node: '>= 0.10.15', npm: '>= 1.3.5'} @@ -23330,38 +15436,6 @@ packages: yargs: 15.4.1 dev: true - /snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: true - - /snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /socks-proxy-agent@3.0.1: resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==} dependencies: @@ -23369,14 +15443,6 @@ packages: socks: 1.1.10 dev: true - /socks-proxy-agent@4.0.2: - resolution: {integrity: sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==} - engines: {node: '>= 6'} - dependencies: - agent-base: 4.2.1 - socks: 2.3.3 - dev: true - /socks-proxy-agent@7.0.0: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} engines: {node: '>= 10'} @@ -23397,14 +15463,6 @@ packages: smart-buffer: 1.1.15 dev: true - /socks@2.3.3: - resolution: {integrity: sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dependencies: - ip: 1.1.5 - smart-buffer: 4.2.0 - dev: true - /socks@2.7.1: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} @@ -23419,13 +15477,6 @@ packages: atomic-sleep: 1.0.0 dev: true - /sort-keys@1.1.2: - resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-obj: 1.1.0 - dev: true - /sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} @@ -23462,26 +15513,11 @@ packages: sort-object-keys: 1.1.3 dev: true - /source-list-map@2.0.1: - resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} - dev: true - /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} dev: true - /source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: true - /source-map-resolve@0.6.0: resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated @@ -23497,29 +15533,16 @@ packages: source-map: 0.6.1 dev: true - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true - - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: true - /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} dev: true - /space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: true - /space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} dev: true @@ -23579,24 +15602,15 @@ packages: - supports-color dev: true + /splaytree@3.1.2: + resolution: {integrity: sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==} + dev: false + /split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} dev: true - /split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - dev: true - - /split2@2.2.0: - resolution: {integrity: sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==} - dependencies: - through2: 2.0.5 - dev: true - /split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -23618,22 +15632,6 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: true - /ssri@10.0.5: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -23653,19 +15651,6 @@ packages: safe-buffer: 5.2.1 dev: true - /ssri@6.0.2: - resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} - dependencies: - figgy-pudding: 3.5.2 - dev: true - - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true - /ssri@9.0.1: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -23682,23 +15667,6 @@ packages: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: true - /state-toggle@1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - dev: true - - /static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: true - - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: true - /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -23706,32 +15674,6 @@ packages: internal-slot: 1.0.6 dev: true - /store2@2.14.2: - resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} - dev: true - - /storybook-readme@5.0.9(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0)(vue@2.7.16): - resolution: {integrity: sha512-rKMWyqXZ4HSMk2qTF0oog2tn94QxgkOMb+YQ6gs9ibcdJWmWEcsXhK/87HO4Lix6kTNNmTh3brnjOTu9w2bJEQ==} - dependencies: - '@storybook/components': 5.3.22(@types/react@18.2.39)(react-dom@16.14.0)(react@16.14.0) - '@storybook/core-events': 5.3.22 - html-loader: 0.5.5 - lodash: 4.17.21 - markdown-loader: 5.1.0 - marked: 0.7.0 - node-emoji: 1.10.0 - prism-themes: 1.9.0 - prismjs: 1.29.0 - react-element-to-jsx-string: 14.3.4(react-dom@16.14.0)(react@16.14.0) - string-raw: 1.0.1 - vuex: 3.6.2(vue@2.7.16) - transitivePeerDependencies: - - '@types/react' - - react - - react-dom - - vue - dev: true - /stream-browserify@2.0.2: resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} dependencies: @@ -23766,11 +15708,6 @@ packages: mixme: 0.5.10 dev: true - /strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} - engines: {node: '>=0.10.0'} - dev: true - /strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} @@ -23785,20 +15722,6 @@ packages: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} dev: false - /string-raw@1.0.1: - resolution: {integrity: sha512-fPPJqZQ32gUtkgqw7vKNzEJe3Op5lgmZrpTZ3YlCAAm8ab5t8IUgvdPJK7q5fc2mqDtORy2B5qoZSCILVoaYyw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dev: true - - /string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - dev: true - /string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} engines: {node: '>=4'} @@ -23807,15 +15730,6 @@ packages: strip-ansi: 4.0.0 dev: true - /string-width@3.1.0: - resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} - engines: {node: '>=6'} - dependencies: - emoji-regex: 7.0.3 - is-fullwidth-code-point: 2.0.0 - strip-ansi: 5.2.0 - dev: true - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -23848,24 +15762,6 @@ packages: side-channel: 1.0.4 dev: true - /string.prototype.padend@3.1.5: - resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.padstart@3.1.5: - resolution: {integrity: sha512-R57IsE3JIfModQWrVXYZ8ZHWMBNDpIoniDwhYCR1nx+iHwDkjjk26a8xM9BYgf7SAXJO7sdNPng5J+0ccr5LFQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} @@ -23873,7 +15769,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} @@ -23881,7 +15776,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} @@ -23889,7 +15783,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -23909,13 +15802,6 @@ packages: character-entities-legacy: 3.0.0 dev: true - /strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - dev: true - /strip-ansi@4.0.0: resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} engines: {node: '>=4'} @@ -23944,14 +15830,6 @@ packages: ansi-regex: 6.0.1 dev: true - /strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - is-utf8: 0.2.1 - dev: true - /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -23977,20 +15855,6 @@ packages: engines: {node: '>=12'} dev: true - /strip-indent@1.0.1: - resolution: {integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - dependencies: - get-stdin: 4.0.1 - dev: true - - /strip-indent@2.0.0: - resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==} - engines: {node: '>=4'} - dev: true - /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -24018,38 +15882,10 @@ packages: through: 2.3.8 dev: true - /style-loader@1.3.0(webpack@4.47.0): - resolution: {integrity: sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==} - engines: {node: '>= 8.9.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 2.7.1 - webpack: 4.47.0 - dev: true - - /style-loader@1.3.0(webpack@5.89.0): - resolution: {integrity: sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==} - engines: {node: '>= 8.9.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 2.7.1 - webpack: 5.89.0 - dev: true - /style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true - /style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - dependencies: - inline-style-parser: 0.1.1 - dev: true - /style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: @@ -24212,20 +16048,6 @@ packages: xml-reader: 2.4.3 dev: true - /symbol.prototype.description@1.0.5: - resolution: {integrity: sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ==} - engines: {node: '>= 0.11.15'} - dependencies: - call-bind: 1.0.5 - get-symbol-description: 1.0.0 - has-symbols: 1.0.3 - object.getownpropertydescriptors: 2.1.7 - dev: true - - /synchronous-promise@2.0.17: - resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} - dev: true - /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} @@ -24238,6 +16060,12 @@ packages: resolution: {integrity: sha512-1TlOwvKWdXxAY9vba+huLu99zrQURDWA8pUTYsRIYDZYQbGyK+pyEP4h4dlySsqo7ozyJBmYD20F+iUHhAltEg==} dev: true + /szfe-tools@0.0.0-beta.7: + resolution: {integrity: sha512-/M7+Tel2G8zapfDYZlz17hf9ViqAi/loZMfM81b5iZMyaWL/t5dajBszEBI2kyIDFzlLT4btBcq+BimFgmAHug==} + dependencies: + '@babel/runtime': 7.23.4 + dev: false + /table@6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} @@ -24249,11 +16077,6 @@ packages: strip-ansi: 6.0.1 dev: true - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: true - /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -24292,19 +16115,6 @@ packages: readable-stream: 3.6.2 dev: true - /tar@4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} - engines: {node: '>=4.5'} - dependencies: - chownr: 1.1.4 - fs-minipass: 1.2.7 - minipass: 2.9.0 - minizlib: 1.3.3 - mkdirp: 0.5.6 - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: true - /tar@6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} engines: {node: '>= 10'} @@ -24329,49 +16139,11 @@ packages: yallist: 4.0.0 dev: true - /telejson@3.3.0: - resolution: {integrity: sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w==} - dependencies: - '@types/is-function': 1.0.3 - global: 4.4.0 - is-function: 1.0.2 - is-regex: 1.1.4 - is-symbol: 1.0.4 - isobject: 4.0.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - dev: true - - /telejson@6.0.8: - resolution: {integrity: sha512-nerNXi+j8NK1QEfBHtZUN/aLdDcyupA//9kAboYLrtzZlPLpUfqbVGWb9zz91f/mIjRbAYhbgtnJHY8I1b5MBg==} - dependencies: - '@types/is-function': 1.0.3 - global: 4.4.0 - is-function: 1.0.2 - is-regex: 1.1.4 - is-symbol: 1.0.4 - isobject: 4.0.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - dev: true - /temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} dev: true - /temp-write@3.4.0: - resolution: {integrity: sha512-P8NK5aNqcGQBC37i/8pL/K9tFgx14CF2vdwluD/BA/dGWGD4T4E59TE7dAxPyb2wusts2FhMp36EiopBBsGJ2Q==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - is-stream: 1.1.0 - make-dir: 1.3.0 - pify: 3.0.0 - temp-dir: 1.0.0 - uuid: 3.4.0 - dev: true - /term-size@1.2.0: resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==} engines: {node: '>=4'} @@ -24384,44 +16156,6 @@ packages: engines: {node: '>=8'} dev: true - /terser-webpack-plugin@1.4.5(webpack@4.47.0): - resolution: {integrity: sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==} - engines: {node: '>= 6.9.0'} - peerDependencies: - webpack: ^4.0.0 - dependencies: - cacache: 12.0.4 - find-cache-dir: 2.1.0 - is-wsl: 1.1.0 - schema-utils: 1.0.0 - serialize-javascript: 4.0.0 - source-map: 0.6.1 - terser: 4.8.1 - webpack: 4.47.0 - webpack-sources: 1.4.3 - worker-farm: 1.7.0 - dev: true - - /terser-webpack-plugin@4.2.3(webpack@4.47.0): - resolution: {integrity: sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - cacache: 15.3.0 - find-cache-dir: 3.3.2 - jest-worker: 26.6.2 - p-limit: 3.1.0 - schema-utils: 3.3.0 - serialize-javascript: 5.0.1 - source-map: 0.6.1 - terser: 5.24.0 - webpack: 4.47.0 - webpack-sources: 1.4.3 - transitivePeerDependencies: - - bluebird - dev: true - /terser-webpack-plugin@5.3.9(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} @@ -24446,17 +16180,6 @@ packages: webpack: 5.89.0 dev: true - /terser@4.8.1: - resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - acorn: 8.11.2 - commander: 2.20.3 - source-map: 0.6.1 - source-map-support: 0.5.21 - dev: true - /terser@5.24.0: resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} engines: {node: '>=10'} @@ -24491,19 +16214,6 @@ packages: engines: {node: '>=0.8'} dev: true - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - /thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} dependencies: @@ -24522,13 +16232,6 @@ packages: xtend: 4.0.2 dev: true - /through2@3.0.2: - resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - /through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: @@ -24551,11 +16254,9 @@ packages: setimmediate: 1.0.5 dev: true - /tiny-emitter@2.1.0: - resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} - requiresBuild: true - dev: true - optional: true + /tinyqueue@2.0.3: + resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==} + dev: false /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} @@ -24593,21 +16294,6 @@ packages: engines: {node: '>=4'} dev: true - /to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: true - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -24615,42 +16301,27 @@ packages: is-number: 7.0.0 dev: true - /to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: true - /toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: true - - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} + /topojson-client@3.1.0: + resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} + hasBin: true dependencies: - psl: 1.9.0 - punycode: 2.3.1 - dev: true + commander: 2.20.3 + dev: false + + /topojson-server@3.0.1: + resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==} + hasBin: true + dependencies: + commander: 2.20.3 + dev: false /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - dependencies: - punycode: 2.3.1 - dev: true - /transformation-matrix@2.15.0: resolution: {integrity: sha512-HN3kCvvH4ug3Xm/ycOfCFQOOktg5htxlC4Ih1Z7Wb6BMtQho+q+irOdGo10ARRKpqkRBXgBzQFw/AVmR0oIf0g==} dev: true @@ -24663,49 +16334,15 @@ packages: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} dev: true - /trim-newlines@1.0.0: - resolution: {integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - - /trim-newlines@2.0.0: - resolution: {integrity: sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==} - engines: {node: '>=4'} - dev: true - /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true - /trim-trailing-lines@1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} - dev: true - - /trim@0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - deprecated: Use String.prototype.trim() instead - dev: true - - /trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: true - /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-dedent@1.2.0: - resolution: {integrity: sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA==} - engines: {node: '>=6.10'} - dev: true - - /ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - dev: true - /ts-node@10.9.1(@types/node@20.5.1)(typescript@5.3.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -24737,18 +16374,6 @@ packages: yn: 3.1.1 dev: true - /ts-pnp@1.2.0(typescript@5.3.2): - resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==} - engines: {node: '>=6'} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - typescript: 5.3.2 - dev: true - /ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} dev: true @@ -24827,15 +16452,9 @@ packages: - supports-color dev: true - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: true + /turf-jsts@1.2.3: + resolution: {integrity: sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==} + dev: false /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -24864,11 +16483,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@0.3.1: - resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==} - engines: {node: '>=6'} - dev: true - /type-fest@0.4.1: resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} engines: {node: '>=6'} @@ -24889,14 +16503,6 @@ packages: engines: {node: '>=10'} dev: true - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - dev: true - /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} @@ -24904,7 +16510,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true /typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} @@ -24914,7 +16519,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} @@ -24925,7 +16529,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} @@ -24933,17 +16536,6 @@ packages: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true - - /typed-styles@0.0.7: - resolution: {integrity: sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==} - dev: true - - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -24984,22 +16576,12 @@ packages: dev: true optional: true - /uglify-js@3.4.10: - resolution: {integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==} - engines: {node: '>=0.8.0'} - hasBin: true + /umi-request@1.4.0: + resolution: {integrity: sha512-OknwtQZddZHi0Ggi+Vr/olJ7HNMx4AzlywyK0W3NZBT7B0stjeZ9lcztA85dBgdAj3KVk8uPJPZSnGaDjELhrA==} dependencies: - commander: 2.19.0 - source-map: 0.6.1 - dev: true - - /uid-number@0.0.6: - resolution: {integrity: sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==} - dev: true - - /umask@1.1.0: - resolution: {integrity: sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==} - dev: true + isomorphic-fetch: 2.2.1 + qs: 6.11.2 + dev: false /umi@4.0.88(@babel/core@7.23.3)(@types/node@20.5.1)(@types/react@18.2.39)(eslint@8.54.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0): resolution: {integrity: sha512-gNgBMbLuZwj5c2uroFmtgT4tJO2JFKfIxJaad3oFa0cOzJMSx6CnaG3Z2/+pU2eAy9EMBvbtY/iAmkr3ZNEAWg==} @@ -25058,50 +16640,15 @@ packages: has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /unfetch@4.2.0: - resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - dev: true - /unfetch@5.0.0: resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==} dev: true - /unherit@1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} - dependencies: - inherits: 2.0.4 - xtend: 4.0.2 - dev: true - - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: true - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: true - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: true - /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: @@ -25114,32 +16661,6 @@ packages: vfile: 5.3.7 dev: true - /unified@9.2.0: - resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} - dependencies: - '@types/unist': 2.0.10 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - dev: true - - /union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: true - - /uniq@1.0.1: - resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} - dev: true - /unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} dependencies: @@ -25187,10 +16708,6 @@ packages: crypto-random-string: 1.0.0 dev: true - /unist-builder@2.0.3: - resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - dev: true - /unist-util-filter@4.0.1: resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==} dependencies: @@ -25199,65 +16716,28 @@ packages: unist-util-visit-parents: 5.1.3 dev: true - /unist-util-generated@1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - dev: true - /unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} dev: true - /unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: true - /unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} dependencies: '@types/unist': 2.0.10 dev: true - /unist-util-position@3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} - dev: true - /unist-util-position@4.0.4: resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} dependencies: '@types/unist': 2.0.10 dev: true - /unist-util-remove-position@2.0.1: - resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} - dependencies: - unist-util-visit: 2.0.3 - dev: true - - /unist-util-remove@2.1.0: - resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} - dependencies: - unist-util-is: 4.1.0 - dev: true - - /unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - dependencies: - '@types/unist': 2.0.10 - dev: true - /unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: '@types/unist': 2.0.10 dev: true - /unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 4.1.0 - dev: true - /unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} dependencies: @@ -25265,14 +16745,6 @@ packages: unist-util-is: 5.2.1 dev: true - /unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - dev: true - /unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: @@ -25281,12 +16753,6 @@ packages: unist-util-visit-parents: 5.1.3 dev: true - /universal-user-agent@4.0.1: - resolution: {integrity: sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==} - dependencies: - os-name: 3.1.0 - dev: true - /universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} dev: true @@ -25301,11 +16767,6 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true - /unquote@1.1.1: resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} dev: true @@ -25318,23 +16779,6 @@ packages: isobject: 3.0.1 dev: true - /unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: true - - /untildify@2.1.0: - resolution: {integrity: sha512-sJjbDp2GodvkB0FZZcn7k6afVisqX5BZD7Yq3xp4nN2O15BBK0cLm3Vwn2vQaF7UDS0UUsrQMkkplmDI5fskig==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - os-homedir: 1.0.2 - dev: true - optional: true - /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -25345,27 +16789,11 @@ packages: engines: {node: '>=4'} dev: true - /upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - dev: true - /upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -25393,55 +16821,12 @@ packages: xdg-basedir: 3.0.0 dev: true - /upper-case@1.1.3: - resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} - dev: true - /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 dev: true - /urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true - - /url-loader@4.1.1(file-loader@6.2.0)(webpack@4.47.0): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - dependencies: - file-loader: 6.2.0(webpack@4.47.0) - loader-utils: 2.0.4 - mime-types: 2.1.35 - schema-utils: 3.3.0 - webpack: 4.47.0 - dev: true - - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.89.0): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - dependencies: - file-loader: 6.2.0(webpack@5.89.0) - loader-utils: 2.0.4 - mime-types: 2.1.35 - schema-utils: 3.3.0 - webpack: 5.89.0 - dev: true - /url-parse-lax@1.0.0: resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==} engines: {node: '>=0.10.0'} @@ -25456,21 +16841,6 @@ packages: qs: 6.11.2 dev: true - /use-callback-ref@1.3.1(@types/react@18.2.39)(react@16.14.0): - resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.39 - react: 16.14.0 - tslib: 2.6.2 - dev: true - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.39)(react@18.1.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: @@ -25484,43 +16854,9 @@ packages: react: 18.1.0 dev: true - /use-sidecar@1.1.2(@types/react@18.2.39)(react@16.14.0): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.39 - detect-node-es: 1.1.0 - react: 16.14.0 - tslib: 2.6.2 - dev: true - - /use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /util-promisify@2.1.0: - resolution: {integrity: sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==} - dependencies: - object.getownpropertydescriptors: 2.1.7 - dev: true - - /util.promisify@1.0.0: - resolution: {integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==} - dependencies: - define-properties: 1.2.1 - object.getownpropertydescriptors: 2.1.7 - dev: true - /util.promisify@1.0.1: resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==} dependencies: @@ -25546,22 +16882,6 @@ packages: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} dev: true - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: true - - /uuid-browser@3.1.0: - resolution: {integrity: sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg==} - deprecated: Package no longer supported and required. Use the uuid package or crypto.randomUUID instead - dev: true - - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true - /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -25595,15 +16915,6 @@ packages: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.20 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - dev: true - /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -25634,19 +16945,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: true - - /vfile-location@3.2.0: - resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} - dev: true - /vfile-location@4.1.0: resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} dependencies: @@ -25654,13 +16952,6 @@ packages: vfile: 5.3.7 dev: true - /vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position: 2.0.3 - dev: true - /vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: @@ -25668,15 +16959,6 @@ packages: unist-util-stringify-position: 3.0.3 dev: true - /vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - dependencies: - '@types/unist': 2.0.10 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - dev: true - /vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: @@ -25725,26 +17007,6 @@ packages: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true - /void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} - dev: false - - /vue@2.7.16: - resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} - dependencies: - '@vue/compiler-sfc': 2.7.16 - csstype: 3.1.3 - dev: true - - /vuex@3.6.2(vue@2.7.16): - resolution: {integrity: sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==} - peerDependencies: - vue: ^2.0.0 - dependencies: - vue: 2.7.16 - dev: true - /walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: @@ -25755,29 +17017,7 @@ packages: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} dependencies: loose-envify: 1.4.0 - dev: true - - /watchpack-chokidar2@2.0.1: - resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} - requiresBuild: true - dependencies: - chokidar: 2.1.8 - transitivePeerDependencies: - - supports-color - dev: true - optional: true - - /watchpack@1.7.5: - resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} - dependencies: - graceful-fs: 4.2.11 - neo-async: 2.6.2 - optionalDependencies: - chokidar: 3.5.3 - watchpack-chokidar2: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} @@ -25799,10 +17039,6 @@ packages: defaults: 1.0.4 dev: true - /web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} - dev: true - /web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} dev: true @@ -25816,109 +17052,11 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true - - /webpack-dev-middleware@3.7.3(webpack@4.47.0): - resolution: {integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==} - engines: {node: '>= 6'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - memory-fs: 0.4.1 - mime: 2.6.0 - mkdirp: 0.5.6 - range-parser: 1.2.1 - webpack: 4.47.0 - webpack-log: 2.0.0 - dev: true - - /webpack-filter-warnings-plugin@1.2.1(webpack@4.47.0): - resolution: {integrity: sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==} - engines: {node: '>= 4.3 < 5.0.0 || >= 5.10'} - peerDependencies: - webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 - dependencies: - webpack: 4.47.0 - dev: true - - /webpack-hot-middleware@2.26.0: - resolution: {integrity: sha512-okzjec5sAEy4t+7rzdT8eRyxsk0FDSmBPN2KwX4Qd+6+oQCfe5Ve07+u7cJvofgB+B4w5/4dO4Pz0jhhHyyPLQ==} - dependencies: - ansi-html-community: 0.0.8 - html-entities: 2.4.0 - strip-ansi: 6.0.1 - dev: true - - /webpack-log@2.0.0: - resolution: {integrity: sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==} - engines: {node: '>= 6'} - dependencies: - ansi-colors: 3.2.4 - uuid: 3.4.0 - dev: true - - /webpack-sources@1.4.3: - resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - dependencies: - source-list-map: 2.0.1 - source-map: 0.6.1 - dev: true - /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} dev: true - /webpack-virtual-modules@0.2.2: - resolution: {integrity: sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==} - dependencies: - debug: 3.2.7 - transitivePeerDependencies: - - supports-color - dev: true - - /webpack@4.47.0: - resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==} - engines: {node: '>=6.11.5'} - hasBin: true - peerDependencies: - webpack-cli: '*' - webpack-command: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack-command: - optional: true - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/wasm-edit': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - acorn: 6.4.2 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - chrome-trace-event: 1.0.3 - enhanced-resolve: 4.5.0 - eslint-scope: 4.0.3 - json-parse-better-errors: 1.0.2 - loader-runner: 2.4.0 - loader-utils: 1.4.2 - memory-fs: 0.4.1 - micromatch: 3.1.10 - mkdirp: 0.5.6 - neo-async: 2.6.2 - node-libs-browser: 2.2.1 - schema-utils: 1.0.0 - tapable: 1.1.3 - terser-webpack-plugin: 1.4.5(webpack@4.47.0) - watchpack: 1.7.5 - webpack-sources: 1.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /webpack@5.89.0: resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} @@ -25959,9 +17097,9 @@ packages: - uglify-js dev: true - /webworkify-webpack@2.1.5: - resolution: {integrity: sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw==} - dev: true + /whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + dev: false /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -25970,14 +17108,6 @@ packages: webidl-conversions: 3.0.1 dev: true - /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - dev: true - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -25986,7 +17116,6 @@ packages: is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true /which-builtin-type@1.1.3: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} @@ -26036,7 +17165,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} @@ -26074,45 +17202,10 @@ packages: string-width: 2.1.1 dev: true - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: true - - /windows-release@3.3.3: - resolution: {integrity: sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==} - engines: {node: '>=6'} - dependencies: - execa: 1.0.0 - dev: true - /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true - /worker-farm@1.7.0: - resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==} - dependencies: - errno: 0.1.8 - dev: true - - /worker-rpc@0.1.1: - resolution: {integrity: sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==} - dependencies: - microevent.ts: 0.1.1 - dev: true - - /wrap-ansi@5.1.0: - resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} - engines: {node: '>=6'} - dependencies: - ansi-styles: 3.2.1 - string-width: 3.1.0 - strip-ansi: 5.2.0 - dev: true - /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -26152,15 +17245,6 @@ packages: signal-exit: 3.0.7 dev: true - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - /write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -26177,18 +17261,6 @@ packages: signal-exit: 4.1.0 dev: true - /write-json-file@2.3.0: - resolution: {integrity: sha512-84+F0igFp2dPD6UpAQjOUX3CdKUOqUzn6oE9sDBNzUXINR5VceJ1rauZltqQB/bcYsx3EpKys4C7/PivKUAiWQ==} - engines: {node: '>=4'} - dependencies: - detect-indent: 5.0.0 - graceful-fs: 4.2.11 - make-dir: 1.3.0 - pify: 3.0.0 - sort-keys: 2.0.0 - write-file-atomic: 2.4.3 - dev: true - /write-json-file@3.2.0: resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} engines: {node: '>=6'} @@ -26201,14 +17273,6 @@ packages: write-file-atomic: 2.4.3 dev: true - /write-pkg@3.2.0: - resolution: {integrity: sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==} - engines: {node: '>=4'} - dependencies: - sort-keys: 2.0.0 - write-json-file: 2.3.0 - dev: true - /write-pkg@4.0.0: resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} engines: {node: '>=8'} @@ -26218,26 +17282,6 @@ packages: write-json-file: 3.2.0 dev: true - /ws@8.15.1: - resolution: {integrity: sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /x-default-browser@0.4.0: - resolution: {integrity: sha512-7LKo7RtWfoFN/rHx1UELv/2zHGMx8MkZKDq1xENmOCTkfIqZJ0zZ26NEJX8czhnPXVcqS0ARjjfJB+eJ0/5Cvw==} - hasBin: true - optionalDependencies: - default-browser-id: 1.0.4 - dev: true - /xdg-basedir@3.0.0: resolution: {integrity: sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==} engines: {node: '>=4'} @@ -26296,13 +17340,6 @@ packages: engines: {node: '>= 14'} dev: true - /yargs-parser@15.0.3: - resolution: {integrity: sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: true - /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -26321,22 +17358,6 @@ packages: engines: {node: '>=12'} dev: true - /yargs@14.2.3: - resolution: {integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==} - dependencies: - cliui: 5.0.0 - decamelize: 1.2.0 - find-up: 3.0.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 3.1.0 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 15.0.3 - dev: true - /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -26380,13 +17401,6 @@ packages: yargs-parser: 21.1.1 dev: true - /yarn@1.22.21: - resolution: {integrity: sha512-ynXaJsADJ9JiZ84zU25XkPGOvVMmZ5b7tmTSpKURYwgELdjucAOydqIOrOfTxVYcNXe91xvLZwcRh68SR3liCg==} - engines: {node: '>=4.0.0'} - hasBin: true - requiresBuild: true - dev: true - /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -26409,10 +17423,6 @@ packages: commander: 9.5.0 dev: true - /zwitch@1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: true - /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: true