From 71b0087fad84c5243a60a3271d7063cb7ba83595 Mon Sep 17 00:00:00 2001 From: Alex-larget <33240357+Alex-larget@users.noreply.github.com> Date: Mon, 16 Mar 2026 18:11:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cunkebao/.env.development | 6 - Cunkebao/.env.local | 1 - Cunkebao/.env.production | 6 - Cunkebao/.eslintrc.js | 64 - Cunkebao/.gitattributes | 27 - Cunkebao/.gitignore | 11 - Cunkebao/.prettierrc | 13 - Cunkebao/.vite/deps/_metadata.json | 8 - Cunkebao/.vite/deps/package.json | 3 - Cunkebao/.vscode/extensions.json | 11 - Cunkebao/.vscode/settings.json | 45 - Cunkebao/devlop.py | 95 - Cunkebao/favicon.ico | Bin 3922 -> 0 bytes Cunkebao/index.html | 19 - Cunkebao/package.json | 52 - Cunkebao/pnpm-lock.yaml | 4990 ----------------- Cunkebao/postcss.config.js | 8 - Cunkebao/public/logo.png | Bin 499922 -> 0 bytes Cunkebao/public/manifest.json | 30 - Cunkebao/public/websdk.js | 308 - Cunkebao/src/App.tsx | 14 - Cunkebao/src/android-polyfills.ts | 352 -- Cunkebao/src/api/common.ts | 37 - Cunkebao/src/api/request.ts | 90 - Cunkebao/src/api/request2.ts | 89 - .../src/components/AccountSelection/api.ts | 10 - .../src/components/AccountSelection/data.ts | 35 - .../AccountSelection/index.module.scss | 231 - .../src/components/AccountSelection/index.tsx | 139 - .../AccountSelection/selectionPopup.tsx | 237 - .../components/AndroidCompatibilityCheck.tsx | 228 - .../src/components/CompatibilityCheck.tsx | 125 - .../src/components/ContentSelection/api.ts | 5 - .../src/components/ContentSelection/data.ts | 21 - .../ContentSelection/index.module.scss | 117 - .../src/components/ContentSelection/index.tsx | 145 - .../ContentSelection/selectionPopup.tsx | 257 - .../src/components/DeviceSelection/api.ts | 10 - .../src/components/DeviceSelection/data.ts | 30 - .../DeviceSelection/index.module.scss | 274 - .../src/components/DeviceSelection/index.tsx | 192 - .../DeviceSelection/selectionPopup.tsx | 287 - .../EmojiSeclection/EmojiPicker.css | 167 - .../EmojiSeclection/EmojiPicker.tsx | 115 - .../src/components/EmojiSeclection/index.ts | 18 - .../components/EmojiSeclection/wechatEmoji.ts | 902 --- .../FloatingVideoHelp/VideoPlayer.module.scss | 128 - .../FloatingVideoHelp/VideoPlayer.tsx | 101 - .../FloatingVideoHelp/index.module.scss | 56 - .../components/FloatingVideoHelp/index.tsx | 68 - .../FloatingVideoHelp/videoConfig.ts | 110 - .../src/components/FriendSelection/api.ts | 11 - .../src/components/FriendSelection/data.ts | 27 - .../FriendSelection/index.module.scss | 246 - .../src/components/FriendSelection/index.tsx | 140 - .../FriendSelection/selectionPopup.tsx | 245 - Cunkebao/src/components/GroupSelection/api.ts | 10 - .../src/components/GroupSelection/data.ts | 43 - .../GroupSelection/index.module.scss | 206 - .../src/components/GroupSelection/index.tsx | 126 - .../GroupSelection/selectionPopup.tsx | 257 - .../index.module.scss | 329 -- .../GroupSelectionWithMembers/index.tsx | 438 -- .../InfiniteList/InfiniteList.module.scss | 87 - .../components/InfiniteList/InfiniteList.tsx | 195 - Cunkebao/src/components/Layout/Layout.tsx | 52 - .../src/components/Layout/LayoutFiexd.tsx | 48 - .../src/components/Layout/layout.module.scss | 28 - Cunkebao/src/components/LineChart.tsx | 53 - Cunkebao/src/components/LineChart2.tsx | 57 - .../src/components/MeauMobile/MeauMoible.tsx | 57 - .../TwoColumnMemberSelection.module.scss | 154 - .../TwoColumnMemberSelection.tsx | 185 - .../src/components/MemberSelection/index.tsx | 51 - Cunkebao/src/components/NavCommon/index.tsx | 62 - Cunkebao/src/components/PlaceholderPage.tsx | 52 - Cunkebao/src/components/PoolSelection/api.ts | 34 - Cunkebao/src/components/PoolSelection/data.ts | 61 - .../PoolSelection/index.module.scss | 206 - .../src/components/PoolSelection/index.tsx | 127 - .../PoolSelection/selectionPopup.tsx | 258 - .../components/PopuLayout/footer.module.scss | 88 - Cunkebao/src/components/PopuLayout/footer.tsx | 88 - .../components/PopuLayout/header.module.scss | 51 - Cunkebao/src/components/PopuLayout/header.tsx | 89 - .../src/components/StepIndicator/index.tsx | 43 - .../TwoColumnSelection.module.scss | 153 - .../TwoColumnSelection/TwoColumnSelection.tsx | 329 -- .../components/UpdateNotification/index.tsx | 217 - .../components/Upload/AudioRecorder/index.tsx | 411 -- .../Upload/AvatarUpload/index.module.scss | 484 -- .../components/Upload/AvatarUpload/index.tsx | 188 - .../Upload/ChatFileUpload/example.tsx | 254 - .../Upload/ChatFileUpload/index.module.scss | 48 - .../Upload/ChatFileUpload/index.tsx | 189 - .../Upload/FileUpload/index.module.scss | 265 - .../components/Upload/FileUpload/index.tsx | 531 -- .../Upload/FileUploadButton/index.module.scss | 13 - .../Upload/FileUploadButton/index.tsx | 282 - .../Upload/ImageUpload/ImageUpload.tsx | 141 - .../Upload/ImageUpload/index.module.scss | 484 -- .../Upload/MainImgUpload/index.module.scss | 291 - .../components/Upload/MainImgUpload/index.tsx | 367 -- Cunkebao/src/components/Upload/README.md | 451 -- .../Upload/SimpleFileUpload/index.tsx | 84 - .../Upload/VideoUpload/index.module.scss | 243 - .../components/Upload/VideoUpload/index.tsx | 381 -- Cunkebao/src/components/WebSocketExample.tsx | 251 - Cunkebao/src/main.tsx | 20 - Cunkebao/src/pages/guide/api.ts | 13 - Cunkebao/src/pages/guide/index.module.scss | 341 -- Cunkebao/src/pages/guide/index.tsx | 348 -- Cunkebao/src/pages/iframe/index.module.scss | 323 -- Cunkebao/src/pages/iframe/index.tsx | 242 - Cunkebao/src/pages/iframe/init.tsx | 172 - Cunkebao/src/pages/login/Login.tsx | 303 - Cunkebao/src/pages/login/api.ts | 51 - Cunkebao/src/pages/login/login.module.scss | 436 -- Cunkebao/src/pages/mobile/home/api.ts | 31 - .../src/pages/mobile/home/index.module.scss | 356 -- Cunkebao/src/pages/mobile/home/index.tsx | 262 - .../src/pages/mobile/mine/content/form/api.ts | 26 - .../pages/mobile/mine/content/form/data.ts | 61 - .../mine/content/form/index.module.scss | 423 -- .../pages/mobile/mine/content/form/index.tsx | 552 -- .../src/pages/mobile/mine/content/list/api.ts | 49 - .../pages/mobile/mine/content/list/data.ts | 66 - .../mine/content/list/index.module.scss | 217 - .../pages/mobile/mine/content/list/index.tsx | 314 -- .../mobile/mine/content/materials/form/api.ts | 20 - .../mine/content/materials/form/data.ts | 93 - .../content/materials/form/index.module.scss | 160 - .../mine/content/materials/form/index.tsx | 403 -- .../mobile/mine/content/materials/list/api.ts | 57 - .../mine/content/materials/list/data.ts | 119 - .../content/materials/list/index.module.scss | 862 --- .../mine/content/materials/list/index.tsx | 732 --- .../mobile/mine/devices/DeviceDetail.tsx | 392 -- Cunkebao/src/pages/mobile/mine/devices/api.ts | 48 - .../mobile/mine/devices/index.module.scss | 173 - .../src/pages/mobile/mine/devices/index.tsx | 514 -- Cunkebao/src/pages/mobile/mine/main/api.ts | 9 - .../pages/mobile/mine/main/index.module.scss | 210 - Cunkebao/src/pages/mobile/mine/main/index.tsx | 222 - .../mobile/mine/recharge/buy-power/api.ts | 47 - .../mine/recharge/buy-power/index.module.scss | 272 - .../mobile/mine/recharge/buy-power/index.tsx | 278 - .../pages/mobile/mine/recharge/index/api.ts | 201 - .../mine/recharge/index/index.module.scss | 1339 ----- .../mobile/mine/recharge/index/index.tsx | 1932 ------- .../pages/mobile/mine/recharge/order/api.ts | 37 - .../pages/mobile/mine/recharge/order/data.ts | 62 - .../recharge/order/detail/index.module.scss | 154 - .../mine/recharge/order/detail/index.tsx | 328 -- .../mine/recharge/order/index.module.scss | 242 - .../mobile/mine/recharge/order/index.tsx | 490 -- .../mobile/mine/recharge/usage-records/api.ts | 47 - .../recharge/usage-records/index.module.scss | 107 - .../mine/recharge/usage-records/index.tsx | 225 - .../src/pages/mobile/mine/setting/About.tsx | 152 - .../src/pages/mobile/mine/setting/Privacy.tsx | 125 - .../src/pages/mobile/mine/setting/README.md | 188 - .../mobile/mine/setting/SecuritySetting.tsx | 224 - .../pages/mobile/mine/setting/UserSetting.tsx | 148 - Cunkebao/src/pages/mobile/mine/setting/api.ts | 5 - .../mobile/mine/setting/index.module.scss | 852 --- .../src/pages/mobile/mine/setting/index.tsx | 327 -- .../mobile/mine/traffic-pool/form/README.md | 101 - .../mobile/mine/traffic-pool/form/api.ts | 130 - .../components/AudienceFilter.module.scss | 129 - .../form/components/AudienceFilter.tsx | 196 - .../form/components/BasicInfo.module.scss | 60 - .../form/components/BasicInfo.tsx | 65 - .../form/components/ConditionList.module.scss | 52 - .../form/components/ConditionList.tsx | 67 - .../CustomConditionModal.module.scss | 80 - .../form/components/CustomConditionModal.tsx | 242 - .../SchemeRecommendation.module.scss | 92 - .../form/components/SchemeRecommendation.tsx | 201 - .../components/UserListPreview.module.scss | 126 - .../form/components/UserListPreview.tsx | 155 - .../mine/traffic-pool/form/index.module.scss | 49 - .../mobile/mine/traffic-pool/form/index.tsx | 231 - .../mobile/mine/traffic-pool/list/api.ts | 31 - .../mobile/mine/traffic-pool/list/data.ts | 51 - .../mine/traffic-pool/list/index.module.scss | 185 - .../mobile/mine/traffic-pool/list/index.tsx | 280 - .../traffic-pool/poolList1/BatchAddModal.tsx | 94 - .../poolList1/DataAnalysisPanel.tsx | 145 - .../traffic-pool/poolList1/FilterModal.tsx | 195 - .../mobile/mine/traffic-pool/poolList1/api.ts | 34 - .../mine/traffic-pool/poolList1/data.ts | 51 - .../traffic-pool/poolList1/index.module.scss | 65 - .../mine/traffic-pool/poolList1/index.tsx | 396 -- .../mobile/mine/traffic-pool/userList/api.ts | 11 - .../mobile/mine/traffic-pool/userList/data.ts | 27 - .../traffic-pool/userList/index.module.scss | 40 - .../mine/traffic-pool/userList/index.tsx | 175 - .../mobile/mine/wechat-accounts/detail/api.ts | 175 - .../mine/wechat-accounts/detail/data.ts | 155 - .../wechat-accounts/detail/detail.module.scss | 1733 ------ .../mine/wechat-accounts/detail/index.tsx | 1616 ------ .../mobile/mine/wechat-accounts/list/api.ts | 31 - .../wechat-accounts/list/index.module.scss | 204 - .../mine/wechat-accounts/list/index.tsx | 286 - .../src/pages/mobile/scenarios/list/api.ts | 26 - .../mobile/scenarios/list/index.module.scss | 329 -- .../src/pages/mobile/scenarios/list/index.tsx | 159 - .../pages/mobile/scenarios/plan/list/api.ts | 48 - .../plan/list/components/AccountListModal.tsx | 194 - .../plan/list/components/DeviceListModal.tsx | 175 - .../plan/list/components/OreadyAdd.tsx | 175 - .../plan/list/components/PoolListModal.tsx | 252 - .../plan/list/components/Popups.module.scss | 770 --- .../pages/mobile/scenarios/plan/list/data.ts | 60 - .../scenarios/plan/list/index.module.scss | 444 -- .../mobile/scenarios/plan/list/index.tsx | 701 --- .../scenarios/plan/list/planApi.module.scss | 601 -- .../mobile/scenarios/plan/list/planApi.tsx | 533 -- .../mobile/scenarios/plan/new/index.api.ts | 20 - .../mobile/scenarios/plan/new/index.data.ts | 80 - .../pages/mobile/scenarios/plan/new/index.tsx | 328 -- .../plan/new/steps/BasicSettings.tsx | 594 -- .../plan/new/steps/DistributionSettings.tsx | 817 --- .../plan/new/steps/FriendRequestSettings.tsx | 232 - .../scenarios/plan/new/steps/MessageCard.tsx | 336 -- .../plan/new/steps/MessageSettings.tsx | 242 - .../scenarios/plan/new/steps/base.data.ts | 84 - .../scenarios/plan/new/steps/base.module.scss | 385 -- .../plan/new/steps/friend.module.scss | 97 - .../plan/new/steps/messages.module.scss | 110 - .../scenarios/plan/new/steps/step.api.ts | 384 -- Cunkebao/src/pages/mobile/test/README.md | 111 - Cunkebao/src/pages/mobile/test/index.tsx | 72 - Cunkebao/src/pages/mobile/test/select.tsx | 221 - .../pages/mobile/test/update-notification.tsx | 179 - .../src/pages/mobile/test/upload.module.scss | 354 -- Cunkebao/src/pages/mobile/test/upload.tsx | 423 -- .../workspace/ai-analyzer/index.module.scss | 94 - .../mobile/workspace/ai-analyzer/index.tsx | 141 - .../ai-assistant/AIAssistant.module.scss | 145 - .../workspace/ai-assistant/AIAssistant.tsx | 264 - .../mobile/workspace/ai-knowledge/api 文档 | 168 - .../workspace/ai-knowledge/detail/api.ts | 109 - .../workspace/ai-knowledge/detail/data.ts | 48 - .../ai-knowledge/detail/index.module.scss | 596 -- .../workspace/ai-knowledge/detail/index.tsx | 723 --- .../mobile/workspace/ai-knowledge/form/api.ts | 4 - .../workspace/ai-knowledge/form/data.ts | 2 - .../ai-knowledge/form/index.module.scss | 318 -- .../workspace/ai-knowledge/form/index.tsx | 307 - .../mobile/workspace/ai-knowledge/list/api.ts | 95 - .../list/components/GlobalPromptModal.tsx | 173 - .../workspace/ai-knowledge/list/data.ts | 75 - .../ai-knowledge/list/index.module.scss | 421 -- .../workspace/ai-knowledge/list/index.tsx | 423 -- .../mobile/workspace/auto-group/detail/api.ts | 6 - .../auto-group/detail/index.module.scss | 149 - .../workspace/auto-group/detail/index.tsx | 348 -- .../mobile/workspace/auto-group/form/api.ts | 17 - .../form/components/BasicSettings.tsx | 336 -- .../form/components/DeviceSelector.tsx | 93 - .../form/components/OwnerAdminSelector.tsx | 235 - .../form/components/PoolSelector.tsx | 98 - .../auto-group/form/index.module.scss | 25 - .../workspace/auto-group/form/index.tsx | 308 - .../mobile/workspace/auto-group/form/types.ts | 76 - .../mobile/workspace/auto-group/list/api.ts | 16 - .../auto-group/list/index.module.scss | 173 - .../workspace/auto-group/list/index.tsx | 342 -- .../mobile/workspace/auto-like/list/api.ts | 63 - .../mobile/workspace/auto-like/list/data.ts | 119 - .../auto-like/list/index.module.scss | 278 - .../mobile/workspace/auto-like/list/index.tsx | 398 -- .../mobile/workspace/auto-like/new/api.ts | 21 - .../mobile/workspace/auto-like/new/data.ts | 125 - .../mobile/workspace/auto-like/new/index.tsx | 486 -- .../workspace/auto-like/new/new.module.scss | 286 - .../mobile/workspace/auto-like/record/api.ts | 63 - .../mobile/workspace/auto-like/record/data.ts | 119 - .../workspace/auto-like/record/index.tsx | 306 - .../auto-like/record/record.module.scss | 268 - .../contact-import/detail/index.module.scss | 325 -- .../workspace/contact-import/detail/index.tsx | 467 -- .../workspace/contact-import/form/api.ts | 91 - .../workspace/contact-import/form/data.ts | 168 - .../contact-import/form/index.module.scss | 146 - .../workspace/contact-import/form/index.tsx | 381 -- .../workspace/contact-import/list/api.ts | 97 - .../workspace/contact-import/list/data.ts | 131 - .../contact-import/list/index.module.scss | 241 - .../workspace/contact-import/list/index.tsx | 345 -- .../workspace/distribution-management/api.ts | 160 - .../components/AddChannelModal.module.scss | 290 - .../components/AddChannelModal.tsx | 432 -- .../workspace/distribution-management/data.ts | 67 - .../distribution-management/detail/api.ts | 211 - .../distribution-management/detail/data.ts | 79 - .../detail/index.module.scss | 574 -- .../distribution-management/detail/index.tsx | 644 --- .../distribution-management/index.module.scss | 1175 ---- .../distribution-management/index.tsx | 1370 ----- .../detail/group-detail.module.scss | 598 -- .../group-create/detail/group-detail.tsx | 675 --- .../detail/groups-list.module.scss | 275 - .../group-create/detail/groups-list.tsx | 290 - .../group-create/detail/index.module.scss | 482 -- .../workspace/group-create/detail/index.tsx | 401 -- .../mobile/workspace/group-create/form/api.ts | 74 - .../form/components/BasicSettings.module.scss | 700 --- .../form/components/BasicSettings.tsx | 636 --- .../DeviceSelectionStep.module.scss | 197 - .../form/components/DeviceSelectionStep.tsx | 123 - .../components/PoolSelectionStep.module.scss | 233 - .../form/components/PoolSelectionStep.tsx | 156 - .../workspace/group-create/form/index.tsx | 291 - .../workspace/group-create/form/types.ts | 77 - .../group-create/list/index.module.scss | 303 - .../workspace/group-create/list/index.tsx | 344 -- .../workspace/group-create/新增字段说明.md | 92 - .../workspace/group-push/detail/groupPush.ts | 74 - .../group-push/detail/index.module.scss | 98 - .../workspace/group-push/detail/index.tsx | 254 - .../form/components/BasicSettings.tsx | 333 -- .../form/components/ContentSelector.tsx | 96 - .../form/components/GroupSelector.tsx | 95 - .../workspace/group-push/form/index.api.ts | 22 - .../workspace/group-push/form/index.data.ts | 37 - .../workspace/group-push/form/index.tsx | 257 - .../workspace/group-push/list/index.api.ts | 44 - .../group-push/list/index.module.scss | 164 - .../workspace/group-push/list/index.tsx | 282 - .../src/pages/mobile/workspace/main/api.ts | 19 - .../mobile/workspace/main/index.module.scss | 117 - .../src/pages/mobile/workspace/main/index.tsx | 222 - .../workspace/moments-sync/list/Detail.tsx | 198 - .../moments-sync/list/index.module.scss | 356 -- .../workspace/moments-sync/list/index.tsx | 293 - .../mobile/workspace/moments-sync/new/api.ts | 13 - .../moments-sync/new/index.module.scss | 249 - .../workspace/moments-sync/new/index.tsx | 372 -- .../workspace/moments-sync/record/api.ts | 63 - .../workspace/moments-sync/record/data.ts | 119 - .../workspace/moments-sync/record/index.tsx | 278 - .../moments-sync/record/record.module.scss | 267 - .../traffic-distribution/detail/api.ts | 0 .../traffic-distribution/detail/data.ts | 0 .../detail/index.module.scss | 0 .../traffic-distribution/detail/index.tsx | 3 - .../traffic-distribution/form/api.ts | 21 - .../traffic-distribution/form/data.ts | 77 - .../form/index.module.scss | 265 - .../traffic-distribution/form/index.tsx | 408 -- .../traffic-distribution/list/api.ts | 44 - .../list/components/AccountListModal.tsx | 184 - .../list/components/DeviceListModal.tsx | 175 - .../list/components/PoolListModal.tsx | 182 - .../list/components/SendRcrodModal.tsx | 283 - .../traffic-distribution/list/data.ts | 133 - .../list/index.module.scss | 755 --- .../traffic-distribution/list/index.tsx | 421 -- Cunkebao/src/polyfills.ts | 176 - Cunkebao/src/react-app-env.d.ts | 1 - Cunkebao/src/router/config.ts | 180 - Cunkebao/src/router/index.tsx | 51 - Cunkebao/src/router/module/auth.tsx | 17 - Cunkebao/src/router/module/content.tsx | 39 - Cunkebao/src/router/module/index.tsx | 18 - Cunkebao/src/router/module/mine.tsx | 122 - Cunkebao/src/router/module/scenarios.tsx | 33 - Cunkebao/src/router/module/test.tsx | 39 - .../src/router/module/wechat-accounts.tsx | 17 - Cunkebao/src/router/module/workspace.tsx | 256 - Cunkebao/src/router/permissionRoute.tsx | 46 - Cunkebao/src/store/README.md | 572 -- Cunkebao/src/store/createPersistStore.ts | 261 - Cunkebao/src/store/examples.ts | 325 -- Cunkebao/src/store/index.ts | 77 - Cunkebao/src/store/module/app.ts | 135 - Cunkebao/src/store/module/settings.ts | 71 - Cunkebao/src/store/module/user.ts | 105 - Cunkebao/src/store/persistUtils.ts | 424 -- Cunkebao/src/styles/global.scss | 317 -- Cunkebao/src/types/device.ts | 68 - Cunkebao/src/utils/apiUrl.ts | 74 - Cunkebao/src/utils/cacheCleaner.ts | 70 - Cunkebao/src/utils/chartColors.ts | 67 - Cunkebao/src/utils/common.ts | 252 - Cunkebao/src/utils/env.ts | 46 - Cunkebao/src/utils/postApp.ts | 72 - Cunkebao/src/utils/updateChecker.ts | 217 - Cunkebao/src/vite-env.d.ts | 11 - Cunkebao/tsconfig.json | 24 - Cunkebao/vite-pwa.config.ts | 58 - Cunkebao/vite.config.ts | 51 - Cunkebao/websdk.js | 308 - 396 files changed, 88516 deletions(-) delete mode 100644 Cunkebao/.env.development delete mode 100644 Cunkebao/.env.local delete mode 100644 Cunkebao/.env.production delete mode 100644 Cunkebao/.eslintrc.js delete mode 100644 Cunkebao/.gitattributes delete mode 100644 Cunkebao/.gitignore delete mode 100644 Cunkebao/.prettierrc delete mode 100644 Cunkebao/.vite/deps/_metadata.json delete mode 100644 Cunkebao/.vite/deps/package.json delete mode 100644 Cunkebao/.vscode/extensions.json delete mode 100644 Cunkebao/.vscode/settings.json delete mode 100644 Cunkebao/devlop.py delete mode 100644 Cunkebao/favicon.ico delete mode 100644 Cunkebao/index.html delete mode 100644 Cunkebao/package.json delete mode 100644 Cunkebao/pnpm-lock.yaml delete mode 100644 Cunkebao/postcss.config.js delete mode 100644 Cunkebao/public/logo.png delete mode 100644 Cunkebao/public/manifest.json delete mode 100644 Cunkebao/public/websdk.js delete mode 100644 Cunkebao/src/App.tsx delete mode 100644 Cunkebao/src/android-polyfills.ts delete mode 100644 Cunkebao/src/api/common.ts delete mode 100644 Cunkebao/src/api/request.ts delete mode 100644 Cunkebao/src/api/request2.ts delete mode 100644 Cunkebao/src/components/AccountSelection/api.ts delete mode 100644 Cunkebao/src/components/AccountSelection/data.ts delete mode 100644 Cunkebao/src/components/AccountSelection/index.module.scss delete mode 100644 Cunkebao/src/components/AccountSelection/index.tsx delete mode 100644 Cunkebao/src/components/AccountSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/AndroidCompatibilityCheck.tsx delete mode 100644 Cunkebao/src/components/CompatibilityCheck.tsx delete mode 100644 Cunkebao/src/components/ContentSelection/api.ts delete mode 100644 Cunkebao/src/components/ContentSelection/data.ts delete mode 100644 Cunkebao/src/components/ContentSelection/index.module.scss delete mode 100644 Cunkebao/src/components/ContentSelection/index.tsx delete mode 100644 Cunkebao/src/components/ContentSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/DeviceSelection/api.ts delete mode 100644 Cunkebao/src/components/DeviceSelection/data.ts delete mode 100644 Cunkebao/src/components/DeviceSelection/index.module.scss delete mode 100644 Cunkebao/src/components/DeviceSelection/index.tsx delete mode 100644 Cunkebao/src/components/DeviceSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/EmojiSeclection/EmojiPicker.css delete mode 100644 Cunkebao/src/components/EmojiSeclection/EmojiPicker.tsx delete mode 100644 Cunkebao/src/components/EmojiSeclection/index.ts delete mode 100644 Cunkebao/src/components/EmojiSeclection/wechatEmoji.ts delete mode 100644 Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.module.scss delete mode 100644 Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.tsx delete mode 100644 Cunkebao/src/components/FloatingVideoHelp/index.module.scss delete mode 100644 Cunkebao/src/components/FloatingVideoHelp/index.tsx delete mode 100644 Cunkebao/src/components/FloatingVideoHelp/videoConfig.ts delete mode 100644 Cunkebao/src/components/FriendSelection/api.ts delete mode 100644 Cunkebao/src/components/FriendSelection/data.ts delete mode 100644 Cunkebao/src/components/FriendSelection/index.module.scss delete mode 100644 Cunkebao/src/components/FriendSelection/index.tsx delete mode 100644 Cunkebao/src/components/FriendSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/GroupSelection/api.ts delete mode 100644 Cunkebao/src/components/GroupSelection/data.ts delete mode 100644 Cunkebao/src/components/GroupSelection/index.module.scss delete mode 100644 Cunkebao/src/components/GroupSelection/index.tsx delete mode 100644 Cunkebao/src/components/GroupSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/GroupSelectionWithMembers/index.module.scss delete mode 100644 Cunkebao/src/components/GroupSelectionWithMembers/index.tsx delete mode 100644 Cunkebao/src/components/InfiniteList/InfiniteList.module.scss delete mode 100644 Cunkebao/src/components/InfiniteList/InfiniteList.tsx delete mode 100644 Cunkebao/src/components/Layout/Layout.tsx delete mode 100644 Cunkebao/src/components/Layout/LayoutFiexd.tsx delete mode 100644 Cunkebao/src/components/Layout/layout.module.scss delete mode 100644 Cunkebao/src/components/LineChart.tsx delete mode 100644 Cunkebao/src/components/LineChart2.tsx delete mode 100644 Cunkebao/src/components/MeauMobile/MeauMoible.tsx delete mode 100644 Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.module.scss delete mode 100644 Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.tsx delete mode 100644 Cunkebao/src/components/MemberSelection/index.tsx delete mode 100644 Cunkebao/src/components/NavCommon/index.tsx delete mode 100644 Cunkebao/src/components/PlaceholderPage.tsx delete mode 100644 Cunkebao/src/components/PoolSelection/api.ts delete mode 100644 Cunkebao/src/components/PoolSelection/data.ts delete mode 100644 Cunkebao/src/components/PoolSelection/index.module.scss delete mode 100644 Cunkebao/src/components/PoolSelection/index.tsx delete mode 100644 Cunkebao/src/components/PoolSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/PopuLayout/footer.module.scss delete mode 100644 Cunkebao/src/components/PopuLayout/footer.tsx delete mode 100644 Cunkebao/src/components/PopuLayout/header.module.scss delete mode 100644 Cunkebao/src/components/PopuLayout/header.tsx delete mode 100644 Cunkebao/src/components/StepIndicator/index.tsx delete mode 100644 Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.module.scss delete mode 100644 Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.tsx delete mode 100644 Cunkebao/src/components/UpdateNotification/index.tsx delete mode 100644 Cunkebao/src/components/Upload/AudioRecorder/index.tsx delete mode 100644 Cunkebao/src/components/Upload/AvatarUpload/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/AvatarUpload/index.tsx delete mode 100644 Cunkebao/src/components/Upload/ChatFileUpload/example.tsx delete mode 100644 Cunkebao/src/components/Upload/ChatFileUpload/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/ChatFileUpload/index.tsx delete mode 100644 Cunkebao/src/components/Upload/FileUpload/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/FileUpload/index.tsx delete mode 100644 Cunkebao/src/components/Upload/FileUploadButton/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/FileUploadButton/index.tsx delete mode 100644 Cunkebao/src/components/Upload/ImageUpload/ImageUpload.tsx delete mode 100644 Cunkebao/src/components/Upload/ImageUpload/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/MainImgUpload/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/MainImgUpload/index.tsx delete mode 100644 Cunkebao/src/components/Upload/README.md delete mode 100644 Cunkebao/src/components/Upload/SimpleFileUpload/index.tsx delete mode 100644 Cunkebao/src/components/Upload/VideoUpload/index.module.scss delete mode 100644 Cunkebao/src/components/Upload/VideoUpload/index.tsx delete mode 100644 Cunkebao/src/components/WebSocketExample.tsx delete mode 100644 Cunkebao/src/main.tsx delete mode 100644 Cunkebao/src/pages/guide/api.ts delete mode 100644 Cunkebao/src/pages/guide/index.module.scss delete mode 100644 Cunkebao/src/pages/guide/index.tsx delete mode 100644 Cunkebao/src/pages/iframe/index.module.scss delete mode 100644 Cunkebao/src/pages/iframe/index.tsx delete mode 100644 Cunkebao/src/pages/iframe/init.tsx delete mode 100644 Cunkebao/src/pages/login/Login.tsx delete mode 100644 Cunkebao/src/pages/login/api.ts delete mode 100644 Cunkebao/src/pages/login/login.module.scss delete mode 100644 Cunkebao/src/pages/mobile/home/api.ts delete mode 100644 Cunkebao/src/pages/mobile/home/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/home/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/content/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/form/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/content/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/content/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/content/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/devices/DeviceDetail.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/devices/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/devices/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/devices/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/main/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/main/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/main/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/buy-power/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/buy-power/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/buy-power/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/index/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/index/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/index/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/usage-records/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/usage-records/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/recharge/usage-records/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/About.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/Privacy.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/README.md delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/SecuritySetting.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/UserSetting.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/setting/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/README.md delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/AudienceFilter.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/AudienceFilter.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/BasicInfo.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/BasicInfo.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/ConditionList.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/ConditionList.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/CustomConditionModal.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/CustomConditionModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/SchemeRecommendation.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/SchemeRecommendation.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/UserListPreview.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/components/UserListPreview.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/BatchAddModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/DataAnalysisPanel.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/FilterModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/poolList1/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/userList/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/userList/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/userList/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/userList/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/data.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/detail.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/scenarios/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/components/AccountListModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/components/DeviceListModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/components/OreadyAdd.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/components/PoolListModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/components/Popups.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/planApi.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/planApi.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/index.api.ts delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/index.data.ts delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/BasicSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/DistributionSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/FriendRequestSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/MessageCard.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/MessageSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/base.data.ts delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/base.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/friend.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/messages.module.scss delete mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/step.api.ts delete mode 100644 Cunkebao/src/pages/mobile/test/README.md delete mode 100644 Cunkebao/src/pages/mobile/test/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/test/select.tsx delete mode 100644 Cunkebao/src/pages/mobile/test/update-notification.tsx delete mode 100644 Cunkebao/src/pages/mobile/test/upload.module.scss delete mode 100644 Cunkebao/src/pages/mobile/test/upload.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-analyzer/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-analyzer/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-assistant/AIAssistant.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-assistant/AIAssistant.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/api 文档 delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/detail/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/detail/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/form/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/components/GlobalPromptModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/ai-knowledge/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/detail/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/components/BasicSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/components/DeviceSelector.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/components/OwnerAdminSelector.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/components/PoolSelector.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/types.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/new.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/record.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/form/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/contact-import/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/components/AddChannelModal.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/components/AddChannelModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/detail/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/detail/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/distribution-management/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/detail/group-detail.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/detail/group-detail.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/detail/groups-list.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/detail/groups-list.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/components/BasicSettings.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/components/BasicSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/components/DeviceSelectionStep.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/components/DeviceSelectionStep.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/components/PoolSelectionStep.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/components/PoolSelectionStep.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/form/types.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-create/新增字段说明.md delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/detail/groupPush.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/BasicSettings.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/ContentSelector.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/GroupSelector.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/index.api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/index.data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/list/index.api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/main/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/main/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/main/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/list/Detail.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/list/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/new/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/new/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/new/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/record/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/record/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/record/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/record/record.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/index.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/api.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/components/AccountListModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/components/DeviceListModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/components/PoolListModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/components/SendRcrodModal.tsx delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/data.ts delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/index.module.scss delete mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/index.tsx delete mode 100644 Cunkebao/src/polyfills.ts delete mode 100644 Cunkebao/src/react-app-env.d.ts delete mode 100644 Cunkebao/src/router/config.ts delete mode 100644 Cunkebao/src/router/index.tsx delete mode 100644 Cunkebao/src/router/module/auth.tsx delete mode 100644 Cunkebao/src/router/module/content.tsx delete mode 100644 Cunkebao/src/router/module/index.tsx delete mode 100644 Cunkebao/src/router/module/mine.tsx delete mode 100644 Cunkebao/src/router/module/scenarios.tsx delete mode 100644 Cunkebao/src/router/module/test.tsx delete mode 100644 Cunkebao/src/router/module/wechat-accounts.tsx delete mode 100644 Cunkebao/src/router/module/workspace.tsx delete mode 100644 Cunkebao/src/router/permissionRoute.tsx delete mode 100644 Cunkebao/src/store/README.md delete mode 100644 Cunkebao/src/store/createPersistStore.ts delete mode 100644 Cunkebao/src/store/examples.ts delete mode 100644 Cunkebao/src/store/index.ts delete mode 100644 Cunkebao/src/store/module/app.ts delete mode 100644 Cunkebao/src/store/module/settings.ts delete mode 100644 Cunkebao/src/store/module/user.ts delete mode 100644 Cunkebao/src/store/persistUtils.ts delete mode 100644 Cunkebao/src/styles/global.scss delete mode 100644 Cunkebao/src/types/device.ts delete mode 100644 Cunkebao/src/utils/apiUrl.ts delete mode 100644 Cunkebao/src/utils/cacheCleaner.ts delete mode 100644 Cunkebao/src/utils/chartColors.ts delete mode 100644 Cunkebao/src/utils/common.ts delete mode 100644 Cunkebao/src/utils/env.ts delete mode 100644 Cunkebao/src/utils/postApp.ts delete mode 100644 Cunkebao/src/utils/updateChecker.ts delete mode 100644 Cunkebao/src/vite-env.d.ts delete mode 100644 Cunkebao/tsconfig.json delete mode 100644 Cunkebao/vite-pwa.config.ts delete mode 100644 Cunkebao/vite.config.ts delete mode 100644 Cunkebao/websdk.js diff --git a/Cunkebao/.env.development b/Cunkebao/.env.development deleted file mode 100644 index 2ddb67f5..00000000 --- a/Cunkebao/.env.development +++ /dev/null @@ -1,6 +0,0 @@ -# 基础环境变量示例 -VITE_API_BASE_URL=http://www.yishi.com -VITE_API_BASE_URL2=https://kf.quwanzhi.com:9991 -VITE_API_WS_URL=wss://kf.quwanzhi.com:9993 -# VITE_API_BASE_URL=https://ckbapi.quwanzhi.com -VITE_APP_TITLE=存客宝 diff --git a/Cunkebao/.env.local b/Cunkebao/.env.local deleted file mode 100644 index 19e89e7e..00000000 --- a/Cunkebao/.env.local +++ /dev/null @@ -1 +0,0 @@ -NEXT_PUBLIC_API_BASE_URL= http://yishi.com \ No newline at end of file diff --git a/Cunkebao/.env.production b/Cunkebao/.env.production deleted file mode 100644 index 838935bb..00000000 --- a/Cunkebao/.env.production +++ /dev/null @@ -1,6 +0,0 @@ -# 基础环境变量示例 -VITE_API_BASE_URL=https://ckbapi.quwanzhi.com -VITE_API_BASE_URL2=https://kf.quwanzhi.com:9991 -VITE_API_WS_URL=wss://kf.quwanzhi.com:9993 -# VITE_API_BASE_URL=http://www.yishi.com -VITE_APP_TITLE=存客宝 diff --git a/Cunkebao/.eslintrc.js b/Cunkebao/.eslintrc.js deleted file mode 100644 index 0ffa2239..00000000 --- a/Cunkebao/.eslintrc.js +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", // 这个配置会自动处理大部分冲突 - ], - parser: "@typescript-eslint/parser", - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 12, - sourceType: "module", - }, - plugins: ["react", "react-hooks", "@typescript-eslint", "prettier"], - rules: { - "prettier/prettier": "error", - "react/react-in-jsx-scope": "off", - "@typescript-eslint/no-unused-vars": "warn", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unnecessary-type-constraint": "warn", - "react/prop-types": "off", - "linebreak-style": "off", - "eol-last": "off", - "no-empty": "warn", - "prefer-const": "warn", - // 确保与 Prettier 完全兼容 - "comma-dangle": "off", - "comma-spacing": "off", - "comma-style": "off", - "object-curly-spacing": "off", - "array-bracket-spacing": "off", - indent: "off", - quotes: "off", - semi: "off", - "arrow-parens": "off", - "no-multiple-empty-lines": "off", - "max-len": "off", - "space-before-function-paren": "off", - "space-before-blocks": "off", - "keyword-spacing": "off", - "space-infix-ops": "off", - "space-in-parens": "off", - "space-in-brackets": "off", - "object-property-newline": "off", - "array-element-newline": "off", - "function-paren-newline": "off", - "object-curly-newline": "off", - "array-bracket-newline": "off", - }, - settings: { - react: { - version: "detect", - }, - }, -}; diff --git a/Cunkebao/.gitattributes b/Cunkebao/.gitattributes deleted file mode 100644 index b1c74b26..00000000 --- a/Cunkebao/.gitattributes +++ /dev/null @@ -1,27 +0,0 @@ -# 设置默认行为,如果core.autocrlf没有设置,Git会自动处理行尾符 -* text=auto - -# 明确指定文本文件使用LF -*.js text eol=lf -*.jsx text eol=lf -*.ts text eol=lf -*.tsx text eol=lf -*.json text eol=lf -*.css text eol=lf -*.scss text eol=lf -*.html text eol=lf -*.md text eol=lf -*.yml text eol=lf -*.yaml text eol=lf - -# 二进制文件 -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.svg binary -*.woff binary -*.woff2 binary -*.ttf binary -*.eot binary diff --git a/Cunkebao/.gitignore b/Cunkebao/.gitignore deleted file mode 100644 index 25615b99..00000000 --- a/Cunkebao/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules/ -dist/ -build/ -yarn.lock -.env -.DS_Store -dist/* -.cursorindexingignore -*.zip -.idea/ -.next/ diff --git a/Cunkebao/.prettierrc b/Cunkebao/.prettierrc deleted file mode 100644 index e8e77819..00000000 --- a/Cunkebao/.prettierrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "semi": true, - "trailingComma": "all", - "singleQuote": false, - "printWidth": 80, - "tabWidth": 2, - "useTabs": false, - "endOfLine": "lf", - "bracketSpacing": true, - "arrowParens": "avoid", - "jsxSingleQuote": false, - "quoteProps": "as-needed" -} \ No newline at end of file diff --git a/Cunkebao/.vite/deps/_metadata.json b/Cunkebao/.vite/deps/_metadata.json deleted file mode 100644 index b6601954..00000000 --- a/Cunkebao/.vite/deps/_metadata.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "hash": "efe0acf4", - "configHash": "2bed34b3", - "lockfileHash": "ef01d341", - "browserHash": "91bd3b2c", - "optimized": {}, - "chunks": {} -} \ No newline at end of file diff --git a/Cunkebao/.vite/deps/package.json b/Cunkebao/.vite/deps/package.json deleted file mode 100644 index 3dbc1ca5..00000000 --- a/Cunkebao/.vite/deps/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/Cunkebao/.vscode/extensions.json b/Cunkebao/.vscode/extensions.json deleted file mode 100644 index 37f481a2..00000000 --- a/Cunkebao/.vscode/extensions.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "recommendations": [ - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "bradlc.vscode-tailwindcss", - "ms-vscode.vscode-typescript-next", - "formulahendry.auto-rename-tag", - "christian-kohler.path-intellisense", - "ms-vscode.vscode-json" - ] -} diff --git a/Cunkebao/.vscode/settings.json b/Cunkebao/.vscode/settings.json deleted file mode 100644 index 7241ea90..00000000 --- a/Cunkebao/.vscode/settings.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "files.eol": "\n", - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - "files.trimTrailingWhitespace": true, - "editor.formatOnSave": true, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit", - "source.organizeImports": "never" - }, - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact" - ], - "eslint.format.enable": false, - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[javascriptreact]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescriptreact]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[scss]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[css]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "typescript.preferences.importModuleSpecifier": "relative", - "typescript.suggest.autoImports": true, - "editor.tabSize": 2, - "editor.insertSpaces": true, - "editor.detectIndentation": false -} diff --git a/Cunkebao/devlop.py b/Cunkebao/devlop.py deleted file mode 100644 index f1aecf46..00000000 --- a/Cunkebao/devlop.py +++ /dev/null @@ -1,95 +0,0 @@ -import os -import zipfile -import paramiko - -# 配置 -local_dir = './dist' # 本地要打包的目录 -zip_name = 'dist.zip' -# 上传到服务器的 zip 路径 -remote_path = '/www/wwwroot/auto-devlop/ckb-operation/dist.zip' # 服务器上的临时zip路径 -server_ip = '42.194.245.239' -server_port = 6523 -server_user = 'yongpxu' -server_pwd = 'Aa123456789.' -# 服务器 dist 相关目录 -remote_base_dir = '/www/wwwroot/auto-devlop/ckb-operation' -dist_dir = f'{remote_base_dir}/dist' -dist1_dir = f'{remote_base_dir}/dist1' -dist2_dir = f'{remote_base_dir}/dist2' - -# 美化输出用的函数 -from datetime import datetime - -def info(msg): - print(f"\033[36m[INFO {datetime.now().strftime('%H:%M:%S')}] {msg}\033[0m") - -def success(msg): - print(f"\033[32m[SUCCESS] {msg}\033[0m") - -def error(msg): - print(f"\033[31m[ERROR] {msg}\033[0m") - -def step(msg): - print(f"\n\033[35m==== {msg} ====" + "\033[0m") - -# 1. 先运行 pnpm build -step('Step 1: 构建项目 (pnpm build)') -info('开始执行 pnpm build...') -ret = os.system('pnpm build') -if ret != 0: - error('pnpm build 失败,终止部署!') - exit(1) -success('pnpm build 完成') - -# 2. 打包 -step('Step 2: 打包 dist 目录为 zip') -info('开始打包 dist 目录...') -with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf: - for root, dirs, files in os.walk(local_dir): - for file in files: - filepath = os.path.join(root, file) - arcname = os.path.relpath(filepath, local_dir) - zipf.write(filepath, arcname) -success('本地打包完成') - -# 3. 上传 -step('Step 3: 上传 zip 包到服务器') -info('开始上传 zip 包...') -transport = paramiko.Transport((server_ip, server_port)) -transport.connect(username=server_user, password=server_pwd) -sftp = paramiko.SFTPClient.from_transport(transport) -sftp.put(zip_name, remote_path) -sftp.close() -transport.close() -success('上传到服务器完成') - -# 删除本地 dist.zip -try: - os.remove(zip_name) - success('本地 dist.zip 已删除') -except Exception as e: - error(f'本地 dist.zip 删除失败: {e}') - -# 4. 远程解压并覆盖 -step('Step 4: 服务器端解压、切换目录') -ssh = paramiko.SSHClient() -ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) -ssh.connect(server_ip, server_port, server_user, server_pwd) -commands = [ - f'unzip -oq {remote_path} -d {dist2_dir}', # 静默解压 - f'rm {remote_path}', - f'if [ -d {dist_dir} ]; then mv {dist_dir} {dist1_dir}; fi', - f'mv {dist2_dir} {dist_dir}', - f'rm -rf {dist1_dir}' -] -for i, cmd in enumerate(commands, 1): - info(f'执行第{i}步: {cmd}') - stdin, stdout, stderr = ssh.exec_command(cmd) - out, err = stdout.read().decode(), stderr.read().decode() - # 只打印非 unzip 命令的输出 - if i != 1 and out.strip(): - print(out.strip()) - if err.strip(): - error(err.strip()) -ssh.close() -success('服务器解压并覆盖完成,部署成功!') diff --git a/Cunkebao/favicon.ico b/Cunkebao/favicon.ico deleted file mode 100644 index 54e9891c85fd9bceae3e93ee7a5d8286ba81559a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3922 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 diff --git a/Cunkebao/index.html b/Cunkebao/index.html deleted file mode 100644 index 16de6c67..00000000 --- a/Cunkebao/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - 存客宝 - - - - - -
- - - diff --git a/Cunkebao/package.json b/Cunkebao/package.json deleted file mode 100644 index 1e1baa4b..00000000 --- a/Cunkebao/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "cunkebao", - "version": "3.0.0", - "license": "MIT", - "private": true, - "dependencies": { - "@ant-design/icons": "^5.6.1", - "antd": "^5.13.1", - "antd-mobile": "^5.39.1", - "antd-mobile-icons": "^0.3.0", - "axios": "^1.6.7", - "dayjs": "^1.11.13", - "echarts": "^5.6.0", - "echarts-for-react": "^3.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.20.0", - "react-window": "^1.8.11", - "vconsole": "^3.15.1", - "xmldom": "^0.6.0", - "zustand": "^5.0.6" - }, - "devDependencies": { - "@types/node": "^24.0.14", - "@types/react": "^19.1.8", - "@types/react-dom": "^19.1.6", - "@typescript-eslint/eslint-plugin": "^7.7.0", - "@typescript-eslint/parser": "^7.7.0", - "@vitejs/plugin-react": "^4.6.0", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^5.2.0", - "postcss": "^8.4.38", - "postcss-pxtorem": "^6.0.0", - "prettier": "^3.2.5", - "sass": "^1.75.0", - "typescript": "^5.4.5", - "vite": "^7.0.5" - }, - "scripts": { - "dev": "pnpm vite", - "build": "pnpm vite build", - "build:check": "tsc && pnpm vite build", - "preview": "pnpm vite preview", - "lint": "eslint src --ext .js,.jsx,.ts,.tsx --fix", - "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,scss,css}\"", - "lint:check": "eslint src --ext .js,.jsx,.ts,.tsx", - "format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx,json,scss,css}\"" - } -} diff --git a/Cunkebao/pnpm-lock.yaml b/Cunkebao/pnpm-lock.yaml deleted file mode 100644 index 99f410fa..00000000 --- a/Cunkebao/pnpm-lock.yaml +++ /dev/null @@ -1,4990 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@ant-design/icons': - specifier: ^5.6.1 - version: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - antd: - specifier: ^5.13.1 - version: 5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - antd-mobile: - specifier: ^5.39.1 - version: 5.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - antd-mobile-icons: - specifier: ^0.3.0 - version: 0.3.0 - axios: - specifier: ^1.6.7 - version: 1.11.0 - dayjs: - specifier: ^1.11.13 - version: 1.11.13 - echarts: - specifier: ^5.6.0 - version: 5.6.0 - echarts-for-react: - specifier: ^3.0.2 - version: 3.0.2(echarts@5.6.0)(react@18.3.1) - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) - react-router-dom: - specifier: ^6.20.0 - version: 6.30.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-window: - specifier: ^1.8.11 - version: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vconsole: - specifier: ^3.15.1 - version: 3.15.1 - xmldom: - specifier: ^0.6.0 - version: 0.6.0 - zustand: - specifier: ^5.0.6 - version: 5.0.7(@types/react@19.1.10)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1)) - devDependencies: - '@types/node': - specifier: ^24.0.14 - version: 24.2.1 - '@types/react': - specifier: ^19.1.8 - version: 19.1.10 - '@types/react-dom': - specifier: ^19.1.6 - version: 19.1.7(@types/react@19.1.10) - '@typescript-eslint/eslint-plugin': - specifier: ^7.7.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/parser': - specifier: ^7.7.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@vitejs/plugin-react': - specifier: ^4.6.0 - version: 4.7.0(vite@7.1.2(@types/node@24.2.1)(sass@1.90.0)) - eslint: - specifier: ^8.57.0 - version: 8.57.1 - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.2(eslint@8.57.1) - eslint-plugin-prettier: - specifier: ^5.1.3 - version: 5.5.4(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) - eslint-plugin-react: - specifier: ^7.34.1 - version: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: - specifier: ^5.2.0 - version: 5.2.0(eslint@8.57.1) - postcss: - specifier: ^8.4.38 - version: 8.5.6 - postcss-pxtorem: - specifier: ^6.0.0 - version: 6.1.0(postcss@8.5.6) - prettier: - specifier: ^3.2.5 - version: 3.6.2 - sass: - specifier: ^1.75.0 - version: 1.90.0 - typescript: - specifier: ^5.4.5 - version: 5.9.2 - vite: - specifier: ^7.0.5 - version: 7.1.2(@types/node@24.2.1)(sass@1.90.0) - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@ant-design/colors@7.2.1': - resolution: {integrity: sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==} - - '@ant-design/cssinjs-utils@1.1.3': - resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@ant-design/cssinjs@1.24.0': - resolution: {integrity: sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/fast-color@2.0.6': - resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} - engines: {node: '>=8.x'} - - '@ant-design/icons-svg@4.4.2': - resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} - - '@ant-design/icons@5.6.1': - resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/react-slick@1.1.2': - resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} - peerDependencies: - react: '>=16.9.0' - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.28.0': - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.0': - resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.2': - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.28.0': - resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.28.2': - resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.0': - resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} - - '@emotion/hash@0.8.0': - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - - '@emotion/unitless@0.7.5': - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - - '@esbuild/aix-ppc64@0.25.8': - resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.25.8': - resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.25.8': - resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.25.8': - resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.25.8': - resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.8': - resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.25.8': - resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.8': - resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.25.8': - resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.25.8': - resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.25.8': - resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.25.8': - resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.25.8': - resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.25.8': - resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.8': - resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.25.8': - resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.25.8': - resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.25.8': - resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.8': - resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.25.8': - resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.8': - resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.25.8': - resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.25.8': - resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.25.8': - resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.25.8': - resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.25.8': - resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - - '@floating-ui/dom@1.7.3': - resolution: {integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==} - - '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@rc-component/async-validator@5.0.4': - resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} - engines: {node: '>=14.x'} - - '@rc-component/color-picker@2.0.1': - resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/context@1.4.0': - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/mini-decimal@1.1.0': - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} - engines: {node: '>=8.x'} - - '@rc-component/mutate-observer@1.1.0': - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/portal@1.1.2': - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/qrcode@1.0.0': - resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/tour@1.15.1': - resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/trigger@2.3.0': - resolution: {integrity: sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@react-spring/animated@9.6.1': - resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/core@9.6.1': - resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/rafz@9.6.1': - resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==} - - '@react-spring/shared@9.6.1': - resolution: {integrity: sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/types@9.6.1': - resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} - - '@react-spring/web@9.6.1': - resolution: {integrity: sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@remix-run/router@1.23.0': - resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==} - engines: {node: '>=14.0.0'} - - '@rolldown/pluginutils@1.0.0-beta.27': - resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} - - '@rollup/rollup-android-arm-eabi@4.46.2': - resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.46.2': - resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.46.2': - resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.46.2': - resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.46.2': - resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.46.2': - resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': - resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.46.2': - resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.46.2': - resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.46.2': - resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': - resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.46.2': - resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.46.2': - resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.46.2': - resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.46.2': - resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.46.2': - resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.46.2': - resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.46.2': - resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.46.2': - resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.46.2': - resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} - cpu: [x64] - os: [win32] - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/node@24.2.1': - resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==} - - '@types/react-dom@19.1.7': - resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} - peerDependencies: - '@types/react': ^19.0.0 - - '@types/react@19.1.10': - resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} - - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@use-gesture/core@10.3.0': - resolution: {integrity: sha512-rh+6MND31zfHcy9VU3dOZCqGY511lvGcfyJenN4cWZe0u1BH6brBpBddLVXhF2r4BMqWbvxfsbL7D287thJU2A==} - - '@use-gesture/react@10.3.0': - resolution: {integrity: sha512-3zc+Ve99z4usVP6l9knYVbVnZgfqhKah7sIG+PS2w+vpig2v2OLct05vs+ZXMzwxdNCMka8B+8WlOo0z6Pn6DA==} - peerDependencies: - react: '>= 16.8.0' - - '@vitejs/plugin-react@4.7.0': - resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ahooks@3.9.0: - resolution: {integrity: sha512-r20/C38aFyU3Zqp3620gkdLnxmQhnmWORB3eGGTDlM4i/fOc0GUvM+f2oleMzEu7b3+pHXyzz+FB6ojxsUdYdw==} - engines: {node: '>=8.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - antd-mobile-icons@0.3.0: - resolution: {integrity: sha512-rqINQpJWZWrva9moCd1Ye695MZYWmqLPE+bY8d2xLRy7iSQwPsinCdZYjpUPp2zL/LnKYSyXxP2ut2A+DC+whQ==} - - antd-mobile-v5-count@1.0.1: - resolution: {integrity: sha512-YGsiEDCPUDz3SzfXi6gLZn/HpeSMW+jgPc4qiYUr1fSopg3hkUie2TnooJdExgfiETHefH3Ggs58He0OVfegLA==} - - antd-mobile@5.40.0: - resolution: {integrity: sha512-nNfkTLiYPsa7A2i7eoG/hr2BM0agR4cfugE2+5HTyGnCg5xQT04Pmt9qEoKv7MOW5BaiiMyjO462Kh8KRF5QBA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - antd@5.27.0: - resolution: {integrity: sha512-o54dmpooLOc08RSGCkeEQBYAGPxUSmnhmYJKCNTHH46vzjOVxdteu+wPTRVkRbAkDTbs2VcNr5VL7Lu67rPIiA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - async-validator@4.2.5: - resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.25.2: - resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - caniuse-lite@1.0.30001734: - resolution: {integrity: sha512-uhE1Ye5vgqju6OI71HTQqcBCZrvHugk0MjLak7Q+HfoBgoq5Bi+5YnwjP4fjDgrtYr/l8MVRBvzz9dPD4KyK0A==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - compute-scroll-into-view@3.1.1: - resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - copy-text-to-clipboard@3.2.0: - resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} - engines: {node: '>=12'} - - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - core-js@3.45.0: - resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - echarts-for-react@3.0.2: - resolution: {integrity: sha512-DRwIiTzx8JfwPOVgGttDytBqdp5VzCSyMRIxubgU/g2n9y3VLUmF2FK7Icmg/sNVkv4+rktmrLN9w22U2yy3fA==} - peerDependencies: - echarts: ^3.0.0 || ^4.0.0 || ^5.0.0 - react: ^15.0.0 || >=16.0.0 - - echarts@5.6.0: - resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} - - electron-to-chromium@1.5.200: - resolution: {integrity: sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w==} - - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - - esbuild@0.25.8: - resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@9.1.2: - resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@5.5.4: - resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} - engines: {node: '>= 6'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - immutable@5.1.3: - resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - intersection-observer@0.12.2: - resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - - js-cookie@3.0.5: - resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} - engines: {node: '>=14'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mutation-observer@1.0.3: - resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==} - - nano-memoize@3.0.16: - resolution: {integrity: sha512-JyK96AKVGAwVeMj3MoMhaSXaUNqgMbCRSQB3trUV8tYZfWEzqUBKdK1qJpfuNXgKeHOx1jv/IEYTM659ly7zUA==} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-pxtorem@6.1.0: - resolution: {integrity: sha512-ROODSNci9ADal3zUcPHOF/K83TiCgNSPXQFSbwyPHNV8ioHIE4SaC+FPOufd8jsr5jV2uIz29v1Uqy1c4ov42g==} - peerDependencies: - postcss: ^8.0.0 - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} - engines: {node: '>=14'} - hasBin: true - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - rc-cascader@3.34.0: - resolution: {integrity: sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-checkbox@3.5.0: - resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-collapse@3.9.0: - resolution: {integrity: sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dialog@9.6.0: - resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-drawer@7.3.0: - resolution: {integrity: sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dropdown@4.2.1: - resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - - rc-field-form@1.44.0: - resolution: {integrity: sha512-el7w87fyDUsca63Y/s8qJcq9kNkf/J5h+iTdqG5WsSHLH0e6Usl7QuYSmSVzJMgtp40mOVZIY/W/QP9zwrp1FA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-field-form@2.7.0: - resolution: {integrity: sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-image@7.12.0: - resolution: {integrity: sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input-number@9.5.0: - resolution: {integrity: sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input@1.8.0: - resolution: {integrity: sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-mentions@2.20.0: - resolution: {integrity: sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-menu@9.16.1: - resolution: {integrity: sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-motion@2.9.5: - resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-notification@5.6.4: - resolution: {integrity: sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-overflow@1.4.1: - resolution: {integrity: sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-pagination@5.1.0: - resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-picker@4.11.3: - resolution: {integrity: sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - - rc-progress@4.0.0: - resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-rate@2.13.1: - resolution: {integrity: sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-resize-observer@1.4.3: - resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-segmented@2.4.1: - resolution: {integrity: sha512-KUi+JJFdKnumV9iXlm+BJ00O4NdVBp2TEexLCk6bK1x/RH83TvYKQMzIz/7m3UTRPD08RM/8VG/JNjWgWbd4cw==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-segmented@2.7.0: - resolution: {integrity: sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-select@14.16.8: - resolution: {integrity: sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-slider@11.1.8: - resolution: {integrity: sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-steps@6.0.1: - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-switch@4.1.0: - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-table@7.51.1: - resolution: {integrity: sha512-5iq15mTHhvC42TlBLRCoCBLoCmGlbRZAlyF21FonFnS/DIC8DeRqnmdyVREwt2CFbPceM0zSNdEeVfiGaqYsKw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tabs@15.7.0: - resolution: {integrity: sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-textarea@1.10.2: - resolution: {integrity: sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tooltip@6.4.0: - resolution: {integrity: sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tree-select@5.27.0: - resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==} - peerDependencies: - react: '*' - react-dom: '*' - - rc-tree@5.13.1: - resolution: {integrity: sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-upload@4.9.2: - resolution: {integrity: sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-util@5.44.4: - resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-virtual-list@3.19.1: - resolution: {integrity: sha512-DCapO2oyPqmooGhxBuXHM4lFuX+sshQwWqqkuyFA+4rShLe//+GEPVwiDgO+jKtKHtbeYwZoNvetwfHdOf+iUQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} - engines: {node: '>=0.10.0'} - - react-router-dom@6.30.1: - resolution: {integrity: sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router@6.30.1: - resolution: {integrity: sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - - react-window@1.8.11: - resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} - engines: {node: '>8.0.0'} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@4.46.2: - resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - runes2@1.1.4: - resolution: {integrity: sha512-LNPnEDPOOU4ehF71m5JoQyzT2yxwD6ZreFJ7MxZUAoMKNMY1XrAo60H1CUoX5ncSm0rIuKlqn9JZNRrRkNou2g==} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - sass@1.90.0: - resolution: {integrity: sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==} - engines: {node: '>=14.0.0'} - hasBin: true - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - - scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - size-sensor@1.0.2: - resolution: {integrity: sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - staged-components@1.1.3: - resolution: {integrity: sha512-9EIswzDqjwlEu+ymkV09TTlJfzSbKgEnNteUnZSTxkpMgr5Wx2CzzA9WcMFWBNCldqVPsHVnRGGrApduq2Se5A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - - string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - stylis@4.3.6: - resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} - engines: {node: ^14.18.0 || >=16.0.0} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - throttle-debounce@5.0.2: - resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} - engines: {node: '>=12.22'} - - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - tslib@2.3.0: - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - vconsole@3.15.1: - resolution: {integrity: sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==} - - vite@7.1.2: - resolution: {integrity: sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - xmldom@0.6.0: - resolution: {integrity: sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==} - engines: {node: '>=10.0.0'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zrender@5.6.1: - resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} - - zustand@5.0.7: - resolution: {integrity: sha512-Ot6uqHDW/O2VdYsKLLU8GQu8sCOM1LcoE8RwvLv9uuRT9s6SOHCKs0ZEOhxg+I1Ld+A1Q5lwx+UlKXXUoCZITg==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=18.0.0' - immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - use-sync-external-store: - optional: true - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 - - '@ant-design/colors@7.2.1': - dependencies: - '@ant-design/fast-color': 2.0.6 - - '@ant-design/cssinjs-utils@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ant-design/cssinjs': 1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.28.2 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@ant-design/cssinjs@1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.5.1 - csstype: 3.1.3 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - stylis: 4.3.6 - - '@ant-design/fast-color@2.0.6': - dependencies: - '@babel/runtime': 7.28.2 - - '@ant-design/icons-svg@4.4.2': {} - - '@ant-design/icons@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ant-design/colors': 7.2.1 - '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@ant-design/react-slick@1.1.2(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - json2mq: 0.2.0 - react: 18.3.1 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.2 - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.28.0': {} - - '@babel/core@7.28.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.28.0': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.27.1': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.2': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - - '@babel/parser@7.28.0': - dependencies: - '@babel/types': 7.28.2 - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/runtime@7.28.2': {} - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 - - '@babel/traverse@7.28.0': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.28.2': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@emotion/hash@0.8.0': {} - - '@emotion/unitless@0.7.5': {} - - '@esbuild/aix-ppc64@0.25.8': - optional: true - - '@esbuild/android-arm64@0.25.8': - optional: true - - '@esbuild/android-arm@0.25.8': - optional: true - - '@esbuild/android-x64@0.25.8': - optional: true - - '@esbuild/darwin-arm64@0.25.8': - optional: true - - '@esbuild/darwin-x64@0.25.8': - optional: true - - '@esbuild/freebsd-arm64@0.25.8': - optional: true - - '@esbuild/freebsd-x64@0.25.8': - optional: true - - '@esbuild/linux-arm64@0.25.8': - optional: true - - '@esbuild/linux-arm@0.25.8': - optional: true - - '@esbuild/linux-ia32@0.25.8': - optional: true - - '@esbuild/linux-loong64@0.25.8': - optional: true - - '@esbuild/linux-mips64el@0.25.8': - optional: true - - '@esbuild/linux-ppc64@0.25.8': - optional: true - - '@esbuild/linux-riscv64@0.25.8': - optional: true - - '@esbuild/linux-s390x@0.25.8': - optional: true - - '@esbuild/linux-x64@0.25.8': - optional: true - - '@esbuild/netbsd-arm64@0.25.8': - optional: true - - '@esbuild/netbsd-x64@0.25.8': - optional: true - - '@esbuild/openbsd-arm64@0.25.8': - optional: true - - '@esbuild/openbsd-x64@0.25.8': - optional: true - - '@esbuild/openharmony-arm64@0.25.8': - optional: true - - '@esbuild/sunos-x64@0.25.8': - optional: true - - '@esbuild/win32-arm64@0.25.8': - optional: true - - '@esbuild/win32-ia32@0.25.8': - optional: true - - '@esbuild/win32-x64@0.25.8': - optional: true - - '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.4.1 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.1': {} - - '@floating-ui/core@1.7.3': - dependencies: - '@floating-ui/utils': 0.2.10 - - '@floating-ui/dom@1.7.3': - dependencies: - '@floating-ui/core': 1.7.3 - '@floating-ui/utils': 0.2.10 - - '@floating-ui/utils@0.2.10': {} - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.30': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - - '@parcel/watcher-win32-x64@2.5.1': - optional: true - - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true - - '@pkgr/core@0.2.9': {} - - '@rc-component/async-validator@5.0.4': - dependencies: - '@babel/runtime': 7.28.2 - - '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ant-design/fast-color': 2.0.6 - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/mini-decimal@1.1.0': - dependencies: - '@babel/runtime': 7.28.2 - - '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/qrcode@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/tour@1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/trigger@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-spring/animated@9.6.1(react@18.3.1)': - dependencies: - '@react-spring/shared': 9.6.1(react@18.3.1) - '@react-spring/types': 9.6.1 - react: 18.3.1 - - '@react-spring/core@9.6.1(react@18.3.1)': - dependencies: - '@react-spring/animated': 9.6.1(react@18.3.1) - '@react-spring/rafz': 9.6.1 - '@react-spring/shared': 9.6.1(react@18.3.1) - '@react-spring/types': 9.6.1 - react: 18.3.1 - - '@react-spring/rafz@9.6.1': {} - - '@react-spring/shared@9.6.1(react@18.3.1)': - dependencies: - '@react-spring/rafz': 9.6.1 - '@react-spring/types': 9.6.1 - react: 18.3.1 - - '@react-spring/types@9.6.1': {} - - '@react-spring/web@9.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-spring/animated': 9.6.1(react@18.3.1) - '@react-spring/core': 9.6.1(react@18.3.1) - '@react-spring/shared': 9.6.1(react@18.3.1) - '@react-spring/types': 9.6.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@remix-run/router@1.23.0': {} - - '@rolldown/pluginutils@1.0.0-beta.27': {} - - '@rollup/rollup-android-arm-eabi@4.46.2': - optional: true - - '@rollup/rollup-android-arm64@4.46.2': - optional: true - - '@rollup/rollup-darwin-arm64@4.46.2': - optional: true - - '@rollup/rollup-darwin-x64@4.46.2': - optional: true - - '@rollup/rollup-freebsd-arm64@4.46.2': - optional: true - - '@rollup/rollup-freebsd-x64@4.46.2': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.46.2': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.46.2': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.46.2': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-x64-musl@4.46.2': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.46.2': - optional: true - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.28.2 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 - - '@types/babel__traverse@7.28.0': - dependencies: - '@babel/types': 7.28.2 - - '@types/estree@1.0.8': {} - - '@types/node@24.2.1': - dependencies: - undici-types: 7.10.0 - - '@types/react-dom@19.1.7(@types/react@19.1.10)': - dependencies: - '@types/react': 19.1.10 - - '@types/react@19.1.10': - dependencies: - csstype: 3.1.3 - - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.9.2) - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 - eslint: 8.57.1 - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - debug: 4.4.1 - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.2) - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@7.18.0': {} - - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.2)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.9.2) - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.3.0': {} - - '@use-gesture/core@10.3.0': {} - - '@use-gesture/react@10.3.0(react@18.3.1)': - dependencies: - '@use-gesture/core': 10.3.0 - react: 18.3.1 - - '@vitejs/plugin-react@4.7.0(vite@7.1.2(@types/node@24.2.1)(sass@1.90.0))': - dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) - '@rolldown/pluginutils': 1.0.0-beta.27 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 7.1.2(@types/node@24.2.1)(sass@1.90.0) - transitivePeerDependencies: - - supports-color - - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn@8.15.0: {} - - ahooks@3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - dayjs: 1.11.13 - intersection-observer: 0.12.2 - js-cookie: 3.0.5 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-fast-compare: 3.2.2 - resize-observer-polyfill: 1.5.1 - screenfull: 5.2.0 - tslib: 2.8.1 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - antd-mobile-icons@0.3.0: {} - - antd-mobile-v5-count@1.0.1: {} - - antd-mobile@5.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@floating-ui/dom': 1.7.3 - '@rc-component/mini-decimal': 1.1.0 - '@react-spring/web': 9.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@use-gesture/react': 10.3.0(react@18.3.1) - ahooks: 3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - antd-mobile-icons: 0.3.0 - antd-mobile-v5-count: 1.0.1 - classnames: 2.5.1 - dayjs: 1.11.13 - deepmerge: 4.3.1 - nano-memoize: 3.0.16 - rc-field-form: 1.44.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-segmented: 2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-fast-compare: 3.2.2 - react-is: 18.3.1 - runes2: 1.1.4 - staged-components: 1.1.3(react@18.3.1) - tslib: 2.8.1 - use-sync-external-store: 1.5.0(react@18.3.1) - - antd@5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@ant-design/colors': 7.2.1 - '@ant-design/cssinjs': 1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/cssinjs-utils': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/fast-color': 2.0.6 - '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/react-slick': 1.1.2(react@18.3.1) - '@babel/runtime': 7.28.2 - '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/qrcode': 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/tour': 1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.13 - rc-cascader: 3.34.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-checkbox: 3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-collapse: 3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-drawer: 7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-image: 7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-input-number: 9.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-mentions: 2.20.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-notification: 5.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-pagination: 5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-picker: 4.11.3(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-progress: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-rate: 2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-segmented: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-select: 14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-slider: 11.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-steps: 6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-switch: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-table: 7.51.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tabs: 15.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-textarea: 1.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tooltip: 6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree-select: 5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-upload: 4.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.2 - transitivePeerDependencies: - - date-fns - - luxon - - moment - - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - array-includes@3.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - math-intrinsics: 1.1.0 - - array-union@2.1.0: {} - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - async-function@1.0.0: {} - - async-validator@4.2.5: {} - - asynckit@0.4.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axios@1.11.0: - dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.4 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - balanced-match@1.0.2: {} - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.25.2: - dependencies: - caniuse-lite: 1.0.30001734 - electron-to-chromium: 1.5.200 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.2) - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsites@3.1.0: {} - - caniuse-lite@1.0.30001734: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - classnames@2.5.1: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - compute-scroll-into-view@3.1.1: {} - - concat-map@0.0.1: {} - - convert-source-map@2.0.0: {} - - copy-text-to-clipboard@3.2.0: {} - - copy-to-clipboard@3.3.3: - dependencies: - toggle-selection: 1.0.6 - - core-js@3.45.0: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - csstype@3.1.3: {} - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - dayjs@1.11.13: {} - - debug@4.4.1: - dependencies: - ms: 2.1.3 - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - delayed-stream@1.0.0: {} - - detect-libc@1.0.3: - optional: true - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - echarts-for-react@3.0.2(echarts@5.6.0)(react@18.3.1): - dependencies: - echarts: 5.6.0 - fast-deep-equal: 3.1.3 - react: 18.3.1 - size-sensor: 1.0.2 - - echarts@5.6.0: - dependencies: - tslib: 2.3.0 - zrender: 5.6.1 - - electron-to-chromium@1.5.200: {} - - es-abstract@1.24.0: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - esbuild@0.25.8: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.8 - '@esbuild/android-arm': 0.25.8 - '@esbuild/android-arm64': 0.25.8 - '@esbuild/android-x64': 0.25.8 - '@esbuild/darwin-arm64': 0.25.8 - '@esbuild/darwin-x64': 0.25.8 - '@esbuild/freebsd-arm64': 0.25.8 - '@esbuild/freebsd-x64': 0.25.8 - '@esbuild/linux-arm': 0.25.8 - '@esbuild/linux-arm64': 0.25.8 - '@esbuild/linux-ia32': 0.25.8 - '@esbuild/linux-loong64': 0.25.8 - '@esbuild/linux-mips64el': 0.25.8 - '@esbuild/linux-ppc64': 0.25.8 - '@esbuild/linux-riscv64': 0.25.8 - '@esbuild/linux-s390x': 0.25.8 - '@esbuild/linux-x64': 0.25.8 - '@esbuild/netbsd-arm64': 0.25.8 - '@esbuild/netbsd-x64': 0.25.8 - '@esbuild/openbsd-arm64': 0.25.8 - '@esbuild/openbsd-x64': 0.25.8 - '@esbuild/openharmony-arm64': 0.25.8 - '@esbuild/sunos-x64': 0.25.8 - '@esbuild/win32-arm64': 0.25.8 - '@esbuild/win32-ia32': 0.25.8 - '@esbuild/win32-x64': 0.25.8 - - escalade@3.2.0: {} - - escape-string-regexp@4.0.0: {} - - eslint-config-prettier@9.1.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-prettier@5.5.4(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2): - dependencies: - eslint: 8.57.1 - prettier: 3.6.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.11 - optionalDependencies: - eslint-config-prettier: 9.1.2(eslint@8.57.1) - - eslint-plugin-react-hooks@5.2.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react@7.37.5(eslint@8.57.1): - dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 8.57.1 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.1 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@9.6.1: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - fast-deep-equal@3.1.3: {} - - fast-diff@1.3.0: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fdir@6.4.6(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - rimraf: 3.0.2 - - flatted@3.3.3: {} - - follow-redirects@1.15.11: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - form-data@4.0.4: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - gensync@1.0.0-beta.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - gopd@1.2.0: {} - - graphemer@1.4.0: {} - - has-bigints@1.1.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - ignore@5.3.2: {} - - immutable@5.1.3: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - intersection-observer@0.12.2: {} - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-map@2.0.3: {} - - is-negative-zero@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-path-inside@3.0.3: {} - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - - js-cookie@3.0.5: {} - - js-tokens@4.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json2mq@0.2.0: - dependencies: - string-convert: 0.2.1 - - json5@2.2.3: {} - - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.9 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash@4.17.21: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - math-intrinsics@1.1.0: {} - - memoize-one@5.2.1: {} - - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - ms@2.1.3: {} - - mutation-observer@1.0.3: {} - - nano-memoize@3.0.16: {} - - nanoid@3.3.11: {} - - natural-compare@1.4.0: {} - - node-addon-api@7.1.1: - optional: true - - node-releases@2.0.19: {} - - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-type@4.0.0: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.3: {} - - possible-typed-array-names@1.1.0: {} - - postcss-pxtorem@6.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - - prettier@3.6.2: {} - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - proxy-from-env@1.1.0: {} - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - rc-cascader@3.34.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-select: 14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-checkbox@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-collapse@3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-dialog@9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-drawer@7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-dropdown@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-field-form@1.44.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - async-validator: 4.2.5 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-image@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-input-number@9.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/mini-decimal': 1.1.0 - classnames: 2.5.1 - rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-input@1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-mentions@2.20.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-textarea: 1.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-menu@9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-notification@5.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-overflow@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-pagination@5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-picker@4.11.3(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - dayjs: 1.11.13 - - rc-progress@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-rate@2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - resize-observer-polyfill: 1.5.1 - - rc-segmented@2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-segmented@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-select@14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-slider@11.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-table@7.51.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tabs@15.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-textarea@1.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tooltip@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - '@rc-component/trigger': 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tree-select@5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-select: 14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tree@5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-upload@4.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.3.1 - - rc-virtual-list@3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-fast-compare@3.2.2: {} - - react-is@16.13.1: {} - - react-is@18.3.1: {} - - react-refresh@0.17.0: {} - - react-router-dom@6.30.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.23.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.30.1(react@18.3.1) - - react-router@6.30.1(react@18.3.1): - dependencies: - '@remix-run/router': 1.23.0 - react: 18.3.1 - - react-window@1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.2 - memoize-one: 5.2.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - readdirp@4.1.2: {} - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - resize-observer-polyfill@1.5.1: {} - - resolve-from@4.0.0: {} - - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.1.0: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.46.2: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.46.2 - '@rollup/rollup-android-arm64': 4.46.2 - '@rollup/rollup-darwin-arm64': 4.46.2 - '@rollup/rollup-darwin-x64': 4.46.2 - '@rollup/rollup-freebsd-arm64': 4.46.2 - '@rollup/rollup-freebsd-x64': 4.46.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 - '@rollup/rollup-linux-arm-musleabihf': 4.46.2 - '@rollup/rollup-linux-arm64-gnu': 4.46.2 - '@rollup/rollup-linux-arm64-musl': 4.46.2 - '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 - '@rollup/rollup-linux-ppc64-gnu': 4.46.2 - '@rollup/rollup-linux-riscv64-gnu': 4.46.2 - '@rollup/rollup-linux-riscv64-musl': 4.46.2 - '@rollup/rollup-linux-s390x-gnu': 4.46.2 - '@rollup/rollup-linux-x64-gnu': 4.46.2 - '@rollup/rollup-linux-x64-musl': 4.46.2 - '@rollup/rollup-win32-arm64-msvc': 4.46.2 - '@rollup/rollup-win32-ia32-msvc': 4.46.2 - '@rollup/rollup-win32-x64-msvc': 4.46.2 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - runes2@1.1.4: {} - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - sass@1.90.0: - dependencies: - chokidar: 4.0.3 - immutable: 5.1.3 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.1 - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - screenfull@5.2.0: {} - - scroll-into-view-if-needed@3.1.0: - dependencies: - compute-scroll-into-view: 3.1.1 - - semver@6.3.1: {} - - semver@7.7.2: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - size-sensor@1.0.2: {} - - slash@3.0.0: {} - - source-map-js@1.2.1: {} - - staged-components@1.1.3(react@18.3.1): - dependencies: - react: 18.3.1 - - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - - string-convert@0.2.1: {} - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.24.0 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-json-comments@3.1.1: {} - - stylis@4.3.6: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - synckit@0.11.11: - dependencies: - '@pkgr/core': 0.2.9 - - text-table@0.2.0: {} - - throttle-debounce@5.0.2: {} - - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.6(picomatch@4.0.3) - picomatch: 4.0.3 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toggle-selection@1.0.6: {} - - ts-api-utils@1.4.3(typescript@5.9.2): - dependencies: - typescript: 5.9.2 - - tslib@2.3.0: {} - - tslib@2.8.1: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.20.2: {} - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typescript@5.9.2: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - undici-types@7.10.0: {} - - update-browserslist-db@1.1.3(browserslist@4.25.2): - dependencies: - browserslist: 4.25.2 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - use-sync-external-store@1.5.0(react@18.3.1): - dependencies: - react: 18.3.1 - - vconsole@3.15.1: - dependencies: - '@babel/runtime': 7.28.2 - copy-text-to-clipboard: 3.2.0 - core-js: 3.45.0 - mutation-observer: 1.0.3 - - vite@7.1.2(@types/node@24.2.1)(sass@1.90.0): - dependencies: - esbuild: 0.25.8 - fdir: 6.4.6(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.46.2 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.2.1 - fsevents: 2.3.3 - sass: 1.90.0 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrappy@1.0.2: {} - - xmldom@0.6.0: {} - - yallist@3.1.1: {} - - yocto-queue@0.1.0: {} - - zrender@5.6.1: - dependencies: - tslib: 2.3.0 - - zustand@5.0.7(@types/react@19.1.10)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1)): - optionalDependencies: - '@types/react': 19.1.10 - react: 18.3.1 - use-sync-external-store: 1.5.0(react@18.3.1) diff --git a/Cunkebao/postcss.config.js b/Cunkebao/postcss.config.js deleted file mode 100644 index 82ee5d38..00000000 --- a/Cunkebao/postcss.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - plugins: { - 'postcss-pxtorem': { - rootValue: 16, - propList: ['*'], - }, - }, -}; \ No newline at end of file diff --git a/Cunkebao/public/logo.png b/Cunkebao/public/logo.png deleted file mode 100644 index 40daafb0df433304c61669ade36b4aae68aee896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499922 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 *KaaK(hOsC78v8EKLfvS05Nlrt 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 _!oTfK48 zr@1JX*ipC+D^ySgZTE!S9Ies!BZZy|FcvOWkmcK25>|{n+U_n)aPln6yv__s>(fNC z2|?FRa4>p7N8gAqs#?HujDI)jP&(YQ__;hQWw@5U3yVBp$uc)b4j_<1U2 zi%iYY*>Pl;cE0HR2aAZAqYw{m+w-@K)mK!#J!Y2aW{jlBP(KagB?l|I$T4|U*bDKBZjm#x^#3U(PO_LSUn%u9Wg zjS!rI_-M-{_bT=XlgrI3<6G^B?~#8(Vc$nu0kkeU<*qo5kb~zm-%0{qAX>p1+A#M}Eu9*-~?XMi4^& zcra>m*ZsBa%dmu|1AB#M&O*OX4Lj&_=liz~nu3+5yn)Ed&@MZErd#7}Q(tfkvE+Am zptFvMsKycqWjbCW>T#E6B$WC*gDQa;h)x-3K#eu1;GV7ZwoyadLZg)684DI3;cR~5 zUMJ7P<&oIkB(F`|?I|0l|Hc$sN`;kO7nt(Ri?Z6kE`TjpRuxgzp0Yxw{_or2&`UUV z{^Q!0@OVKN8KTgHwIuZXxpWb?%}G5r`p4l=C~>ofsHm4JxDYlD&7t2=&@)ZYG{+G{ ziuYo97Wq?fC4IlSzKNsp`DS+{gL)u|qgN$O4D>RwA@2WZr#xLP_E4>g2rCZp$1qyh z|HR2By^YwTVN(|i_bp&TtYm*Przn^^HaWR;=OEOmw-qMWorL5JR&JEvuq;Tudj%P`}KYS`0V# zBY%x+M#UPOkD}Gb=&<9Hv#reg+Zp4VaXb^3`rm)q*OW1G3X$}Xkw${49vwrlw$Xk? zbi!d0qxbiF`bU4izenWrwnkM!Zjq{;cr|q|Dnv({plX^%=-vAH&IEl|@>BDU;u81= zMWPy}OxWKYUXljmt}<1BYv~6fuL) zo_xhFdLr6^g=*g+ha}Y&CEiVL0qCXua5kQl950c{uA~$FoZa^v10z5ZI1SSW$mjPt%wN;3C)2j>@%tNui(o z4JZ+f?+T{ukqq?#uJ6OM{{w5*SLpPz@w0I#aGw)u5i38iTS594-KuFM658D@<3@|_R(KU#^j0B99fJQ{lFl5tlV+Q)h&UdZCeU^{-1PH7 z-7*P;S_b-MJKyx#uBM41YS+i?j6J)2kU}K z)CO|%Y3!qUK=Smc-N}>h7~=+QVXWmaq4bB#)1T{u5Rx1v)=ZmkekO%fE?)yiY#0=a z+0_!Aeiz~%tg@A>ZQN#%&Tz8|9C-5f)V;;ndY_eJacFA<>>{-Gbu&bP zChn`Bc3Uu)$}8C)^0^yVPLIhc zf=%cBcnDL!{2%43Uq%JiS?AB^gtJ?Rl)Y%j$-&WbQZo&EsDODq+`iJV)c-vOFpYcn zqMb>B_REZkg}&u#>8^4mof2ASR*8{uwbLY-@NmNZ72=W4;IkK}m0WBQ zA*uH-_AYm%izbA&T9ke<4)RQy19f9uo_3h0;jnTxc?gzI*6e!M(2S7qI>UExdaKWS z4AH#)>nMFh?zwVbEF8U|MbG-GyRyy&1dd$b{I3ha!^BBqw=8nmVL+y-wLb$9yVXzg zlaZ2@FZVv40=<*N@||m|_wQ+nSH+b`pZnF}YeOh$If^$;z`|1oi+XzkjPy>D26J50U!9SSiF?$?%DKslw>7S8)^EtEil(Ke$WF@M<26 zGCvc_XxrDmubC3|xW5PdGcAV3{N21JlM#98m=*#-YnNAkco@A!S7B#QxVfz~w|~Dn z6fV7Zj~M#tjiMw;pD{@x+40hhRF_*)4lrwK{ZD4;U1YX|g+{kj%Bt{LpAP7a7dx^Z z=1kgdcT1I&zM?AXlmfpCMo4;`j2wd$F0af|`|C(3t9Kl!E_#rc*ipZFfB%rI1`sAl zFf@?u{l>oXj9SR{%E4!TG=xOhMQ6i?l&73kdI||!OrYlWs_xo|x~hJ=;Sw1|t)eml z4Ycjy+xyx0BR$~l)~A+nf1Ntyt?tjqv$x#rxpB|`i%teooRTt@!^?}r};RjSC0FgB@C`+{Fe+t!_*mFCecL< zf`;f7K&TuQKO;GkI=;Sde>BOui%@H;1|0A`M&pX3)J%7w(C{#fhopoL3HOXe0*8Bw ze{mtCE-;D)Fqe@w*3CCwabbcowHb@imF@8(p(S8gUnI-=TZ&zd@SFlr-86E)uX<;^ z#dVK~_vvKn=9(I3`|W@OkgK)W6SmRQleef!-x-B1FCZWw!%;$44GQCaWvP_Pt?n2~ zZh^x=;yos)po&TLKC#Q^c86C_+dp%wENL>Kj~3==M&RAH5yY)-n(gP+7`}MUD{Kb; z9)p=`rx*65_w6Ehp>2wOPTBVG+!cipVqBo$$kPwkkv(sM4<-C72On9Xl3M(DBbxUc z%PqH^*qnL}Ku&I?J~X<3L#91pMz&U_7lkJ;hRUAi^QS2!GlQtp2z+bOlOadb54pCr z2C_ll`O^kU&83tb#@kJ<9NI;>tlj+qlwHm$_P7{uxrbRNo;TkHig5(!%I|YLAhd4G zaBQs1M1~WLD?o9xP?AU3CF135!g|vY>f=^}eD~tgmpg+-t=tmzuoCGYI*d5mxIhIC z$An<$J7xP+MgBt0FL)MTZg{LGc=@mMonP0hj4G>@K68j9R){QBz$EUcmm*}uh}Xl& z1re)<{Z1)+!+KS}@C>r>Fci^n)pmF2dvYqf*?N;KDxu^{KAL5Mhxf68<`8k^rdl7B zN*-`IN7NUaA?UxmpYpiRwtRDWwG?o7U~S=HZ4G#B<~-~BOmJ{}S8cspHNW)rc1hzf zqNMFp-Go{>+g2O3ENR~o`jMD)W=Jfx#AOhkU-sKmekRjsuS6nK(eO(jI}0PRBbzr> z8TY;AD8Ny5l>a^mc_Z*)hNJzMdWi^r_f>*d|Xe*JO<4Ea{ z2!C*cetc+P$Az87d;&tHt^^FfO?T!H>6S0P5q+=KZ#{z6752VkNK4t(ZWvjn%M@VM zhW-J3idRz|Gq(<=RDa9VJOR=5nksGhXWBkG1!xglMRSjvzeMXTMB&(C9DIX8ZeJ@{ z<%j|oox4G~9#?BUy8anv&2~Fj(H{4;pJ!%gA$HBHk~vHPhZlvN2i$YAtq+AtHhtBb zi`Xa33)P5F4I#{rMkA^O?qW&`AI6tkmn<4-G+@t9gr*LfS^H4>nufrxo6NF(78 z&PgRRLB)xwQh{GA#zG#B)^&E#-$VlcOp7lQ$aYPi3xr zg=IA^xzhrMx)mJB{fiJ-l*9>9F5e=(342iQ(2D?s27(9Y0y?Q_FnWN+YdDHenuR zoNF&eyMA#f{b8_by4Q7Rh(46%1KifiYU6ZcP{3vBDH5pD=wAN$K&S>b4xswlSPA)n zUeigc3>6(!?dt8ixAODMw0uWIf#-Pk zr2gdYUDjGqa~td^NSZVMuXV2^4~7-DXw;Pufe)KfZCE27>>52eS)(*>1_cbkpbrhi z559sx2**D9a=&v8Vaqtai1lACU8*?kTMvq5?h~V@#5N}w;6>L1*L<;7r;vY&92QHXyqUqo-oT8&02X+!ux&HGLoRH_!Gg>oJ3U@YhR+JnBAI z46Wz~V4*yoNT5ORWVmrbC}om;y5e!bdZdhBMJs7h@xtorx$|ILkVMh=XrbMJ+>iTN zi;o$CuDRoZgDd`~s~SpWRZmV8jb@w^hiOEI(zhBn@b&lnJpk^IVcvDWIj_Olt_&Rt zio)SpH&jI5$SNxrIXsu;!zunaULZYEwt2h4!e^9*43z2jLCc6ou}9i~qY9q(K--{b zTqYjJP|QGl$+pii6s&&DA^6I45V)|F7O^Z62oM&70D9@k(Ez#Wqb)v3=;EZR+a7V49 z&1#?0G>w_h_xDvrvmvWU^CrfCM|3~bp&XMY*!ndM4(s2V%YrA8p=#^^rMZ5PxJ3XQ z{6^<`-|g*_PsWzf&!f4dSDx7a;Ru9d^yF*76(X#fgIdLlXZJ2RE!vG!s`0HLY<>D>Q0nAk> zYkGA$44aGs*OL5n!O+1!ZdIvid~dRFi<(q_lhQtI$Fp_mK|Y86;;O)_9S8-uuos*a zopX%03Jqiro#hE+RP<=79zZ~!{I3S)n09yhfTL3}D~;o@Lyj+H@B5Y?2UC`|hiJUa zg)+>D61jmq0yFeLLHzh>D<$B|RuY8aw*uJi*Tg= zAdMIeumcugqVBt>yzkJD+#H-RAf0=-LQE9{qEI<7&-({PI=qI}aLnLH#lTFrY(cw8 zv6bI3$7s$}5>;N?l~vJH`^fBua`>SELs1V)rUN1WzLRkBVJ72taKMJH_|-2Z&f%e< zNqfE&bO-O3(hPF!Tp%1|^P-y`=Nw15D&1tfOP`0q*@~G0$Kh>48s3^`Tf)GlR`0?| zZII53IrcFG`>2&qgvnHS9@*kuM{8+DJ*)Pf(8Jy$rBt*hPVJ9bVb7mWovld;j=H!q zQe$$arpl(G)iNDxDQE#3{~_$}41~cDL=_bzNRAX)MJI`&6Eep7 zAs2_-sGmVP^Y+umW$jgYmbmx~d`46#6kibeJBl{3l{pSO7naQ-3d)>d9et?idLRSo z4|ELd8A?8~H%olOU;&`9^9eM&nz`5IP(mLyRxBC=I(~=lg z7&x#JC0!kV0N7STlf3cp>bM1W*MTjA*9#@x3KPS~eHC#xQxCN8l@6rb#Vj7&NlQaO zG45To^M3uWv(6SDDidAMzgYmjYS3u|2dAnW!9kuQ|1X6~O63zBoyg*d6TJH_*fn4R ze!BzE8+u&<%75loSk{A?9e8KCSM}WV#cPd1DebQ261;nlQ*8vhep=r2{_5X)hh{x;w%|)EOF-b>yvRP7z-U)%u;_d>@QDquc3yu9!jT*c z%HSc{&Urusel8Z@^v+~+Xyo#3ShBk*PPJ%CKR*#3djXv2zLOKSafSHP{>JZWdNoIW z_T@x*OrkYapZRZaLkt$mM-5Q45w9^$UKj6@UzrZ8OHzKy23}qr!~ApDN3H|c{``TI z0pCdec9RXqwy%~I-_@p0nK$gM-(7jS5d|tv)!ervHZD1-E=J5XFt)Nwg!cWyL;~Sv zy6GPU8w6w1H~c{&4uGH{bH%&z5kvmY(qjEpzHKe3eO$V|Z z{_e@o#L*@9rD!nd)b^3oKU22GH5-o@djtDt`NTN}Lu16|TInxD-MgEqQ(aD*Geo2P zjfL;G!$+}(gL7AMm$J;YE!+S=F-7O#1%gOfg2N0!-L4O}7kl4y^2U|RP1+&!X{p7Y zzNO{O=dcIZeZ9oP1T3TBG4$eBW-b4q69$G<%T?DqxeD{N8EqXH`DeI})0Rq&Q~vB| z)x&+)$*jj&3Rm$KYc*X~fj%?0;9dVX^O7eQ6KaG3tceQbr4T2{rCdh9@aay-MKrBNNwN6q3zA1)g2!O{Al#C_ucpyF{qo0`~{^>~`)fALMA0{pb5 zriNG%2vojEm<7;U#z?mpgFH1$M|Y&R^|7p<6uF(qtsy(rtwmf_kz)8f3ae@iopT{Pdz|m)%7&#Tc2#B%(tf>PH|#QAuSiycPZj`Sxa7P6lX)L zojHQ`Pu>!T#2mfXP3$*q&0@)T3%nf*c)AsfO|Ex3$-^_|UV&zx4?^@`uoy1>9evD{ zg}^&R7~uOvbAj(El8~1o5jQvabJsa2=uiFDI8D5E3R0GRk22=M^g%<@H^xoXgrdxf zKyDKmDHtNnMJK6jHl&$u%dUm?-YxpwvX+0vqWdSeLXL_b+F=o$h58aeuP zn)3RWu%3#wF6()-Z%@=wNe7x1frI>}-8jvTCM_*86%;24dOpMn4e@2Wiuk`X(`Hs$ zgfeN{8ILkYvD6#{14LzeSC7{Y^08vO8i`}Og*cUFPdkv>mf*;iD&N)5umK#wi2*ey z=<82620Pu#J4HhHi<{Bg8#psWY35I(r zxXs)CnIylzXupwBlki300j45L-gmzW29JbY0E5(ohPk~99UYe$dp^)QE&%}%93&UH zMMbU6N@S)6HdBbiF3x#ZX)KLF-+(VoEIX9ssbl|bJ=NxK%amW+&x4AGOk%Er@o-HZ z=GQkShGo(bYKWvxLD8ji~=Lg1jHSz)7}+$gF@7;i3ZD0rX+d=06LR=iz{mmKqK z7Yl6o;{bKH+^E^(w!4^7jv#g$>E))iQnDe3n%2eSn+u^iHd3&*%doNj$sF+K&o4`# z^cEuWD(gN_z>6w>uuL1aUMUj3Mo!6F4CfQ{0|V&67nA!&vbM9;8Gy<$W8%99)Xwmf zHNn`mFISmxI#cUle2wK2i|$-c5fAWffJU9noUfC}QO2F&^m0r3w?SG1-lPqxZ|#7x zCJ)|vg)ii~+AS|}JC1@5!EcG+#-JIw0j5{u?g0$FJ2~CvrPE93Ga7zu9MF<4W@C(C zEQIzH7$m>9`mO&N3TjN%Ddp5HItb$-_`mt|lBq|qQi1}DK|&rK?hsPoVV_6Q(p7Q4 z3A+I_oY*TUeX$Zgd#X$J)Mb2Wc9{|Q{dz<~2{?`{-Lvdyy=~M1K+#c7;({+>NP-Bk zPiM-P0b%T`E&s2%;E|9>Iy`5QOy_c~q=@8d7k|K-jt(hMk`DO^Xyj|Qsmf5Y{*UOP zt_?w0(B@{As8_>HjEmpi%~lp*UFs8O&>Ej__rVmd;MZ*)u_nj=fXi*M8-_(P0G-{C z1E<-uQa%aMxRHWJKO@MpYV|6-=_dN2v_>y$}=Y99*X$iiB zAG#}1^x!ymKfIUxZ(;^*RB0qgMrRl>WN|>wU)f6cz5g57v2rm$fL^BUA&k?HK6K2! z7U+={7R>9@_`J|0n-{||HJ}>A`VKW^k5Z6dNM%5=eqewoDJcQylj>{CpcZsNE{Sb; zY!hn^%K%G{_}B{EtK08y&s^G0rVr-p z9cn2q)+S!9^ufBGYgMTi%1&JwXv+jC7Px#hmz4yFMw>4rylfHi@-#yJK60q~Ovtpd zK=67xZ!cHP^{{(XM#*DWI2@|MXnHLgY8si#f*b*``iA-KBc6WWjidqKgdLHPPdC~l~ggL8&{cVYW80c#Slv#|Qr-uT}`-0E!Q zoPmj%*g-7ivX0RHL`-qPLN73ij9f-~bQ2wzI`mU?|EsN1ZTYtaJ^MonZz~!kQ{RY{ zHU$^^EM>Uzz3w$mZB!}GY~J%>ZV2Y88?DMNo5@B3pL2wG)vaY^=k_q-s6iS2A5m`^ z*W~-YkB<@l5R#xNs2T`3rKgv_}#oe z-~a3X#Ak}!yLVm3d7MYE+=oEoxI3A!U~=}KfVaA{lB?D6_@B>9`9v4+R%69TpFJRl z__n@w!r9;2Wnpim8vFX0>tMj(O6;EYtr+sp$5w3#hZ^VnxnXT|uu{!1g8vecR%eaq zJM0&D$5pDf{-n_AgYelh-0*%+){jhB$3RG~6oo&8>3mVjmW`AVY-zPILfA7baS4rU zb-U>UK9uZUc_#|#UPET-feGjqLS9y`ZK=apf|t@XLgBKy2IDq$gTfGaucP0&ifNrZ zinM)rU_VNtU8Ls89j^&~KG6z0+fOKzz3}$jAr!q7OKqnqIu{_$+>!Dq;pznP@nc}K zMnwi^+loa0%M$7kffQ;xYNQzGw>otZ6c@S|8ef zPnIXv-)()iJ41q>zidmv3JJ8L1Dhq=?5Nhw_FJF4LED4O8KAXfV;GeNciQ77)`AoH+t=B!a~KWyp1J#-g-{v+brdP->Fn}w{X{@;gZ`nT3-D3*R9sU~ zDM0QokX)+!h6(p;W3s6E9^3k}h)S!edU4T43Rc+s5AR^mx(T~#+WVV-fXhtc9RGIl z2OWls^sd(Qzv4$y4IupJ#H*_yg8oOB`lxVH{>DCAPKbjBo!qoI`5!#)xFh>(o9V+w z7mn|fM`FN2Zhg%cP;-eXeM(7jeTqW7s1v$UtqIaB9v4X;0z$YQ{?x~=3iG%ZN>6m&wS}Eu0K*5Jn@#!r)(0l z4@?k$3&iK&^Kj!D(Ff8?gCb*zu-_*nv}*0_tDAP>bg>RgPQ`;2A=ABhqb)U!mz$!K zwrJPWF`|I9uitrXSH;z_WbU4bE+6$E-|P5X+Med>v6NIhXpjUzKivXFOX!_gZ>B7?myU2G5TP}i>cGS0;rPqa8HR3rB z?94moULW+-sOEEW(R1G0HK!8PjVzK zbMQ$f%pzAUtOkGWV~4N^#JPspmMG`IhZ~j>Tg|tl_@r))Cj0@qjCI%b%opkSE)`2qAx$EOX7v^Pq!5C`( za21x4i7!!X=7_F9MWke?DS`GH4q)Q3@Z%-b@ke5Vm_M1l972NIx#G+9Ke(5n-EAzo zy6|o59Vj&$F?pvKknamWw?+V2e%7wT_Jop`Lxe6htTD zei@eoq$hP4Utdgewj6PoM3s?h(DY2qbo95nd@paC`t}kD79eLoZG4p_X5yAgDj&xq zQup{9X{sWn6OH?9dXL2ZKVZrsrU(D7hHomxA-)+X(#P?)yOvb{G%AZ0>??1_0-MPO zvV=mBC;o&(^8BMF51j29u5Ri$(na0Zew7qa_93$VV|Xje{@ukf$zTU6P%N#zzPJG@ zv?h)H5N@Z4i5dGcoMg+YX%~haw=Yo*VuU%Nlp&uhMk#?OT8U%Z7^d;po`F%YeB?Cy zJRt?`u0at3;Q-RefcB@0iQNp8_Td6_5H&){4zIb zF0t~+{_W=yD?XV6i*W0jJ1#}S(PZN7$C>YMibH<6>rey|@u8eF%&V`9CUxfR$GfR@ zu4dCUWtmS}UIeA+>gwhQv9Ymz6sZG}!PspserZ`nyq6p(GG{#tycn<&uNrl|+Yfy9 zw&2>M#;A<4MU!EJ^$gqhd@;&E&j4i=?R3Lg!2=_qLjJDGGgTDWGu9uwg5p7LGK@^d z92b$vEX%~lV^2-hR%$T*f@&(^!FiGDz^lj+g885e?B&BjS2|N zvY^!XKjco%>E%0)WRZau>X10dWLC8*)=J!s{5hORLKaopNKeBp2bUz^eofQ%)4SNB zF0%0J#YOSBZQk$~9_^l7IyePJOtVx`@K;=6YaNhdLEjp3k>cP&+Cgk`aW{UTUcE;I z3?7moy1*lG$~ee7w5i-L`Hah&Y2WAi%*rDOX3B&=nx_aL4uk{)Qff%{#JO1Lh|%7D|| ztSoDH4^^0uvEXnPQVuq*;O>W!1k?uVH3!|t_ri;Ajy~S=4nje4{W94J@VO-E`t;y zkEnM9ijYsdZUAY?Py^7bwd1BBAq3sZmaVeO>CaXOo6ILk+~Q)rcO{5Tt>No!K=ynG>4AME zB+li#BSXUa#eQz;uFRzU>lCmB$?x3Xb$;{gEoM1>MdQ{xZdX8~Rcd;=UCl51FtcGy za#y!o-@=e_!Q2B9_Mry(9MYZxpnd&I{-7oA@X?;{S=0QLX{NBOfzC9ud(8d3yH!L} zY(^MAJq7iS^Ev%|d?^-<81_nt?w{MkGT+tWVLw01wXfk;v3y)p2i$+K1XZZ=SQp@S z{i&#Lk3*VHqiA(P9Y(ny<`&UtCbkZ|_VK(Jcf-}48>QFe-n3smED#l+-df!o^HlC% z-}v%dtE>Nuuc$TxQ=BNVlyWo`oEakcnzP@Sf36a+cXGnIRCE^Qf>Wy4;PT*h;k!zN z*3(JxlOPEXt|2rxvkR7gRQ=>pI-l~VPERaId9BG(WQeqy!K78Q*V7wQPf@is%o{|8 z^3l=9EiHb(@h9n`HS8uc96UuCb;mcfe`JRY-unKG-aCA9GtLGrGTN)o#Fy4SAWw}^ zdzE=~f+IGwzx5AHE@?j4R|$0U*cjhz3TF6WE>Z<|nVhP|(~dHlgK){^PMDOy0>g+z z3#FG&F3#V62y$DioD+a==qxZ=s2aM>dRS`S=;<))WSR+MF#S|li@iNEN?!UH>y74l z%jNGE1kXUENJUno^#CAuYTj0$su}PKKW52)Q|u~Ij2_p~YCUQ>L+@o`M*S`acw=0f zcz9(#M7W7oO+4C^gZ`4xnDPN4#2kkwy(gW!C8DkOw)%z>RL;ELzPbACo0E&^o7wq# zLg#Zi@*~XDUrga8UaXbAXmq4+D%KXnbf2c@%v-9jMf$(x2&*@l4ZUOrJ|UePh?E=0 zv9PY9!IRqf@^=!zE)fHf%yRpB{N=#$wto*gg=6>GoVF%sKPhI;zMo~6Z0oG>O>;iqJ zH_^iX&Vex6RSbmGKg=a6+x=voL{LLsW6Zv80de-b#sg-#SEQ@WMqoiYv z66@0U0uLdqxMZfJyWZE7*dC4$*=8i2uwL=hR6u3xv!)f%gciA{g1bGG=WKf+iz$U3 z87WH$-=&TaHQ>Mqd(h<>EhKN6SiKvR+7BhUZ2at<6Tj+U*nBx-Fqt^B?~m^cF~MIE z#p|VqwtaOLVzgMudGtSCk+~8_0SiX|h{WvrXQt0xGv779cdV_GywY|tD&f}KW4})= z3ot{wRO#E#a!?$6$L^-;rl2yO95564IJ<%}c$0SN zX7$lttuxT-{>N@dtm5bm&D!>fo8&6}&xe`oQVyYUK{c(>P)Uj&hOd+H5T6|T7@GF$ zYsM;G!k9Gi+dNK$r)MEz{j|u%6Ua|_`#Shg%!<6cy?vv+dT?k~jq2r9x7>V_@#N>d zNuxb{H@jA}=`_NHPJH#EI8RyW!eF2vBFyPr@ezqtSrXvj*gH}!&?=iu5$^vjHVkB7 zs%1#{iM<}#YPj&UK~+p}a2EV%|B)Zj%Y4E%?C7v@_S4=Qqnvs4EK~5VZP#VBFQFkZ zN{v&14D$Z6K~HW{5Nh^U^ne zOpKM>(d|eHH|th4jt79WxZH#aH&TULfAHvfqSRoo`Dmzbg;2vBb z-esj)L!<(tqG(UTg-C<+201@R{U1nHLQcvHFa$4$)K&%>U)2DQ!o5XC7C>0DTLjbc z==mKt!N*1@k%XBszlvAGglQ>(?=11P{#90y! z+*mZdCY-JT?hBTL*5^9?({?9iuf{P}Wd^jL4NO$(p192-{6LSO_u!|Hd(;o_!7SHc z!nh3TG(Vv4>dPJX7kgCGeg3BUo$LU6?YqE75{9u)%vuZBK`An^#8?3WGo~nIO6nwc zg_N=~-}7JV5TfROIg}Z@W$sqCeE!@jCyG=g#er-4Dt^iZcLH*XjCEg&)$^Pf z-^Mlr8VB?F3WzS0M5%y86@-cLb;APzdWQRK;Z3g3tQg7OzX# z%G;MjA|^0MTpP|;NeCDV6#mK#KqyRGT|qTCR89wcUmiGrSd#|h0=eKc?ZPFsSSF^V zbQeHvI?DrEVSy_E_pJZUi$vQ$l2(xg5#VZ4kcCFKO=Q-^ilBhKvdlnr6v^(Wo>VX% zX>(Xg5K_-ZbS_Vbfm)*pUF~@IE9SP7#dn{P4tJ5}6Rv0U9ksjTmdFG=J!&-(sO5H> z>$5X?7Lsr~=O_9s@6aRm&EDjvQ)Yy?FF*h=1VbioK^vcHDnmotweH~9bB5snj1eiR z&z1ovkPD8nuA6-cD6oph59jON0^utYJ8nJVdih3ofMzrYU|+F6QevS?YXF1BqISL;m|n)Snxh3uAbF<+p+ZH=Uqz9 z^-b&TnZ#jS3}5PCMbsvIjY4M!=W|$a5lMITXkG8S>*IMV{YQYnroCWeR88UrE^!J! zY5d6p+NbUBe`51Gr@gqi*mJiWz1I=_E~yfc<`R+`EEFx8J_Lk61L&}{o3c+pLs64pdhKkHih;8qh1r5J-!{a9Ol`{# z_O!;$>pynBo0dg1a!?fU6sELQTTytUuW!8O=iUre_m{mLGCYcTeMLtUl-|)boE=61 zhY`?rOuSuxmuLYy?0d0CEAF$ozZ7(WS4lA+00p*$1Ry0$TVy)-PC{h( zT+cIn(~Mf>ln+gMDW8kK%}uDOZngyXP1bk{$2aa-Yzt7nut1Gljqc3mgm@MfzWTMOFFTq3^yjwZqj0IBCwqN&Nm6a^C(tGxFZ4abG}8LPu?f&LPf}$!*ZV)&>?X zL?w<^Brq##;uq#s(*uSz`(i0=PUQ#1*q9t+i$7PtEok3}$Z+a|4iJ0wFWZ>O7>EMxAFhp9< z$Owo@Ube;`6e*DcBXjDf>U!d$aS~j=rQOX1+e&G?6HLG@)5Cc?v*)*3W<=t~Q24|} z2#`ZiF*9R3nfwj*)tmAbxI>2;wUI=pisAkdbDnZN25eN0abX~AEN7cSmxFYhB)SIQ zf4?>?3FkPP6-x2w6lL}3HG?}PD?+M@!HGXG@ca#KL18w!X2*tLFK_ z+Mr5)IX^|LA#&Eh!qQy*tHYg%fjpp)UKUp;1Dn&{4{;k7dEu*SkX| z!D)yJj=kU1dPdoLuH5>@VaQ!mUrz`|5kO4J>#`)5uGrmSNJPc%_@~pC$!NLpc=?vN z-)hvYRDDglDD7uGYO3Kd0o^%P;NN5)-LUmsn;@f-R3M7u{;z+D16)F}BLc^seX%Ji z69+2=YwJrihkq!&k3o(L1P`(N|D+1f4b_jma1Gb0p*e4|(mdtT+Esh*2S2^MYP7z6 zGcv9-{=4uOiM)**=r`XJdwGt1T2Iv-oiC|Be#Re#JxKphV~GmC6MUqvLa^hwLm9Ty zNEo2-PfQ2msIy`gt9_DO z8OfEhdsgjy`{v-{Cwfn91WN$P7Sy@^A+dJrr)_acCn=PkV19Mtt?T1l)c<6Jl`N(L zo^3V`Y&Sp%i?Lx-LdxaH+VxL+BLy)=b14%5CbhQLq@ z?bgt_RbImsK5v<}sTYKQaJ4STQ}Yuq%!=N6Rjm3L5=cQ%rk2lT@qy7up6NWcia<7z z$Z|cqYF#x$*hN59B@x(lCP{;b?gfSei#;2d;%LdY^?%NrkK8xsF}d6H282YZr9;a9 zje~zqo>B2;necRd{aU8bh6Qu{Fd^)7zPNx9y**L8?o+8YTN~c%Y{`45|NrTk+(Y@2 z2^c(MJ%!7g|K=lR$V~ab!AA3eFPzx?*UpJDd1FkJN7Ep7j%UR(Ia<`*mGuUWo6iT&e7O&RRTzJ{<=L<>1(Lj$rlo&=B2k@{Fgnb4I&q zg_9NK>Y_g90~@1Om28w*vvo;t-pqiqSs%r*^`p2A1V;pRxK3Z~qdow*ujmPFZeH)@ zs>d^>1u?&Ix2a{S8Ex0EQeI#wCI|s9ch0Qg&8***6=rSWGCYOq0T%sV&y00XiGOF7 z^3bOzoHk+B8`c3MoGoUUB5XV<6n7_u^nS~~8xydsuf>Kc`q2~dYIOGN{^4Qk)s-b$ozK$I!O-NfZ*=5*k1x{{{mt)JmdVE$UWq$PUX6W(WNftou-v%+Tr z`&0>p&)7_C_0l;7-%Rl!P~H%(?jg<3bj_S*{FKWP+~z3mMDg=KqY^i~5}v!)f2<88 z&4@(i9!hah!~m35F=g9KAm%%FhdLpu6iK86W&o2De2e{N($?ATom9Z2QKeDF!bFdi ziXLHqMgk^Y26$HBP64{NkCj`Gm4_MtjlQ5|%vlXU zf(}MaZaZUzD^c<^fqfakUp8nylcU(}2<{MGPXl^a07Y8&i5IbCM%E+_u9~>#;s7K5 zP&)dKuv;%{Ik*NyRaSsV|BC}a}h}y1b{E^jf zOY`!!9GVZhM`WtrPo&|#&^GkfJ>|_^(7R(A+<)Bzjgd~+-9lc4|IoZrtrDJfO`B>2 zx!W(%-DG0MPi*P{7&tH>jTYW|vI=t=gTVbev_#^tNW%|6C9-k>vP?OtW69+kZjbZ@ zahk7=V~SHuk~9(}whs-1L_F+NZvzA z4*Dos?{m=y-0118*Zr+NJ2iDE8sv%>+DI@BkW5yuFAHS=q-Ndh#M@;E6Ja}dRRw*v zS-l8r;v`4w?N^l16CChEyZNG)*5`FrKRvuPZ+@tj`X|MZ3;1P5>nvuBhU_{U!Y>#- zP*6Q&?>@0mbs`kedNu<{nA}_7F#JB<-FGiNPtVnEcUm!LnE8TxfX;qT#{bL+I~;jd znRPvgPj=>phQE1rmg$$O{RBTzqsEx{=|Ydv%VC|?Jz9H5*jgKfESULg()R&@__4D5 zorD~P^$gFoLYyOJa^Xc6q(3|IzMs#JfH{xX&&Oq^Q@`E2Q^Z%|C)*8q(O3L@)ih~6 z0m!~38hvlPzIefjc*7vF^(Kw|*#Nfa%OzkCTEEXp?!NoS^J=G#1_flyE2@bZ*kg5?9w3Hg z&V7OZw9}_QkcvSP*Cv9~|K)D4PJ=EV-haQmw+Tf?WTXZG7Rn#>6W3Alujz6xz%iHI zG#Ou@BPZXKzTPZNtRX;3g-$_II!>`~GNClQNuAYD+3-2Nluy?dpRW;SqH3;g4a1&O z_WPJLFBNNi_n)D?FL4t7EL5IyOF~E$A({Dx>xU@~DU4wcX27IBJUw)K$K?YddY9Y+ z5l2M6_F~ZMMtw-H8Tn!8=cR|*aQC_L!XEP?Xzs_$lN2KF)n*;|H|-(u)hqs!>xXa? z?bf~ca48uBi-&U61hNS)KW{(8g4dnE^G*skH7%t( z=Iw1VpX6BcZjVkXUmU3qK83qJZ%m$TEQzY9!N&$vc4?8oZd|szO}KiN<2AY_f4Xx+ zE3zj>!tLL$ETLD8bMt+#3}ip$if`idgf*8NR!zWc(T_#N|FIYQeTZFuMhMl^%uzaF ziQlwho@{;XeBoPl+*JKzs{LDJFSmjkyr-)SZREDU*uI(|I=}9BptTQKNft4lPo!iL8;1~a|imviGq?0FEmH! zxz7ICMx?6#|0(l0+Kry*?$-}J>I2=0r zZS+#r`ebHFMqyb587FFnP0e9Ml2s(vPfN;mN<>b^#hh?!n&Z5+eX#at>k-ubA*lO- ze4-=w6y`x3M9wLrV9tIG9g{7jgaUgNP9?8VI&B^=#TP^m4+~C*-VL_OowN`e;Rs@0 z@4avox5j>#uNN)m#gN{$j09QwSGs1I-N!%RVu%^+ZX-Xb#PS;d3a#RO>LV9Zt_C9$ z5Jc=g@IOIvwL$QNzOQ2K(9f}Ch+Xk!Vhn~~x<8Lt!f77HU!!EeB`_VFG8;VvF0&sF z)3S#z&X`Rcvy3EVi2^`m>r(VkI!UhXPKNzMYp>-tR0XLMx9Q%Q2rT57f$valF+fs_ zvOFREe;x^oy5Dr<1o|@NvgdOP-ayAs*=_!GG6~sJUYCK1u*GzLLPDZM$xap7MJEMK zrmeLw0JZVHz`V-)Lslxw@7%WkRZOU$ z6X|g+$t>q>rQp;j(~Q{NxtA41tDjdnISY#X`3wnBN+(C6C$xn=^Fx(b5!I6&-LZ0zO90V>s8j657cyj z&`;!#NDLLDHi%8rEr!3O=aHaSX9Y7Z7V&RWZ`bzFw>Ol_Pyy+>b?N=e?)rP(-G?mh z=yWU5DGChVvK?LpkKb&lV%8x{QI@?O_S|hc~0s{#I-3w~} z`_L=u|Jg3)q_{!PLmB@{N!zD?DU0%R9HdbQxROq z>0`k@|9Yg4l&p%FwS5tGcZ=*j6uSF+>ebHk(+Yp?>sQhC4s4Hj+K6EEpzXk85wuqh z|K!`WlnO{J7b)Isa9E<(>}8$4M0w^t6c4lR(8qhIIm?QQEi?FMzS~?}RNu*T)^*y%sk4Ff#v|CZXGnTt*gRxD;szsc}xuLeo0KD(H zinXYK3a5QXhe?B)w5GL%lWh*Hpv5cly#W6aHLFKZT|CSFbZ#Q! zcSKm);14|3+ybnvZ*R-C+5hk4Ccn{`=-uUYWXba)zTLUq@$*><(N#_NH7-aWW~TuI ztwL`Nwq=hvz$T?TBriTJN?MzvOMr9}u2V+f#pgerINp=0in)hcI%u3rZ#S@s;)Y4b z!Y1S0r#P2-ScEzq4UY;2W0^cXM2Da0VvZw(_+~v93G)Lb)Fwm(G!y$e&pyk9@)m;61;}}Fy`x7Ey zEbDNDO`bUqcYur$-REe0#p}@X3zf-lRcAn%&w$7w}MVpq*`coF;lU z=rdgIL`3f>-&5)05xo|KQ|}|G``Du~f7$a^RDkEf?^f{QKb8kX&r^-(s>%by zhLOCGOk1S%yC~*t@u?DU$&VMTpXe*3jg^7Of;&SQm1QY9NY){^A|3?ha99*M96fKA@a@%>$P~lox*kT<1xSszp2}DSd(PrW8vyL z{^jkTWY;0mI8(;ube92|9;d`r4T|YrWG{VNB_z&dPW*VOz1(=t>)J=R=>Bh=!pr%R z%NC9ox8GM$b7w`L6RHL;%PeLq{dOgA7z^l4NeQHyNjf_Qz5-;V-JO9A3O^JhY4_gC zVf~VsdCPJeb~~37lVMXGoB!|QjJTd9pc}-=jAeqg%P=KVFP~JlT<5#hZ+z8XXHZqZ`pPR{ zYmn8>ieUU6{U;C%OiqYRN}Ns3Gm%z@?Qt%4d^hwzR76H1>gC&{0>N0!uG3xa--l|A zL_PNR2L`f1^KmsYNz5{3JvsPLVJK#k?hnv$2AEeWFNT&o9>BH#?UZqb1(16_Pqc9H z_oqizsepJz)xx5yRnswxDJ}~0UPp85tp}wxli%m+od!9tyh`G4w!Pfw;H_$2)Oeaix>YvA6x{JS6 zzCqnWYKq+|vA%u_dDn>6u=uGUW}?S$TWfCx3i>_fnMn=zH^axK9InC*bWBMtAr>#p zPyH?i7C3g0#scN;k!EpSJf2TZ;ES-vFXLSB+=wd1f51M#zeJ)np3PdpIy9!tJ|6DRJ9ld>y&!=Js#@L#@VIU^onB2FEkS3x9uXwSeFx zCHBL%VLT>o35^^hX5N2@z^FdQlc#!&18+SlpEF74v;Rr!j?h}GbXf7cN*5r0X-YZ5 zap^5S{dMv~lUO=H;&ITHj1!alfOIj9wk0vPigYjMQ=rgMz~5%bZsPXo=HjDjEE$%G zvv$-pR|C1jT7LL@KIZmcoRG*i(F1WID``oZrM7?+pr%jE`LY5K3#%4XH8-c7R+`p9 zdXzLe{yp*lQfYpScIzw-ZfV_AK41O*7$@gB$-vXa+N6=<)iN4y%PKPkgnX2~2^0<} z;xmNT13h4siFW}3Nd~;UQZ)W|hEM<#TLJqwD;s`~1N}td_4}r5!He$}b`@mlnRwjr zP~+?Ez0l{Df2hadCZAC?uVy6r8;@LgVZIkbc8`S1%YT)~h$Z(ZI3YYs%`xA%N&fF! zj!)4z=SHCqO1BqOwQM`z)SbVgygd|boO`1!VI5BuooZ$`^wNNri6D+aKsHneLe7mO zU}Eh+f4V1$yi9~vH3J(VZSAD;_{fOQ>Ed!8boi zT!ISZJ)%y3_2YuT#h@zE>|O}Nu;CX1WNBAn{J~GaVwol;&a2fA7&%Uz>*_WUCP9lq z+!S&Iq(C$hAq4z>rOzSd$2T)8jqw-XKYIgEJSZ!Iw5@UVq-m|y3JYF+t?|-S+XzAm z2l76Kge~Dy$a;Fu*y?!|`vtGzux+@+HICojp5LX6#J*l>0LZ+-Wk?29QvqI0aUUXg z+OK4|bU)B8b7A0jIx!oNOW1sLrZj%=oPfMOIps`31&c|VmO@gB71u4Gxt#J;l2M(E zg*bD~Ju%U0lNX=T25hpK#O+uwiH%dy5)LMsxvT z=XAg{?Ik$4Ir!#XnefkS)@+k-Fs>!@1DkwG(4|)}mZXe&@=h*gfEBprqi8% z>hRa^cFwmpv4MpX#4__ldzAYYwxq`T)tZ~wxYQ3C*sb1O?$GuA%A+;!6p4t;6JrQ8 zwS+NZulI`bQ46`*?v51#jVz)9yuA4IJF9^IBVCnq*ae;qqm>6s%YLmn{Zl;zKhYpW z?Icy9Esh6|k`R7-uiK`y>!8Y<(K5i>PtFhlv+OhcvR-)R>EOEBdyoTck|i$PZ+8nM zj1tp$Gi(6@VdSt>1WP6_{~Vrjx14h;Z-U3^w7&+2Yh z=nzXJt@hbCPR>H=gfyvNh-t)Jqn;|F_iTc}xMnh7IXwrW-ylsanQ2BbTfy_CFN+Bp zGZNdegoXH=CPd=uY-lVlTt<3MX)JN%(+A6=)s#LNOd|lvSw*Fr`L)O&OGUM9>KUbG z0_9qMvt+9lLu5ZLie0?i^RR`u;qGDg;i7*37F^?WV7}u8pOJBs;o-pM8F9HM z^lT7{>HW)71A}!Bo(P}2V}R5}D-E&4DR*h9M`rnB zgD7xK&u`K{c~uBtX)~gf)b-oImV=zq#%=rl{xqz?7+(4xejU6igrMbK*!ldXHQ2tE zTdQoA|A;W#R1P>57XEKn^PrPlqp9k#9I1)#`jOxMi`L88o!WtcCxblHWmXjFyjB^sl`EcvrF1 z>zxUl5-jawpOTT4Y-(B{F+pYET^DiR?dZ79Vtw^SSJxZO77UmYxOoK>DOPaSPFjon zxi?1bT4*GmVFd|RNwXf&-2;ULh%yGpS{lZc*9-X_{yp%!j=57-FiLowBlY#A3TF9% zf@GlkIj>ztRvO%$%o@>rmaf|KR@8YX=Tv5^rB#R6Z1;=!gm{tBAC_@;E@+z?|$<5&Me*+{0|#M2Bw7H zry|m7HlHtui-J-FGlZr*{R<;g86?DP4?El%WA<);>?D|^5|%dH+e~e(dRmK2VFy{! z5S!4xWi8_t$a4OeM6jcW;h|etCD*R<^m;b_$iIWu*edzdBggAvJhZ;auDRNHt4eEC zTVii*VL@p;^VK`W*FQqKPWz1O7@gs@6(6O)B^qCbcRdb6B0Zi3dYpNMl%d#^tt>48 zX=4mxnS6L~0t-nG*q?Ce&-sRrrlw3UnAm>rCE^^GZdGM@r8X%(-@27i!Z>HWKRPzU zKfbA&y$nN3>rm>5x*0i>KWjx54Vzk+N^XDb=M>!u#uY0Pntx$4__INFRxBNVezB*g z4xwzp46~f2Q~DwBxZZUX4TxOOJf8mYj8f;7b2$t6kic^ z1(NYr)l_gZ6Dm(}HF8*MYu?nq6;-TR=Pf>OS&QJHF_dff{TJvkyO-md-LXHpbn`^* z43E))oAg;myDui-+3*ZL0?MB2af@9}dgk>Kr1Z&L-@(En1Ziny)s%i0Ofw~~XSYxy znB981l6k(7dGWJ{R^kb^wEtPVC_zAk6(f?mh(74-s`0*qOPV@AV&J!#3fpvcde4;I z-s*=KhyF_4CxY`wS0AqrSeXHao`%)2mtY=w6+j~HiqW3K7AH9Y<8pc$$O;)vHTqbn zY1tkBH|L$jAfZ}9BKYK#^RD63>kVA?3*A;gos8J9oKQrznHj&p)HJK^-QNEyJUi8D zO}Y&d=hk$y+qBnm{CkPyB?1;59(B;tS~v>jE!4pSCWD(WqHN|~#q(g(z58G1mN%!){lz22_Q4Uogvg92T;OpG=A$ z1kqhA#^vCn!@$jZ5^OS9GF;#FP_$~+sd6WFRDJVnKqKT4?|RGtwT-a*2iufvMbR&a znE&lLKeJkLb@^s4k>ENJaU(?CL&5a^q-F|nXXjnRnDsKuIHCA}0A+MVMF%d7E8rQI z(t`fxOejw}CE&>4rp7b$syHVDLE-n6oA_RH8aA4jBK~?f19a+}NGA2&2xv_xYp_{n zAs4+g8<_9Ju?2XfO>r6orpI3$mRVREry=(jv}mO1BdlEqhUD-`GDO|Be@#~v0FUb6 zda?y^GqVE->n$>X4k#Oq&ldUxNn~*~;WdenhlC3Qwo}NGX(OUiYyoY1rjP>LCBE_B zds)}q%Kkgvv2Qaoae3ZvEn!WtUBA~(e@sjC#F3btH*g)s9B?dSNa6R{zATlAfEU=1 z)lmbSkeQ6_n;F4FF$qU=3;>3<0YMQXP)s@20h9dah6X}Pf~@w?;ImQ}MFAeoFjssM zX2WUa?# z;}0M<8#cy>6G6Wt!P3%UzO`pcCX8mxu>Cee3Zx|Uz!ETK($a`fWe9Xx_y79V0gVU5 z=UH?1#=y+Bnq(!HJ0fID1O&^xl#+kcpWmh0;IB?gBq#nAd;UNo6cXC0Yo zonV8^|4uI5cPO8*OxgNKL;BRod9iJvqXR$fM?9tY{!FpMT?0rNa1;P8pKMlZzQ@3I znyzZ~OXCXC@hjB^Y*XAF6mS{(CB~?~Ix`a?qFY}~#Kq@Fs()p}V1k;z3GnRv=2F0) zq%}Yz7k4%!ye^|EJJbM#5MKBAZm-bYmWjI^YH#BtCgJo_jr!S?rK|+kM1cX9yjux( zexkUc0WqSLQl;sMG#H3*5O*^h5A zJS6F{=AqHkvP`{1=*z^bJ0N=}Xc+=eM+T}V&FH<{t^P>}&3i$w1BdDoNf(Pj`*!!LDSy4ltjqSVxMJgSvkWNQM6i)a8|*ae z7~EzAEzH-nwFl7AlANxc!D+ctSt9@%9>`2-5KAiAitnTmNlO!Tzpm)XcNi!PJKm31`Cq~wK@c}fOXqhl*GG`QVc z;d00uzm{^I;+f1w_HB3WA{t*hW4-u=vh4Bs%H5@(d461QdwOwHu<82uLBk89!H{$X z=v$LudKjWV2J$C)ysMk#qW!Tcusi7fu_j=mxl_J-rHCDDw(yE3^>nkczcK2qotq^y z56DCtJ+=3Z@Yx-C^Ssx@nP*CY5JHdj7eo({CgOpFeys{zxXy97nWsYtW_aeVq!PM> z0VIV8biDG{cj`wV8c9IdO&Ej>!XU{%p^QNGc|x?`dZ~>I z?_Q_I(NskUYp4eZq6fmt+Ixz#XjbSxNgxdz>!TI}o@2;aR*8=Zd2bNHO0aAZy25E?Nm4rI`4PU@8^5eonEY4#xeI{ogrZn2?gFxRzad8XB^CZr#2fK~7zLVEHv;;p$j!Ip= zjJfYT1jn9u%HtA|c}U_mD5ERPP^OHL_zwX6Kc+|gBAo6ri%#q#RM5df&^`}%g--Cw zzPqJu0rWMRlAA$sKjfD6*{*9!-M10NL->EkJ0oh2{{YjCce1Z<3*g&*qbb z-Yqf%H68z7q{~eC~(0&Gm9jxWSN#ZK6VLje47997Wwz)(>B3(=rVW`v5aAS_Yp| zl_n*M5qD(QGBf8tdnnIS`4XWITpsx#Q=~skjWkGXQTTHG_K35k&X$oE|2wy3w*1Xn zX~Ns8p950Zi%QZ9K@{8!FxaPNH&S0A- z>9N;5z9t6P&XKzxR8)M8n5I*|iYY~*ET9K35u8?3-`%1TjZ2W+E@1I~9@6ma_qFql zF6%=t%Fs{7fhFm{vNQY-C>43V2i?MwN907m_^uz*h38*`q}KM7p+^*lEc@^Hm==UTFuPQ@oHF~+}oY-wN2fd?$DY1 zre3YV@tAlpef=3JsWLe0{rd9Uri`v^3BMD?MXY<%4xqb_KSHmtM2lT*k4juK(s`Z+ zsc~>*PXb{(;;-KA(l1XV!IdRp0XW>GEYcuK(c#dgrWb~jhNFZ6j~#6<54?x`blr+t z=U%LrzRj%sNb9sp&*kqg%NnsV(PwSBEKI%q!r`5gHLseO6B9GgT_~q<5C@Sy;HRQx z^?vfdwIKcjQY0#CTxaa@`HAr@T5#TjF#^^P#EGE-xN#q?Rf6W4+$QdLP?aFFsQmNk z9XG7Mp1vEu^OB5xg(Ei3!-35sh^Lz(W1@=^)09>920#Ht$ll95M=6OhsRi*L!pN_0 zB01g(`JQeAns49Bab07?*>Zw|&yA-g9U#HjLr5S2Mje}pXuFUYL`oJ1bNpD5YlLJC zu}3@omC!3(FqB?FbCco(I<15gdv$X?k<1zCJre8pp7(}5XMQ*EPI+_3tqBN{ZJO(_ z(k^`yNsieMlQ<42Sh#b~*gCHd&84R0%l**|S3&PBdg#(yAu1qliqRjrx^ZYFe^JUFEC%=F6 zMUwr!TLgIzU{dWJ38C-e(~({ZXhLGOXfXr<0LqOql@lw@jB!oKTUvC zhGL~yykwL-+>Ml%kT5J7aSj+<>3mLc9MC5dz*Km?mg)f1D7+3VoQ%)qrUqOv7i|4$ zInvo&%w}t`yyRzy&PuB5pT}NZ6Bys*=q0Id)=~za(v{u5UXevMYD)hksI3O&lLm#4 zbe-)K^tYMeb-mhcJAj4%a`dbd3dJw4tR`xMYQ@B}^2}cul_lkW&^E4!v+Ek$ar=Kn zon=^5UE79-P)0!+LIFWq1wmT6yQC562I-RS9$G>=L=>dEq#FV0PC>ec9-42V&wG3v z^OHRcv)5khj_W=zhY3E9-+RDi;c!%0o^Sse7+PY6VT4z%pZxZ?3qMq(V0py+Lj)*) z^dN!8eaYKmq=eOZ^vbWRl61t!E_+D*V36+bx)`O9di13yLSMRr1Q9yg%sGIis2 z4oi;J+#1}&%qF~ZrcI~ai(afy7TEK>upi%yn<%dkPZ7J+spjS-jKl=wLn|{nkJSg!jz_qfY&4KMw(8qr=MPST7yj9BBNASG_Hs040PkGzarY zH}#wmDN7Pz!ib-Wal9X*D>6@F&4xm1rSr`-OPDD;JPWp?)P+CqRj`^63ZZ`1Ddt%_ z;2k(jCF&%!up;S7D*z@Ag)3l=K;UfDaDex)FA#I>A!#a)J^l`Rd;);d$^m8(?*Mn2 z9R5hjUTePzxpsF6^Z1x)IrqX$hxL5AGhGw?4THWCJ54M%LPtpS3(b9o2LQ~^q1)iJ zGyP2lXwdT?QH%slflx*MU*SvkPOIK8xQkvu3*_K8jr25;Y%}Ba`C8NAW~KFGGER?| zux_SFAKB;ybP6NOr@jyhpLW>0&;)`N9((QE@{Yg$73#=zX=MZqHRbDk;*O&lL&L>< zZ*k*PYMSdpR!)+nAS#RO_%zJVLGDE{xWd!O5G!i22SM&T&W?LWV5#R*s3ob7gBbvw zz9kWs1m5%`TT?^hHT+cR~=Rrr%qWF;=%a6H&kq!F74~bLBPl!i1 zZpJm34Z(}>kp6uKb))XEY@Gc`B@Bdr z{k1SZ=DV}}cAI;KQQD`!F$7LWG17UREL${;h>En4eIy;^ER^%Lyy!MqcLv&6g9ND# zq;4vxj_G&DxGAI~nBt^uaWXMbn8a+)D4~%bpW*SWd5~@bdcX0s>q$>aLgZ`BU~Do5 z{*-Jpe6hM$KR($D{QI_f6%y5b+`<>m8f-i_WOQHNO$Pn?%7CP+4+dfsrbv#1qeAxB1{-sD{Zxy%Q_5qYn+=J;!-;mQ?!=-E@^R z62%2kPA?-Hx5h9aBq|kCkMLaUPv@K2`T>wdzzk)laze-bqEH5?A%714ZU}D9Y2=jA z$5Zg}ecJi_VoOHjgVJN(Po^YDBVT6PnXttc$%_KxSl>a&=b4>OJCd#{xHPVqV%8Aw zS1~1XU)spYxZS-!Y`>#}4&%E%v{(exB>ZPC83a625zMZ;!7m=@&*e(=H@Wi2igZrO zof)4wqp7}P%3g@ti9psdi_M;1v+5L2h%nC9*!@X!wjMLD3=F&j$;#Gt_niHL|KDTG%dWd+3^-z?rQrVtpt9sU$GC3@x| zfm{Z+=Ta^?+XP2oC7YqnK0JvwGSydEL z$hkx1Yg2wh3}n1c&=Y-L^lql_M9kmR<%}Y}v0?f~L~Qc+0`E0mR#q_B8%qs#$iY`& zBjNaOX}^E+`g$8w@A`QVAIeQUPkc(Hz#!FuDy4ymq`=;tawd^;U-a8jLU1I`1H)I* zNm(?g(eS7*@Y)Tn+iAgti+N;BGN0430!fO2g)P3=xW>=&v^rF91)s>&+ZEmNCopXT~75M5u`mXd6xbv->$uzUcUN;ezixJ8+0W{?H zHZV^y9Z2PJ05ji*Kx)ceSyJLtC4r9;pu=cWomLs2w0V4fa3GB@1_BfK{h4ImUSVi_ zRf%^$F`2of$a(aIe~sa6bY9Sy0G$L*j0Ot z>gU^VLiTRdOm$hH2=hmVW9usOS3<*%A*H9@*Ye(%DNScxC=PZkWMiNX_10Z`M4D-j zNcA-4r8u!jMwOvE&842q*t_$+2KIPTKsH_c#j5fYZD%wwcTb@{+FlLokv3jj#lTmS zC-ow2v1KQ6|DL{r`8Z`^VeW)iK93(yo=lTZe=vK) zkW5R4tm20K5Mu$2-0wFLf56}Z`ldEwzl-c@FgSzT{p6_C1GfXliQuEMV?fVfVI{`F zxo6FpV@xY;a<2_3{bS=eUWu|yK5v0$Yv4tPP7<~p{rYYI%~fN<=~6~j{zs`=!ekZq z-A4&;$7ZZp{uV6tFI&pIYQlg^s zM)Rip%M|F81AUz=r9j+q6o^c7Ki|mdPvv_pAdo^G0v{*~$BEMJR>+RQ3CdH_pRP%h zA=T;6-Y`DvrE$-Y(>?os?p1t#1%`>H4zVSyc-Z$_wv^2d9g5!hPB3Y^EP zH3G**z&&Qya1g69V6>WSthlYO^R|bBNL-uTeXFp#+sKDwO&*+=5m8@g(3#3#Gy9OA z**cm?yetNr-wn;oDm_(cn2}zmVnIIv=B}aQhaEhyHp5DLQ7~#wSgFe6frz zMahK!%VR{sesv8zH6lm4{+eW=ke<@~?})%aA*|hcE)}LY;4oR^c*X9uv2fLeXmIIJ zCK)5PTumzs7pFKTkYPzm7$(&Uu(GqfOnvUqP#z~dq z?^tJLH45$o{=WO{Ui0UTC*0tR-zFAEZbXq57tkHL10y=|8E zX&)9Y`!Y_uTP_J#KBYlPUW{mE(Zf1K@;qO-y^m5@Fn>(CyuX*RiDYWV95GUe;P140iS637HYL0S6P( zC-<4K>m^YN$G6wd>&Wzi7>vga-}prby3g+P$6r;t&{_2nwf@+|Iux~A(7hRa{Plf> zcowrPvIYAlE?XN6WRIFxnv^qha8v_bj3xU(6JmL>Ef~m28cUdTwZ25a#MVFD$Haa? zX$gmmdO%wg0)ABlEQVC&>R4KS{Mkb|gCDw^tW$Yu=1oP`zdv)ux=HYmYJWKOu$=YH zS{a>MQT@?y{s5mtCQi!inW$PL@{Swv?IF7%STv(uI8aeO_eMhYgY$cNjvsW3BK5?!Q$SXgwAA?gcvtnQEUqaGw9JMkgzl7BF8 z&cHMAJ%ynXvp=V-;T^cZ#6uS(FR}@~Egx9=M~EDis&)(=MWpN8^gtey=9B=fN z-a=d4bvZ3q;v)i~%*C&MVLz2Z*_)Sh+GKtXVRFD(7e#NkD9=!+3Ef0&-KX?TO3F={ zM^%772wZpt^a)NTMN{wDz&OrBGJXK}jm`r0$Gk2jW9CnJSu9==qv3Fpr8?AN^4sEY zp}`EpOX(@+i`BpA`F~`Zex9Y#KknX}{Z)rXn#j;o&L~CwC8%)oI2YIN_qVn#;YE=` zjd=AS1ylN14{RN!JQy>bZz%#vkAXWph)wKLwSG*WMJ${~0A%ynsw{pm%p<;qshlDP z^iyQc*+#HY0Llf82WiQ>u#rsx)mL&~4)!62fFqg%&*0f5}L@;Gm7 z-az`+o6hZ5ohPC;vSb$D>3iS9FuuU`fB<;=Ku|Q$XEAlF3ljVc_!ZdMo&0W5|Lu~V zHS-1xD5cmmg1?NI)oBFvx`Ts*%}oG%_~oGfqkJiqPImu3qY}U@yQX7r{X~P)JQeLG zOo>vN+dwpsmFp2&#kbCWh5pix%gE+4>{ED4YeZ~O=z=GvSorvb6d*<>|1z=2RxF;7 zPvsmkuY5@IPD@KG72LNm0}G*mzBSi$5A*iIFU!CBEOy%7O*h? z6P#uHFPEem`_j}lgzH`-y^nOSmyQF`)>uQ@`&RMqMTb1-zOx_lhNb}1jTxWygC3v* zd-PfD(?sBY&OB_9UX9+HFgGZ7gA-lJ`$4&xiN=`i)}ndV&}8fS$;Nd*p}y z(JOS@VNn7=i};Biy%5Ll8Rod#LQ2osDVAzQ))S*A;Fh7P( zx@TNKe6U`dSUOZW9<`UNul|_R0eDWQIuM>uY#E!?IJkeC*(oY0z~9($a(8sBoY)fU z$Le1f=|+R0!zMKxj!=zDd^{O3*GHRVNt5O{Cmu`wCLiVK)b*Zk{IDQ(=zXsRi^d4qfWLsA;|ZYu^s#U-;B886-0cgwV0S;Y;wwt zueb4f41tc5Ls0evhp0AUPIZJ4@!(IeJiQwVQ|1GZ$1oRQpWUWfPWPrv|D z7l|y1x<%T^_c?F@QZ7k8Gh#yo#n3WLDLFeU2&WBu+#IC&$=PD2{Q%*hZh@GsHMA<^ zWROGmg&QSNeK9HL;+c6_uvH)IOium=e9_rv$=PN(BkJ1PJ0EWSIb72TnjWt{>8N#^ zYm8$Fk7tfk?a|O1IcoioRkBH#>MWyK z^5er${ZI$Fb_vDhW`tJz&Hl}0Qq%b=u_>wd^IpTE*J$d5&nZiNC-HpY25g}Nk+}rK zRxF{qS94n4;rZmME3l$?Z{*Kce|YA0J69iQu**U5e$18~{EG88k_(j@%Q1J4=d&Sp z=A0*1wlU2;seiNSCQ}^tTt)64{_|xGBVh)dym*HRC(^^$E&d3^I6uvJRez~UZ&YJ1 z=DoZ8@FV2Mn1VDlEi%MatM6$oHs4i?X@g)KW$#$GOKSgZ$zd{?|@zc$^!J!Y% zMW$AJ1(RKnyRUxK|2}-Ix#%iFyWjLS{=3y-Qdis;GTAcd>XklAW6`)xMhUbC}@QVXt8|VsAB4;~zLnqHH%{w>Rw*HoOgKOMF3@F^`ZSUX|>MrTF5wZuxQlmbBh=zJEX%XIk z6ey|~mugHjj!{8)t%WCZcT)_f#el{V3q@~dy~5PWjvbvtscuM2vy=PSU{1=JctmIQ zZCo8o#o*KH`z>3=P4juWiDs=DK#b9G5Lj0IkCR&qC@zI#=AZ-IG5>{f&ez?y>HOIF zdIWLRk*1oSBrsyf{s*}KD8o+rEbmdb3yb2s$IAztG!UZal>Ej)xnE66N)8#;J;I5G zpc^oY(r>5M+HXY4=!RHQl|}dmuReGIW9)v=HU1HP`VlWNDN#K^4g@}=SjIfF7@93% zL_&n57hV|x_pxuJ_h2wt0hSn_kJcLX1D6W+g!f4yG(BNdGx8K)TGdp&{aD#Gr`DfX zv^nDE`4iYd>=6^Vv{=&+-KAONCukQ4iX0S=AIw@*mUFET@O{Ra0Ea5EHp+J0K6 zRJ`|eiVxm#`;<4R@ebi=O&6NcN!{nM)}OYP;mto#N9M7+f!Br2;;@+Xc@KjUH=McS zp*kYJ_Cw-m`be7a7MJ=-kItWl;dIp`rwjSIxomH>lWtGliGJfQ3$CzvuWd0OdtalP zKhoo9JrevpUPX&3#(k{A=bHs%rflC%)$4W7S;^uv;Y*%&^A9S&F}?MRtLoFRu)N$d zLGA3k{G(QSbreD5^tN--s*1d>u<2FtK!0DOjJC|2vYBBT1jmsZOg4KW_k71oMI0?S z1M~(g@pud* z`lzEHwZ*^`nYMy1^8TW#p5be%2146ODFye-5um$D)2#ueHoMbv=yBZhO_RZU$o*%A z*V5#^h#jsBlwrC59y5`l2o!Ldj_!N~*>YAv*r!Sp!_xG9_`|CW|B`Md>42F%T1a;q zS%kI_`g2^IRjdC~8uU00CRL&Pb{SRSX>^;v@Vv6}bmP)fvAi~phX+cGesm0`vepg2*1 z{<5H6;!&6)k%&YQ_KR;kc21I0({#sE#k`gi`6>ohFX+$dB>H6itt!QWcn6Yd)h(R3 z(-0nOJS|8;G9Vq%YakUH$Hk$+@6Qs3wgu)`vE-(uPiI*Evfc{r{jM>P_M@o5ej%S_ z=R^(A+@y4C*Jp^rr}Y6fy)BU_OYyTr#0z%Ed#}H6AB8=|W9sZ7`z6p_&fKX4(d%1n z=`&`NJeK5*QsN1JlRgmPM4aMf?|JT7KjGvb&TNGl4sf#8TQ<%!7ohA+NNmLzx&UIE z&4V7G1#~|e+zu?q2y3$MXh|>o^DoVxB@l_lgv?(o{RVx>tICD*hI|gUFpQ{{en)ND zdziwcyy}e0Li4z+yn*m`ShR$9aNHApaIDg3D$ySuJ++e*AiUd*(za2Q0Q19Vc<_ux zD{RTF(7LVxlt2=6Jy#w;wQYP2zvE*=CL@XVk-A zLP1A=*{TLt$D6)@`pgYs(0 zV5|tduy6JTNL`mPtQj32WB1MJsGIdwt!l6WReh;85+@G&=--1gqhHhZFsqn)!^Z6a z1>8A8yshM`S>41IN(~TO08_<6PJLgC@tChBsl6fH;=CHkAOr*sf3Lq1Qc}vMIIn|v zhOL#!b6v^oJ!>g*c1NNDbJcO)Y0}zR$#Sc77USE1#*R*f*R)^n7|PHy89C5>)b6*& z6w2h~wPb6Bv~x|EvnP~)x*a;Icl}W18h|s3YB-Qt#05xhU6zf1vQzIN1gA_n3sA{N z!{4EkA34852Q|e0L*7I9W`rEJ_xU%1o4T9p1s&($EE?$;YM}pTI3Z$oU>;NAJ7nf$9k=HO| zjVWBCyb|Y$VAnpK%uDS#UZ}q`8(4m^`ci1zxW=MXRgIyOUBkMMJznnFMqB$(;0qk) z;p*=n_3DxRQr&6D^a#-BizPejW(D<^h}dRvER1GlYTz7#Vh|FJZgRAs3nA3`h$bW| zNGe!LuId|er&6l$RK=8Kz?4X3$>_&r1Ftaw--r`RMX#2FY$zavE_aH>5)B~YdKsr2 z2c#;`WiPmjHN4cX5A5^!1U_|9=ucmHRPOhE?YxKFMqNjVqItasVfQ3K~eSC zHAPl{cV}N#ovY0$UhiFEJ+uYtcVr%~f7pMpBknJ7UW%Q;so~HpoZO-Tqe6!fJl5~D zEPGfobG{Ocr(Jl94cx`7dhElTt!QIJbjnG(%o|{tB9(BHbH$R=Df5hZqetI zK8g1PKQF+p#RxbLL53M`ppxzA*mH*&3!G4%V$#45mjD# zIa+c%pPVLXoi=OdvB!pE-;+RwV@ZzY`huR^Ea$fQ9q=-gGw$7^YaOyz#RE zKR*z=7oVH{jkk%DSd3hFcc%Y1{8!;UNchwG@~@MArWhC-{*COn@!!;+?>Ip$`rRl@ zdN?rN$^K=6v#2gD3EoA3=t*x^8WcOzexO236r_tr9@$55+9YVZzYNTdS}0lNlRb?)X$ryIDf~sgQFz;-20A7z~<; z1{oXh9Wmw-+*ta`{c~cDo2%k0--NSCQuh5JYf>0aVl(yC4i@@z0|s_>n4)(unh<#h zD!}D}MpWpc2R{>v4^t@xnV$kV9FEzoMZQR5&C~_Bo^#GNg++G_HP-t1?02_A+(z2% zLrGbeEuQQ4gg0i`BuO+vc zblk^Ev*N4E-s0r*zDyBTSttrKiYS9iud#eq4>3KSlQvc|pLNl2*!F_!%d{B@w2Gdt{0B0vkG{RikdcP4@wqsMW+uIGLS0dQ4w zt4`rr1BAF*`d+7VN^l{*G1-^RKo%i(hS$KbhjM%x998taW%QtW61m{ERS4X^ATagv z$omw6Q=k6h2=SpqQnBZA>~K-mS9~q8T5m3NJ+22D&!y!s5>2zdzvd_}8Q!urf}n2_ z8{StWN53~dtxq$yC{J`sqsud63uC6h`z=+fyn=XyxB4^9SwfD7IeX4pzo+Hy3u8Bd z+{?Pc)Uxs1A6X97cQWYTVAu7o^fMtRF@hcXmxRX|B;KL>kuRY@9q@^o;TS%%m`UBZ zfw07y`1YMomw>%B_f2yLcv(6`@p(-rQ#;a8Q=^zAYb*(GO1d-jlHlw&V;OGOi%6jV zIi}TLYa|%qM;OiPx*G>tR3F>K8mx7q#k!{Vo+p)6=9xv+N%v+*Zp1nimMhmq-p;k# z6RDl?@fZ`B*Ii!JnJ{x@R{klo&x_Z+mF!I;t%<#NCodYvlEQt-+gsC7(IgMqq$yv- zn7YQXiG59QRfyQcXxeX>kTnErMqOT#j}i?R>*PFG$gHR6zk%mENgrlQD@v%4Fi8jL z>4`I==a%Ne56~rFYB^LKmMrhH2T~h%$+3Ci+h?9OsOTd{HZ~tsST}dnPYA>UfKohx zWI^lwg1Xz~5N6I}f)qO~hem>~QWUN=&HJhmmigK&DnC6W8Sl~||N&W`W(n4IR*YCin^jB&wun2=UaO)nfG zZFfB!9NIpmZa8$}VFCTIj_2C+5MDlkTs0O2QV;D(=Qa9$%y8ks!5UMZu>U?fky{&- zqW$g;7VuF}YrI@xCwCqD3D1{{=}T@-JYl{$zzZJ|H4<< z)<-KsO7#Yv)aaBiweYRuBU@3?Agl!GWbkfdSKxZm_o0rCfKdnijCUuM&-r}zY@`py z2nH%cn4hC(7^^GI)L%X|ziXVpVwLdpyxZ!RwZ+Xa(sJdAs$q5Q%Q;WknaX~no~b1~ zyq7s&kMjPsX|LwJSK{?p2y1xoz~e2p_p2c9zFAB5e`V>~LARy7FR$|yw+;RkcB_KP zrLoX!k#@sa&097Fm%$6yv6?b=7OO^vtM3^oBuU?OJJJ3Wd;qh$%;_Dwy^BYa?O4Ku zf)r}dJ1`iD4+O=R97chYZD2~udj}z66k|eVUR_t*WZzJJG`td)Hc67M`~6o%q9U?! zO~i!COk>Nw>C6=b_J40NYT$Qom2jkwa24z!L=+W@Lg^`k^?}u#K6Slt-W55g`RlwR zDW|`mO+4TsQHWQj%%eIm^LKmc4#gEmHJs32F0|NVg$~I346^LdeQq6>ux8kH%0N}{ z)9Mx$i}O*dUu`D7ieRO` zV!C@PYG0n#eZ}Onfegl8KpNPvK0d_qe?k2QoMxb2pP&{$@4A)-c=vs&X>&u#FE#)3 zpW*Xs{y3neRZe=^#(3GWCU7J1(FB(aKiQezuUrw$S82dZPXu4&pVa~O$2Y&o0|?Or z6nR1*KAcBrMsR$u7_or%m~Ygf_BFq`SR&qLEtb_!L=!Y#ogXOiY^?$|`gTj(8x{u1 zO}>KM{IkH@QwacTDLZhT2|Jr1XOw}^Mw`e|b`@4T2ea2!?RLYd4dox!Dkm0z>g-^> zekWLtxJVNUvICB0=YhXhuiGd&_M=EDdjQ?ld5>Bn3kL^*@O$cU-XcFP8v;wu8}YAEcLW zM%W_%h-Z}^|8I@VHLt%foU*K%+2I{9H8mB1f(z<_+jcraZzryB@D&j1Z&S3!^?FaT z&8b2JQAM+g{TcxhqB3x3;d^Lve*1IeG5v1=kKGRMlYyJ#LSygKQP;@;c(+f|0|#^y z6H45r%o!RYM~V)Md@93j5AN4xOUvo6+8`d$DJYyq14HN@?4u z+tjG}5y{Pb5>kDiFecG1kF3}Kfy_7ewx2i%!?FmvdA4C3Amk94zzRL*I||Yw5zWlt z3K+amUe{DJQjhm%A`&HVeL4b=+uc;JMp+Cy+%vMD`bJT*$JZmr?Qi}VgwUWL z$kii<$i4S_V4>~ldZfA#m4aL!aeAeC?ODJL z$z$h#k$1|AfZ@3}snkcQ9$wJaRlLm7dO5Fsm^-&>AMvu$JDrF!cCqJack4wz-$DDC z|6CE9K^{>JTU3Pc^Nj55blI=zJq?)*U;jRwWz*_bY@0R>L)SnreGEXEWL#bpa9iCZ zLNbPenen^}rQ6hgu0@ZFzx zL(|cq8G~91Y%Q{1Hai~v74`RsU>9s7MQCqw2nPWE{X55@I-fY%k zh9UAf)@&G^H>I*ZG9`8kHWQC~g8vKOn80>I@=-?$9bsbh8$Yq%T}zyihH^2W?K8Lg zEnf|&3gr(=4q=)yXw?iR=Q`J!C09l)el;OC(~o)A7b@lf^JDsbH)jjs^y1}m zYy{%hTxEj#zeChpuq22AS8JD|({_00YXUc-VSlyq1sNaK=LDXVcOrZ01MQ`eJx-7R zAL3m0Cc8mkUtiOf(aC3epTln9Sad&jJUI|1HbmyVzjbr6a2+IJzc)xFli#3`bz5*^ zPE7LkjTdU?wIvZNvnJb0HVzt`bBweyNvy%l4c@i;9?m`}SEgK7iQMAfpF^_A*QOy) ztqQ!F;NlUe96W?qW{K+TXG}P^`*(C@6@s1_j4&-U987O+mH|`GKb)ZkhFD=Pl=zH7 zt4j|;VD0WUE*1Q|Z!@lU)SJpbFRi@oZA4C4VSgAS-YXgNHYFXrI=`OwR68DY6dX&e z3d?+IAHrotpwweT>ny~zgC}2onn%j!kL;60#~BEpe4=2h&iIB0^AN){CA!iQa+eU* zauBihcx>(j7>+7I6x)+Yl$sb+lhIGt=6 zv&QgI;2)%d59;1kqWTMoNho=9hzY^M4T6fEi-)xOG&kRpR03o43myAi5rWxS;P3LtuQ7N=elh1i3AOt^5g#%((-TgH!e6a?$20-epu6Fy=IfjYgK~DZz1KJ6V;)!w+ z_2=^!Fk$^r{cs#abx~B=3z{ZfRm7hU{$e1%bENxOkY9tGMAR!Hu!H8)XO_A zK2Q@frWsbAkq>p*`Pq`rs*bAVJ3l&h8ywZ=mw8zdSy@&2T$r4(v6qrIT<2JMSq9{H zk1G^7)RdK3l~qTw)_DBOiBty>Kh3*>JQ+G8-Sl_~Dg-=v{bv@}v_5)vCKh&3QlQ(V z)4sFNqy&>l^_~}lNrs0F>JL1prkqD_o$wA~C~3GYJK1d%)!sW0_$T{(ufAG*aa!%Y z=PzG05k*p$SX;sJTC-@>dcKY|C7XPK2%!Lp_7RLe*}pwE1NKCbnA;z@@yVfzU5~Qx zNJ2xfG%ZjRGFimhI|F!WUnon8{+ao`S6FJrQaemTmST_%=^Ym~K_6ym3NZPMQ17p_FA{A~IwwBxH$h#G%ClHCNOc044b)1;Ee6Lzvi zzC)r!Z|AIp`CMi)w+(8|i(pQd!Ep&^!%@fXHsiUHO)Z<>0-f8IN`rbs$61q~8(X}sw_5fLr)o;oc!$aAYjcm2edHeXO%Eg5#rRoSh(<%R=r*hGgH%&|*Zg_kY zBh)1L=TGCp`EC?fSef9+#4a?n^Df1R7qnQe0_e&l-v~QG;LVENX*LYMng zs5N<9k7_}_Xyb~j$3F_w2;%;J(Dz>Kw)sB;yJwe*pXSXKQHG^+s~LDBn%GUK3>TA| zt}nS=JK<=Q)5?|gy78fK?vXO1L@O9B4)GKy2NxF1UabE?>U#efV>Oji$sePnGQ`4h zM;!9v;aE&*Y&9%=x|v@YVt9AET=9*U@xxeBeq}R1uek)WU`$r!a#lr{&u>rDvFBC6 zg9_t^mhMB~LMZfa+u<(J)C1G% zyPL!*#9L%Vyzl4h%ALUE6_o^mv{cNBI!~`)NtHnX+$F(%(~SW)S`vrW|HA5#Jl@Y+ z?+fs9Wr=gH7EKf-H$btlN(C}RW!E72qJ@-3A$3F@|p}8K)3)udnf#tq80$ zY__qOttiIHiws5YFg-d7f81bm@#tZgKo|{yV3$7Cz>Ko8a^L$ZcK*w~Hi>+s+S|84 z5qq||QmzP;&t>;0miw!PZ6S#+7j|`lL@McMtzpxo5BYbmwUVV`S7#U>y76JX3SrH* zr^$$HiQycmC2#l>sb;?MxtcgsNr7|jiDBX^3e#2I0pRBGx{1koNirlPdy&vFY`%W`;Yjs(j=N;eh$ATrjJtLUyiDScNZgx}8x$+sFdFy-){j4v5;ET11j=KKNS(vo zG`wiu0V?qrYV3)(MY>I1hpQpEf23?OV6E1#?i&|;|2u;|6@l{G-eU`-Mo8~N>n8)! zydrk@m`HJjOCYSQXv-mJKStO`qkjxWYJru^)x5p4+l&qox-Sq;c{k`Dc?#OcW?Xb( zDCC{r&vHFkl25}h;av^XjCRFZwyX6;e+fFWg?d-yd1Z=?$LdlN>x-AlrEpPZ<>*(a zIQbX(u(vqgK%1Ek&7|WPisE^ zJspXhk8xo2T}@{kH$m`vY=`pllz6`v_x$9#t%p^0!7}R!>mgTe**y~G6KqC(m}#2` z!RfFg5eAc@D5N2h?ZGhVZ@AsY>L(x(pZnpkvON`R<8|_BBu5_qA&I=V*59KN-LD59Oqf&;C zrkB_^yNuok*Hi>gtzC-}&3^Ksbl_u6V%!h34O+y7z>c#m;k*zD&Ctck@h(J~j-(et z%o$_q99@u2JqD+ZrGTxaW~~t3r*J`rKXKsO^{HXYb@H4nj`Z%_TPnlqA{tW#shng+U5;p&rl;L$(8Y)Q#<7CN2wIBJ$e1^s3Z5u z;UN!wmYYrxLO$3kSmIa<>qQ1%jaxcXq}w?a7U%Bu=*;&{GYm0YbC`b**X+90OzcgC z1nD^eBOb3&@JkG%vx(+4gUL0?pe!$UIj{YZx2K%Wp)35B(0dIlMh~svF&09(S|GQAN@;+xWTvvQ@!q3*bhUj;%U; z{k!^CR-Q$|eaKs?H5Ezxxh&YTK7UeyMJ9%t+{fP1v8IJ9 zVMR`~pb{7qtvP)%6+9C#e)KQssh{O_J6Z=FANN1UYUXCnKYf_HpBBg!3Sd{ngB?#t z35y&x8y3*Q%y}0+30d|LIGg71K8n?ahdk&Qs|~EItmJ$XMs||IFdB5bmDPX83I(RG zaC{!_E-Rc`6iPVyz4>X-qrtIba6eifYPjG)%r!Y8PjvAK7Z3{F}spfafL0--&04E-b>Z(Q38rwN@R z{NuSdk6dZ01pSfkmy8phj)OD4ip*v!MDhOf-VveEa~V`W#Wq;Bjk(s51FWfgKFcU) z>laxpC`VCfn4vq;--b1syn);DN?SSRYhr3b)UN$<_#thZ;q_S4x!Q&HEygIvXcnz8 z!J^%05+j4C&4-g9`2j{`hXP;M&BYBE#JQQtNXUujOu}ObqdgOhUTM`*3}~U@zt|ya zNafMyx4LksPBT?zOA2|SS@*GKgghVpZMh(D!>#JgL}uhHam+?h6m z-H_G&cGbj`Dn+zP7=9pIR)sdHK}RX774RALUi1s6&#CR(FV}WuCKJB&$AumYGkG`^ z?X>+FoOZ<(8UH9vy32~;!OOMm5_R{n2k?PT$G)vQ@PrYhkV^(SFh2hE8U=PKCYKSlYN(yeY< z2IflcD8&tpAcTnhjsm_W|9Z zIvi6|1i!SBB-I6xR6A#V@q6jJ#!J=dos%n`2p$fBA16Prlyl@7uFt1I3SnwuF2zPn zo$wnBSr_fvBkhF3n;Ub_eM`IcCIMwDQXG=@4t{11?WHF#dE zev{0?N6ssiy>cXKrHjhp8Z#z7ux3Xdns<*v39=M11jRq2Cn))SVpYt?4=$& z8bEtG@iNrjhtS#fYeK=FXm(+Ugu2O7J%iaAe_$hbQQ}q6Wvt+15>{53 zd;+wr&!?;b{f<+aG%IyuwN##;WxT4dF=&-{^qRwet!o{>=;LNx2i4sh+Gw0KFjmn| zXxrGf%1XnBRk+CWBqX!t0^ykvE=OsIIC0p!;!=+x|M1&C0HHmQ#l8D^#&y9jA3H^! zaF?H>%qo~q*WhBrwfUMSAjfS(hy_ATPYHXBgNypR0Ybh{sl;2}A)ji4vd53X#HZX~ zyVyt2cv_1|AXnxa0i(95Vo$Rm!Zf4_fRH&mVhitMJ(20#ZrGxepX6p_j}lnODX7-x zT5pL>3MS@=)XZD|%(~5K+O%oaMBOd^y78&ks0$M{Ecj{81A|HX1Ae~ji|2*xmi%bv z3%(a^*wr^RT@)fao_jM^M1#WNvP+KLci&I0B{R>ubbi19`X5Y)!n(}D6ULP{Hi12l zQmQu#SEoB1x|%LKCUWxinjy6otmVe2zw668^9GvV4^4xG<*JT@QqD=x^%$j){dy0( z$qO;hw_3v_XStwuQb9*@qMiFJe9Hv|P0 zR6H>p`-KM@oj{RPZL^S{ru(u}wvE9;AxP|B=tXBF9Pj#)l{}#7=I3V9Rh!M+!q?m+ zR~vI9+-z#V8jE3NPM_wuZAB`^y$}}dFqbfRjI%`P7l@zs>PJ3CJFx*fNl3^+{nfgD z)%p7K!{ZbV()#^XI?#$U#U{(Gk)2jgt7TVCF*%@IY8U`^gA$@r$+BW?Tt`VVsS1W&77-7Uh_Shpa)+-*9TEAOw4-@GCFTYrWg^y1rs& zXIP~JEsAszNV>3#b(_*v9v4*V83OyXDbjrd2`sD?*DnrIQKn7QZ{qx3V z9KMdkN}JZ1veFDERfl7AR5y?l0aS>(D7p@H6Ht0&ja{e}d7Sp-6EJA=doQmW#EAB< z5N~aXy^m1JRe8ta(M=o?#9VJ&@v(6QnuhN?%@ibbkv3$nu(|kI=6gh4Ja&(Zp32$w zgjJm`u2S0?>oWG;`uC)9CyQcYTTSEvdWFBr`$WKA@MLkm!JWf;HZh4?UA8C;`k`ZO zQUMM4*!0NA;D1w2|A@A5QHN~WC-9c}DXYW{#w%>GLIV>!h+!?Iw&XIN+s?P>HvAPI zCC=ADMY#|dhEJ_+6hsvEJ<*IB)nOS-z`>#AujonUC6qr6cTS(n&tIQ*9tV?oyCBCV z7}ELNoxB=Cx+zQe7rRvhiww|xr8%HAh?i*316D^F2= z+!I|F-FaN8xlPBNcH|=dh|RvqPoDI{bE}S(J)yZS;$>yU^C_#B>vM{tqxWcaMH^`R zTzCkCVM0SsgJA%b#YL%-uS%Ia!Qp+{Ms|IfM%Dz}MF|+wFSgg@RbGCYno>u2Ht2xW zuV@L#eaXMX?c(?auxNjr^Yvz3_5b0b5lX?nkFnx4Q@kGp%91m75{}w;5dx#TRDZ;d zn+ZSER;119R$OBW)5OQvg7KekO0)xQZNb=}NU1I-r!s6nrl0LwU3NhG-yI4Sfp_z2 z*m&;{dtXg>U;Lp-iyS6myr)cw&q_pTg5$5p#YFW{ETi+zxd~{q-_|jJ?tgeKSO|q? z8!D_P*eoOpC-gZbVd`r)N=lq;cJYfcoUvq2>z$0tUs0O3zB!dZ+#J1VIt{M=17I`9 znBZvw?&g&mbCZ*{3^r^}`aH$Mc9@w)ul_!m_$$nb-9`+CA|z99$3sx zTcpnIhn*}n{B{tBY#jQI&An?l{NHiK83~4R3@9zE@>OkOi{lC^PryLjmZ{u1RXMYN zXmng;PNz?#GWcb;0Oqv;!+rq_a=6b^_8Y-HK_3Wi3!c4Ddm)r)@8;6`YU2j!eTq~x zqmW*sEmAV#V*Wpx&N3>>?rY;ihbSo^&47S{q|)us0umzKAuS=@-QB4)A}uA|ND4^9 zP{Pn1((l3N|K5uax|R!J=FC1juKl|pDF$MLR!@N#9;Oq|gC8ht6!cb){}cml!Sumq zdy}&e-a|whzl~*B#Ed%EH(1-j%_;m;(ER3hgWe~oQ87r!2GhL`cQwh4G=TcJ-lf$q z{E^}GcE{_<5izVDfgjiBWp%zI-7&$GS2tW$PWE%S?jk(PSU0CpHyURO)ZaxuZF@^y zMn#r-__5uxY*?Q=?I~jDivtV2b_otP)?vMRmvumG;j=rE&c{ZAiN~;n;L-x0E5My6=6z5U+M_Uq>ZB`r$Y&#Bp>C52KY=hpP;C5yKmv2$o zikD2!!-1kGft`9!JkF&Xn~!|KsOH=X9oL)FrgwK`$vjf3l0I=MCF*$>=vyBVqR zzbDDl&C}HSpMpzlX83rX^dA98_ZIrP(WXc)_}^W|COCKv0t&83({T@TaAq(EW`!QKav)Xg_pp#>|B{ee~AGdYwn`Ft^T>tiC1 zAS7-xSFW7@E=c@*Or`!a!3akU9XMu#_0d;HGQv?o zz66r5_e8#~My1P?+=)>n*gqNwchimjqWXNH(Rsh8^psG_vK=FZMp(VEF0b~;>c6G| znwb8tRKX1fd>;t!TL@`P60VFDt-4lsw#Tk}-Tq5cGsOhi;~|Fkt9jbbYaGlB86Fh~ ztiA0zglDVVi|rDUBPjPsZZ-vKujmX;yt~CAe)T{j_=twn2c|O702+X!9tgASraSm4 zHKps_*xCa|g$!O#8!tCEH>a}-j`TikknZ?oZ zod*`vI}Yf+QU7aUC3yNE{|aql>h?xOO4D#RHN9>3KU4HNgIDJ25f~EG@-GNme3t|f zOV*oX2zLGslcKbKQ(wg!t7j21$n-m<){~B4w3`_>vc! z-Ot-Q-Fs5P%PBN;bz43z&jVh+<@nmY{RU7<3Y3sMF&bbIyD`}~?j+q2=DejT!U(i; z*N+gWKlC~+j3?H1o4<&@5*A_VrF1@UIBjDhJ--2M&uGNwh|b`(&%f`A0F*4u!aNN) zV_JJ2AFG&jVq76BF#T8R7;FU9PeUOsDdGqENbZD4f4e8N?rs%ZU2UJ1$Y&3FVktjM z%u&xWT*Rfm4B<+~?t=8uy)l@O2gmfxvt)>pym28d__X)#)T8X`Wse?t2|v@USUG zK)SAU=1Fk=%OU^bNkcXjXtf*c*8~Uz9^ zPM%2zIz{LCROfV^$`Wd z3o{bn`V_N3GjEXgl-1v!F^P=BH(yuj#qqA1{u*!88w=01sFRwoO*1%tVt>tUzMAhp zT%Z3#S2bvN3Z0|q4D?KK1^0y4L{4}O=<`zrpOxOkt&@9E@LIK2oZoQO-%wYz9?L_- zS=vv`m}$9InrtQMhbCu9gpYf)^nQqnx{7i*x^7heuO%bgFjC6VAZ2`bcXeYc;&#%< z_a26T%lG1m&pDR;%W(KYcAnrg9n5V+C((ME#tDuTuiY)--s&3|tpDC5EL6c(ka9E_Xc`3frTpY8fIv!Ga9MH}C%) z>=|cq%vggqcJbwdStq7#$E%`IvUeb_6k}qbO1Vt#NB2SPNqZR|@{r1A#ryhvvE`gS zvj0^I=X6MAhdw(Op+6~%hS=|8ubY9uHqWbwy8DCoM(~CqtYg{hDks4Ds|qB=5KQop zrHE-!#Si$XH3b(eYP^nenQiabs3!^r0Bq^U$K~tMTq(uubkKoX>;J7f!JEvJKIBxg zr>$0+Btb8|p7EeP6p-be)qXn>%Q()w8*YhgA)KMahuwcPiA?S=X|O&02!+|9%rP`@ zx|UD2Yn{xvdO{+tt7iNu7YYBnBYH6utpKI}fcoyxS>$qqE~kHRUb!dGBEi5A`CPz2 zzi~g%>3bL_%jIuD^7wVbawd$}+cr|D7Ny&WPvz=kP5x*f_Ualeh!`srtg^i+Ry~5( zX_lTZdf&w>mcf)9w{~^_`mT7KF*!LIbc62EMX!wBG`CQRe{2aU!~a%et{Il|!SmHV zo2YG`k~*i8I-5^a!OutI-KZ^R`&#ZG=elBeS0@54z2|7N`y%8R5-av&Mop;tKJ!N<`K+Hek)-rX$rgMTf7brMpn{zssH-hX&Q4wr456^|7N(9mo)~Jn1q}$d0-KA#!(E+0a4=`lKrPLGzQMA%X3PDmZ zu$IajREbkRUjwjwni`F%Qc9}R&)rtm10Qy}w_eG&=+U|v%9H$yPEC$)rH&2Fs$Mlb z7{;i8*%dEX!9DBU?vzqANNsU`CqMizmM+1#k9^Mm0!2(UNSTE* zhn);AhAp&9R^cm8wlgNi-DNM|pIW1Q=2WD)*nUD^J{ z=kj0FlPIeumegk@x45!GxLP8E8I5mf;O<7eGI4IrUaLKk4#&NAABWwJl>RHw+ef_Y zcP;hq!kN;dn1cfgLVk{8B4}4>M4X!?%QaOMRMUCduoO@K?Zj#xXP|V;e3B2rb5o~fx+>nlF?~~gd?cM3h z&fX|$KKnnvzH}Y~HswU|Y|px^R8?FR?BF7>w& zmcc6>cVcF!#?|}#@5i@`fXAMJ6N1KnhTo@SWy{6gsOfu=N1FaJ)I0KZE z!O(PtS9;Im04}BUy|xxq{tG}(LfyZ1(l^=-T!mOE(^@|sI#TqSr!mMVlfJ+fi7tGG z_`3yo65xMX8&`2jmQ?yvZJLGPHr&4f>@ct7ZHd>tf#3)Vb)+0qSECz>Ha@jWBSeTA zWJ!~i!bqt-Bks2D4i-H z2I6;U8jofgZ-aFz*uR~$f4=GL3N_pHyrXa=*}vgujofghsLjZo^;RXI&h7W!S)*{c z5;Q-*D4MNopR%mOy0XLBj^gn+7+lVh!m=s48S1);xQe>9!p3T?ItjPD z&4d@O?w%bZkh=GGD~#@Pgq=MEHr_*+c674DE=Isn754bM(*T;$nVRY;%0(EC6n)jtScn?{w*f`e*v*JwpFUv8vtm+{kWdLT^8y)?Rn@Hpf+oA z^SSF@^Eo7CW;P^MtF-o?NHs87x)QnbY8mH#m;%1gMojl+kLNnRk6xVt{2uN|c50@4 z7|awsAf&hT<5~Cr$}j9pOk%iu6$82z7nhRX`QpeOXf-KKCe6M{wT|d}spa~U!L?;* z@xM-Ja?EXPn+g{HE~ZB1LT#mhkh}_Fes=5f#vK=ccrU~C-VBW>P8AG*2mIW?Fx$)V z;+G@eDV!($6wpr)Lmj*ZrD%BK2f`yd(sH5aEg{)RE>LVyOqBO0xW;1?EdO$f8Qd)R z4UrEW5)B?6OdZBA>>;ijAq5fbfD&|}#wwO+d*5yJww_FyY(WIJ4jzrmfLB>#=<(xMwzCksmbdItdd`ckB^TtU=KF{>Xc1grUOisl

sjIjS#C& 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/!sz6h5M||20~)wt<|Chn=6CxK=E$9$ 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�&5X#B; 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 {pNqp%xS&)m@ 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 0 && void 0 !== arguments[0] ? arguments[0] : {}, - n = e.url; - r("navigateTo", { url: encodeURI(n) }); - }, - navigateBack: function () { - var e = - arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - n = e.delta; - r("navigateBack", { delta: parseInt(n) || 1 }); - }, - switchTab: function () { - var e = - arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - n = e.url; - r("switchTab", { url: encodeURI(n) }); - }, - reLaunch: function () { - var e = - arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - n = e.url; - r("reLaunch", { url: encodeURI(n) }); - }, - redirectTo: function () { - var e = - arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - n = e.url; - r("redirectTo", { url: encodeURI(n) }); - }, - getEnv: function (e) { - a() - ? e({ uvue: !0 }) - : o() - ? e({ nvue: !0 }) - : window.plus - ? e({ plus: !0 }) - : e({ h5: !0 }); - }, - postMessage: function () { - var e = - arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; - r("postMessage", e.data || {}); - }, - }, - s = /uni-app/i.test(navigator.userAgent), - w = /Html5Plus/i.test(navigator.userAgent), - u = /complete|loaded|interactive/; - var g = - window.my && - navigator.userAgent.indexOf( - ["t", "n", "e", "i", "l", "C", "y", "a", "p", "i", "l", "A"] - .reverse() - .join(""), - ) > -1; - var v = - window.swan && window.swan.webView && /swan/i.test(navigator.userAgent); - var c = - window.qq && - window.qq.miniProgram && - /QQ/i.test(navigator.userAgent) && - /miniProgram/i.test(navigator.userAgent); - var p = - window.tt && - window.tt.miniProgram && - /toutiaomicroapp/i.test(navigator.userAgent); - var _ = - window.wx && - window.wx.miniProgram && - /micromessenger/i.test(navigator.userAgent) && - /miniProgram/i.test(navigator.userAgent); - var m = window.qa && /quickapp/i.test(navigator.userAgent); - var f = - window.ks && - window.ks.miniProgram && - /micromessenger/i.test(navigator.userAgent) && - /miniProgram/i.test(navigator.userAgent); - var l = - window.tt && - window.tt.miniProgram && - /Lark|Feishu/i.test(navigator.userAgent); - var E = - window.jd && window.jd.miniProgram && /jdmp/i.test(navigator.userAgent); - var x = - window.xhs && - window.xhs.miniProgram && - /xhsminiapp/i.test(navigator.userAgent); - for ( - var S, - h = function () { - ((window.UniAppJSBridge = !0), - document.dispatchEvent( - new CustomEvent("UniAppJSBridgeReady", { - bubbles: !0, - cancelable: !0, - }), - )); - }, - y = [ - function (e) { - if (s || w) - return ( - window.__uniapp_x_postMessage || - window.__uniapp_x_ || - window.__dcloud_weex_postMessage || - window.__dcloud_weex_ - ? document.addEventListener("DOMContentLoaded", e) - : window.plus && u.test(document.readyState) - ? setTimeout(e, 0) - : document.addEventListener("plusready", e), - d - ); - }, - function (e) { - if (_) - return ( - window.WeixinJSBridge && window.WeixinJSBridge.invoke - ? setTimeout(e, 0) - : document.addEventListener("WeixinJSBridgeReady", e), - window.wx.miniProgram - ); - }, - function (e) { - if (c) - return ( - window.QQJSBridge && window.QQJSBridge.invoke - ? setTimeout(e, 0) - : document.addEventListener("QQJSBridgeReady", e), - window.qq.miniProgram - ); - }, - function (e) { - if (g) { - document.addEventListener("DOMContentLoaded", e); - var n = window.my; - return { - navigateTo: n.navigateTo, - navigateBack: n.navigateBack, - switchTab: n.switchTab, - reLaunch: n.reLaunch, - redirectTo: n.redirectTo, - postMessage: n.postMessage, - getEnv: n.getEnv, - }; - } - }, - function (e) { - if (v) - return ( - document.addEventListener("DOMContentLoaded", e), - window.swan.webView - ); - }, - function (e) { - if (p) - return ( - document.addEventListener("DOMContentLoaded", e), - window.tt.miniProgram - ); - }, - function (e) { - if (m) { - window.QaJSBridge && window.QaJSBridge.invoke - ? setTimeout(e, 0) - : document.addEventListener("QaJSBridgeReady", e); - var n = window.qa; - return { - navigateTo: n.navigateTo, - navigateBack: n.navigateBack, - switchTab: n.switchTab, - reLaunch: n.reLaunch, - redirectTo: n.redirectTo, - postMessage: n.postMessage, - getEnv: n.getEnv, - }; - } - }, - function (e) { - if (f) - return ( - window.WeixinJSBridge && window.WeixinJSBridge.invoke - ? setTimeout(e, 0) - : document.addEventListener("WeixinJSBridgeReady", e), - window.ks.miniProgram - ); - }, - function (e) { - if (l) - return ( - document.addEventListener("DOMContentLoaded", e), - window.tt.miniProgram - ); - }, - function (e) { - if (E) - return ( - window.JDJSBridgeReady && window.JDJSBridgeReady.invoke - ? setTimeout(e, 0) - : document.addEventListener("JDJSBridgeReady", e), - window.jd.miniProgram - ); - }, - function (e) { - if (x) return window.xhs.miniProgram; - }, - function (e) { - return (document.addEventListener("DOMContentLoaded", e), d); - }, - ], - M = 0; - M < y.length && !(S = y[M](h)); - M++ - ); - S || (S = {}); - var P = "undefined" != typeof uni ? uni : {}; - if (!P.navigateTo) for (var b in S) i(S, b) && (P[b] = S[b]); - return ((P.webView = S), P); -}); diff --git a/Cunkebao/src/App.tsx b/Cunkebao/src/App.tsx deleted file mode 100644 index 01bf3208..00000000 --- a/Cunkebao/src/App.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from "react"; -import AppRouter from "@/router"; -import UpdateNotification from "@/components/UpdateNotification"; - -function App() { - return ( - <> - - - - ); -} - -export default App; diff --git a/Cunkebao/src/android-polyfills.ts b/Cunkebao/src/android-polyfills.ts deleted file mode 100644 index 583fd397..00000000 --- a/Cunkebao/src/android-polyfills.ts +++ /dev/null @@ -1,352 +0,0 @@ -// Android 专用 polyfill - 解决Android 7等低版本系统的兼容性问题 - -// 检测是否为Android设备 -const isAndroid = () => { - return /Android/i.test(navigator.userAgent); -}; - -// 检测Android版本 -const getAndroidVersion = () => { - const match = navigator.userAgent.match(/Android\s+(\d+)/); - return match ? parseInt(match[1]) : 0; -}; - -// 检测是否为低版本Android -const isLowVersionAndroid = () => { - const version = getAndroidVersion(); - return version <= 7; // Android 7及以下版本 -}; - -// 只在Android设备上执行polyfill -if (isAndroid() && isLowVersionAndroid()) { - console.log("检测到低版本Android系统,启用兼容性polyfill"); - - // 修复Array.prototype.includes在Android WebView中的问题 - if (!Array.prototype.includes) { - Array.prototype.includes = function (searchElement, fromIndex) { - if (this == null) { - throw new TypeError('"this" is null or not defined'); - } - var o = Object(this); - var len = o.length >>> 0; - if (len === 0) { - return false; - } - var n = fromIndex | 0; - var k = Math.max(n >= 0 ? n : len + n, 0); - while (k < len) { - if (o[k] === searchElement) { - return true; - } - k++; - } - return false; - }; - } - - // 修复String.prototype.includes在Android WebView中的问题 - if (!String.prototype.includes) { - String.prototype.includes = function (search, start) { - if (typeof start !== "number") { - start = 0; - } - if (start + search.length > this.length) { - return false; - } else { - return this.indexOf(search, start) !== -1; - } - }; - } - - // 修复String.prototype.startsWith在Android WebView中的问题 - if (!String.prototype.startsWith) { - String.prototype.startsWith = function (searchString, position) { - position = position || 0; - return this.substr(position, searchString.length) === searchString; - }; - } - - // 修复String.prototype.endsWith在Android WebView中的问题 - if (!String.prototype.endsWith) { - String.prototype.endsWith = function (searchString, length) { - if (length === undefined || length > this.length) { - length = this.length; - } - return ( - this.substring(length - searchString.length, length) === searchString - ); - }; - } - - // 修复Array.prototype.find在Android WebView中的问题 - if (!Array.prototype.find) { - Array.prototype.find = function (predicate) { - if (this == null) { - throw new TypeError("Array.prototype.find called on null or undefined"); - } - if (typeof predicate !== "function") { - throw new TypeError("predicate must be a function"); - } - var list = Object(this); - var length = parseInt(list.length) || 0; - var thisArg = arguments[1]; - for (var i = 0; i < length; i++) { - var element = list[i]; - if (predicate.call(thisArg, element, i, list)) { - return element; - } - } - return undefined; - }; - } - - // 修复Array.prototype.findIndex在Android WebView中的问题 - if (!Array.prototype.findIndex) { - Array.prototype.findIndex = function (predicate) { - if (this == null) { - throw new TypeError( - "Array.prototype.findIndex called on null or undefined", - ); - } - if (typeof predicate !== "function") { - throw new TypeError("predicate must be a function"); - } - var list = Object(this); - var length = parseInt(list.length) || 0; - var thisArg = arguments[1]; - for (var i = 0; i < length; i++) { - var element = list[i]; - if (predicate.call(thisArg, element, i, list)) { - return i; - } - } - return -1; - }; - } - - // 修复Object.assign在Android WebView中的问题 - if (typeof Object.assign !== "function") { - Object.assign = function (target) { - if (target == null) { - throw new TypeError("Cannot convert undefined or null to object"); - } - var to = Object(target); - for (var index = 1; index < arguments.length; index++) { - var nextSource = arguments[index]; - if (nextSource != null) { - for (var nextKey in nextSource) { - if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { - to[nextKey] = nextSource[nextKey]; - } - } - } - } - return to; - }; - } - - // 修复Array.from在Android WebView中的问题 - if (!Array.from) { - Array.from = (function () { - var toStr = Object.prototype.toString; - var isCallable = function (fn) { - return ( - typeof fn === "function" || toStr.call(fn) === "[object Function]" - ); - }; - var toInteger = function (value) { - var number = Number(value); - if (isNaN(number)) { - return 0; - } - if (number === 0 || !isFinite(number)) { - return number; - } - return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number)); - }; - var maxSafeInteger = Math.pow(2, 53) - 1; - var toLength = function (value) { - var len = toInteger(value); - return Math.min(Math.max(len, 0), maxSafeInteger); - }; - return function from(arrayLike) { - var C = this; - var items = Object(arrayLike); - if (arrayLike == null) { - throw new TypeError( - "Array.from requires an array-like object - not null or undefined", - ); - } - var mapFunction = arguments.length > 1 ? arguments[1] : void undefined; - var T; - if (typeof mapFunction !== "undefined") { - if (typeof mapFunction !== "function") { - throw new TypeError( - "Array.from: when provided, the second argument must be a function", - ); - } - if (arguments.length > 2) { - T = arguments[2]; - } - } - var len = toLength(items.length); - var A = isCallable(C) ? Object(new C(len)) : new Array(len); - var k = 0; - var kValue; - while (k < len) { - kValue = items[k]; - if (mapFunction) { - A[k] = - typeof T === "undefined" - ? mapFunction(kValue, k) - : mapFunction.call(T, kValue, k); - } else { - A[k] = kValue; - } - k += 1; - } - A.length = len; - return A; - }; - })(); - } - - // 修复requestAnimationFrame在Android WebView中的问题 - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = function (callback) { - return setTimeout(function () { - callback(Date.now()); - }, 1000 / 60); - }; - } - - if (!window.cancelAnimationFrame) { - window.cancelAnimationFrame = function (id) { - clearTimeout(id); - }; - } - - // 修复IntersectionObserver在Android WebView中的问题 - if (!window.IntersectionObserver) { - window.IntersectionObserver = function (callback, options) { - this.callback = callback; - this.options = options || {}; - this.observers = []; - - this.observe = function (element) { - this.observers.push(element); - // 简单的实现,实际项目中可能需要更复杂的逻辑 - setTimeout(() => { - this.callback([ - { - target: element, - isIntersecting: true, - intersectionRatio: 1, - }, - ]); - }, 100); - }; - - this.unobserve = function (element) { - var index = this.observers.indexOf(element); - if (index > -1) { - this.observers.splice(index, 1); - } - }; - - this.disconnect = function () { - this.observers = []; - }; - }; - } - - // 修复ResizeObserver在Android WebView中的问题 - if (!window.ResizeObserver) { - window.ResizeObserver = function (callback) { - this.callback = callback; - this.observers = []; - - this.observe = function (element) { - this.observers.push(element); - }; - - this.unobserve = function (element) { - var index = this.observers.indexOf(element); - if (index > -1) { - this.observers.splice(index, 1); - } - }; - - this.disconnect = function () { - this.observers = []; - }; - }; - } - - // 修复URLSearchParams在Android WebView中的问题 - if (!window.URLSearchParams) { - window.URLSearchParams = function (init) { - this.params = {}; - - if (init) { - if (typeof init === "string") { - if (init.charAt(0) === "?") { - init = init.slice(1); - } - var pairs = init.split("&"); - for (var i = 0; i < pairs.length; i++) { - var pair = pairs[i].split("="); - var key = decodeURIComponent(pair[0]); - var value = decodeURIComponent(pair[1] || ""); - this.append(key, value); - } - } - } - - this.append = function (name, value) { - if (!this.params[name]) { - this.params[name] = []; - } - this.params[name].push(value); - }; - - this.get = function (name) { - return this.params[name] ? this.params[name][0] : null; - }; - - this.getAll = function (name) { - return this.params[name] || []; - }; - - this.has = function (name) { - return !!this.params[name]; - }; - - this.set = function (name, value) { - this.params[name] = [value]; - }; - - this.delete = function (name) { - delete this.params[name]; - }; - - this.toString = function () { - var pairs = []; - for (var key in this.params) { - if (this.params.hasOwnProperty(key)) { - for (var i = 0; i < this.params[key].length; i++) { - pairs.push( - encodeURIComponent(key) + - "=" + - encodeURIComponent(this.params[key][i]), - ); - } - } - } - return pairs.join("&"); - }; - }; - } - - console.log("Android兼容性polyfill已加载完成"); -} diff --git a/Cunkebao/src/api/common.ts b/Cunkebao/src/api/common.ts deleted file mode 100644 index d6147d80..00000000 --- a/Cunkebao/src/api/common.ts +++ /dev/null @@ -1,37 +0,0 @@ -import axios from "axios"; -import { useUserStore } from "@/store/module/user"; - -/** - * 通用文件上传方法(支持图片、文件) - * @param {File} file - 要上传的文件对象 - * @param {string} [uploadUrl='/v1/attachment/upload'] - 上传接口地址 - * @returns {Promise} - 上传成功后返回文件url - */ -export async function uploadFile( - file: File, - uploadUrl: string = "/v1/attachment/upload", -): Promise { - try { - // 创建 FormData 对象用于文件上传 - const formData = new FormData(); - formData.append("file", file); - - // 获取用户token - const { token } = useUserStore.getState(); - - const fullUrl = `${(import.meta as any).env?.VITE_API_BASE_URL || "/api"}${uploadUrl}`; - - // 直接使用 axios 上传文件 - const response = await axios.post(fullUrl, formData, { - headers: { - Authorization: token ? `Bearer ${token}` : undefined, - }, - timeout: 20000, - }); - return response?.data?.data?.url || ""; - } catch (e: any) { - const errorMessage = - e.response?.data?.message || e.message || "文件上传失败"; - throw new Error(errorMessage); - } -} diff --git a/Cunkebao/src/api/request.ts b/Cunkebao/src/api/request.ts deleted file mode 100644 index 6394d22e..00000000 --- a/Cunkebao/src/api/request.ts +++ /dev/null @@ -1,90 +0,0 @@ -import axios, { - AxiosInstance, - AxiosRequestConfig, - Method, - AxiosResponse, -} from "axios"; -import { Toast } from "antd-mobile"; -import { useUserStore } from "@/store/module/user"; -const { token } = useUserStore.getState(); -const DEFAULT_DEBOUNCE_GAP = 1000; -const debounceMap = new Map(); - -const instance: AxiosInstance = axios.create({ - baseURL: (import.meta as any).env?.VITE_API_BASE_URL || "/api", - timeout: 20000, - headers: { - "Content-Type": "application/json", - }, -}); - -instance.interceptors.request.use((config: any) => { - if (token) { - config.headers = config.headers || {}; - config.headers["Authorization"] = `Bearer ${token}`; - } - return config; -}); - -instance.interceptors.response.use( - (res: AxiosResponse) => { - const { code, success, msg } = res.data || {}; - if (code === 200 || success) { - return res.data.data ?? res.data; - } - Toast.show({ content: msg || "接口错误", position: "top" }); - if (code === 401) { - localStorage.removeItem("token"); - const currentPath = window.location.pathname + window.location.search; - if (currentPath === "/login") { - window.location.href = "/login"; - } else { - window.location.href = `/login?redirect=${encodeURIComponent(currentPath)}`; - } - } - return Promise.reject(msg || "接口错误"); - }, - err => { - Toast.show({ content: err.message || "网络异常", position: "top" }); - return Promise.reject(err); - }, -); - -export function request( - url: string, - data?: any, - method: Method = "GET", - config?: AxiosRequestConfig, - debounceGap?: number, -): Promise { - const gap = - typeof debounceGap === "number" ? debounceGap : DEFAULT_DEBOUNCE_GAP; - const key = `${method}_${url}_${JSON.stringify(data)}`; - const now = Date.now(); - const last = debounceMap.get(key) || 0; - if (gap > 0 && now - last < gap) { - // Toast.show({ content: '请求过于频繁,请稍后再试', position: 'top' }); - return Promise.reject("请求过于频繁,请稍后再试"); - } - debounceMap.set(key, now); - - const axiosConfig: AxiosRequestConfig = { - url, - method, - ...config, - }; - - // 如果是FormData,不设置Content-Type,让浏览器自动设置 - if (data instanceof FormData) { - delete axiosConfig.headers?.["Content-Type"]; - } - - if (method.toUpperCase() === "GET") { - axiosConfig.params = data; - } else { - axiosConfig.data = data; - } - return instance(axiosConfig); -} - -export default request; diff --git a/Cunkebao/src/api/request2.ts b/Cunkebao/src/api/request2.ts deleted file mode 100644 index deb3d9bf..00000000 --- a/Cunkebao/src/api/request2.ts +++ /dev/null @@ -1,89 +0,0 @@ -import axios, { - AxiosInstance, - AxiosRequestConfig, - Method, - AxiosResponse, -} from "axios"; -import { Toast } from "antd-mobile"; -import { useUserStore } from "@/store/module/user"; -const DEFAULT_DEBOUNCE_GAP = 1000; -const debounceMap = new Map(); - -interface RequestConfig extends AxiosRequestConfig { - headers: { - Client?: string; - "Content-Type"?: string; - }; -} - -const instance: AxiosInstance = axios.create({ - baseURL: (import.meta as any).env?.VITE_API_BASE_URL2 || "/api", - timeout: 20000, - headers: { - "Content-Type": "application/json", - Client: "kefu-client", - }, -}); - -instance.interceptors.request.use((config: any) => { - // 在每次请求时动态获取最新的 token2 - const { token2 } = useUserStore.getState(); - if (token2) { - config.headers = config.headers || {}; - config.headers["Authorization"] = `bearer ${token2}`; - } - return config; -}); - -instance.interceptors.response.use( - (res: AxiosResponse) => { - return res.data; - }, - err => { - // 处理401错误,跳转到登录页面 - if (err.response && err.response.status === 401) { - Toast.show({ content: "登录已过期,请重新登录", position: "top" }); - // 获取当前路径,用于登录后跳回 - const currentPath = window.location.pathname + window.location.search; - window.location.href = `/login?returnUrl=${encodeURIComponent(currentPath)}`; - return Promise.reject(err); - } - - Toast.show({ content: err.message || "网络异常", position: "top" }); - return Promise.reject(err); - }, -); - -export function request( - url: string, - data?: any, - method: Method = "GET", - config?: RequestConfig, - debounceGap?: number, -): Promise { - const gap = - typeof debounceGap === "number" ? debounceGap : DEFAULT_DEBOUNCE_GAP; - const key = `${method}_${url}_${JSON.stringify(data)}`; - const now = Date.now(); - const last = debounceMap.get(key) || 0; - if (gap > 0 && now - last < gap) { - // Toast.show({ content: '请求过于频繁,请稍后再试', position: 'top' }); - return Promise.reject("请求过于频繁,请稍后再试"); - } - debounceMap.set(key, now); - - const axiosConfig: RequestConfig = { - url, - method, - ...config, - }; - - if (method.toUpperCase() === "GET") { - axiosConfig.params = data; - } else { - axiosConfig.data = data; - } - return instance(axiosConfig); -} - -export default request; diff --git a/Cunkebao/src/components/AccountSelection/api.ts b/Cunkebao/src/components/AccountSelection/api.ts deleted file mode 100644 index bf069cb8..00000000 --- a/Cunkebao/src/components/AccountSelection/api.ts +++ /dev/null @@ -1,10 +0,0 @@ -import request from "@/api/request"; - -// 获取好友列表 -export function getAccountList(params: { - page: number; - limit: number; - keyword?: string; -}) { - return request("/v1/workbench/account-list", params, "GET"); -} diff --git a/Cunkebao/src/components/AccountSelection/data.ts b/Cunkebao/src/components/AccountSelection/data.ts deleted file mode 100644 index c0ce4343..00000000 --- a/Cunkebao/src/components/AccountSelection/data.ts +++ /dev/null @@ -1,35 +0,0 @@ -// 账号对象类型 -export interface AccountItem { - id: number; - userName: string; - realName: string; - departmentName: string; - avatar?: string; - [key: string]: any; -} -//弹窗的 -export interface SelectionPopupProps { - visible: boolean; - onVisibleChange: (visible: boolean) => void; - selectedOptions: AccountItem[]; - onSelect: (options: AccountItem[]) => void; - readonly?: boolean; - onConfirm?: (selectedOptions: AccountItem[]) => void; -} - -// 组件属性接口 -export interface AccountSelectionProps { - selectedOptions: AccountItem[]; - onSelect: (options: AccountItem[]) => void; - accounts?: AccountItem[]; // 可选:用于在外层显示已选账号详情 - placeholder?: string; - className?: string; - visible?: boolean; - onVisibleChange?: (visible: boolean) => void; - selectedListMaxHeight?: number; - showInput?: boolean; - showSelectedList?: boolean; - readonly?: boolean; - onConfirm?: (selectedOptions: AccountItem[]) => void; - accountGroups?: any[]; // 传递账号组数据 -} diff --git a/Cunkebao/src/components/AccountSelection/index.module.scss b/Cunkebao/src/components/AccountSelection/index.module.scss deleted file mode 100644 index 51eb1af5..00000000 --- a/Cunkebao/src/components/AccountSelection/index.module.scss +++ /dev/null @@ -1,231 +0,0 @@ -.inputWrapper { - position: relative; -} -.inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 20px; -} -.input { - padding-left: 38px !important; - height: 48px; - border-radius: 16px !important; - border: 1px solid #e5e6eb !important; - font-size: 16px; - background: #f8f9fa; -} - -.popupContainer { - display: flex; - flex-direction: column; - height: 100vh; - background: #fff; -} -.popupHeader { - padding: 24px; -} -.popupTitle { - text-align: center; - font-size: 20px; - font-weight: 600; - margin-bottom: 24px; -} -.searchWrapper { - position: relative; - margin-bottom: 16px; -} -.searchInput { - padding-left: 40px !important; - padding-top: 8px !important; - padding-bottom: 8px !important; - border-radius: 24px !important; - border: 1px solid #e5e6eb !important; - font-size: 15px; - background: #f8f9fa; -} -.searchIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 16px; -} -.clearBtn { - position: absolute; - right: 8px; - top: 50%; - transform: translateY(-50%); - height: 24px; - width: 24px; - border-radius: 50%; - min-width: 24px; -} - -.friendList { - flex: 1; - overflow-y: auto; -} -.friendListInner { - border-top: 1px solid #f0f0f0; -} -.friendItem { - display: flex; - align-items: center; - padding: 16px 24px; - border-bottom: 1px solid #f0f0f0; - cursor: pointer; - transition: background 0.2s; - &:hover { - background: #f5f6fa; - } -} -.radioWrapper { - margin-right: 12px; - display: flex; - align-items: center; - justify-content: center; -} -.radioSelected { - width: 20px; - height: 20px; - border-radius: 50%; - border: 2px solid #1890ff; - display: flex; - align-items: center; - justify-content: center; -} -.radioUnselected { - width: 20px; - height: 20px; - border-radius: 50%; - border: 2px solid #e5e6eb; - display: flex; - align-items: center; - justify-content: center; -} -.radioDot { - width: 12px; - height: 12px; - border-radius: 50%; - background: #1890ff; -} -.friendInfo { - display: flex; - align-items: center; - gap: 12px; - flex: 1; -} -.friendAvatar { - width: 40px; - height: 40px; - border-radius: 50%; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - display: flex; - align-items: center; - justify-content: center; - color: #fff; - font-size: 14px; - font-weight: 500; - overflow: hidden; -} -.avatarImg { - width: 100%; - height: 100%; - object-fit: cover; -} -.friendDetail { - flex: 1; -} -.friendName { - font-weight: 500; - font-size: 16px; - color: #222; - margin-bottom: 2px; -} -.friendId { - font-size: 13px; - color: #888; - margin-bottom: 2px; -} -.friendCustomer { - font-size: 13px; - color: #bdbdbd; -} - -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.loadingText { - color: #888; - font-size: 15px; -} -.emptyBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.emptyText { - color: #888; - font-size: 15px; -} - -.paginationRow { - border-top: 1px solid #f0f0f0; - padding: 16px; - display: flex; - align-items: center; - justify-content: space-between; - background: #fff; -} -.totalCount { - font-size: 14px; - color: #888; -} -.paginationControls { - display: flex; - align-items: center; - gap: 8px; -} -.pageBtn { - padding: 0 8px; - height: 32px; - min-width: 32px; -} -.pageInfo { - font-size: 14px; - color: #222; -} - -.popupFooter { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px; - border-top: 1px solid #f0f0f0; - background: #fff; -} -.selectedCount { - font-size: 14px; - color: #888; -} -.footerBtnGroup { - display: flex; - gap: 12px; -} -.cancelBtn { - padding: 0 24px; - border-radius: 24px; - border: 1px solid #e5e6eb; -} -.confirmBtn { - padding: 0 24px; - border-radius: 24px; -} diff --git a/Cunkebao/src/components/AccountSelection/index.tsx b/Cunkebao/src/components/AccountSelection/index.tsx deleted file mode 100644 index 6e19a88b..00000000 --- a/Cunkebao/src/components/AccountSelection/index.tsx +++ /dev/null @@ -1,139 +0,0 @@ -import React, { useState } from "react"; -import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; -import { Button, Input } from "antd"; -import style from "./index.module.scss"; -import SelectionPopup from "./selectionPopup"; -import { AccountItem, AccountSelectionProps } from "./data"; - -export default function AccountSelection({ - selectedOptions, - onSelect, - accounts: propAccounts = [], - placeholder = "选择账号", - className = "", - visible, - onVisibleChange, - selectedListMaxHeight = 300, - showInput = true, - showSelectedList = true, - readonly = false, - onConfirm, -}: AccountSelectionProps) { - const [popupVisible, setPopupVisible] = useState(false); - - // 受控弹窗逻辑 - const realVisible = visible !== undefined ? visible : popupVisible; - const setRealVisible = (v: boolean) => { - if (onVisibleChange) onVisibleChange(v); - if (visible === undefined) setPopupVisible(v); - }; - - // 打开弹窗 - const openPopup = () => { - if (readonly) return; - setRealVisible(true); - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedOptions.length === 0) return ""; - return `已选择 ${selectedOptions.length} 个账号`; - }; - - // 删除已选账号 - const handleRemoveAccount = (id: number) => { - if (readonly) return; - onSelect(selectedOptions.filter(d => d.id !== id)); - }; - - return ( - <> - {/* 输入框 */} - {showInput && ( -

- )} - {/* 已选账号列表窗口 */} - {showSelectedList && selectedOptions.length > 0 && ( -
- {selectedOptions.map(acc => ( -
-
- 【{acc.realName}】 {acc.userName} -
- {!readonly && ( -
- ))} -
- )} - {/* 弹窗 */} - - - ); -} diff --git a/Cunkebao/src/components/AccountSelection/selectionPopup.tsx b/Cunkebao/src/components/AccountSelection/selectionPopup.tsx deleted file mode 100644 index 7f4fc98a..00000000 --- a/Cunkebao/src/components/AccountSelection/selectionPopup.tsx +++ /dev/null @@ -1,237 +0,0 @@ -import React, { useEffect, useMemo, useRef, useState } from "react"; -import { Popup } from "antd-mobile"; -import Layout from "@/components/Layout/Layout"; -import PopupHeader from "@/components/PopuLayout/header"; -import PopupFooter from "@/components/PopuLayout/footer"; -import style from "./index.module.scss"; -import { getAccountList } from "./api"; -import { AccountItem, SelectionPopupProps } from "./data"; - -export default function SelectionPopup({ - visible, - onVisibleChange, - selectedOptions, - onSelect, - readonly = false, - onConfirm, -}: SelectionPopupProps) { - const [accounts, setAccounts] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalAccounts, setTotalAccounts] = useState(0); - const [loading, setLoading] = useState(false); - const [tempSelectedOptions, setTempSelectedOptions] = useState( - [], - ); - - // 累积已加载过的账号,确保确认时能返回更完整的对象 - const loadedAccountMapRef = useRef>(new Map()); - - const pageSize = 20; - - const fetchAccounts = async (page: number, keyword: string = "") => { - setLoading(true); - try { - const params: any = { page, limit: pageSize }; - if (keyword.trim()) params.keyword = keyword.trim(); - - const response = await getAccountList(params); - if (response && response.list) { - setAccounts(response.list); - const total: number = response.total || response.list.length || 0; - setTotalAccounts(total); - setTotalPages(Math.max(1, Math.ceil(total / pageSize))); - - // 累积到映射表 - response.list.forEach((acc: AccountItem) => { - loadedAccountMapRef.current.set(acc.id, acc); - }); - } else { - setAccounts([]); - setTotalAccounts(0); - setTotalPages(1); - } - } catch (error) { - console.error("获取账号列表失败:", error); - } finally { - setLoading(false); - } - }; - - const handleAccountToggle = (account: AccountItem) => { - if (readonly || !onSelect) return; - const isSelected = tempSelectedOptions.some(opt => opt.id === account.id); - const next = isSelected - ? tempSelectedOptions.filter(opt => opt.id !== account.id) - : tempSelectedOptions.concat(account); - setTempSelectedOptions(next); - }; - - // 全选当前页 - const handleSelectAllCurrentPage = (checked: boolean) => { - if (readonly) return; - - if (checked) { - // 全选:添加当前页面所有未选中的账号 - const currentPageAccounts = accounts.filter( - account => !tempSelectedOptions.some(a => a.id === account.id), - ); - setTempSelectedOptions(prev => [...prev, ...currentPageAccounts]); - } else { - // 取消全选:移除当前页面的所有账号 - const currentPageAccountIds = accounts.map(a => a.id); - setTempSelectedOptions(prev => - prev.filter(a => !currentPageAccountIds.includes(a.id)), - ); - } - }; - - // 检查当前页是否全选 - const isCurrentPageAllSelected = - accounts.length > 0 && - accounts.every(account => - tempSelectedOptions.some(a => a.id === account.id), - ); - - const handleConfirm = () => { - if (onConfirm) { - onConfirm(tempSelectedOptions); - } - if (onSelect) { - onSelect(tempSelectedOptions); - } - onVisibleChange(false); - }; - - // 弹窗打开时初始化数据 - useEffect(() => { - if (visible) { - setCurrentPage(1); - setSearchQuery(""); - loadedAccountMapRef.current.clear(); - // 复制一份selectedOptions到临时变量 - setTempSelectedOptions([...selectedOptions]); - fetchAccounts(1, ""); - } - }, [visible, selectedOptions]); - - // 搜索防抖 - useEffect(() => { - if (!visible) return; - if (searchQuery === "") return; - const timer = setTimeout(() => { - setCurrentPage(1); - fetchAccounts(1, searchQuery); - }, 500); - return () => clearTimeout(timer); - }, [searchQuery, visible]); - - // 页码变化 - useEffect(() => { - if (!visible) return; - fetchAccounts(currentPage, searchQuery); - }, [currentPage, visible, searchQuery]); - - const selectedIdSet = useMemo( - () => new Set(tempSelectedOptions.map(opt => opt.id)), - [tempSelectedOptions], - ); - - return ( - onVisibleChange(false)} - position="bottom" - bodyStyle={{ height: "100vh" }} - > - fetchAccounts(currentPage, searchQuery)} - /> - } - footer={ - onVisibleChange(false)} - onConfirm={handleConfirm} - isAllSelected={isCurrentPageAllSelected} - onSelectAll={handleSelectAllCurrentPage} - /> - } - > -
- {loading ? ( -
-
加载中...
-
- ) : accounts.length > 0 ? ( -
- {accounts.map(acc => ( - - ))} -
- ) : ( -
-
- {searchQuery - ? `没有找到包含"${searchQuery}"的账号` - : "没有找到账号"} -
-
- )} -
-
-
- ); -} diff --git a/Cunkebao/src/components/AndroidCompatibilityCheck.tsx b/Cunkebao/src/components/AndroidCompatibilityCheck.tsx deleted file mode 100644 index 55bc0cc0..00000000 --- a/Cunkebao/src/components/AndroidCompatibilityCheck.tsx +++ /dev/null @@ -1,228 +0,0 @@ -import React, { useEffect, useState } from "react"; - -interface AndroidCompatibilityInfo { - isAndroid: boolean; - androidVersion: number; - chromeVersion: number; - webViewVersion: number; - issues: string[]; - suggestions: string[]; -} - -const AndroidCompatibilityCheck: React.FC = () => { - const [compatibility, setCompatibility] = useState({ - isAndroid: false, - androidVersion: 0, - chromeVersion: 0, - webViewVersion: 0, - issues: [], - suggestions: [], - }); - - useEffect(() => { - const checkAndroidCompatibility = () => { - const ua = navigator.userAgent; - const issues: string[] = []; - const suggestions: string[] = []; - let isAndroid = false; - let androidVersion = 0; - let chromeVersion = 0; - let webViewVersion = 0; - - // 检测Android系统 - if (ua.indexOf("Android") > -1) { - isAndroid = true; - const androidMatch = ua.match(/Android\s+(\d+)/); - if (androidMatch) { - androidVersion = parseInt(androidMatch[1]); - } - - // 检测Chrome版本 - const chromeMatch = ua.match(/Chrome\/(\d+)/); - if (chromeMatch) { - chromeVersion = parseInt(chromeMatch[1]); - } - - // 检测WebView版本 - const webViewMatch = ua.match(/Version\/\d+\.\d+/); - if (webViewMatch) { - const versionMatch = webViewMatch[0].match(/\d+/); - if (versionMatch) { - webViewVersion = parseInt(versionMatch[0]); - } - } - - // Android 7 (API 24) 兼容性检查 - if (androidVersion === 7) { - issues.push("Android 7 系统对ES6+特性支持不完整"); - suggestions.push("建议升级到Android 8+或使用最新版Chrome"); - } - - // Android 6 (API 23) 兼容性检查 - if (androidVersion === 6) { - issues.push("Android 6 系统对现代Web特性支持有限"); - suggestions.push("强烈建议升级系统或使用最新版Chrome"); - } - - // Chrome版本检查 - if (chromeVersion > 0 && chromeVersion < 50) { - issues.push(`Chrome版本过低 (${chromeVersion}),建议升级到50+`); - suggestions.push("请在Google Play商店更新Chrome浏览器"); - } - - // WebView版本检查 - if (webViewVersion > 0 && webViewVersion < 50) { - issues.push(`WebView版本过低 (${webViewVersion}),可能影响应用功能`); - suggestions.push("建议使用Chrome浏览器或更新系统WebView"); - } - - // 检测特定问题 - const features = { - Promise: typeof Promise !== "undefined", - fetch: typeof fetch !== "undefined", - "Array.from": typeof Array.from !== "undefined", - "Object.assign": typeof Object.assign !== "undefined", - "String.includes": typeof String.prototype.includes !== "undefined", - "Array.includes": typeof Array.prototype.includes !== "undefined", - requestAnimationFrame: typeof requestAnimationFrame !== "undefined", - IntersectionObserver: typeof IntersectionObserver !== "undefined", - ResizeObserver: typeof ResizeObserver !== "undefined", - URLSearchParams: typeof URLSearchParams !== "undefined", - TextEncoder: typeof TextEncoder !== "undefined", - AbortController: typeof AbortController !== "undefined", - }; - - Object.entries(features).forEach(([feature, supported]) => { - if (!supported) { - issues.push(`${feature} 特性不支持`); - } - }); - - // 微信内置浏览器检测 - if (ua.indexOf("MicroMessenger") > -1) { - issues.push("微信内置浏览器对某些Web特性支持有限"); - suggestions.push("建议在系统浏览器中打开以获得最佳体验"); - } - - // QQ内置浏览器检测 - if (ua.indexOf("QQ/") > -1) { - issues.push("QQ内置浏览器对某些Web特性支持有限"); - suggestions.push("建议在系统浏览器中打开以获得最佳体验"); - } - } - - setCompatibility({ - isAndroid, - androidVersion, - chromeVersion, - webViewVersion, - issues, - suggestions, - }); - }; - - checkAndroidCompatibility(); - }, []); - - if (!compatibility.isAndroid || compatibility.issues.length === 0) { - return null; - } - - return ( -
-
- 🚨 Android 兼容性警告 -
- -
- 系统版本: Android {compatibility.androidVersion} - {compatibility.chromeVersion > 0 && - ` | Chrome: ${compatibility.chromeVersion}`} - {compatibility.webViewVersion > 0 && - ` | WebView: ${compatibility.webViewVersion}`} -
- -
-
- 检测到的问题: -
-
- {compatibility.issues.map((issue, index) => ( -
- • {issue} -
- ))} -
-
- - {compatibility.suggestions.length > 0 && ( -
-
- 建议解决方案: -
-
- {compatibility.suggestions.map((suggestion, index) => ( -
- • {suggestion} -
- ))} -
-
- )} - -
- 💡 应用已启用兼容模式,但建议升级系统以获得最佳体验 -
- - -
- ); -}; - -export default AndroidCompatibilityCheck; diff --git a/Cunkebao/src/components/CompatibilityCheck.tsx b/Cunkebao/src/components/CompatibilityCheck.tsx deleted file mode 100644 index 563d4242..00000000 --- a/Cunkebao/src/components/CompatibilityCheck.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import React, { useEffect, useState } from "react"; - -interface CompatibilityInfo { - isCompatible: boolean; - browser: string; - version: string; - issues: string[]; -} - -const CompatibilityCheck: React.FC = () => { - const [compatibility, setCompatibility] = useState({ - isCompatible: true, - browser: "", - version: "", - issues: [], - }); - - useEffect(() => { - const checkCompatibility = () => { - const ua = navigator.userAgent; - const issues: string[] = []; - let browser = "Unknown"; - let version = "Unknown"; - - // 检测浏览器类型和版本 - if (ua.indexOf("Chrome") > -1) { - browser = "Chrome"; - const match = ua.match(/Chrome\/(\d+)/); - version = match ? match[1] : "Unknown"; - if (parseInt(version) < 50) { - issues.push("Chrome版本过低,建议升级到50+"); - } - } else if (ua.indexOf("Firefox") > -1) { - browser = "Firefox"; - const match = ua.match(/Firefox\/(\d+)/); - version = match ? match[1] : "Unknown"; - if (parseInt(version) < 50) { - issues.push("Firefox版本过低,建议升级到50+"); - } - } else if (ua.indexOf("Safari") > -1 && ua.indexOf("Chrome") === -1) { - browser = "Safari"; - const match = ua.match(/Version\/(\d+)/); - version = match ? match[1] : "Unknown"; - if (parseInt(version) < 10) { - issues.push("Safari版本过低,建议升级到10+"); - } - } else if (ua.indexOf("MSIE") > -1 || ua.indexOf("Trident") > -1) { - browser = "Internet Explorer"; - const match = ua.match(/(?:MSIE |rv:)(\d+)/); - version = match ? match[1] : "Unknown"; - issues.push("Internet Explorer不受支持,建议使用现代浏览器"); - } else if (ua.indexOf("Edge") > -1) { - browser = "Edge"; - const match = ua.match(/Edge\/(\d+)/); - version = match ? match[1] : "Unknown"; - if (parseInt(version) < 12) { - issues.push("Edge版本过低,建议升级到12+"); - } - } - - // 检测ES6+特性支持 - const features = { - Promise: typeof Promise !== "undefined", - fetch: typeof fetch !== "undefined", - "Array.from": typeof Array.from !== "undefined", - "Object.assign": typeof Object.assign !== "undefined", - "String.includes": typeof String.prototype.includes !== "undefined", - "Array.includes": typeof Array.prototype.includes !== "undefined", - }; - - Object.entries(features).forEach(([feature, supported]) => { - if (!supported) { - issues.push(`${feature} 特性不支持`); - } - }); - - setCompatibility({ - isCompatible: issues.length === 0, - browser, - version, - issues, - }); - }; - - checkCompatibility(); - }, []); - - if (compatibility.isCompatible) { - return null; // 兼容时不需要显示 - } - - return ( -
-
- 浏览器兼容性警告 -
-
- 当前浏览器: {compatibility.browser} {compatibility.version} -
-
- {compatibility.issues.map((issue, index) => ( -
{issue}
- ))} -
-
- 建议使用 Chrome 50+、Firefox 50+、Safari 10+ 或 Edge 12+ -
-
- ); -}; - -export default CompatibilityCheck; diff --git a/Cunkebao/src/components/ContentSelection/api.ts b/Cunkebao/src/components/ContentSelection/api.ts deleted file mode 100644 index f7919df0..00000000 --- a/Cunkebao/src/components/ContentSelection/api.ts +++ /dev/null @@ -1,5 +0,0 @@ -import request from "@/api/request"; - -export function getContentLibraryList(params: any) { - return request("/v1/content/library/list", { ...params, formType: 0 }, "GET"); -} diff --git a/Cunkebao/src/components/ContentSelection/data.ts b/Cunkebao/src/components/ContentSelection/data.ts deleted file mode 100644 index 1bf8fdb8..00000000 --- a/Cunkebao/src/components/ContentSelection/data.ts +++ /dev/null @@ -1,21 +0,0 @@ -// 内容库接口类型 -export interface ContentItem { - id: number; - name: string; - [key: string]: any; -} - -// 组件属性接口 -export interface ContentSelectionProps { - selectedOptions: ContentItem[]; - onSelect: (selectedItems: ContentItem[]) => void; - placeholder?: string; - className?: string; - visible?: boolean; - onVisibleChange?: (visible: boolean) => void; - selectedListMaxHeight?: number; - showInput?: boolean; - showSelectedList?: boolean; - readonly?: boolean; - onConfirm?: (selectedItems: ContentItem[]) => void; -} diff --git a/Cunkebao/src/components/ContentSelection/index.module.scss b/Cunkebao/src/components/ContentSelection/index.module.scss deleted file mode 100644 index f877360a..00000000 --- a/Cunkebao/src/components/ContentSelection/index.module.scss +++ /dev/null @@ -1,117 +0,0 @@ -.inputWrapper { - position: relative; -} -.selectedListWindow { - margin-top: 8px; - border: 1px solid #e5e6eb; - border-radius: 8px; - background: #fff; -} -.selectedListRow { - display: flex; - align-items: center; - padding: 4px 8px; - border-bottom: 1px solid #f0f0f0; - font-size: 14px; -} -.libraryList { - flex: 1; - overflow-y: auto; -} -.libraryListInner { - display: flex; - flex-direction: column; - gap: 12px; - padding: 16px; -} -.libraryItem { - display: flex; - align-items: flex-start; - gap: 12px; - padding: 16px; - border-radius: 12px; - border: 1px solid #f0f0f0; - background: #fff; - cursor: pointer; - transition: background 0.2s; - &:hover { - background: #f5f6fa; - } -} -.checkboxWrapper { - margin-top: 4px; -} -.checkboxSelected { - width: 20px; - height: 20px; - border-radius: 4px; - background: #1677ff; - display: flex; - align-items: center; - justify-content: center; -} -.checkboxUnselected { - width: 20px; - height: 20px; - border-radius: 4px; - border: 1px solid #e5e6eb; - background: #fff; -} -.checkboxDot { - width: 12px; - height: 12px; - border-radius: 2px; - background: #fff; -} -.libraryInfo { - flex: 1; -} -.libraryHeader { - display: flex; - align-items: center; - justify-content: space-between; -} -.libraryName { - font-weight: 500; - font-size: 16px; - color: #222; -} -.typeTag { - font-size: 12px; - color: #1677ff; - border: 1px solid #1677ff; - border-radius: 12px; - padding: 2px 10px; - margin-left: 8px; - background: #f4f8ff; - font-weight: 500; -} -.libraryMeta { - font-size: 12px; - color: #888; -} -.libraryDesc { - font-size: 13px; - color: #888; - margin-top: 4px; -} -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.loadingText { - color: #888; - font-size: 15px; -} -.emptyBox { - display: flex; - align-items: center; - justify-content: center; - height: 100px; -} -.emptyText { - color: #888; - font-size: 15px; -} diff --git a/Cunkebao/src/components/ContentSelection/index.tsx b/Cunkebao/src/components/ContentSelection/index.tsx deleted file mode 100644 index eadb64bc..00000000 --- a/Cunkebao/src/components/ContentSelection/index.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import React, { useState } from "react"; -import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; -import { Button, Input } from "antd"; -import style from "./index.module.scss"; -import { ContentItem, ContentSelectionProps } from "./data"; -import SelectionPopup from "./selectionPopup"; - -const ContentSelection: React.FC = ({ - selectedOptions, - onSelect, - placeholder = "选择内容库", - className = "", - visible, - onVisibleChange, - selectedListMaxHeight = 300, - showInput = true, - showSelectedList = true, - readonly = false, - onConfirm, -}) => { - // 弹窗控制 - const [popupVisible, setPopupVisible] = useState(false); - const realVisible = visible !== undefined ? visible : popupVisible; - const setRealVisible = (v: boolean) => { - if (onVisibleChange) onVisibleChange(v); - if (visible === undefined) setPopupVisible(v); - }; - - // 打开弹窗 - const openPopup = () => { - if (readonly) return; - setRealVisible(true); - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedOptions.length === 0) return ""; - return `已选择 ${selectedOptions.length} 个内容库`; - }; - - // 删除已选内容库 - const handleRemoveLibrary = (id: number) => { - if (readonly) return; - onSelect(selectedOptions.filter(c => c.id !== id)); - }; - - // 清除所有已选内容库 - const handleClearAll = () => { - if (readonly) return; - onSelect([]); - }; - - return ( - <> - {/* 输入框 */} - {showInput && ( -
- } - allowClear={!readonly} - onClear={handleClearAll} - size="large" - readOnly={readonly} - disabled={readonly} - style={ - readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} - } - /> -
- )} - {/* 已选内容库列表窗口 */} - {showSelectedList && selectedOptions.length > 0 && ( -
- {selectedOptions.map(item => ( -
-
- {item.name || item.id} -
- {!readonly && ( -
- ))} -
- )} - {/* 弹窗 */} - setRealVisible(false)} - selectedOptions={selectedOptions} - onSelect={onSelect} - onConfirm={onConfirm} - /> - - ); -}; - -export default ContentSelection; diff --git a/Cunkebao/src/components/ContentSelection/selectionPopup.tsx b/Cunkebao/src/components/ContentSelection/selectionPopup.tsx deleted file mode 100644 index e5ee7a31..00000000 --- a/Cunkebao/src/components/ContentSelection/selectionPopup.tsx +++ /dev/null @@ -1,257 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Checkbox, Popup } from "antd-mobile"; -import { getContentLibraryList } from "./api"; -import style from "./index.module.scss"; -import Layout from "@/components/Layout/Layout"; -import PopupHeader from "@/components/PopuLayout/header"; -import PopupFooter from "@/components/PopuLayout/footer"; -import { ContentItem } from "./data"; - -interface SelectionPopupProps { - visible: boolean; - onClose: () => void; - selectedOptions: ContentItem[]; - onSelect: (libraries: ContentItem[]) => void; - onConfirm?: (libraries: ContentItem[]) => void; -} - -const PAGE_SIZE = 10; - -// 类型标签文本 -const getTypeText = (type?: number) => { - if (type === 1) return "文本"; - if (type === 2) return "图片"; - if (type === 3) return "视频"; - return "未知"; -}; - -// 时间格式化 -const formatDate = (dateStr?: string) => { - if (!dateStr) return "-"; - const d = new Date(dateStr); - if (isNaN(d.getTime())) return "-"; - return `${d.getFullYear()}/${(d.getMonth() + 1) - .toString() - .padStart(2, "0")}/${d.getDate().toString().padStart(2, "0")} ${d - .getHours() - .toString() - .padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d - .getSeconds() - .toString() - .padStart(2, "0")}`; -}; - -const SelectionPopup: React.FC = ({ - visible, - onClose, - selectedOptions, - onSelect, - onConfirm, -}) => { - // 内容库数据 - const [libraries, setLibraries] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [loading, setLoading] = useState(true); // 默认设置为加载中状态 - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalLibraries, setTotalLibraries] = useState(0); - const [tempSelectedOptions, setTempSelectedOptions] = useState( - [], - ); - - // 获取内容库列表,支持keyword和分页 - const fetchLibraries = async (page: number, keyword: string = "") => { - setLoading(true); - try { - const params: any = { - page, - limit: PAGE_SIZE, - }; - if (keyword.trim()) { - params.keyword = keyword.trim(); - } - const response = await getContentLibraryList(params); - if (response && response.list) { - setLibraries(response.list); - setTotalLibraries(response.total || 0); - setTotalPages(Math.ceil((response.total || 0) / PAGE_SIZE)); - } else { - // 如果没有返回列表数据,设置为空数组 - setLibraries([]); - setTotalLibraries(0); - setTotalPages(1); - } - } catch (error) { - console.error("获取内容库列表失败:", error); - // 请求失败时,设置为空数组 - setLibraries([]); - setTotalLibraries(0); - setTotalPages(1); - } finally { - setTimeout(() => { - setLoading(false); - }); - } - }; - - // 打开弹窗时获取第一页 - useEffect(() => { - if (visible) { - setSearchQuery(""); - setCurrentPage(1); - // 复制一份selectedOptions到临时变量 - setTempSelectedOptions([...selectedOptions]); - // 设置loading状态,避免显示空内容 - setLoading(true); - fetchLibraries(1, ""); - } else { - // 关闭弹窗时重置加载状态,确保下次打开时显示加载中 - setLoading(true); - } - }, [visible, selectedOptions]); - - // 搜索处理函数 - const handleSearch = (query: string) => { - if (!visible) return; - setCurrentPage(1); - fetchLibraries(1, query); - }; - - // 搜索输入变化时的处理 - const handleSearchChange = (query: string) => { - setSearchQuery(query); - }; - - // 翻页处理函数 - const handlePageChange = (page: number) => { - if (!visible || page === currentPage) return; - setCurrentPage(page); - fetchLibraries(page, searchQuery); - }; - - // 处理内容库选择 - const handleLibraryToggle = (library: ContentItem) => { - const newSelected = tempSelectedOptions.some(c => c.id === library.id) - ? tempSelectedOptions.filter(c => c.id !== library.id) - : [...tempSelectedOptions, library]; - setTempSelectedOptions(newSelected); - }; - - // 全选当前页 - const handleSelectAllCurrentPage = (checked: boolean) => { - if (checked) { - // 全选:添加当前页面所有未选中的内容库 - const currentPageLibraries = libraries.filter( - library => !tempSelectedOptions.some(l => l.id === library.id), - ); - setTempSelectedOptions(prev => [...prev, ...currentPageLibraries]); - } else { - // 取消全选:移除当前页面的所有内容库 - const currentPageLibraryIds = libraries.map(l => l.id); - setTempSelectedOptions(prev => - prev.filter(l => !currentPageLibraryIds.includes(l.id)), - ); - } - }; - - // 检查当前页是否全选 - const isCurrentPageAllSelected = - libraries.length > 0 && - libraries.every(library => - tempSelectedOptions.some(l => l.id === library.id), - ); - - // 确认选择 - const handleConfirm = () => { - // 用户点击确认时,才更新实际的selectedOptions - onSelect(tempSelectedOptions); - if (onConfirm) { - onConfirm(tempSelectedOptions); - } - onClose(); - }; - // 渲染内容库列表或空状态提示 - const OptionsList = () => { - return libraries.length > 0 ? ( -
- {libraries.map(item => ( - - ))} -
- ) : ( -
-
数据为空
-
- ); - }; - - return ( - - fetchLibraries(currentPage, searchQuery)} - /> - } - footer={ - - } - > -
- {loading ? ( -
-
加载中...
-
- ) : ( - OptionsList() - )} -
-
-
- ); -}; - -export default SelectionPopup; diff --git a/Cunkebao/src/components/DeviceSelection/api.ts b/Cunkebao/src/components/DeviceSelection/api.ts deleted file mode 100644 index db175dda..00000000 --- a/Cunkebao/src/components/DeviceSelection/api.ts +++ /dev/null @@ -1,10 +0,0 @@ -import request from "@/api/request"; - -// 获取设备列表 -export function getDeviceList(params: { - page: number; - limit: number; - keyword?: string; -}) { - return request("/v1/devices", params, "GET"); -} diff --git a/Cunkebao/src/components/DeviceSelection/data.ts b/Cunkebao/src/components/DeviceSelection/data.ts deleted file mode 100644 index 9f966a46..00000000 --- a/Cunkebao/src/components/DeviceSelection/data.ts +++ /dev/null @@ -1,30 +0,0 @@ -// 设备选择项接口 -export interface DeviceSelectionItem { - id: number; - memo: string; - imei: string; - wechatId: string; - status: "online" | "offline"; - wxid?: string; - nickname?: string; - usedInPlans?: number; - avatar?: string; - totalFriend?: number; -} - -// 组件属性接口 -export interface DeviceSelectionProps { - selectedOptions: DeviceSelectionItem[]; - onSelect: (devices: DeviceSelectionItem[]) => void; - placeholder?: string; - className?: string; - mode?: "input" | "dialog"; // 新增,默认input - open?: boolean; // 仅mode=dialog时生效 - onOpenChange?: (open: boolean) => void; // 仅mode=dialog时生效 - selectedListMaxHeight?: number; // 新增,已选列表最大高度,默认500 - showInput?: boolean; // 新增 - showSelectedList?: boolean; // 新增 - readonly?: boolean; // 新增 - deviceGroups?: any[]; // 传递设备组数据 - singleSelect?: boolean; // 新增,是否单选模式 -} diff --git a/Cunkebao/src/components/DeviceSelection/index.module.scss b/Cunkebao/src/components/DeviceSelection/index.module.scss deleted file mode 100644 index 8d004a48..00000000 --- a/Cunkebao/src/components/DeviceSelection/index.module.scss +++ /dev/null @@ -1,274 +0,0 @@ -.inputWrapper { - position: relative; -} -.inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - z-index: 10; - font-size: 18px; -} -.input { - padding-left: 38px !important; - height: 56px; - border-radius: 16px !important; - border: 1px solid #e5e6eb !important; - font-size: 16px; - background: #f8f9fa; -} - -.popupHeader { - padding: 16px; - border-bottom: 1px solid #f0f0f0; -} -.popupTitle { - font-size: 20px; - font-weight: 600; - text-align: center; -} -.popupSearchRow { - display: flex; - align-items: center; - gap: 16px; - padding: 16px; -} -.popupSearchInputWrap { - position: relative; - flex: 1; -} -.popupSearchInput { - padding-left: 36px !important; - border-radius: 12px !important; - height: 44px; - font-size: 15px; - border: 1px solid #e5e6eb !important; - background: #f8f9fa; -} -.statusSelect { - width: 120px; - height: 40px; - border-radius: 8px; - border: 1px solid #e5e6eb; - font-size: 15px; - padding: 0 10px; - background: #fff; -} -.deviceList { - flex: 1; - overflow-y: auto; -} -.deviceListInner { - display: flex; - flex-direction: column; - gap: 12px; - padding: 16px; -} -.deviceItem { - display: flex; - flex-direction: column; - padding: 12px; - background: #fff; - border-radius: 12px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); - transition: all 0.2s ease; - border: 1px solid #f5f5f5; - - &:hover { - transform: translateY(-1px); - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); - } -} - -.headerRow { - display: flex; - align-items: center; - gap: 8px; -} - -.checkboxContainer { - flex-shrink: 0; -} - -.imeiText { - font-size: 13px; - color: #666; - font-family: monospace; - flex: 1; -} - -.mainContent { - display: flex; - align-items: center; - gap: 12px; - cursor: pointer; - padding: 8px; - border-radius: 8px; - transition: background-color 0.2s ease; - - &:hover { - background-color: #f8f9fa; - } -} -.deviceCheckbox { - flex-shrink: 0; -} -.deviceInfo { - flex: 1; - min-width: 0; - display: flex; - align-items: center; - gap: 12px; -} -.deviceAvatar { - width: 64px; - height: 64px; - border-radius: 6px; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; - box-shadow: 0 2px 8px rgba(102, 126, 234, 0.25); - flex-shrink: 0; - - img { - width: 100%; - height: 100%; - object-fit: cover; - } - - .avatarText { - font-size: 18px; - color: #fff; - font-weight: 700; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); - } -} - -.deviceContent { - flex: 1; - min-width: 0; -} - -.deviceInfoRow { - display: flex; - align-items: center; - gap: 6px; - margin-bottom: 6px; -} -.deviceName { - font-size: 16px; - font-weight: 600; - color: #1a1a1a; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.statusOnline { - font-size: 11px; - padding: 1px 6px; - border-radius: 8px; - color: #52c41a; - background: #f6ffed; - border: 1px solid #b7eb8f; - font-weight: 500; -} -.statusOffline { - font-size: 11px; - padding: 1px 6px; - border-radius: 8px; - color: #ff4d4f; - background: #fff2f0; - border: 1px solid #ffccc7; - font-weight: 500; -} -.deviceInfoDetail { - display: flex; - flex-direction: column; - gap: 4px; -} - -.infoItem { - display: flex; - align-items: center; - gap: 8px; -} - -.infoLabel { - font-size: 13px; - color: #666; - min-width: 50px; -} - -.infoValue { - font-size: 13px; - color: #333; - - &.imei { - font-family: monospace; - } - - &.friendCount { - font-weight: 500; - } -} -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.loadingText { - color: #888; - font-size: 15px; -} -.popupFooter { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px; - border-top: 1px solid #f0f0f0; - background: #fff; -} -.selectedCount { - font-size: 14px; - color: #888; -} -.footerBtnGroup { - display: flex; - gap: 12px; -} -.refreshBtn { - width: 36px; - height: 36px; -} -.paginationRow { - border-top: 1px solid #f0f0f0; - padding: 16px; - display: flex; - align-items: center; - justify-content: space-between; - background: #fff; -} -.totalCount { - font-size: 14px; - color: #888; -} -.paginationControls { - display: flex; - align-items: center; - gap: 8px; -} -.pageBtn { - padding: 0 8px; - height: 32px; - min-width: 32px; - border-radius: 16px; -} -.pageInfo { - font-size: 14px; - color: #222; - margin: 0 8px; -} diff --git a/Cunkebao/src/components/DeviceSelection/index.tsx b/Cunkebao/src/components/DeviceSelection/index.tsx deleted file mode 100644 index 80d27c49..00000000 --- a/Cunkebao/src/components/DeviceSelection/index.tsx +++ /dev/null @@ -1,192 +0,0 @@ -import React, { useState } from "react"; -import { SearchOutlined } from "@ant-design/icons"; -import { Input, Button } from "antd"; -import { DeleteOutlined } from "@ant-design/icons"; -import { DeviceSelectionProps } from "./data"; -import SelectionPopup from "./selectionPopup"; -import style from "./index.module.scss"; - -const DeviceSelection: React.FC = ({ - selectedOptions, - onSelect, - placeholder = "选择设备", - className = "", - mode = "input", - open, - onOpenChange, - selectedListMaxHeight = 300, // 默认300 - showInput = true, - showSelectedList = true, - readonly = false, - singleSelect = false, -}) => { - // 弹窗控制 - const [popupVisible, setPopupVisible] = useState(false); - const isDialog = mode === "dialog"; - const realVisible = isDialog ? !!open : popupVisible; - const setRealVisible = (v: boolean) => { - if (isDialog && onOpenChange) onOpenChange(v); - if (!isDialog) setPopupVisible(v); - }; - - // 打开弹窗 - const openPopup = () => { - if (readonly) return; - setRealVisible(true); - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedOptions.length === 0) return ""; - if (singleSelect && selectedOptions.length > 0) { - return selectedOptions[0].memo || selectedOptions[0].wechatId || "已选择设备"; - } - return `已选择 ${selectedOptions.length} 个设备`; - }; - - // 删除已选设备 - const handleRemoveDevice = (id: number) => { - if (readonly) return; - onSelect(selectedOptions.filter(v => v.id !== id)); - }; - - // 清除所有已选设备 - const handleClearAll = () => { - if (readonly) return; - onSelect([]); - }; - - return ( - <> - {/* mode=input 显示输入框,mode=dialog不显示 */} - {mode === "input" && showInput && ( -
- } - allowClear={!readonly} - onClear={handleClearAll} - size="large" - readOnly={readonly} - disabled={readonly} - style={ - readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} - } - /> -
- )} - {/* 已选设备列表窗口 */} - {mode === "input" && showSelectedList && selectedOptions.length > 0 && ( -
- {selectedOptions.map(device => ( -
- {/* 头像 */} -
- {device.avatar ? ( - 头像 - ) : ( - - {(device.memo || device.wechatId || "设")[0]} - - )} -
- -
- {device.memo} - {device.wechatId} -
- {!readonly && ( -
- ))} -
- )} - {/* 弹窗 */} - setRealVisible(false)} - selectedOptions={selectedOptions} - onSelect={onSelect} - singleSelect={singleSelect} - /> - - ); -}; - -export default DeviceSelection; diff --git a/Cunkebao/src/components/DeviceSelection/selectionPopup.tsx b/Cunkebao/src/components/DeviceSelection/selectionPopup.tsx deleted file mode 100644 index 0485f58d..00000000 --- a/Cunkebao/src/components/DeviceSelection/selectionPopup.tsx +++ /dev/null @@ -1,287 +0,0 @@ -import React, { useState, useEffect, useCallback } from "react"; -import { Checkbox, Popup } from "antd-mobile"; -import { getDeviceList } from "./api"; -import style from "./index.module.scss"; -import Layout from "@/components/Layout/Layout"; -import PopupHeader from "@/components/PopuLayout/header"; -import PopupFooter from "@/components/PopuLayout/footer"; -import { DeviceSelectionItem } from "./data"; - -interface SelectionPopupProps { - visible: boolean; - onClose: () => void; - selectedOptions: DeviceSelectionItem[]; - onSelect: (devices: DeviceSelectionItem[]) => void; - singleSelect?: boolean; -} - -const PAGE_SIZE = 20; - -const SelectionPopup: React.FC = ({ - visible, - onClose, - selectedOptions, - onSelect, - singleSelect = false, -}) => { - // 设备数据 - const [devices, setDevices] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [statusFilter, setStatusFilter] = useState("all"); - const [loading, setLoading] = useState(false); - const [currentPage, setCurrentPage] = useState(1); - const [total, setTotal] = useState(0); - const [tempSelectedOptions, setTempSelectedOptions] = useState< - DeviceSelectionItem[] - >([]); - - // 获取设备列表,支持keyword和分页 - const fetchDevices = useCallback( - async (keyword: string = "", page: number = 1) => { - setLoading(true); - try { - const res = await getDeviceList({ - page, - limit: PAGE_SIZE, - keyword: keyword.trim() || undefined, - }); - if (res && Array.isArray(res.list)) { - setDevices( - res.list.map((d: any) => ({ - id: d.id?.toString() || "", - memo: d.memo || d.imei || "", - imei: d.imei || "", - wechatId: d.wechatId || "", - status: d.alive === 1 ? "online" : "offline", - wxid: d.wechatId || "", - nickname: d.nickname || "", - usedInPlans: d.usedInPlans || 0, - avatar: d.avatar || "", - totalFriend: d.totalFriend || 0, - })), - ); - setTotal(res.total || 0); - } - } catch (error) { - console.error("获取设备列表失败:", error); - } finally { - setLoading(false); - } - }, - [], - ); - - // 打开弹窗时获取第一页 - useEffect(() => { - if (visible) { - setSearchQuery(""); - setCurrentPage(1); - // 复制一份selectedOptions到临时变量 - setTempSelectedOptions([...selectedOptions]); - fetchDevices("", 1); - } - }, [visible, fetchDevices, selectedOptions]); - - // 搜索防抖 - useEffect(() => { - if (!visible) return; - const timer = setTimeout(() => { - setCurrentPage(1); - fetchDevices(searchQuery, 1); - }, 500); - return () => clearTimeout(timer); - }, [searchQuery, visible, fetchDevices]); - - // 翻页时重新请求 - useEffect(() => { - if (!visible) return; - fetchDevices(searchQuery, currentPage); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [currentPage]); - - // 过滤设备(只保留状态过滤) - const filteredDevices = devices.filter(device => { - const matchesStatus = - statusFilter === "all" || - (statusFilter === "online" && device.status === "online") || - (statusFilter === "offline" && device.status === "offline"); - return matchesStatus; - }); - - const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE)); - - // 处理设备选择 - const handleDeviceToggle = (device: DeviceSelectionItem) => { - if (singleSelect) { - // 单选模式:如果已选中,则取消选择;否则替换为当前设备 - if (tempSelectedOptions.some(v => v.id === device.id)) { - setTempSelectedOptions([]); - } else { - setTempSelectedOptions([device]); - } - } else { - // 多选模式:原有的逻辑 - if (tempSelectedOptions.some(v => v.id === device.id)) { - setTempSelectedOptions( - tempSelectedOptions.filter(v => v.id !== device.id), - ); - } else { - const newSelectedOptions = [...tempSelectedOptions, device]; - setTempSelectedOptions(newSelectedOptions); - } - } - }; - - // 全选当前页 - const handleSelectAllCurrentPage = (checked: boolean) => { - if (checked) { - // 全选:添加当前页面所有未选中的设备 - const currentPageDevices = filteredDevices.filter( - device => !tempSelectedOptions.some(d => d.id === device.id), - ); - setTempSelectedOptions(prev => [...prev, ...currentPageDevices]); - } else { - // 取消全选:移除当前页面的所有设备 - const currentPageDeviceIds = filteredDevices.map(d => d.id); - setTempSelectedOptions(prev => - prev.filter(d => !currentPageDeviceIds.includes(d.id)), - ); - } - }; - - // 检查当前页是否全选 - const isCurrentPageAllSelected = - filteredDevices.length > 0 && - filteredDevices.every(device => - tempSelectedOptions.some(d => d.id === device.id), - ); - - return ( - - fetchDevices(searchQuery, currentPage)} - showTabs={true} - tabsConfig={{ - activeKey: statusFilter, - onChange: setStatusFilter, - tabs: [ - { title: "全部", key: "all" }, - { title: "在线", key: "online" }, - { title: "离线", key: "offline" }, - ], - }} - /> - } - footer={ - { - // 用户点击确认时,才更新实际的selectedOptions - onSelect(tempSelectedOptions); - onClose(); - }} - isAllSelected={isCurrentPageAllSelected} - onSelectAll={singleSelect ? undefined : handleSelectAllCurrentPage} - /> - } - > -
- {loading ? ( -
-
加载中...
-
- ) : ( -
- {filteredDevices.map(device => ( -
- {/* 顶部行:选择框和IMEI */} -
-
- v.id === device.id, - )} - onChange={() => handleDeviceToggle(device)} - className={style.deviceCheckbox} - /> -
- - IMEI: {device.imei?.toUpperCase()} - -
- - {/* 主要内容区域:头像和详细信息 */} -
- {/* 头像 */} -
- {device.avatar ? ( - 头像 - ) : ( - - {(device.memo || device.wechatId || "设")[0]} - - )} -
- - {/* 设备信息 */} -
-
- {device.memo} -
- {device.status === "online" ? "在线" : "离线"} -
-
-
-
- 微信号: - - {device.wechatId} - -
-
- 好友数: - - {device.totalFriend ?? "-"} - -
-
-
-
-
- ))} -
- )} -
-
-
- ); -}; - -export default SelectionPopup; diff --git a/Cunkebao/src/components/EmojiSeclection/EmojiPicker.css b/Cunkebao/src/components/EmojiSeclection/EmojiPicker.css deleted file mode 100644 index cd70ffe3..00000000 --- a/Cunkebao/src/components/EmojiSeclection/EmojiPicker.css +++ /dev/null @@ -1,167 +0,0 @@ -/* 表情选择器容器 */ -.emoji-picker-container { - position: relative; - display: inline-block; -} - -/* 默认触发器按钮 */ -.emoji-picker-trigger { - background: none; - font-size: 16px; - padding: 5px; - cursor: pointer; - transition: all 0.2s ease; - border-radius: 5px; -} - -.emoji-picker-trigger:hover { - background-color: #e9e9e9; - border-color: #d0d0d0; -} - -/* 表情选择器面板 */ -.emoji-picker-panel { - position: absolute; - bottom: 100%; - left: 0; - z-index: 1000; - background: white; - border: 1px solid #e0e0e0; - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - width: 320px; - max-height: 400px; - overflow: hidden; - margin-bottom: 4px; -} - -/* 分类标签栏 */ -.emoji-categories { - display: flex; - background-color: #f8f9fa; - border-bottom: 1px solid #e0e0e0; - padding: 8px; - gap: 4px; -} - -.category-btn { - background: none; - border: none; - padding: 8px 12px; - border-radius: 6px; - font-size: 16px; - cursor: pointer; - transition: background-color 0.2s ease; - flex: 1; - text-align: center; -} - -.category-btn:hover { - background-color: #e9ecef; -} - -.category-btn.active { - background-color: #007bff; - color: white; -} - -/* 表情网格 */ -.emoji-grid { - display: grid; - grid-template-columns: repeat(8, 1fr); - gap: 4px; - padding: 12px; - max-height: 280px; - overflow-y: auto; -} - -/* 表情项 */ -.emoji-item { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border-radius: 4px; - cursor: pointer; - transition: background-color 0.2s ease; -} - -.emoji-item:hover { - background-color: #f0f0f0; -} - -.emoji-image { - width: 24px; - height: 24px; - object-fit: contain; -} - -/* 空状态 */ -.emoji-empty { - text-align: center; - padding: 40px 20px; - color: #999; - font-size: 14px; -} - -/* 滚动条样式 */ -.emoji-grid::-webkit-scrollbar { - width: 6px; -} - -.emoji-grid::-webkit-scrollbar-track { - background: #f1f1f1; - border-radius: 3px; -} - -.emoji-grid::-webkit-scrollbar-thumb { - background: #c1c1c1; - border-radius: 3px; -} - -.emoji-grid::-webkit-scrollbar-thumb:hover { - background: #a8a8a8; -} - -/* 响应式设计 */ -@media (max-width: 480px) { - .emoji-picker-panel { - width: 280px; - } - - .emoji-grid { - grid-template-columns: repeat(7, 1fr); - } -} - -/* 深色模式支持 */ -@media (prefers-color-scheme: dark) { - .emoji-picker-panel { - background: #2d3748; - border-color: #4a5568; - color: white; - } - - .emoji-categories { - background-color: #1a202c; - border-bottom-color: #4a5568; - } - - .category-btn:hover { - background-color: #4a5568; - } - - .emoji-item:hover { - background-color: #4a5568; - } - - .emoji-picker-trigger { - border-color: #4a5568; - color: white; - } - - .emoji-picker-trigger:hover { - background-color: #4a5568; - } -} diff --git a/Cunkebao/src/components/EmojiSeclection/EmojiPicker.tsx b/Cunkebao/src/components/EmojiSeclection/EmojiPicker.tsx deleted file mode 100644 index 6b5f4932..00000000 --- a/Cunkebao/src/components/EmojiSeclection/EmojiPicker.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import { EmojiCategory, EmojiInfo, getEmojisByCategory } from "./wechatEmoji"; -import "./EmojiPicker.css"; - -interface EmojiPickerProps { - onEmojiSelect: (emoji: EmojiInfo) => void; - trigger?: React.ReactNode; - className?: string; -} - -const EmojiPicker: React.FC = ({ - onEmojiSelect, - trigger, - className = "", -}) => { - const [isOpen, setIsOpen] = useState(false); - const [activeCategory, setActiveCategory] = useState( - EmojiCategory.FACE, - ); - const pickerRef = useRef(null); - - // 分类配置 - const categories = [ - { key: EmojiCategory.FACE, label: "😊", title: "人脸" }, - { key: EmojiCategory.GESTURE, label: "👋", title: "手势" }, - { key: EmojiCategory.ANIMAL, label: "🐷", title: "动物" }, - { key: EmojiCategory.BLESSING, label: "🎉", title: "祝福" }, - { key: EmojiCategory.OTHER, label: "❤️", title: "其他" }, - ]; - - // 获取当前分类的表情 - const currentEmojis = getEmojisByCategory(activeCategory); - - // 点击外部关闭 - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if ( - pickerRef.current && - !pickerRef.current.contains(event.target as Node) - ) { - setIsOpen(false); - } - }; - - if (isOpen) { - document.addEventListener("mousedown", handleClickOutside); - } - - return () => { - document.removeEventListener("mousedown", handleClickOutside); - }; - }, [isOpen]); - - // 处理表情选择 - const handleEmojiClick = (emoji: EmojiInfo) => { - onEmojiSelect(emoji); - setIsOpen(false); - }; - - // 默认触发器 - const defaultTrigger = 😊; - - return ( -
- {/* 触发器 */} -
setIsOpen(!isOpen)}>{trigger || defaultTrigger}
- - {/* 表情选择器面板 */} - {isOpen && ( -
- {/* 分类标签 */} -
- {categories.map(category => ( - - ))} -
- - {/* 表情网格 */} -
- {currentEmojis.map(emoji => ( -
handleEmojiClick(emoji)} - title={emoji.name} - > - {emoji.name} -
- ))} -
- - {/* 空状态 */} - {currentEmojis.length === 0 && ( -
暂无表情
- )} -
- )} -
- ); -}; - -export default EmojiPicker; diff --git a/Cunkebao/src/components/EmojiSeclection/index.ts b/Cunkebao/src/components/EmojiSeclection/index.ts deleted file mode 100644 index d4aa499f..00000000 --- a/Cunkebao/src/components/EmojiSeclection/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -// 导出主要组件 -export { default as EmojiPicker } from "./EmojiPicker"; - -// 导出表情数据和类型 -export { - EmojiCategory, - type EmojiInfo, - type EmojiName, - getAllEmojis, - getEmojisByCategory, - getEmojiInfo, - getEmojiPath, - searchEmojis, - EMOJI_CATEGORIES, -} from "./wechatEmoji"; - -// 默认导出 -export { default } from "./EmojiPicker"; diff --git a/Cunkebao/src/components/EmojiSeclection/wechatEmoji.ts b/Cunkebao/src/components/EmojiSeclection/wechatEmoji.ts deleted file mode 100644 index 7cb53be3..00000000 --- a/Cunkebao/src/components/EmojiSeclection/wechatEmoji.ts +++ /dev/null @@ -1,902 +0,0 @@ -/** - * 微信表情包 TypeScript 模块 - * 提供类型安全的表情访问和图片路径获取功能 - */ - -/** - * 表情类别枚举 - */ -export enum EmojiCategory { - /** 人脸表情 */ - FACE = "face", - /** 手势表情 */ - GESTURE = "gesture", - /** 动物表情 */ - ANIMAL = "animal", - /** 祝福表情 */ - BLESSING = "blessing", - /** 其他表情 */ - OTHER = "other", -} - -/** - * 表情信息接口 - */ -export interface EmojiInfo { - /** 表情名称 */ - name: string; - /** 表情类别 */ - category: EmojiCategory; - /** 图片文件路径 */ - path: string; - /** 英文名称(可选) */ - englishName?: string; -} - -/** - * 表情名称类型 - */ -export type EmojiName = - // 人脸表情 - | "微笑" - | "撇嘴" - | "色" - | "发呆" - | "得意" - | "流泪" - | "害羞" - | "闭嘴" - | "睡" - | "大哭" - | "尴尬" - | "发怒" - | "调皮" - | "呲牙" - | "惊讶" - | "难过" - | "囧" - | "抓狂" - | "吐" - | "偷笑" - | "愉快" - | "白眼" - | "傲慢" - | "困" - | "惊恐" - | "憨笑" - | "悠闲" - | "咒骂" - | "疑问" - | "嘘" - | "晕" - | "衰" - | "骷髅" - | "敲打" - | "再见" - | "擦汗" - | "抠鼻" - | "鼓掌" - | "坏笑" - | "右哼哼" - | "鄙视" - | "委屈" - | "快哭了" - | "阴险" - | "亲亲" - | "可怜" - | "笑脸" - | "生病" - | "脸红" - | "破涕为笑" - | "恐惧" - | "失望" - | "无语" - | "嘿哈" - | "捂脸" - | "机智" - | "皱眉" - | "耶" - | "吃瓜" - | "加油" - | "汗" - | "天啊" - | "Emm" - | "社会社会" - | "旺柴" - | "好的" - | "打脸" - | "哇" - | "翻白眼" - | "666" - | "让我看看" - | "叹气" - | "苦涩" - | "裂开" - | "奸笑" - // 手势表情 - | "握手" - | "胜利" - | "抱拳" - | "勾引" - | "拳头" - | "OK" - | "合十" - | "强" - | "拥抱" - | "弱" - // 动物表情 - | "猪头" - | "跳跳" - | "发抖" - | "转圈" - // 祝福表情 - | "庆祝" - | "礼物" - | "红包" - | "發" - | "福" - | "烟花" - | "爆竹" - // 其他表情 - | "嘴唇" - | "爱心" - | "心碎" - | "啤酒" - | "咖啡" - | "蛋糕" - | "凋谢" - | "菜刀" - | "炸弹" - | "便便" - | "太阳" - | "月亮" - | "玫瑰"; - -/** - * 表情数据映射 - * 将表情名称映射到完整的表情信息 - */ -const EMOJI_DATA: Record = { - // 人脸表情 - 微笑: { - name: "微笑", - category: EmojiCategory.FACE, - path: "/assets/face/smile.png", - }, - 撇嘴: { - name: "撇嘴", - category: EmojiCategory.FACE, - path: "/assets/face/pout.png", - }, - 色: { - name: "色", - category: EmojiCategory.FACE, - path: "/assets/face/lustful.png", - }, - 发呆: { - name: "发呆", - category: EmojiCategory.FACE, - path: "/assets/face/daze.png", - }, - 得意: { - name: "得意", - category: EmojiCategory.FACE, - path: "/assets/face/smug.png", - }, - 流泪: { - name: "流泪", - category: EmojiCategory.FACE, - path: "/assets/face/crying.png", - }, - 害羞: { - name: "害羞", - category: EmojiCategory.FACE, - path: "/assets/face/shy.png", - }, - 闭嘴: { - name: "闭嘴", - category: EmojiCategory.FACE, - path: "/assets/face/shut-up.png", - }, - 睡: { - name: "睡", - category: EmojiCategory.FACE, - path: "/assets/face/sleep.png", - }, - 大哭: { - name: "大哭", - category: EmojiCategory.FACE, - path: "/assets/face/wail.png", - }, - 尴尬: { - name: "尴尬", - category: EmojiCategory.FACE, - path: "/assets/face/awkward.png", - }, - 发怒: { - name: "发怒", - category: EmojiCategory.FACE, - path: "/assets/face/angry.png", - }, - 调皮: { - name: "调皮", - category: EmojiCategory.FACE, - path: "/assets/face/naughty.png", - }, - 呲牙: { - name: "呲牙", - category: EmojiCategory.FACE, - path: "/assets/face/grin.png", - }, - 惊讶: { - name: "惊讶", - category: EmojiCategory.FACE, - path: "/assets/face/surprised.png", - }, - 难过: { - name: "难过", - category: EmojiCategory.FACE, - path: "/assets/face/sad.png", - }, - 囧: { - name: "囧", - category: EmojiCategory.FACE, - path: "/assets/face/embarrassed.png", - }, - 抓狂: { - name: "抓狂", - category: EmojiCategory.FACE, - path: "/assets/face/crazy.png", - }, - 吐: { - name: "吐", - category: EmojiCategory.FACE, - path: "/assets/face/vomit.png", - }, - 偷笑: { - name: "偷笑", - category: EmojiCategory.FACE, - path: "/assets/face/snicker.png", - }, - 愉快: { - name: "愉快", - category: EmojiCategory.FACE, - path: "/assets/face/happy.png", - }, - 白眼: { - name: "白眼", - category: EmojiCategory.FACE, - path: "/assets/face/roll-eyes.png", - }, - 傲慢: { - name: "傲慢", - category: EmojiCategory.FACE, - path: "/assets/face/arrogant.png", - }, - 困: { - name: "困", - category: EmojiCategory.FACE, - path: "/assets/face/sleepy.png", - }, - 惊恐: { - name: "惊恐", - category: EmojiCategory.FACE, - path: "/assets/face/panic.png", - }, - 憨笑: { - name: "憨笑", - category: EmojiCategory.FACE, - path: "/assets/face/silly-smile.png", - }, - 悠闲: { - name: "悠闲", - category: EmojiCategory.FACE, - path: "/assets/face/leisurely.png", - }, - 咒骂: { - name: "咒骂", - category: EmojiCategory.FACE, - path: "/assets/face/curse.png", - }, - 疑问: { - name: "疑问", - category: EmojiCategory.FACE, - path: "/assets/face/question.png", - }, - 嘘: { - name: "嘘", - category: EmojiCategory.FACE, - path: "/assets/face/shush.png", - }, - 晕: { - name: "晕", - category: EmojiCategory.FACE, - path: "/assets/face/dizzy.png", - }, - 衰: { - name: "衰", - category: EmojiCategory.FACE, - path: "/assets/face/unlucky.png", - }, - 骷髅: { - name: "骷髅", - category: EmojiCategory.FACE, - path: "/assets/face/skull.png", - }, - 敲打: { - name: "敲打", - category: EmojiCategory.FACE, - path: "/assets/face/knock.png", - }, - 再见: { - name: "再见", - category: EmojiCategory.FACE, - path: "/assets/face/goodbye.png", - }, - 擦汗: { - name: "擦汗", - category: EmojiCategory.FACE, - path: "/assets/face/wipe-sweat.png", - }, - 抠鼻: { - name: "抠鼻", - category: EmojiCategory.FACE, - path: "/assets/face/pick-nose.png", - }, - 鼓掌: { - name: "鼓掌", - category: EmojiCategory.FACE, - path: "/assets/face/clap.png", - }, - 坏笑: { - name: "坏笑", - category: EmojiCategory.FACE, - path: "/assets/face/evil-smile.png", - }, - 右哼哼: { - name: "右哼哼", - category: EmojiCategory.FACE, - path: "/assets/face/right-hum.png", - }, - 鄙视: { - name: "鄙视", - category: EmojiCategory.FACE, - path: "/assets/face/despise.png", - }, - 委屈: { - name: "委屈", - category: EmojiCategory.FACE, - path: "/assets/face/wronged.png", - }, - 快哭了: { - name: "快哭了", - category: EmojiCategory.FACE, - path: "/assets/face/about-to-cry.png", - }, - 阴险: { - name: "阴险", - category: EmojiCategory.FACE, - path: "/assets/face/sinister.png", - }, - 亲亲: { - name: "亲亲", - category: EmojiCategory.FACE, - path: "/assets/face/kiss.png", - }, - 可怜: { - name: "可怜", - category: EmojiCategory.FACE, - path: "/assets/face/pitiful.png", - }, - 笑脸: { - name: "笑脸", - category: EmojiCategory.FACE, - path: "/assets/face/smiley.png", - }, - 生病: { - name: "生病", - category: EmojiCategory.FACE, - path: "/assets/face/sick.png", - }, - 脸红: { - name: "脸红", - category: EmojiCategory.FACE, - path: "/assets/face/blush.png", - }, - 破涕为笑: { - name: "破涕为笑", - category: EmojiCategory.FACE, - path: "/assets/face/tears-to-smile.png", - }, - 恐惧: { - name: "恐惧", - category: EmojiCategory.FACE, - path: "/assets/face/fear.png", - }, - 失望: { - name: "失望", - category: EmojiCategory.FACE, - path: "/assets/face/disappointed.png", - }, - 无语: { - name: "无语", - category: EmojiCategory.FACE, - path: "/assets/face/speechless.png", - }, - 嘿哈: { - name: "嘿哈", - category: EmojiCategory.FACE, - path: "/assets/face/hey-ha.png", - }, - 捂脸: { - name: "捂脸", - category: EmojiCategory.FACE, - path: "/assets/face/facepalm.png", - }, - 机智: { - name: "机智", - category: EmojiCategory.FACE, - path: "/assets/face/smart.png", - }, - 皱眉: { - name: "皱眉", - category: EmojiCategory.FACE, - path: "/assets/face/frown.png", - }, - 耶: { - name: "耶", - category: EmojiCategory.FACE, - path: "/assets/face/yeah.png", - }, - 吃瓜: { - name: "吃瓜", - category: EmojiCategory.FACE, - path: "/assets/face/eat-melon.png", - }, - 加油: { - name: "加油", - category: EmojiCategory.FACE, - path: "/assets/face/cheer-up.png", - }, - - 汗: { - name: "汗", - category: EmojiCategory.FACE, - path: "/assets/face/sweat.png", - }, - 天啊: { - name: "天啊", - category: EmojiCategory.FACE, - path: "/assets/face/oh-my.png", - }, - Emm: { - name: "Emm", - category: EmojiCategory.FACE, - path: "/assets/face/Emm.png", - }, - 社会社会: { - name: "社会社会", - category: EmojiCategory.FACE, - path: "/assets/face/social.png", - }, - 旺柴: { - name: "旺柴", - category: EmojiCategory.FACE, - path: "/assets/face/doge.png", - }, - 好的: { - name: "好的", - category: EmojiCategory.FACE, - path: "/assets/face/good.png", - }, - 打脸: { - name: "打脸", - category: EmojiCategory.FACE, - path: "/assets/face/slap-face.png", - }, - 哇: { - name: "哇", - category: EmojiCategory.FACE, - path: "/assets/face/wow.png", - }, - 翻白眼: { - name: "翻白眼", - category: EmojiCategory.FACE, - path: "/assets/face/eye-roll.png", - }, - "666": { - name: "666", - category: EmojiCategory.FACE, - path: "/assets/face/666.png", - }, - 让我看看: { - name: "让我看看", - category: EmojiCategory.FACE, - path: "/assets/face/let-me-see.png", - }, - 叹气: { - name: "叹气", - category: EmojiCategory.FACE, - path: "/assets/face/sigh.png", - }, - 苦涩: { - name: "苦涩", - category: EmojiCategory.FACE, - path: "/assets/face/bitter.png", - }, - 裂开: { - name: "裂开", - category: EmojiCategory.FACE, - path: "/assets/face/crack.png", - }, - 奸笑: { - name: "奸笑", - category: EmojiCategory.FACE, - path: "/assets/face/sly-smile.png", - }, - - // 手势表情 - 握手: { - name: "握手", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/handshake.png", - }, - 胜利: { - name: "胜利", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/victory.png", - }, - 抱拳: { - name: "抱拳", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/fist-salute.png", - }, - 勾引: { - name: "勾引", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/beckon.png", - }, - 拳头: { - name: "拳头", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/fist.png", - }, - OK: { - name: "OK", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/OK.png", - }, - 合十: { - name: "合十", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/pray.png", - }, - 强: { - name: "强", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/strong.png", - }, - 拥抱: { - name: "拥抱", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/hug.png", - }, - 弱: { - name: "弱", - category: EmojiCategory.GESTURE, - path: "/assets/gesture/weak.png", - }, - - // 动物表情 - 猪头: { - name: "猪头", - category: EmojiCategory.ANIMAL, - path: "/assets/animal/pig.png", - }, - 跳跳: { - name: "跳跳", - category: EmojiCategory.ANIMAL, - path: "/assets/animal/jump.png", - }, - 发抖: { - name: "发抖", - category: EmojiCategory.ANIMAL, - path: "/assets/animal/tremble.png", - }, - 转圈: { - name: "转圈", - category: EmojiCategory.ANIMAL, - path: "/assets/animal/circle.png", - }, - - // 祝福表情 - 庆祝: { - name: "庆祝", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/celebrate.png", - }, - 礼物: { - name: "礼物", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/gift.png", - }, - 红包: { - name: "红包", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/red-envelope.png", - }, - 發: { - name: "發", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/get-rich.png", - }, - 福: { - name: "福", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/fortune.png", - }, - 烟花: { - name: "烟花", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/fireworks.png", - }, - 爆竹: { - name: "爆竹", - category: EmojiCategory.BLESSING, - path: "/assets/blessing/firecrackers.png", - }, - - // 其他表情 - 嘴唇: { - name: "嘴唇", - category: EmojiCategory.OTHER, - path: "/assets/other/lips.png", - }, - 爱心: { - name: "爱心", - category: EmojiCategory.OTHER, - path: "/assets/other/heart.png", - }, - 心碎: { - name: "心碎", - category: EmojiCategory.OTHER, - path: "/assets/other/broken-heart.png", - }, - 啤酒: { - name: "啤酒", - category: EmojiCategory.OTHER, - path: "/assets/other/beer.png", - }, - 咖啡: { - name: "咖啡", - category: EmojiCategory.OTHER, - path: "/assets/other/coffee.png", - }, - 蛋糕: { - name: "蛋糕", - category: EmojiCategory.OTHER, - path: "/assets/other/cake.png", - }, - 凋谢: { - name: "凋谢", - category: EmojiCategory.OTHER, - path: "/assets/other/wither.png", - }, - 菜刀: { - name: "菜刀", - category: EmojiCategory.OTHER, - path: "/assets/other/knife.png", - }, - 炸弹: { - name: "炸弹", - category: EmojiCategory.OTHER, - path: "/assets/other/bomb.png", - }, - 便便: { - name: "便便", - category: EmojiCategory.OTHER, - path: "/assets/other/poop.png", - }, - 太阳: { - name: "太阳", - category: EmojiCategory.OTHER, - path: "/assets/other/sun.png", - }, - 月亮: { - name: "月亮", - category: EmojiCategory.OTHER, - path: "/assets/other/moon.png", - }, - 玫瑰: { - name: "玫瑰", - category: EmojiCategory.OTHER, - path: "/assets/other/rose.png", - }, -}; - -/** - * 获取所有表情数据的辅助函数 - */ -function getAllEmojiData(): EmojiInfo[] { - const result: EmojiInfo[] = []; - for (const key in EMOJI_DATA) { - if (Object.prototype.hasOwnProperty.call(EMOJI_DATA, key)) { - result.push(EMOJI_DATA[key as EmojiName]); - } - } - return result; -} - -/** - * 按类别分组的表情数据 - */ -export const EMOJI_CATEGORIES = { - [EmojiCategory.FACE]: getAllEmojiData().filter( - emoji => emoji.category === EmojiCategory.FACE, - ), - [EmojiCategory.GESTURE]: getAllEmojiData().filter( - emoji => emoji.category === EmojiCategory.GESTURE, - ), - [EmojiCategory.ANIMAL]: getAllEmojiData().filter( - emoji => emoji.category === EmojiCategory.ANIMAL, - ), - [EmojiCategory.BLESSING]: getAllEmojiData().filter( - emoji => emoji.category === EmojiCategory.BLESSING, - ), - [EmojiCategory.OTHER]: getAllEmojiData().filter( - emoji => emoji.category === EmojiCategory.OTHER, - ), -} as const; - -/** - * 获取表情图片路径 - * @param name 表情名称 - * @returns 图片路径,如果表情不存在则返回 null - * - * @example - * ```typescript - * const path = getEmojiPath('微笑'); // 'assets/face/微笑.png' - * const invalidPath = getEmojiPath('不存在'); // null - * ``` - */ -export function getEmojiPath(name: EmojiName): string | null { - const emoji = EMOJI_DATA[name]; - return emoji ? emoji.path : null; -} - -/** - * 获取表情信息 - * @param name 表情名称 - * @returns 表情信息对象,如果表情不存在则返回 null - * - * @example - * ```typescript - * const emoji = getEmojiInfo('微笑'); - * // { name: '微笑', category: EmojiCategory.FACE, path: 'assets/face/微笑.png' } - * ``` - */ -export function getEmojiInfo(name: EmojiName): EmojiInfo | null { - return EMOJI_DATA[name] || null; -} - -/** - * 根据类别获取表情列表 - * @param category 表情类别 - * @returns 该类别下的所有表情信息 - * - * @example - * ```typescript - * const faceEmojis = getEmojisByCategory(EmojiCategory.FACE); - * ``` - */ -export function getEmojisByCategory(category: EmojiCategory): EmojiInfo[] { - return EMOJI_CATEGORIES[category]; -} - -/** - * 获取所有表情信息 - * @returns 所有表情的信息数组 - * - * @example - * ```typescript - * const allEmojis = getAllEmojis(); - * console.log(`总共有 ${allEmojis.length} 个表情`); - * ``` - */ -export function getAllEmojis(): EmojiInfo[] { - return getAllEmojiData(); -} - -/** - * 搜索表情 - * @param keyword 搜索关键词 - * @returns 匹配的表情信息数组 - * - * @example - * ```typescript - * const results = searchEmojis('笑'); - * // 返回包含 '微笑', '偷笑', '坏笑' 等的表情 - * ``` - */ -export function searchEmojis(keyword: string): EmojiInfo[] { - return getAllEmojiData().filter(emoji => emoji.name.indexOf(keyword) !== -1); -} - -/** - * 检查表情是否存在 - * @param name 表情名称 - * @returns 是否存在该表情 - * - * @example - * ```typescript - * const exists = hasEmoji('微笑'); // true - * const notExists = hasEmoji('不存在的表情'); // false - * ``` - */ -export function hasEmoji(name: EmojiName): boolean { - return name in EMOJI_DATA; -} - -/** - * 获取表情名称列表 - * @param category 可选的类别筛选 - * @returns 表情名称数组 - * - * @example - * ```typescript - * const allNames = getEmojiNames(); - * const faceNames = getEmojiNames(EmojiCategory.FACE); - * ``` - */ -export function getEmojiNames(category?: EmojiCategory): string[] { - if (category) { - return getEmojisByCategory(category).map(emoji => emoji.name); - } - const names: string[] = []; - for (const key in EMOJI_DATA) { - if (Object.prototype.hasOwnProperty.call(EMOJI_DATA, key)) { - names.push(key); - } - } - return names; -} - -/** - * 随机获取表情 - * @param category 可选的类别筛选 - * @returns 随机表情信息 - * - * @example - * ```typescript - * const randomEmoji = getRandomEmoji(); - * const randomFaceEmoji = getRandomEmoji(EmojiCategory.FACE); - * ``` - */ -export function getRandomEmoji(category?: EmojiCategory): EmojiInfo { - const emojis = category ? getEmojisByCategory(category) : getAllEmojis(); - const randomIndex = Math.floor(Math.random() * emojis.length); - return emojis[randomIndex]; -} - -/** - * 默认导出对象,包含所有主要功能 - */ -const WeChatEmojis = { - // 枚举和类型 - EmojiCategory, - - // 数据 - EMOJI_CATEGORIES, - - // 工具函数 - getEmojiPath, - getEmojiInfo, - getEmojisByCategory, - getAllEmojis, - searchEmojis, - hasEmoji, - getEmojiNames, - getRandomEmoji, -} as const; - -export default WeChatEmojis; diff --git a/Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.module.scss b/Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.module.scss deleted file mode 100644 index 308c00d5..00000000 --- a/Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.module.scss +++ /dev/null @@ -1,128 +0,0 @@ -.modalMask { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.8); - z-index: 9999; - display: flex; - align-items: center; - justify-content: center; - padding: 20px; - animation: fadeIn 0.3s ease; -} - -.videoContainer { - width: 100%; - max-width: 90vw; - max-height: 90vh; - background: #000; - border-radius: 8px; - overflow: hidden; - display: flex; - flex-direction: column; - animation: slideUp 0.3s ease; -} - -.header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 16px; - background: rgba(0, 0, 0, 0.8); - color: #fff; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - - .title { - font-size: 16px; - font-weight: 600; - color: #fff; - } - - .closeButton { - width: 32px; - height: 32px; - border-radius: 50%; - border: none; - background: rgba(255, 255, 255, 0.1); - color: #fff; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s ease; - padding: 0; - - &:hover { - background: rgba(255, 255, 255, 0.2); - } - - &:active { - transform: scale(0.95); - } - - svg { - font-size: 16px; - } - } -} - -.videoWrapper { - width: 100%; - position: relative; - padding-top: 56.25%; // 16:9 比例 - background: #000; -} - -.video { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: contain; - outline: none; -} - -// 动画 -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes slideUp { - from { - transform: translateY(20px); - opacity: 0; - } - to { - transform: translateY(0); - opacity: 1; - } -} - -// 移动端适配 -@media (max-width: 768px) { - .modalMask { - padding: 0; - } - - .videoContainer { - max-width: 100vw; - max-height: 100vh; - border-radius: 0; - } - - .header { - padding: 10px 12px; - - .title { - font-size: 14px; - } - } -} diff --git a/Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.tsx b/Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.tsx deleted file mode 100644 index a26e824a..00000000 --- a/Cunkebao/src/components/FloatingVideoHelp/VideoPlayer.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import React, { useRef, useEffect } from "react"; -import { CloseOutlined } from "@ant-design/icons"; -import styles from "./VideoPlayer.module.scss"; - -interface VideoPlayerProps { - /** 视频URL */ - videoUrl: string; - /** 是否显示播放器 */ - visible: boolean; - /** 关闭回调 */ - onClose: () => void; - /** 视频标题 */ - title?: string; -} - -const VideoPlayer: React.FC = ({ - videoUrl, - visible, - onClose, - title = "操作视频", -}) => { - const videoRef = useRef(null); - const containerRef = useRef(null); - - useEffect(() => { - if (visible && videoRef.current) { - // 播放器打开时播放视频 - videoRef.current.play().catch(err => { - console.error("视频播放失败:", err); - }); - // 阻止背景滚动 - document.body.style.overflow = "hidden"; - } else if (videoRef.current) { - // 播放器关闭时暂停视频 - videoRef.current.pause(); - document.body.style.overflow = ""; - } - - return () => { - document.body.style.overflow = ""; - }; - }, [visible]); - - // 点击遮罩层关闭 - const handleMaskClick = (e: React.MouseEvent) => { - // 如果点击的是遮罩层本身(不是视频容器),则关闭 - if (e.target === e.currentTarget) { - handleClose(); - } - }; - - const handleClose = () => { - if (videoRef.current) { - videoRef.current.pause(); - } - onClose(); - }; - - // 阻止事件冒泡 - const handleContentClick = (e: React.MouseEvent) => { - e.stopPropagation(); - }; - - if (!visible) { - return null; - } - - return ( -
-
-
- {title} - -
-
- -
-
-
- ); -}; - -export default VideoPlayer; diff --git a/Cunkebao/src/components/FloatingVideoHelp/index.module.scss b/Cunkebao/src/components/FloatingVideoHelp/index.module.scss deleted file mode 100644 index 0b35e258..00000000 --- a/Cunkebao/src/components/FloatingVideoHelp/index.module.scss +++ /dev/null @@ -1,56 +0,0 @@ -.floatingButton { - position: fixed; - right: 20px; - bottom: 80px; - width: 56px; - height: 56px; - border-radius: 50%; - background: linear-gradient(135deg, #1890ff 0%, #096dd9 100%); - box-shadow: 0 4px 12px rgba(24, 144, 255, 0.4); - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - z-index: 9998; - transition: all 0.3s ease; - animation: float 3s ease-in-out infinite; - - &:hover { - transform: scale(1.1); - box-shadow: 0 6px 16px rgba(24, 144, 255, 0.5); - } - - &:active { - transform: scale(0.95); - } - - .icon { - font-size: 28px; - color: #ffffff; - display: flex; - align-items: center; - justify-content: center; - } - - // 移动端适配 - @media (max-width: 768px) { - right: 16px; - bottom: 70px; - width: 50px; - height: 50px; - - .icon { - font-size: 24px; - } - } -} - -@keyframes float { - 0%, - 100% { - transform: translateY(0); - } - 50% { - transform: translateY(-10px); - } -} diff --git a/Cunkebao/src/components/FloatingVideoHelp/index.tsx b/Cunkebao/src/components/FloatingVideoHelp/index.tsx deleted file mode 100644 index a85ad480..00000000 --- a/Cunkebao/src/components/FloatingVideoHelp/index.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { useLocation } from "react-router-dom"; -import { PlayCircleOutlined } from "@ant-design/icons"; -import VideoPlayer from "./VideoPlayer"; -import { getVideoUrlByRoute } from "./videoConfig"; -import styles from "./index.module.scss"; - -interface FloatingVideoHelpProps { - /** 是否显示悬浮窗,默认为 true */ - visible?: boolean; - /** 自定义样式类名 */ - className?: string; -} - -const FloatingVideoHelp: React.FC = ({ - visible = true, - className, -}) => { - const location = useLocation(); - const [showPlayer, setShowPlayer] = useState(false); - const [currentVideoUrl, setCurrentVideoUrl] = useState(null); - - // 根据当前路由获取视频URL - useEffect(() => { - const videoUrl = getVideoUrlByRoute(location.pathname); - setCurrentVideoUrl(videoUrl); - }, [location.pathname]); - - const handleClick = () => { - if (currentVideoUrl) { - setShowPlayer(true); - } else { - // 如果没有对应的视频,可以显示提示 - console.warn("当前路由没有对应的操作视频"); - } - }; - - const handleClose = () => { - setShowPlayer(false); - }; - - // 如果没有视频URL,不显示悬浮窗 - if (!visible || !currentVideoUrl) { - return null; - } - - return ( - <> -
- -
- - {showPlayer && currentVideoUrl && ( - - )} - - ); -}; - -export default FloatingVideoHelp; diff --git a/Cunkebao/src/components/FloatingVideoHelp/videoConfig.ts b/Cunkebao/src/components/FloatingVideoHelp/videoConfig.ts deleted file mode 100644 index 35798056..00000000 --- a/Cunkebao/src/components/FloatingVideoHelp/videoConfig.ts +++ /dev/null @@ -1,110 +0,0 @@ -/** - * 路由到视频URL的映射配置 - * key: 路由路径(支持正则表达式) - * value: 视频URL - */ -interface VideoConfig { - [route: string]: string; -} - -// 视频URL配置 -const videoConfig: VideoConfig = { - // 首页 - "/": "/videos/home.mp4", - "/mobile/home": "/videos/home.mp4", - - // 工作台 - "/workspace": "/videos/workspace.mp4", - "/workspace/auto-like": "/videos/auto-like-list.mp4", - "/workspace/auto-like/new": "/videos/auto-like-new.mp4", - "/workspace/auto-like/record": "/videos/auto-like-record.mp4", - "/workspace/auto-group": "/videos/auto-group-list.mp4", - "/workspace/auto-group/new": "/videos/auto-group-new.mp4", - "/workspace/group-push": "/videos/group-push-list.mp4", - "/workspace/group-push/new": "/videos/group-push-new.mp4", - "/workspace/moments-sync": "/videos/moments-sync-list.mp4", - "/workspace/moments-sync/new": "/videos/moments-sync-new.mp4", - "/workspace/ai-assistant": "/videos/ai-assistant.mp4", - "/workspace/ai-analyzer": "/videos/ai-analyzer.mp4", - "/workspace/traffic-distribution": "/videos/traffic-distribution-list.mp4", - "/workspace/traffic-distribution/new": "/videos/traffic-distribution-new.mp4", - "/workspace/contact-import": "/videos/contact-import-list.mp4", - "/workspace/contact-import/form": "/videos/contact-import-form.mp4", - "/workspace/ai-knowledge": "/videos/ai-knowledge-list.mp4", - "/workspace/ai-knowledge/new": "/videos/ai-knowledge-new.mp4", - - // 我的 - "/mobile/mine": "/videos/mine.mp4", - "/mobile/mine/devices": "/videos/devices.mp4", - "/mobile/mine/wechat-accounts": "/videos/wechat-accounts.mp4", - "/mobile/mine/content": "/videos/content.mp4", - "/mobile/mine/traffic-pool": "/videos/traffic-pool.mp4", - "/mobile/mine/recharge": "/videos/recharge.mp4", - "/mobile/mine/setting": "/videos/setting.mp4", - - // 场景 - "/mobile/scenarios": "/videos/scenarios.mp4", - "/mobile/scenarios/plan": "/videos/scenarios-plan.mp4", -}; - -/** - * 根据路由路径获取对应的视频URL - * @param routePath 当前路由路径 - * @returns 视频URL,如果没有匹配则返回 null - */ -export function getVideoUrlByRoute(routePath: string): string | null { - // 精确匹配 - if (videoConfig[routePath]) { - return videoConfig[routePath]; - } - - // 模糊匹配(支持动态路由参数) - // 例如:/workspace/auto-like/edit/123 会匹配 /workspace/auto-like/edit/:id - const routeKeys = Object.keys(videoConfig); - for (const key of routeKeys) { - // 将配置中的 :id 等参数转换为正则表达式 - const regexPattern = key.replace(/:\w+/g, "[^/]+"); - const regex = new RegExp(`^${regexPattern}$`); - if (regex.test(routePath)) { - return videoConfig[key]; - } - } - - // 前缀匹配(作为兜底方案) - // 例如:/workspace/auto-like/edit/123 会匹配 /workspace/auto-like - const sortedKeys = routeKeys.sort((a, b) => b.length - a.length); // 按长度降序排列 - for (const key of sortedKeys) { - if (routePath.startsWith(key)) { - return videoConfig[key]; - } - } - - return null; -} - -/** - * 添加或更新视频配置 - * @param route 路由路径 - * @param videoUrl 视频URL - */ -export function setVideoConfig(route: string, videoUrl: string): void { - videoConfig[route] = videoUrl; -} - -/** - * 批量添加视频配置 - * @param config 视频配置对象 - */ -export function setVideoConfigs(config: VideoConfig): void { - Object.assign(videoConfig, config); -} - -/** - * 获取所有视频配置 - * @returns 视频配置对象 - */ -export function getAllVideoConfigs(): VideoConfig { - return { ...videoConfig }; -} - -export default videoConfig; diff --git a/Cunkebao/src/components/FriendSelection/api.ts b/Cunkebao/src/components/FriendSelection/api.ts deleted file mode 100644 index 346253ef..00000000 --- a/Cunkebao/src/components/FriendSelection/api.ts +++ /dev/null @@ -1,11 +0,0 @@ -import request from "@/api/request"; - -// 获取好友列表 -export function getFriendList(params: { - page: number; - limit: number; - deviceIds?: string; // 逗号分隔 - keyword?: string; -}) { - return request("/v1/friend", params, "GET"); -} diff --git a/Cunkebao/src/components/FriendSelection/data.ts b/Cunkebao/src/components/FriendSelection/data.ts deleted file mode 100644 index 434aa641..00000000 --- a/Cunkebao/src/components/FriendSelection/data.ts +++ /dev/null @@ -1,27 +0,0 @@ -export interface FriendSelectionItem { - id: number; - wechatId: string; - nickname: string; - avatar: string; - [key: string]: any; -} - -// 组件属性接口 -export interface FriendSelectionProps { - selectedOptions?: FriendSelectionItem[]; - onSelect: (friends: FriendSelectionItem[]) => void; - deviceIds?: number[]; - enableDeviceFilter?: boolean; - placeholder?: string; - className?: string; - visible?: boolean; // 新增 - onVisibleChange?: (visible: boolean) => void; // 新增 - selectedListMaxHeight?: number; - showInput?: boolean; - showSelectedList?: boolean; - readonly?: boolean; - onConfirm?: ( - selectedIds: number[], - selectedItems: FriendSelectionItem[], - ) => void; // 新增 -} diff --git a/Cunkebao/src/components/FriendSelection/index.module.scss b/Cunkebao/src/components/FriendSelection/index.module.scss deleted file mode 100644 index f450dde2..00000000 --- a/Cunkebao/src/components/FriendSelection/index.module.scss +++ /dev/null @@ -1,246 +0,0 @@ -.inputWrapper { - position: relative; -} -.selectedListRow { - padding: 8px; - border-bottom: 1px solid #f0f0f0; - font-size: 14px; -} -.selectedListRowContent { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - gap: 8px; -} -.selectedListRowContentText { - flex: 1; -} -.inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 20px; -} -.input { - padding-left: 38px !important; - height: 48px; - border-radius: 16px !important; - border: 1px solid #e5e6eb !important; - font-size: 16px; - background: #f8f9fa; -} - -.popupContainer { - display: flex; - flex-direction: column; - height: 100vh; - background: #fff; -} -.popupHeader { - padding: 24px; -} -.popupTitle { - text-align: center; - font-size: 20px; - font-weight: 600; - margin-bottom: 24px; -} -.searchWrapper { - position: relative; - margin-bottom: 16px; -} -.searchInput { - padding-left: 40px !important; - padding-top: 8px !important; - padding-bottom: 8px !important; - border-radius: 24px !important; - border: 1px solid #e5e6eb !important; - font-size: 15px; - background: #f8f9fa; -} -.searchIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 16px; -} -.clearBtn { - position: absolute; - right: 8px; - top: 50%; - transform: translateY(-50%); - height: 24px; - width: 24px; - border-radius: 50%; - min-width: 24px; -} - -.friendList { - flex: 1; - overflow-y: auto; -} -.friendListInner { - border-top: 1px solid #f0f0f0; -} -.friendItem { - display: flex; - align-items: center; - padding: 16px 24px; - border-bottom: 1px solid #f0f0f0; - cursor: pointer; - transition: background 0.2s; - &:hover { - background: #f5f6fa; - } -} -.radioWrapper { - margin-right: 12px; - display: flex; - align-items: center; - justify-content: center; -} -.radioSelected { - width: 20px; - height: 20px; - border-radius: 50%; - border: 2px solid #1890ff; - display: flex; - align-items: center; - justify-content: center; -} -.radioUnselected { - width: 20px; - height: 20px; - border-radius: 50%; - border: 2px solid #e5e6eb; - display: flex; - align-items: center; - justify-content: center; -} -.radioDot { - width: 12px; - height: 12px; - border-radius: 50%; - background: #1890ff; -} -.friendInfo { - display: flex; - align-items: center; - gap: 12px; - flex: 1; -} -.friendAvatar { - width: 40px; - height: 40px; - border-radius: 50%; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - display: flex; - align-items: center; - justify-content: center; - color: #fff; - font-size: 14px; - font-weight: 500; - overflow: hidden; -} -.avatarImg { - width: 100%; - height: 100%; - object-fit: cover; -} -.friendDetail { - flex: 1; -} -.friendName { - font-weight: 500; - font-size: 16px; - color: #222; - margin-bottom: 2px; -} -.friendId { - font-size: 13px; - color: #888; - margin-bottom: 2px; -} -.friendCustomer { - font-size: 13px; - color: #bdbdbd; -} - -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.loadingText { - color: #888; - font-size: 15px; -} -.emptyBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.emptyText { - color: #888; - font-size: 15px; -} - -.paginationRow { - border-top: 1px solid #f0f0f0; - padding: 16px; - display: flex; - align-items: center; - justify-content: space-between; - background: #fff; -} -.totalCount { - font-size: 14px; - color: #888; -} -.paginationControls { - display: flex; - align-items: center; - gap: 8px; -} -.pageBtn { - padding: 0 8px; - height: 32px; - min-width: 32px; -} -.pageInfo { - font-size: 14px; - color: #222; -} - -.popupFooter { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px; - border-top: 1px solid #f0f0f0; - background: #fff; -} -.selectedCount { - font-size: 14px; - color: #888; -} -.footerBtnGroup { - display: flex; - gap: 12px; -} -.cancelBtn { - padding: 0 24px; - border-radius: 24px; - border: 1px solid #e5e6eb; -} -.confirmBtn { - padding: 0 24px; - border-radius: 24px; -} diff --git a/Cunkebao/src/components/FriendSelection/index.tsx b/Cunkebao/src/components/FriendSelection/index.tsx deleted file mode 100644 index a3745eff..00000000 --- a/Cunkebao/src/components/FriendSelection/index.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import React, { useState } from "react"; -import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; -import { Button, Input } from "antd"; -import { Avatar } from "antd-mobile"; -import style from "./index.module.scss"; -import { FriendSelectionProps } from "./data"; -import SelectionPopup from "./selectionPopup"; - -export default function FriendSelection({ - selectedOptions = [], - onSelect, - deviceIds = [], - enableDeviceFilter = true, - placeholder = "选择微信好友", - className = "", - visible, - onVisibleChange, - selectedListMaxHeight = 300, - showInput = true, - showSelectedList = true, - readonly = false, - onConfirm, -}: FriendSelectionProps) { - const [popupVisible, setPopupVisible] = useState(false); - // 内部弹窗交给 selectionPopup 处理 - - // 受控弹窗逻辑 - const realVisible = visible !== undefined ? visible : popupVisible; - const setRealVisible = (v: boolean) => { - if (onVisibleChange) onVisibleChange(v); - if (visible === undefined) setPopupVisible(v); - }; - - // 打开弹窗 - const openPopup = () => { - if (readonly) return; - setRealVisible(true); - }; - - // 获取显示文本 - const getDisplayText = () => { - if (!selectedOptions || selectedOptions.length === 0) return ""; - return `已选择 ${selectedOptions.length} 个好友`; - }; - - // 删除已选好友 - const handleRemoveFriend = (id: number) => { - if (readonly) return; - onSelect((selectedOptions || []).filter(v => v.id !== id)); - }; - - // 弹窗确认回调 - const handleConfirm = ( - selectedIds: number[], - selectedItems: typeof selectedOptions, - ) => { - onSelect(selectedItems); - if (onConfirm) onConfirm(selectedIds, selectedItems); - setRealVisible(false); - }; - - return ( - <> - {/* 输入框 */} - {showInput && ( -
- } - allowClear={!readonly} - size="large" - readOnly={readonly} - disabled={readonly} - style={ - readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} - } - /> -
- )} - {/* 已选好友列表窗口 */} - {showSelectedList && (selectedOptions || []).length > 0 && ( -
- {(selectedOptions || []).map(friend => ( -
-
- -
-
{friend.nickname || friend.friendName}
-
{friend.wechatId}
-
- {!readonly && ( -
-
- ))} -
- )} - {/* 弹窗 */} - - - ); -} diff --git a/Cunkebao/src/components/FriendSelection/selectionPopup.tsx b/Cunkebao/src/components/FriendSelection/selectionPopup.tsx deleted file mode 100644 index 71020104..00000000 --- a/Cunkebao/src/components/FriendSelection/selectionPopup.tsx +++ /dev/null @@ -1,245 +0,0 @@ -import React, { useCallback, useEffect, useState } from "react"; -import { Popup, Checkbox } from "antd-mobile"; -import Layout from "@/components/Layout/Layout"; -import PopupHeader from "@/components/PopuLayout/header"; -import PopupFooter from "@/components/PopuLayout/footer"; -import { getFriendList } from "./api"; -import style from "./index.module.scss"; -import type { FriendSelectionItem } from "./data"; - -interface SelectionPopupProps { - visible: boolean; - onVisibleChange: (visible: boolean) => void; - selectedOptions: FriendSelectionItem[]; - onSelect: (friends: FriendSelectionItem[]) => void; - deviceIds?: number[]; - enableDeviceFilter?: boolean; - readonly?: boolean; - onConfirm?: ( - selectedIds: number[], - selectedItems: FriendSelectionItem[], - ) => void; -} - -const SelectionPopup: React.FC = ({ - visible, - onVisibleChange, - selectedOptions, - onSelect, - deviceIds = [], - enableDeviceFilter = true, - readonly = false, - onConfirm, -}) => { - const [friends, setFriends] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalFriends, setTotalFriends] = useState(0); - const [loading, setLoading] = useState(false); - const [tempSelectedOptions, setTempSelectedOptions] = useState< - FriendSelectionItem[] - >([]); - - // 获取好友列表API - const fetchFriends = useCallback( - async (page: number, keyword: string = "") => { - setLoading(true); - try { - const params: any = { - page, - limit: 20, - }; - - if (keyword.trim()) { - params.keyword = keyword.trim(); - } - - if (enableDeviceFilter && deviceIds.length > 0) { - params.deviceIds = deviceIds.join(","); - } - - const response = await getFriendList(params); - if (response && response.list) { - setFriends(response.list); - setTotalFriends(response.total || 0); - setTotalPages(Math.ceil((response.total || 0) / 20)); - } - } catch (error) { - console.error("获取好友列表失败:", error); - } finally { - setLoading(false); - } - }, - [deviceIds, enableDeviceFilter], - ); - - // 处理好友选择 - const handleFriendToggle = (friend: FriendSelectionItem) => { - if (readonly) return; - - const newSelectedFriends = tempSelectedOptions.some(f => f.id === friend.id) - ? tempSelectedOptions.filter(f => f.id !== friend.id) - : tempSelectedOptions.concat(friend); - - setTempSelectedOptions(newSelectedFriends); - }; - - // 全选当前页 - const handleSelectAllCurrentPage = (checked: boolean) => { - if (readonly) return; - - if (checked) { - // 全选:添加当前页面所有未选中的好友 - const currentPageFriends = friends.filter( - friend => !tempSelectedOptions.some(f => f.id === friend.id), - ); - setTempSelectedOptions(prev => [...prev, ...currentPageFriends]); - } else { - // 取消全选:移除当前页面的所有好友 - const currentPageFriendIds = friends.map(f => f.id); - setTempSelectedOptions(prev => - prev.filter(f => !currentPageFriendIds.includes(f.id)), - ); - } - }; - - // 检查当前页是否全选 - const isCurrentPageAllSelected = - friends.length > 0 && - friends.every(friend => tempSelectedOptions.some(f => f.id === friend.id)); - - // 确认选择 - const handleConfirm = () => { - if (onConfirm) { - onConfirm( - tempSelectedOptions.map(v => v.id), - tempSelectedOptions, - ); - } - // 更新实际选中的选项 - onSelect(tempSelectedOptions); - onVisibleChange(false); - }; - - // 弹窗打开时初始化 - useEffect(() => { - if (visible) { - setCurrentPage(1); - setSearchQuery(""); - // 复制一份selectedOptions到临时变量 - setTempSelectedOptions([...selectedOptions]); - fetchFriends(1, ""); - } - }, [visible, selectedOptions]); // 只在弹窗开启时请求 - - // 搜索防抖(只在弹窗打开且搜索词变化时执行) - useEffect(() => { - if (!visible || searchQuery === "") return; // 弹窗关闭或搜索词为空时不请求 - - const timer = setTimeout(() => { - setCurrentPage(1); - fetchFriends(1, searchQuery); - }, 500); - - return () => clearTimeout(timer); - }, [searchQuery, visible]); - - // 页码变化时请求数据(只在弹窗打开且页码不是1时执行) - useEffect(() => { - if (!visible) return; // 弹窗关闭或第一页时不请求 - fetchFriends(currentPage, searchQuery); - }, [currentPage, visible, searchQuery]); - - return ( - onVisibleChange(false)} - position="bottom" - bodyStyle={{ height: "100vh" }} - > - fetchFriends(currentPage, searchQuery)} - /> - } - footer={ - onVisibleChange(false)} - onConfirm={handleConfirm} - isAllSelected={isCurrentPageAllSelected} - onSelectAll={handleSelectAllCurrentPage} - /> - } - > -
- {loading ? ( -
-
加载中...
-
- ) : friends.length > 0 ? ( -
- {friends.map(friend => ( -
- f.id === friend.id)} - onChange={() => !readonly && handleFriendToggle(friend)} - disabled={readonly} - style={{ marginRight: 12 }} - /> -
-
- {friend.avatar ? ( - {friend.nickname} - ) : ( - friend.nickname.charAt(0) - )} -
-
-
{friend.nickname}
-
- 微信ID: {friend.wechatId} -
- {friend.customer && ( -
- 归属客户: {friend.customer} -
- )} -
-
-
- ))} -
- ) : ( -
-
- {deviceIds.length === 0 - ? "请先选择设备" - : searchQuery - ? `没有找到包含"${searchQuery}"的好友` - : "没有找到好友"} -
-
- )} -
-
-
- ); -}; - -export default SelectionPopup; diff --git a/Cunkebao/src/components/GroupSelection/api.ts b/Cunkebao/src/components/GroupSelection/api.ts deleted file mode 100644 index cda84b81..00000000 --- a/Cunkebao/src/components/GroupSelection/api.ts +++ /dev/null @@ -1,10 +0,0 @@ -import request from "@/api/request"; - -// 获取群组列表 -export function getGroupList(params: { - page: number; - limit: number; - keyword?: string; -}) { - return request("/v1/chatroom", params, "GET"); -} diff --git a/Cunkebao/src/components/GroupSelection/data.ts b/Cunkebao/src/components/GroupSelection/data.ts deleted file mode 100644 index b042b6d3..00000000 --- a/Cunkebao/src/components/GroupSelection/data.ts +++ /dev/null @@ -1,43 +0,0 @@ -// 群组接口类型 -export interface WechatGroup { - id: string; - chatroomId: string; - name: string; - avatar: string; - ownerWechatId: string; - ownerNickname: string; - ownerAvatar: string; -} - -export interface GroupSelectionItem { - id: string; - avatar: string; - chatroomId?: string; - createTime?: number; - identifier?: string; - name: string; - ownerAlias?: string; - ownerAvatar?: string; - ownerNickname?: string; - ownerWechatId?: string; - [key: string]: any; -} - -// 组件属性接口 -export interface GroupSelectionProps { - selectedOptions: GroupSelectionItem[]; - onSelect: (groups: GroupSelectionItem[]) => void; - onSelectDetail?: (groups: WechatGroup[]) => void; - placeholder?: string; - className?: string; - visible?: boolean; - onVisibleChange?: (visible: boolean) => void; - selectedListMaxHeight?: number; - showInput?: boolean; - showSelectedList?: boolean; - readonly?: boolean; - onConfirm?: ( - selectedIds: string[], - selectedItems: GroupSelectionItem[], - ) => void; // 新增 -} diff --git a/Cunkebao/src/components/GroupSelection/index.module.scss b/Cunkebao/src/components/GroupSelection/index.module.scss deleted file mode 100644 index bedba3ef..00000000 --- a/Cunkebao/src/components/GroupSelection/index.module.scss +++ /dev/null @@ -1,206 +0,0 @@ -.inputWrapper { - position: relative; -} -.inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 20px; -} -.input { - padding-left: 38px !important; - height: 48px; - border-radius: 16px !important; - border: 1px solid #e5e6eb !important; - font-size: 16px; - background: #f8f9fa; -} -.selectedListRow { - padding: 8px; - border-bottom: 1px solid #f0f0f0; - font-size: 14px; -} -.selectedListRowContent { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - gap: 8px; -} -.selectedListRowContentText { - flex: 1; -} - -.popupContainer { - display: flex; - flex-direction: column; - height: 100vh; - background: #fff; -} -.popupHeader { - padding: 24px; -} -.popupTitle { - text-align: center; - font-size: 20px; - font-weight: 600; - margin-bottom: 24px; -} -.searchWrapper { - position: relative; - margin-bottom: 16px; -} -.searchInput { - padding-left: 40px !important; - padding-top: 8px !important; - padding-bottom: 8px !important; - border-radius: 24px !important; - border: 1px solid #e5e6eb !important; - font-size: 15px; - background: #f8f9fa; -} -.searchIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 16px; -} -.clearBtn { - position: absolute; - right: 8px; - top: 50%; - transform: translateY(-50%); - height: 24px; - width: 24px; - border-radius: 50%; - min-width: 24px; -} - -.groupList { - flex: 1; - overflow-y: auto; -} -.groupListInner { - border-top: 1px solid #f0f0f0; -} -.groupItem { - display: flex; - align-items: center; - padding: 16px 24px; - border-bottom: 1px solid #f0f0f0; - transition: background 0.2s; - &:hover { - background: #f5f6fa; - } -} -.groupInfo { - display: flex; - align-items: center; - gap: 12px; - flex: 1; -} -.groupAvatar { - width: 40px; - height: 40px; - border-radius: 50%; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - display: flex; - align-items: center; - justify-content: center; - color: #fff; - font-size: 14px; - font-weight: 500; - overflow: hidden; -} -.avatarImg { - width: 100%; - height: 100%; - object-fit: cover; -} -.groupDetail { - flex: 1; -} -.groupName { - font-weight: 500; - font-size: 16px; - color: #222; - margin-bottom: 2px; -} -.groupId { - font-size: 13px; - color: #888; - margin-bottom: 2px; -} -.groupOwner { - font-size: 13px; - color: #bdbdbd; -} - -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.loadingText { - color: #888; - font-size: 15px; -} -.emptyBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.emptyText { - color: #888; - font-size: 15px; -} - -.paginationRow { - border-top: 1px solid #f0f0f0; - padding: 16px; - display: flex; - align-items: center; - justify-content: space-between; - background: #fff; -} -.totalCount { - font-size: 14px; - color: #888; -} -.paginationControls { - display: flex; - align-items: center; - gap: 8px; -} -.pageBtn { - padding: 0 8px; - height: 32px; - min-width: 32px; -} -.pageInfo { - font-size: 14px; - color: #222; -} - -.popupFooter { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px; - border-top: 1px solid #f0f0f0; - background: #fff; -} -.selectedCount { - font-size: 14px; - color: #888; -} -.footerBtnGroup { - display: flex; - gap: 12px; -} diff --git a/Cunkebao/src/components/GroupSelection/index.tsx b/Cunkebao/src/components/GroupSelection/index.tsx deleted file mode 100644 index fe180054..00000000 --- a/Cunkebao/src/components/GroupSelection/index.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import React, { useState } from "react"; -import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; -import { Button, Input } from "antd"; -import { Avatar } from "antd-mobile"; -import style from "./index.module.scss"; -import SelectionPopup from "./selectionPopup"; -import { GroupSelectionProps } from "./data"; -export default function GroupSelection({ - selectedOptions, - onSelect, - onSelectDetail, - placeholder = "选择群聊", - className = "", - visible, - onVisibleChange, - selectedListMaxHeight = 300, - showInput = true, - showSelectedList = true, - readonly = false, - onConfirm, -}: GroupSelectionProps) { - const [popupVisible, setPopupVisible] = useState(false); - - // 删除已选群聊 - const handleRemoveGroup = (id: string) => { - if (readonly) return; - onSelect(selectedOptions.filter(g => g.id !== id)); - }; - - // 受控弹窗逻辑 - const realVisible = visible !== undefined ? visible : popupVisible; - const setRealVisible = (v: boolean) => { - if (onVisibleChange) onVisibleChange(v); - if (visible === undefined) setPopupVisible(v); - }; - - // 打开弹窗 - const openPopup = () => { - if (readonly) return; - setRealVisible(true); - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedOptions.length === 0) return ""; - return `已选择 ${selectedOptions.length} 个群聊`; - }; - - return ( - <> - {/* 输入框 */} - {showInput && ( -
- } - allowClear={!readonly} - size="large" - readOnly={readonly} - disabled={readonly} - style={ - readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} - } - /> -
- )} - {/* 已选群聊列表窗口 */} - {showSelectedList && selectedOptions.length > 0 && ( -
- {selectedOptions.map(group => ( -
-
- -
-
{group.name}
-
{group.chatroomId}
-
- {!readonly && ( -
-
- ))} -
- )} - {/* 弹窗 */} - - - ); -} diff --git a/Cunkebao/src/components/GroupSelection/selectionPopup.tsx b/Cunkebao/src/components/GroupSelection/selectionPopup.tsx deleted file mode 100644 index 8bf39cd6..00000000 --- a/Cunkebao/src/components/GroupSelection/selectionPopup.tsx +++ /dev/null @@ -1,257 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Popup, Checkbox } from "antd-mobile"; - -import { getGroupList } from "./api"; -import style from "./index.module.scss"; -import Layout from "@/components/Layout/Layout"; -import PopupHeader from "@/components/PopuLayout/header"; -import PopupFooter from "@/components/PopuLayout/footer"; -import { GroupSelectionItem } from "./data"; -// 群组接口类型 -interface WechatGroup { - id: string; - name: string; - avatar: string; - chatroomId?: string; - ownerWechatId?: string; - ownerNickname?: string; - ownerAvatar?: string; -} - -// 弹窗属性接口 -interface SelectionPopupProps { - visible: boolean; - onVisibleChange: (visible: boolean) => void; - selectedOptions: GroupSelectionItem[]; - onSelect: (groups: GroupSelectionItem[]) => void; - onSelectDetail?: (groups: WechatGroup[]) => void; - readonly?: boolean; - onConfirm?: ( - selectedIds: string[], - selectedItems: GroupSelectionItem[], - ) => void; -} - -export default function SelectionPopup({ - visible, - onVisibleChange, - selectedOptions, - onSelect, - onSelectDetail, - readonly = false, - onConfirm, -}: SelectionPopupProps) { - const [groups, setGroups] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalGroups, setTotalGroups] = useState(0); - const [loading, setLoading] = useState(false); - const [tempSelectedOptions, setTempSelectedOptions] = useState< - GroupSelectionItem[] - >([]); - - // 获取群聊列表API - const fetchGroups = async (page: number, keyword: string = "") => { - setLoading(true); - try { - const params: any = { - page, - limit: 20, - }; - - if (keyword.trim()) { - params.keyword = keyword.trim(); - } - - const response = await getGroupList(params); - if (response && response.list) { - setGroups(response.list); - setTotalGroups(response.total || 0); - setTotalPages(Math.ceil((response.total || 0) / 20)); - } - } catch (error) { - console.error("获取群聊列表失败:", error); - } finally { - setLoading(false); - } - }; - - // 处理群聊选择 - const handleGroupToggle = (group: GroupSelectionItem) => { - if (readonly) return; - - const newSelectedGroups = tempSelectedOptions.some(g => g.id === group.id) - ? tempSelectedOptions.filter(g => g.id !== group.id) - : tempSelectedOptions.concat(group); - - setTempSelectedOptions(newSelectedGroups); - }; - - // 全选当前页 - const handleSelectAllCurrentPage = (checked: boolean) => { - if (readonly) return; - - if (checked) { - // 全选:添加当前页面所有未选中的群组 - const currentPageGroups = groups.filter( - group => !tempSelectedOptions.some(g => g.id === group.id), - ); - setTempSelectedOptions(prev => [...prev, ...currentPageGroups]); - } else { - // 取消全选:移除当前页面的所有群组 - const currentPageGroupIds = groups.map(g => g.id); - setTempSelectedOptions(prev => - prev.filter(g => !currentPageGroupIds.includes(g.id)), - ); - } - }; - - // 检查当前页是否全选 - const isCurrentPageAllSelected = - groups.length > 0 && - groups.every(group => tempSelectedOptions.some(g => g.id === group.id)); - - // 确认选择 - const handleConfirm = () => { - // 用户点击确认时,才更新实际的selectedOptions - onSelect(tempSelectedOptions); - - // 如果有 onSelectDetail 回调,传递完整的群聊对象 - if (onSelectDetail) { - const selectedGroupObjs = groups.filter(group => - tempSelectedOptions.some(g => g.id === group.id), - ); - onSelectDetail(selectedGroupObjs); - } - - if (onConfirm) { - onConfirm( - tempSelectedOptions.map(g => g.id), - tempSelectedOptions, - ); - } - onVisibleChange(false); - }; - - // 弹窗打开时初始化数据(只执行一次) - useEffect(() => { - if (visible) { - setCurrentPage(1); - setSearchQuery(""); - // 复制一份selectedOptions到临时变量 - setTempSelectedOptions([...selectedOptions]); - fetchGroups(1, ""); - } else { - // 弹窗关闭时重置状态 - setTempSelectedOptions([]); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [visible]); - - // 搜索防抖(只在弹窗打开且搜索词变化时执行) - useEffect(() => { - if (!visible || searchQuery === "") return; - - const timer = setTimeout(() => { - setCurrentPage(1); - fetchGroups(1, searchQuery); - }, 500); - - return () => clearTimeout(timer); - }, [searchQuery, visible]); - - // 页码变化时请求数据(只在弹窗打开且页码不是1时执行) - useEffect(() => { - if (!visible) return; - fetchGroups(currentPage, searchQuery); - }, [currentPage, visible, searchQuery]); - - return ( - onVisibleChange(false)} - position="bottom" - bodyStyle={{ height: "100vh" }} - > - fetchGroups(currentPage, searchQuery)} - /> - } - footer={ - onVisibleChange(false)} - onConfirm={handleConfirm} - isAllSelected={isCurrentPageAllSelected} - onSelectAll={handleSelectAllCurrentPage} - /> - } - > -
- {loading ? ( -
-
加载中...
-
- ) : groups.length > 0 ? ( -
- {groups.map(group => ( -
- g.id === group.id)} - onChange={() => !readonly && handleGroupToggle(group)} - disabled={readonly} - style={{ marginRight: 12 }} - /> -
-
- {group.avatar ? ( - {group.name} - ) : ( - group.name.charAt(0) - )} -
-
-
{group.name}
-
- 群ID: {group.chatroomId} -
- {group.ownerNickname && ( -
- 群主: {group.ownerNickname} -
- )} -
-
-
- ))} -
- ) : ( -
-
- {searchQuery - ? `没有找到包含"${searchQuery}"的群聊` - : "没有找到群聊"} -
-
- )} -
-
-
- ); -} diff --git a/Cunkebao/src/components/GroupSelectionWithMembers/index.module.scss b/Cunkebao/src/components/GroupSelectionWithMembers/index.module.scss deleted file mode 100644 index 75e5a2ec..00000000 --- a/Cunkebao/src/components/GroupSelectionWithMembers/index.module.scss +++ /dev/null @@ -1,329 +0,0 @@ -.container { - width: 100%; -} - -.inputWrapper { - position: relative; - margin-bottom: 12px; - - .inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 20px; - z-index: 1; - pointer-events: none; - } - - .input { - padding-left: 38px !important; - height: 48px; - border-radius: 16px !important; - border: 1px solid #e5e6eb !important; - font-size: 16px; - background: #f8f9fa; - } - - .clearBtn { - position: absolute; - right: 12px; - top: 50%; - transform: translateY(-50%); - color: #999; - font-size: 16px; - z-index: 1; - } -} - -.selectedGroupsList { - display: flex; - flex-direction: column; - gap: 16px; -} - -.groupCard { - background: #fff; - border-radius: 12px; - padding: 16px; - border: 1px solid #e5e6eb; -} - -.groupHeader { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 16px; -} - -.groupInfo { - display: flex; - align-items: center; - gap: 12px; - flex: 1; - min-width: 0; -} - -.groupAvatar { - width: 48px; - height: 48px; - border-radius: 8px; - flex-shrink: 0; -} - -.groupDetails { - flex: 1; - min-width: 0; -} - -.groupName { - font-size: 16px; - font-weight: 500; - color: #222; - margin-bottom: 4px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.groupId { - font-size: 14px; - color: #888; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.deleteGroupBtn { - color: #ff4d4f; - font-size: 18px; - padding: 4px; - min-width: auto; - height: auto; -} - -.membersSection { - padding-top: 16px; - border-top: 1px solid #f0f0f0; -} - -.membersLabel { - font-size: 14px; - color: #666; - margin-bottom: 12px; - font-weight: 500; -} - -.membersList { - display: flex; - flex-wrap: wrap; - gap: 12px; -} - -.memberItem { - display: flex; - flex-direction: column; - align-items: center; - gap: 8px; - position: relative; - width: 70px; -} - -.memberAvatar { - width: 56px; - height: 56px; - border-radius: 50%; - position: relative; -} - -.removeMemberBtn { - position: absolute; - top: -4px; - right: -4px; - width: 20px; - height: 20px; - min-width: 20px; - padding: 0; - background: #fff; - border: 1px solid #e5e6eb; - border-radius: 50%; - color: #ff4d4f; - font-size: 12px; - display: flex; - align-items: center; - justify-content: center; - z-index: 1; -} - -.memberName { - font-size: 12px; - color: #222; - text-align: center; - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.addMemberBtn { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 56px; - height: 56px; - border: 1px dashed #d9d9d9; - border-radius: 50%; - background: #fafafa; - color: #999; - font-size: 20px; - cursor: pointer; - transition: all 0.2s; - gap: 4px; - - span { - font-size: 12px; - } - - &:active { - background: #f0f0f0; - border-color: #1677ff; - color: #1677ff; - } -} - -.memberSelectionPopup { - display: flex; - flex-direction: column; - height: 100%; - background: #fff; -} - -.popupHeader { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - border-bottom: 1px solid #f0f0f0; -} - -.popupTitle { - font-size: 18px; - font-weight: 600; - color: #222; -} - -.closeBtn { - color: #1677ff; - font-size: 16px; -} - -.searchBox { - padding: 12px 20px; - border-bottom: 1px solid #f0f0f0; - background: #fff; - display: flex; - align-items: center; - gap: 8px; -} - -.searchInputWrapper { - flex: 1; - position: relative; - display: flex; - align-items: center; -} - -.searchInput { - flex: 1; - background: #f5f5f5; - border-radius: 8px; - padding: 8px 12px; - font-size: 14px; -} - -.clearSearchBtn { - position: absolute; - right: 8px; - width: 20px; - height: 20px; - min-width: 20px; - padding: 0; - color: #999; - display: flex; - align-items: center; - justify-content: center; -} - -.searchBtn { - min-width: 60px; - height: 32px; -} - -.memberList { - flex: 1; - overflow-y: auto; - padding: 16px 20px; -} - -.memberListItem { - display: flex; - align-items: center; - gap: 12px; - padding: 12px 0; - border-bottom: 1px solid #f5f5f5; - cursor: pointer; - - &:last-child { - border-bottom: none; - } - - &.selected { - .memberListItemName { - color: #1677ff; - } - } -} - -.memberListItemAvatar { - width: 40px; - height: 40px; - border-radius: 50%; -} - -.memberListItemName { - flex: 1; - font-size: 16px; - color: #222; -} - -.checkmark { - color: #1677ff; - font-size: 18px; - font-weight: bold; -} - -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - padding: 40px 20px; -} - -.loadingText { - font-size: 14px; - color: #999; -} - -.emptyBox { - display: flex; - align-items: center; - justify-content: center; - padding: 40px 20px; -} - -.emptyText { - font-size: 14px; - color: #999; -} diff --git a/Cunkebao/src/components/GroupSelectionWithMembers/index.tsx b/Cunkebao/src/components/GroupSelectionWithMembers/index.tsx deleted file mode 100644 index ec7114d1..00000000 --- a/Cunkebao/src/components/GroupSelectionWithMembers/index.tsx +++ /dev/null @@ -1,438 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { SearchOutlined, DeleteOutlined, PlusOutlined, CloseOutlined } from "@ant-design/icons"; -import { Button, Input, Popup } from "antd-mobile"; -import { Avatar } from "antd-mobile"; -import style from "./index.module.scss"; -import GroupSelection from "../GroupSelection"; -import { GroupSelectionItem } from "../GroupSelection/data"; -import request from "@/api/request"; - -// 群成员接口 -export interface GroupMember { - id: string; - nickname: string; - wechatId: string; - avatar: string; - gender?: "male" | "female"; - role?: "owner" | "admin" | "member"; -} - -// 带成员的群选项 -export interface GroupWithMembers extends GroupSelectionItem { - members?: GroupMember[]; - groupId?: string; // 用于关联成员和群 -} - -interface GroupSelectionWithMembersProps { - selectedGroups: GroupWithMembers[]; - onSelect: (groups: GroupWithMembers[]) => void; - placeholder?: string; - className?: string; - readonly?: boolean; -} - -// 获取群成员列表 -const getGroupMembers = async ( - groupId: string, - page: number = 1, - limit: number = 100, - keyword: string = "", -): Promise => { - try { - const params: any = { - page, - limit, - groupId, - }; - if (keyword.trim()) { - params.keyword = keyword.trim(); - } - const response = await request("/v1/kefu/wechatChatroom/members", params, "GET"); - // request 拦截器会返回 res.data.data ?? res.data - // 对于 { code: 200, data: { list: [...] } } 的返回,拦截器会返回 { list: [...] } - const memberList = response?.list || response?.data?.list || []; - - // 映射接口返回的数据结构到我们的接口 - return memberList.map((item: any) => ({ - id: String(item.id), - nickname: item.nickname || "", - wechatId: item.wechatId || "", - avatar: item.avatar || "", - gender: undefined, // 接口未返回,暂时设为 undefined - role: undefined, // 接口未返回,暂时设为 undefined - })); - } catch (error) { - console.error("获取群成员失败:", error); - return []; - } -}; - -const GroupSelectionWithMembers: React.FC = ({ - selectedGroups, - onSelect, - placeholder = "选择聊天群", - className = "", - readonly = false, -}) => { - const [groupSelectionVisible, setGroupSelectionVisible] = useState(false); - const [memberSelectionVisible, setMemberSelectionVisible] = useState<{ - visible: boolean; - groupId: string; - }>({ visible: false, groupId: "" }); - const [allMembers, setAllMembers] = useState>({}); - const [selectedMembers, setSelectedMembers] = useState>({}); - const [loadingMembers, setLoadingMembers] = useState(false); - const [memberSearchKeyword, setMemberSearchKeyword] = useState(""); - // 存储完整成员列表(用于搜索时切换回完整列表) - const [fullMembersCache, setFullMembersCache] = useState>({}); - - // 处理群选择 - const handleGroupSelect = (groups: GroupSelectionItem[]) => { - const groupsWithMembers: GroupWithMembers[] = groups.map(group => { - const existing = selectedGroups.find(g => g.id === group.id); - return { - ...group, - members: existing?.members || [], - }; - }); - onSelect(groupsWithMembers); - setGroupSelectionVisible(false); - }; - - // 删除群 - const handleRemoveGroup = (groupId: string) => { - if (readonly) return; - const newGroups = selectedGroups.filter(g => g.id !== groupId); - const newSelectedMembers = { ...selectedMembers }; - delete newSelectedMembers[groupId]; - setSelectedMembers(newSelectedMembers); - onSelect(newGroups); - }; - - // 打开成员选择弹窗 - const handleOpenMemberSelection = async (groupId: string) => { - if (readonly) return; - setMemberSelectionVisible({ visible: true, groupId }); - setMemberSearchKeyword(""); // 重置搜索关键词 - - // 如果还没有加载过该群的成员列表,则加载所有成员(不使用搜索关键词) - if (!allMembers[groupId] && !fullMembersCache[groupId]) { - setLoadingMembers(true); - try { - const members = await getGroupMembers(groupId, 1, 100, ""); - setAllMembers(prev => ({ ...prev, [groupId]: members })); - setFullMembersCache(prev => ({ ...prev, [groupId]: members })); // 缓存完整列表 - } catch (error) { - console.error("加载群成员失败:", error); - } finally { - setLoadingMembers(false); - } - } else if (fullMembersCache[groupId] && !allMembers[groupId]) { - // 如果有缓存但没有显示列表,恢复完整列表 - setAllMembers(prev => ({ ...prev, [groupId]: fullMembersCache[groupId] })); - } - }; - - // 关闭成员选择弹窗 - const handleCloseMemberSelection = () => { - setMemberSelectionVisible({ visible: false, groupId: "" }); - setMemberSearchKeyword(""); // 重置搜索关键词 - }; - - // 手动触发搜索 - const handleSearchMembers = async () => { - const groupId = memberSelectionVisible.groupId; - if (!groupId) return; - - const keyword = memberSearchKeyword.trim(); - - // 如果搜索关键词为空,使用缓存的完整列表 - if (!keyword) { - if (fullMembersCache[groupId] && fullMembersCache[groupId].length > 0) { - setAllMembers(prev => ({ ...prev, [groupId]: fullMembersCache[groupId] })); - } - return; - } - - // 有搜索关键词时,调用 API 搜索 - setLoadingMembers(true); - try { - const members = await getGroupMembers(groupId, 1, 100, keyword); - setAllMembers(prev => ({ ...prev, [groupId]: members })); - } catch (error) { - console.error("搜索群成员失败:", error); - } finally { - setLoadingMembers(false); - } - }; - - // 清空搜索 - const handleClearSearch = () => { - setMemberSearchKeyword(""); - const groupId = memberSelectionVisible.groupId; - if (groupId && fullMembersCache[groupId] && fullMembersCache[groupId].length > 0) { - setAllMembers(prev => ({ ...prev, [groupId]: fullMembersCache[groupId] })); - } - }; - - // 选择成员 - const handleSelectMember = (groupId: string, member: GroupMember) => { - if (readonly) return; - const currentMembers = selectedMembers[groupId] || []; - const isSelected = currentMembers.some(m => m.id === member.id); - - let newSelectedMembers = { ...selectedMembers }; - if (isSelected) { - newSelectedMembers[groupId] = currentMembers.filter(m => m.id !== member.id); - } else { - newSelectedMembers[groupId] = [...currentMembers, member]; - } - setSelectedMembers(newSelectedMembers); - - // 更新群数据 - const updatedGroups = selectedGroups.map(group => { - if (group.id === groupId) { - return { - ...group, - members: newSelectedMembers[groupId] || [], - }; - } - return group; - }); - onSelect(updatedGroups); - }; - - // 移除成员 - const handleRemoveMember = (groupId: string, memberId: string) => { - if (readonly) return; - const currentMembers = selectedMembers[groupId] || []; - const newMembers = currentMembers.filter(m => m.id !== memberId); - - const newSelectedMembers = { ...selectedMembers }; - newSelectedMembers[groupId] = newMembers; - setSelectedMembers(newSelectedMembers); - - // 更新群数据 - const updatedGroups = selectedGroups.map(group => { - if (group.id === groupId) { - return { - ...group, - members: newMembers, - }; - } - return group; - }); - onSelect(updatedGroups); - }; - - // 同步 selectedGroups 到 selectedMembers - useEffect(() => { - const membersMap: Record = {}; - selectedGroups.forEach(group => { - if (group.members && group.members.length > 0) { - membersMap[group.id] = group.members; - } - }); - setSelectedMembers(membersMap); - }, [selectedGroups.length]); - - // 获取显示文本 - const getDisplayText = () => { - if (selectedGroups.length === 0) return ""; - return `已选择${selectedGroups.length}个群聊`; - }; - - const currentGroupMembers = allMembers[memberSelectionVisible.groupId] || []; - const currentSelectedMembers = selectedMembers[memberSelectionVisible.groupId] || []; - - return ( -
- {/* 输入框 */} -
!readonly && setGroupSelectionVisible(true)} - > - - - {!readonly && selectedGroups.length > 0 && ( - - )} -
- - {/* 已选群列表 */} - {selectedGroups.length > 0 && ( -
- {selectedGroups.map(group => ( -
- {/* 群信息 */} -
-
- -
-
{group.name}
-
ID: {group.chatroomId || group.id}
-
-
- {!readonly && ( - - )} -
- - {/* 成员选择区域 */} -
-
- 采集群内指定成员 ({group.members?.length || 0}人) -
-
- {group.members?.map(member => ( -
- -
{member.nickname}
- {!readonly && ( - - )} -
- ))} - {!readonly && ( -
handleOpenMemberSelection(group.id)} - > - - 添加 -
- )} -
-
-
- ))} -
- )} - - {/* 群选择弹窗 */} - - - {/* 成员选择弹窗 */} - -
-
-
选择成员
- -
-
-
- setMemberSearchKeyword(val)} - onEnterPress={handleSearchMembers} - className={style.searchInput} - /> - {memberSearchKeyword && ( - - )} -
- -
-
- {loadingMembers ? ( -
-
加载中...
-
- ) : currentGroupMembers.length > 0 ? ( - currentGroupMembers.map(member => { - const isSelected = currentSelectedMembers.some(m => m.id === member.id); - return ( -
handleSelectMember(memberSelectionVisible.groupId, member)} - > - -
{member.nickname}
- {isSelected &&
} -
- ); - }) - ) : ( -
-
暂无成员数据
-
- )} -
-
-
-
- ); -}; - -export default GroupSelectionWithMembers; diff --git a/Cunkebao/src/components/InfiniteList/InfiniteList.module.scss b/Cunkebao/src/components/InfiniteList/InfiniteList.module.scss deleted file mode 100644 index a78dbf9e..00000000 --- a/Cunkebao/src/components/InfiniteList/InfiniteList.module.scss +++ /dev/null @@ -1,87 +0,0 @@ -.listContainer { - display: flex; - flex-direction: column; - overflow: hidden; - position: relative; -} - -.listItem { - flex-shrink: 0; - width: 100%; -} - -.loadMoreButtonContainer { - display: flex; - justify-content: center; - align-items: center; - padding: 16px; - flex-shrink: 0; -} - -.noMoreText { - text-align: center; - color: #999; - font-size: 14px; - padding: 16px; - flex-shrink: 0; -} - -.emptyState { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 60px 20px; - color: #999; - flex: 1; - min-height: 200px; -} - -.emptyIcon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; -} - -.emptyText { - font-size: 14px; - color: #999; -} - -.pullToRefresh { - height: 100%; - overflow: auto; -} - -// 自定义滚动条样式 -.listContainer::-webkit-scrollbar { - width: 4px; -} - -.listContainer::-webkit-scrollbar-track { - background: transparent; -} - -.listContainer::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.1); - border-radius: 2px; -} - -.listContainer::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, 0.2); -} - -// 响应式设计 -@media (max-width: 768px) { - .listContainer { - padding: 0 8px; - } - - .loadMoreButtonContainer { - padding: 12px; - } - - .noMoreText { - padding: 12px; - } -} diff --git a/Cunkebao/src/components/InfiniteList/InfiniteList.tsx b/Cunkebao/src/components/InfiniteList/InfiniteList.tsx deleted file mode 100644 index 56e7369b..00000000 --- a/Cunkebao/src/components/InfiniteList/InfiniteList.tsx +++ /dev/null @@ -1,195 +0,0 @@ -import React, { useState, useEffect, useRef, useCallback } from "react"; -import { - PullToRefresh, - InfiniteScroll, - Button, - SpinLoading, -} from "antd-mobile"; -import styles from "./InfiniteList.module.scss"; - -interface InfiniteListProps { - // 数据相关 - data: T[]; - loading?: boolean; - hasMore?: boolean; - loadingText?: string; - noMoreText?: string; - - // 渲染相关 - renderItem: (item: T, index: number) => React.ReactNode; - keyExtractor?: (item: T, index: number) => string | number; - - // 事件回调 - onLoadMore?: () => Promise | void; - onRefresh?: () => Promise | void; - - // 样式相关 - className?: string; - itemClassName?: string; - containerStyle?: React.CSSProperties; - - // 功能开关 - enablePullToRefresh?: boolean; - enableInfiniteScroll?: boolean; - enableLoadMoreButton?: boolean; - - // 自定义高度 - height?: string | number; - minHeight?: string | number; -} - -const InfiniteList = ({ - data, - loading = false, - hasMore = true, - loadingText = "加载中...", - noMoreText = "没有更多了", - - renderItem, - keyExtractor = (_, index) => index, - - onLoadMore, - onRefresh, - - className = "", - itemClassName = "", - containerStyle = {}, - - enablePullToRefresh = true, - enableInfiniteScroll = true, - enableLoadMoreButton = false, - - height = "100%", - minHeight = "200px", -}: InfiniteListProps) => { - const [refreshing, setRefreshing] = useState(false); - const [loadingMore, setLoadingMore] = useState(false); - const containerRef = useRef(null); - - // 处理下拉刷新 - const handleRefresh = useCallback(async () => { - if (!onRefresh) return; - - setRefreshing(true); - try { - await onRefresh(); - } catch (error) { - console.error("Refresh failed:", error); - } finally { - setRefreshing(false); - } - }, [onRefresh]); - - // 处理加载更多 - const handleLoadMore = useCallback(async () => { - if (!onLoadMore || loadingMore || !hasMore) return; - - setLoadingMore(true); - try { - await onLoadMore(); - } catch (error) { - console.error("Load more failed:", error); - } finally { - setLoadingMore(false); - } - }, [onLoadMore, loadingMore, hasMore]); - - // 点击加载更多按钮 - const handleLoadMoreClick = useCallback(() => { - handleLoadMore(); - }, [handleLoadMore]); - - // 容器样式 - const containerStyles: React.CSSProperties = { - height, - minHeight, - ...containerStyle, - }; - - // 渲染列表项 - const renderListItems = () => { - return data.map((item, index) => ( -
- {renderItem(item, index)} -
- )); - }; - - // 渲染加载更多按钮 - const renderLoadMoreButton = () => { - if (!enableLoadMoreButton || !hasMore) return null; - - return ( -
- -
- ); - }; - - // 渲染无更多数据提示 - const renderNoMoreText = () => { - if (hasMore || data.length === 0) return null; - - return
{noMoreText}
; - }; - - // 渲染空状态 - const renderEmptyState = () => { - if (data.length > 0 || loading) return null; - - return ( -
-
📝
-
暂无数据
-
- ); - }; - - const content = ( -
- {renderListItems()} - {renderLoadMoreButton()} - {renderNoMoreText()} - {renderEmptyState()} - - {/* 无限滚动组件 */} - {enableInfiniteScroll && ( - - )} -
- ); - - // 如果启用下拉刷新,包装PullToRefresh - if (enablePullToRefresh && onRefresh) { - return ( - - {content} - - ); - } - - return content; -}; - -export default InfiniteList; diff --git a/Cunkebao/src/components/Layout/Layout.tsx b/Cunkebao/src/components/Layout/Layout.tsx deleted file mode 100644 index 160d993e..00000000 --- a/Cunkebao/src/components/Layout/Layout.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import React, { useEffect } from "react"; -import { SpinLoading } from "antd-mobile"; -import styles from "./layout.module.scss"; - -interface LayoutProps { - loading?: boolean; - children?: React.ReactNode; - header?: React.ReactNode; - footer?: React.ReactNode; -} - -const Layout: React.FC = ({ - children, - header, - footer, - loading = false, -}) => { - // 移动端100vh兼容 - useEffect(() => { - const setRealHeight = () => { - document.documentElement.style.setProperty( - "--real-vh", - `${window.innerHeight * 0.01}px`, - ); - }; - setRealHeight(); - window.addEventListener("resize", setRealHeight); - return () => window.removeEventListener("resize", setRealHeight); - }, []); - - return ( -
- {header &&
{header}
} -
- {loading ? ( -
- -
加载中...
-
- ) : ( - children - )} -
- {footer &&
{footer}
} -
- ); -}; - -export default Layout; diff --git a/Cunkebao/src/components/Layout/LayoutFiexd.tsx b/Cunkebao/src/components/Layout/LayoutFiexd.tsx deleted file mode 100644 index 9a5cefd5..00000000 --- a/Cunkebao/src/components/Layout/LayoutFiexd.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import React from "react"; -import { SpinLoading } from "antd-mobile"; -import styles from "./layout.module.scss"; - -interface LayoutProps { - loading?: boolean; - children?: React.ReactNode; - header?: React.ReactNode; - footer?: React.ReactNode; -} - -const LayoutFiexd: React.FC = ({ - header, - children, - footer, - loading = false, -}) => { - return ( -
-
{header}
-
- {loading ? ( -
- -
加载中...
-
- ) : ( - children - )} -
-
{footer}
-
- ); -}; - -export default LayoutFiexd; diff --git a/Cunkebao/src/components/Layout/layout.module.scss b/Cunkebao/src/components/Layout/layout.module.scss deleted file mode 100644 index 3818f44d..00000000 --- a/Cunkebao/src/components/Layout/layout.module.scss +++ /dev/null @@ -1,28 +0,0 @@ -.container { - display: flex; - height: 100vh; - flex-direction: column; - background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); -} - -.container main { - flex: 1; - overflow: auto; -} - -.loadingContainer { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - height: 100%; - min-height: 300px; - background: rgba(255, 255, 255, 0.8); -} - -.loadingText { - margin-top: 16px; - color: #666; - font-size: 14px; - text-align: center; -} diff --git a/Cunkebao/src/components/LineChart.tsx b/Cunkebao/src/components/LineChart.tsx deleted file mode 100644 index bb93e512..00000000 --- a/Cunkebao/src/components/LineChart.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from "react"; -import ReactECharts from "echarts-for-react"; - -interface LineChartProps { - title?: string; - xData: string[]; - yData: number[]; - height?: number | string; -} - -const LineChart: React.FC = ({ - title = "", - xData, - yData, - height = 200, -}) => { - const option = { - title: { - text: title, - left: "center", - textStyle: { fontSize: 16 }, - }, - tooltip: { trigger: "axis" }, - xAxis: { - type: "category", - data: xData, - boundaryGap: false, - }, - yAxis: { - type: "value", - boundaryGap: ["10%", "10%"], // 上下留白 - min: (value: any) => value.min - 10, // 下方多留一点空间 - max: (value: any) => value.max + 10, // 上方多留一点空间 - minInterval: 1, - axisLabel: { margin: 12 }, - }, - series: [ - { - data: yData, - type: "line", - smooth: true, - symbol: "circle", - lineStyle: { color: "#1677ff" }, - itemStyle: { color: "#1677ff" }, - }, - ], - grid: { left: 40, right: 24, top: 40, bottom: 32 }, - }; - - return ; -}; - -export default LineChart; diff --git a/Cunkebao/src/components/LineChart2.tsx b/Cunkebao/src/components/LineChart2.tsx deleted file mode 100644 index 2a6f401e..00000000 --- a/Cunkebao/src/components/LineChart2.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import React from "react"; -import ReactECharts from "echarts-for-react"; -import { getChartColor } from "@/utils/chartColors"; - -interface LineChartProps { - title?: string; - xData: string[]; - yData: any[]; - height?: number | string; -} - -const LineChart: React.FC = ({ - title = "", - xData, - yData, - height = 200, -}) => { - const option = { - title: { - text: title, - left: "center", - textStyle: { fontSize: 16 }, - }, - tooltip: { trigger: "axis" }, - xAxis: { - type: "category", - data: xData, - boundaryGap: false, - }, - yAxis: { - type: "value", - boundaryGap: ["10%", "10%"], // 上下留白 - min: (value: any) => value.min - 10, // 下方多留一点空间 - max: (value: any) => value.max + 10, // 上方多留一点空间 - minInterval: 1, - axisLabel: { margin: 12 }, - }, - series: [ - ...yData.map((item, index) => { - const color = getChartColor(index); - return { - data: item, - type: "line", - smooth: true, - symbol: "circle", - lineStyle: { color }, - itemStyle: { color }, - }; - }), - ], - grid: { left: 40, right: 24, top: 40, bottom: 32 }, - }; - - return ; -}; - -export default LineChart; diff --git a/Cunkebao/src/components/MeauMobile/MeauMoible.tsx b/Cunkebao/src/components/MeauMobile/MeauMoible.tsx deleted file mode 100644 index da838937..00000000 --- a/Cunkebao/src/components/MeauMobile/MeauMoible.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import React from "react"; -import { TabBar } from "antd-mobile"; -import { PieOutline, UserOutline } from "antd-mobile-icons"; -import { HomeOutlined, TeamOutlined } from "@ant-design/icons"; -import { useNavigate } from "react-router-dom"; - -const tabs = [ - { - key: "home", - title: "首页", - icon: , - path: "/", - }, - { - key: "scenarios", - title: "场景获客", - icon: , - path: "/scenarios", - }, - { - key: "workspace", - title: "工作台", - icon: , - path: "/workspace", - }, - { - key: "mine", - title: "我的", - icon: , - path: "/mine", - }, -]; - -interface MeauMobileProps { - activeKey: string; -} - -const MeauMobile: React.FC = ({ activeKey }) => { - const navigate = useNavigate(); - - return ( - { - const tab = tabs.find(t => t.key === key); - if (tab && tab.path) navigate(tab.path); - }} - > - {tabs.map(item => ( - - ))} - - ); -}; - -export default MeauMobile; diff --git a/Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.module.scss b/Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.module.scss deleted file mode 100644 index 0ff3cbe4..00000000 --- a/Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.module.scss +++ /dev/null @@ -1,154 +0,0 @@ -.twoColumnModal { - .ant-modal-body { - padding: 0; - } -} - -.container { - display: flex; - height: 500px; - border: 1px solid #e8e8e8; -} - -.leftColumn { - flex: 1; - border-right: 1px solid #e8e8e8; - display: flex; - flex-direction: column; -} - -.rightColumn { - width: 300px; - display: flex; - flex-direction: column; - background: #fafafa; -} - -.searchWrapper { - padding: 16px; - border-bottom: 1px solid #e8e8e8; - - .ant-input { - border-radius: 6px; - } -} - -.memberList { - flex: 1; - overflow-y: auto; - padding: 8px 0; -} - -.memberItem { - display: flex; - align-items: center; - padding: 12px 16px; - cursor: pointer; - transition: background-color 0.2s; - - &:hover { - background-color: #f5f5f5; - } - - &.selected { - background-color: #e6f7ff; - } - - .ant-checkbox { - margin-right: 12px; - } -} - -.memberInfo { - margin-left: 12px; - flex: 1; -} - -.memberName { - font-size: 14px; - font-weight: 500; - color: #333; - margin-bottom: 2px; -} - -.memberId { - font-size: 12px; - color: #999; -} - -.selectedHeader { - padding: 16px; - border-bottom: 1px solid #e8e8e8; - font-weight: 500; - color: #333; - background: #fff; - display: flex; - align-items: center; - justify-content: space-between; -} - -.singleTip { - font-size: 12px; - color: #999; - font-weight: normal; -} - -.selectedList { - flex: 1; - overflow-y: auto; - padding: 8px 0; -} - -.selectedItem { - display: flex; - align-items: center; - padding: 8px 16px; - background: #fff; - margin: 4px 8px; - border-radius: 6px; - border: 1px solid #e8e8e8; -} - -.selectedInfo { - margin-left: 8px; - flex: 1; -} - -.selectedName { - font-size: 13px; - color: #333; -} - -.removeBtn { - color: #999; - font-size: 16px; - padding: 0; - width: 20px; - height: 20px; - display: flex; - align-items: center; - justify-content: center; - - &:hover { - color: #ff4d4f; - background: #fff2f0; - } -} - -.empty { - display: flex; - align-items: center; - justify-content: center; - height: 100px; - color: #999; - font-size: 14px; -} - -.emptySelected { - display: flex; - align-items: center; - justify-content: center; - height: 100px; - color: #999; - font-size: 14px; -} \ No newline at end of file diff --git a/Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.tsx b/Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.tsx deleted file mode 100644 index ef276a68..00000000 --- a/Cunkebao/src/components/MemberSelection/TwoColumnMemberSelection.tsx +++ /dev/null @@ -1,185 +0,0 @@ -import React, { useState } from 'react'; -import { Modal, Input, Avatar, Button, Checkbox } from 'antd'; -import { SearchOutlined } from '@ant-design/icons'; -import styles from './TwoColumnMemberSelection.module.scss'; - -interface Member { - id: string; - nickname: string; - avatar: string; -} - -interface TwoColumnMemberSelectionProps { - visible: boolean; - members: Member[]; - onCancel: () => void; - onConfirm: (selectedIds: string[]) => void; - title?: string; - allowMultiple?: boolean; -} - -const TwoColumnMemberSelection: React.FC = ({ - visible, - members, - onCancel, - onConfirm, - title = '选择成员', - allowMultiple = true, -}) => { - const [selectedMembers, setSelectedMembers] = useState([]); - const [searchQuery, setSearchQuery] = useState(''); - - // 过滤成员 - const filteredMembers = members.filter(member => - member.nickname.toLowerCase().includes(searchQuery.toLowerCase()) || - member.id.toLowerCase().includes(searchQuery.toLowerCase()) - ); - - // 处理搜索 - const handleSearch = (value: string) => { - setSearchQuery(value); - }; - - // 选择成员 - const handleSelectMember = (member: Member) => { - const isSelected = selectedMembers.some(m => m.id === member.id); - - if (allowMultiple) { - if (isSelected) { - setSelectedMembers(selectedMembers.filter(m => m.id !== member.id)); - } else { - setSelectedMembers([...selectedMembers, member]); - } - } else { - // 单选模式 - if (isSelected) { - setSelectedMembers([]); - } else { - setSelectedMembers([member]); - } - } - }; - - // 移除已选成员 - const handleRemoveMember = (memberId: string) => { - setSelectedMembers(selectedMembers.filter(m => m.id !== memberId)); - }; - - // 确认选择 - const handleConfirmSelection = () => { - const selectedIds = selectedMembers.map(m => m.id); - onConfirm(selectedIds); - setSelectedMembers([]); - setSearchQuery(''); - }; - - // 取消选择 - const handleCancelSelection = () => { - setSelectedMembers([]); - setSearchQuery(''); - onCancel(); - }; - - return ( - - 取消 - , - , - ]} - className={styles.twoColumnModal} - > -
- {/* 左侧:成员列表 */} -
-
- handleSearch(e.target.value)} - prefix={} - allowClear - /> -
- -
- {filteredMembers.length > 0 ? ( - filteredMembers.map(member => { - const isSelected = selectedMembers.some(m => m.id === member.id); - return ( -
handleSelectMember(member)} - > - - - {member.nickname?.charAt(0)} - -
-
{member.nickname}
-
{member.id}
-
-
- ); - }) - ) : ( -
- {searchQuery ? `没有找到包含"${searchQuery}"的成员` : '暂无成员'} -
- )} -
-
- - {/* 右侧:已选成员 */} -
-
- 已选成员 ({selectedMembers.length}) - {!allowMultiple && (单选)} -
- -
- {selectedMembers.length > 0 ? ( - selectedMembers.map(member => ( -
- - {member.nickname?.charAt(0)} - -
-
{member.nickname}
-
- -
- )) - ) : ( -
- 暂无选择 -
- )} -
-
-
-
- ); -}; - -export default TwoColumnMemberSelection; \ No newline at end of file diff --git a/Cunkebao/src/components/MemberSelection/index.tsx b/Cunkebao/src/components/MemberSelection/index.tsx deleted file mode 100644 index 06c219b1..00000000 --- a/Cunkebao/src/components/MemberSelection/index.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React, { useState } from 'react'; -import { Modal, Checkbox, Avatar, List, Button } from 'antd'; - -interface MemberSelectionProps { - visible: boolean; - members: { id: string; nickname: string; avatar: string }[]; - onCancel: () => void; - onConfirm: (selectedIds: string[]) => void; -} - -const MemberSelection: React.FC = ({ visible, members, onCancel, onConfirm }) => { - const [selectedIds, setSelectedIds] = useState([]); - - const handleToggle = (id: string) => { - const newSelectedIds = selectedIds.includes(id) - ? selectedIds.filter(memberId => memberId !== id) - : [...selectedIds, id]; - setSelectedIds(newSelectedIds); - }; - - const handleConfirm = () => { - onConfirm(selectedIds); - setSelectedIds([]); - }; - - return ( - - ( - handleToggle(member.id)} style={{ cursor: 'pointer' }}> - } - title={member.nickname} - /> - - - )} - /> - - ); -}; - -export default MemberSelection; \ No newline at end of file diff --git a/Cunkebao/src/components/NavCommon/index.tsx b/Cunkebao/src/components/NavCommon/index.tsx deleted file mode 100644 index 5085a6ea..00000000 --- a/Cunkebao/src/components/NavCommon/index.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { NavBar } from "antd-mobile"; -import { ArrowLeftOutlined } from "@ant-design/icons"; -import { useNavigate } from "react-router-dom"; -import { getSafeAreaHeight } from "@/utils/common"; -interface NavCommonProps { - title: string | React.ReactNode; - backFn?: () => void; - right?: React.ReactNode; - left?: React.ReactNode; -} - -const NavCommon: React.FC = ({ - title, - backFn, - right, - left, -}) => { - const navigate = useNavigate(); - const [paddingTop, setPaddingTop] = useState("0px"); - useEffect(() => { - setPaddingTop(getSafeAreaHeight() + "px"); - }, []); - - return ( -
- - { - if (backFn) { - backFn(); - } else { - navigate(-1); - } - }} - /> -
- ) - } - right={right} - > - - {title} - - - - ); -}; - -export default NavCommon; diff --git a/Cunkebao/src/components/PlaceholderPage.tsx b/Cunkebao/src/components/PlaceholderPage.tsx deleted file mode 100644 index 69a8ddde..00000000 --- a/Cunkebao/src/components/PlaceholderPage.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import React from "react"; -import { NavBar, Button } from "antd-mobile"; -import { PlusOutlined } from "@ant-design/icons"; -import Layout from "@/components/Layout/Layout"; - -interface PlaceholderPageProps { - title: string; - showBack?: boolean; - showAddButton?: boolean; - addButtonText?: string; -} - -const PlaceholderPage: React.FC = ({ - title, - showBack = true, - showAddButton = false, - addButtonText = "新建", -}) => { - return ( - window.history.back() : undefined} - left={ -
- {title} -
- } - right={ - showAddButton ? ( - - ) : undefined - } - /> - } - > -
-

{title}页面

-

此页面正在开发中...

-
-
- ); -}; - -export default PlaceholderPage; diff --git a/Cunkebao/src/components/PoolSelection/api.ts b/Cunkebao/src/components/PoolSelection/api.ts deleted file mode 100644 index 552be7e6..00000000 --- a/Cunkebao/src/components/PoolSelection/api.ts +++ /dev/null @@ -1,34 +0,0 @@ -import request from "@/api/request"; - -// 请求参数接口 -export interface Request { - keyword: string; - /** - * 条数 - */ - limit: string; - /** - * 分页 - */ - page: string; - [property: string]: any; -} - -// 获取流量池包列表 -export function getPoolPackages(params: Request) { - return request("/v1/traffic/pool/getPackage", params, "GET"); -} - -// 保留原接口以兼容现有代码 -export function getPoolList(params: { - page?: string; - pageSize?: string; - keyword?: string; - addStatus?: string; - deviceId?: string; - packageId?: string; - userValue?: string; - [property: string]: any; -}) { - return request("/v1/traffic/pool", params, "GET"); -} diff --git a/Cunkebao/src/components/PoolSelection/data.ts b/Cunkebao/src/components/PoolSelection/data.ts deleted file mode 100644 index 95ff55d4..00000000 --- a/Cunkebao/src/components/PoolSelection/data.ts +++ /dev/null @@ -1,61 +0,0 @@ -// 流量池包接口类型 -export interface PoolPackageItem { - id: number; - name: string; - description: string; - createTime: string; - num: number; -} - -// 原流量池接口类型(保留以兼容现有代码) -export interface PoolItem { - id: number; - identifier: string; - mobile: string; - wechatId: string; - fromd: string; - status: number; - createTime: string; - companyId: number; - sourceId: string; - type: number; - nickname: string; - avatar: string; - gender: number; - phone: string; - alias: string; - packages: any[]; - tags: any[]; -} - -export interface PoolSelectionItem { - id: string; - avatar?: string; - name: string; - wechatId?: string; - mobile?: string; - nickname?: string; - createTime?: string; - description?: string; - num?: number; - [key: string]: any; -} - -// 组件属性接口 -export interface PoolSelectionProps { - selectedOptions: PoolSelectionItem[]; - onSelect: (Pools: PoolSelectionItem[]) => void; - onSelectDetail?: (Pools: PoolPackageItem[]) => void; - placeholder?: string; - className?: string; - visible?: boolean; - onVisibleChange?: (visible: boolean) => void; - selectedListMaxHeight?: number; - showInput?: boolean; - showSelectedList?: boolean; - readonly?: boolean; - onConfirm?: ( - selectedIds: string[], - selectedItems: PoolSelectionItem[], - ) => void; -} diff --git a/Cunkebao/src/components/PoolSelection/index.module.scss b/Cunkebao/src/components/PoolSelection/index.module.scss deleted file mode 100644 index f0421ca1..00000000 --- a/Cunkebao/src/components/PoolSelection/index.module.scss +++ /dev/null @@ -1,206 +0,0 @@ -.inputWrapper { - position: relative; -} -.inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 20px; -} -.input { - padding-left: 38px !important; - height: 48px; - border-radius: 16px !important; - border: 1px solid #e5e6eb !important; - font-size: 16px; - background: #f8f9fa; -} -.selectedListRow { - padding: 8px; - border-bottom: 1px solid #f0f0f0; - font-size: 14px; -} -.selectedListRowContent { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - gap: 8px; -} -.selectedListRowContentText { - flex: 1; -} - -.popupContainer { - display: flex; - flex-direction: column; - height: 100vh; - background: #fff; -} -.popupHeader { - padding: 24px; -} -.popupTitle { - text-align: center; - font-size: 20px; - font-weight: 600; - margin-bottom: 24px; -} -.searchWrapper { - position: relative; - margin-bottom: 16px; -} -.searchInput { - padding-left: 40px !important; - padding-top: 8px !important; - padding-bottom: 8px !important; - border-radius: 24px !important; - border: 1px solid #e5e6eb !important; - font-size: 15px; - background: #f8f9fa; -} -.searchIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - font-size: 16px; -} -.clearBtn { - position: absolute; - right: 8px; - top: 50%; - transform: translateY(-50%); - height: 24px; - width: 24px; - border-radius: 50%; - min-width: 24px; -} - -.groupList { - flex: 1; - overflow-y: auto; -} -.groupListInner { - border-top: 1px solid #f0f0f0; -} -.groupItem { - display: flex; - align-items: center; - padding: 16px 24px; - border-bottom: 1px solid #f0f0f0; - transition: background 0.2s; - &:hover { - background: #f5f6fa; - } -} -.groupInfo { - display: flex; - align-items: center; - gap: 12px; - flex: 1; -} -.groupAvatar { - width: 40px; - height: 40px; - border-radius: 8px; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - display: flex; - align-items: center; - justify-content: center; - color: #fff; - font-size: 14px; - font-weight: 500; - overflow: hidden; -} -.avatarImg { - width: 100%; - height: 100%; - object-fit: cover; -} -.groupDetail { - flex: 1; -} -.groupName { - font-weight: 500; - font-size: 16px; - color: #222; - margin-bottom: 2px; -} -.groupId { - font-size: 13px; - color: #888; - margin-bottom: 2px; -} -.groupOwner { - font-size: 13px; - color: #bdbdbd; -} - -.loadingBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.loadingText { - color: #888; - font-size: 15px; -} -.emptyBox { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.emptyText { - color: #888; - font-size: 15px; -} - -.paginationRow { - border-top: 1px solid #f0f0f0; - padding: 16px; - display: flex; - align-items: center; - justify-content: space-between; - background: #fff; -} -.totalCount { - font-size: 14px; - color: #888; -} -.paginationControls { - display: flex; - align-items: center; - gap: 8px; -} -.pageBtn { - padding: 0 8px; - height: 32px; - min-width: 32px; -} -.pageInfo { - font-size: 14px; - color: #222; -} - -.popupFooter { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px; - border-top: 1px solid #f0f0f0; - background: #fff; -} -.selectedCount { - font-size: 14px; - color: #888; -} -.footerBtnGroup { - display: flex; - gap: 12px; -} diff --git a/Cunkebao/src/components/PoolSelection/index.tsx b/Cunkebao/src/components/PoolSelection/index.tsx deleted file mode 100644 index 5118bacd..00000000 --- a/Cunkebao/src/components/PoolSelection/index.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import React, { useState } from "react"; -import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; -import { Button, Input } from "antd"; -import style from "./index.module.scss"; -import SelectionPopup from "./selectionPopup"; -import { PoolSelectionProps } from "./data"; -export default function PoolSelection({ - selectedOptions, - onSelect, - onSelectDetail, - placeholder = "选择流量池", - className = "", - visible, - onVisibleChange, - selectedListMaxHeight = 300, - showInput = true, - showSelectedList = true, - readonly = false, - onConfirm, -}: PoolSelectionProps) { - const [popupVisible, setPopupVisible] = useState(false); - - // 删除已选流量池项 - const handleRemoveItem = (id: string) => { - if (readonly) return; - onSelect(selectedOptions.filter(item => item.id !== id)); - }; - - // 受控弹窗逻辑 - const realVisible = visible !== undefined ? visible : popupVisible; - const setRealVisible = (v: boolean) => { - if (onVisibleChange) onVisibleChange(v); - if (visible === undefined) setPopupVisible(v); - }; - - // 打开弹窗 - const openPopup = () => { - if (readonly) return; - setRealVisible(true); - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedOptions.length === 0) return ""; - return `已选择 ${selectedOptions.length} 个流量池项`; - }; - - return ( - <> - {/* 输入框 */} - {showInput && ( -
- } - allowClear={!readonly} - size="large" - readOnly={readonly} - disabled={readonly} - style={ - readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} - } - /> -
- )} - {/* 已选流量池列表窗口 */} - {showSelectedList && selectedOptions.length > 0 && ( -
- {selectedOptions.map(item => ( -
-
-
- {(item.nickname || item.name || "").charAt(0)} -
-
-
{item.nickname || item.name}
-
{item.wechatId || item.mobile}
-
- {!readonly && ( -
-
- ))} -
- )} - {/* 弹窗 */} - - - ); -} diff --git a/Cunkebao/src/components/PoolSelection/selectionPopup.tsx b/Cunkebao/src/components/PoolSelection/selectionPopup.tsx deleted file mode 100644 index 20d08bec..00000000 --- a/Cunkebao/src/components/PoolSelection/selectionPopup.tsx +++ /dev/null @@ -1,258 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Popup, Checkbox } from "antd-mobile"; - -import { getPoolPackages, Request } from "./api"; -import style from "./index.module.scss"; -import Layout from "@/components/Layout/Layout"; -import PopupHeader from "@/components/PopuLayout/header"; -import PopupFooter from "@/components/PopuLayout/footer"; -import { PoolSelectionItem, PoolPackageItem } from "./data"; - -// 弹窗属性接口 -interface SelectionPopupProps { - visible: boolean; - onVisibleChange: (visible: boolean) => void; - selectedOptions: PoolSelectionItem[]; - onSelect: (items: PoolSelectionItem[]) => void; - onSelectDetail?: (items: PoolPackageItem[]) => void; - readonly?: boolean; - onConfirm?: ( - selectedIds: string[], - selectedItems: PoolSelectionItem[], - ) => void; -} - -export default function SelectionPopup({ - visible, - onVisibleChange, - selectedOptions, - onSelect, - onSelectDetail, - readonly = false, - onConfirm, -}: SelectionPopupProps) { - const [poolPackages, setPoolPackages] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalItems, setTotalItems] = useState(0); - const [loading, setLoading] = useState(false); - const [tempSelectedOptions, setTempSelectedOptions] = useState< - PoolSelectionItem[] - >([]); - - // 获取流量池包列表API - const fetchPoolPackages = async (page: number, keyword: string = "") => { - setLoading(true); - try { - const params: Request = { - page: String(page), - limit: "20", - keyword: keyword.trim(), - }; - - const response = await getPoolPackages(params); - if (response && response.list) { - setPoolPackages(response.list); - setTotalItems(response.total || 0); - setTotalPages(Math.ceil((response.total || 0) / 20)); - } - } catch (error) { - console.error("获取流量池包列表失败:", error); - } finally { - setLoading(false); - } - }; - - // 处理流量池包选择 - const handlePackageToggle = (item: PoolPackageItem) => { - if (readonly) return; - - // 将PoolPackageItem转换为GroupSelectionItem格式 - const selectionItem: PoolSelectionItem = { - id: String(item.id), - name: item.name, - description: item.description, - createTime: item.createTime, - num: item.num, - // 保留原始数据 - originalData: item, - }; - - const newSelectedItems = tempSelectedOptions.some( - g => g.id === String(item.id), - ) - ? tempSelectedOptions.filter(g => g.id !== String(item.id)) - : tempSelectedOptions.concat(selectionItem); - - setTempSelectedOptions(newSelectedItems); - - // 如果有 onSelectDetail 回调,传递完整的流量池包对象 - if (onSelectDetail) { - const selectedItemObjs = poolPackages.filter(packageItem => - newSelectedItems.some(g => g.id === String(packageItem.id)), - ); - onSelectDetail(selectedItemObjs); - } - }; - - // 全选当前页 - const handleSelectAllCurrentPage = (checked: boolean) => { - if (readonly) return; - - if (checked) { - // 全选:添加当前页面所有未选中的流量池包 - const currentPagePackages = poolPackages.filter( - packageItem => - !tempSelectedOptions.some(p => p.id === String(packageItem.id)), - ); - const newSelectionItems = currentPagePackages.map(item => ({ - id: String(item.id), - name: item.name, - description: item.description, - createTime: item.createTime, - num: item.num, - originalData: item, - })); - setTempSelectedOptions(prev => [...prev, ...newSelectionItems]); - } else { - // 取消全选:移除当前页面的所有流量池包 - const currentPagePackageIds = poolPackages.map(p => String(p.id)); - setTempSelectedOptions(prev => - prev.filter(p => !currentPagePackageIds.includes(p.id)), - ); - } - }; - - // 检查当前页是否全选 - const isCurrentPageAllSelected = - poolPackages.length > 0 && - poolPackages.every(packageItem => - tempSelectedOptions.some(p => p.id === String(packageItem.id)), - ); - - // 确认选择 - const handleConfirm = () => { - if (onConfirm) { - onConfirm( - tempSelectedOptions.map(item => item.id), - tempSelectedOptions, - ); - } - // 更新实际选中的选项 - onSelect(tempSelectedOptions); - onVisibleChange(false); - }; - - // 弹窗打开时初始化数据(只执行一次) - useEffect(() => { - if (visible) { - setCurrentPage(1); - setSearchQuery(""); - // 复制一份selectedOptions到临时变量 - setTempSelectedOptions([...selectedOptions]); - fetchPoolPackages(1, ""); - } - }, [visible, selectedOptions]); - - // 搜索防抖(只在弹窗打开且搜索词变化时执行) - useEffect(() => { - if (!visible || searchQuery === "") return; - - const timer = setTimeout(() => { - setCurrentPage(1); - fetchPoolPackages(1, searchQuery); - }, 500); - - return () => clearTimeout(timer); - }, [searchQuery, visible]); - - // 页码变化时请求数据(只在弹窗打开且页码不是1时执行) - useEffect(() => { - if (!visible) return; - fetchPoolPackages(currentPage, searchQuery); - }, [currentPage, visible, searchQuery]); - - return ( - onVisibleChange(false)} - position="bottom" - bodyStyle={{ height: "100vh" }} - > - fetchPoolPackages(currentPage, searchQuery)} - /> - } - footer={ - onVisibleChange(false)} - onConfirm={handleConfirm} - isAllSelected={isCurrentPageAllSelected} - onSelectAll={handleSelectAllCurrentPage} - /> - } - > -
- {loading ? ( -
-
加载中...
-
- ) : poolPackages.length > 0 ? ( -
- {poolPackages.map(item => ( -
- g.id === String(item.id), - )} - onChange={() => !readonly && handlePackageToggle(item)} - disabled={readonly} - style={{ marginRight: 12 }} - /> -
-
- {item.name ? item.name.charAt(0) : "?"} -
-
-
{item.name}
-
- 描述: {item.description || "无描述"} -
-
- 创建时间: {item.createTime} -
-
- 包含数量: {item.num} -
-
-
-
- ))} -
- ) : ( -
-
- {searchQuery - ? `没有找到包含"${searchQuery}"的流量池包` - : "没有找到流量池包"} -
-
- )} -
-
-
- ); -} diff --git a/Cunkebao/src/components/PopuLayout/footer.module.scss b/Cunkebao/src/components/PopuLayout/footer.module.scss deleted file mode 100644 index bd1286f0..00000000 --- a/Cunkebao/src/components/PopuLayout/footer.module.scss +++ /dev/null @@ -1,88 +0,0 @@ -.popupFooter { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px; - border-top: 1px solid #f0f0f0; - background: #fff; -} - -.selectedCount { - font-size: 14px; - color: #666; - display: flex; - align-items: center; - gap: 12px; -} - -.selectAllCheckbox { - margin-right: 0; - - .ant-checkbox-wrapper { - font-size: 14px; - } - - &.ant-checkbox-wrapper-disabled { - .ant-checkbox-disabled + span { - color: #d9d9d9; - } - } -} - -.footerBtnGroup { - display: flex; - gap: 12px; -} - -.paginationRow { - border-top: 1px solid #f0f0f0; - padding: 16px; - display: flex; - align-items: center; - justify-content: space-between; - background: #fff; -} - -.totalCount { - font-size: 14px; - color: #888; -} - -.paginationControls { - display: flex; - align-items: center; - gap: 8px; -} - -.pageBtn { - padding: 0 8px; - height: 32px; - min-width: 32px; - border-radius: 16px; - border: 1px solid #d9d9d9; - color: #333; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - transition: all 0.2s; - - &:hover:not(:disabled) { - border-color: #1677ff; - color: #1677ff; - } - - &:disabled { - background: #f5f5f5; - color: #ccc; - cursor: not-allowed; - } -} - -.pageInfo { - font-size: 14px; - color: #222; - margin: 0 8px; - min-width: 60px; - text-align: center; -} diff --git a/Cunkebao/src/components/PopuLayout/footer.tsx b/Cunkebao/src/components/PopuLayout/footer.tsx deleted file mode 100644 index 3dbf8a52..00000000 --- a/Cunkebao/src/components/PopuLayout/footer.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import React from "react"; -import { Button, Checkbox } from "antd"; -import style from "./footer.module.scss"; -import { ArrowLeftOutlined, ArrowRightOutlined } from "@ant-design/icons"; - -interface PopupFooterProps { - currentPage: number; - totalPages: number; - loading: boolean; - selectedCount: number; - onPageChange: (page: number) => void; - onCancel: () => void; - onConfirm: () => void; - // 全选功能相关 - isAllSelected?: boolean; - onSelectAll?: (checked: boolean) => void; - singleSelect?: boolean; -} - -const PopupFooter: React.FC = ({ - currentPage, - totalPages, - loading, - selectedCount, - onPageChange, - onCancel, - onConfirm, - isAllSelected = false, - onSelectAll, - singleSelect = false, -}) => { - return ( - <> - {/* 分页栏 */} -
- {onSelectAll && ( -
- onSelectAll(e.target.checked)} - className={style.selectAllCheckbox} - > - 全选当前页 - -
- )} -
- - - {currentPage} / {totalPages} - - -
-
-
-
- {singleSelect - ? selectedCount > 0 - ? "已选择设备" - : "未选择设备" - : `已选择 ${selectedCount} 条记录`} -
-
- - -
-
- - ); -}; - -export default PopupFooter; diff --git a/Cunkebao/src/components/PopuLayout/header.module.scss b/Cunkebao/src/components/PopuLayout/header.module.scss deleted file mode 100644 index f54cbbee..00000000 --- a/Cunkebao/src/components/PopuLayout/header.module.scss +++ /dev/null @@ -1,51 +0,0 @@ -.popupHeader { - padding: 16px; - border-bottom: 1px solid #f0f0f0; -} - -.popupTitle { - font-size: 20px; - font-weight: 600; - text-align: center; -} - -.popupSearchRow { - display: flex; - align-items: center; - gap: 5px; - padding: 16px; -} - -.popupSearchInputWrap { - position: relative; - flex: 1; -} - -.inputIcon { - position: absolute; - left: 12px; - top: 50%; - transform: translateY(-50%); - color: #bdbdbd; - z-index: 10; - font-size: 18px; -} - -.refreshBtn { - width: 36px; - height: 36px; -} - -.loadingIcon { - animation: spin 1s linear infinite; - font-size: 16px; -} - -@keyframes spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/Cunkebao/src/components/PopuLayout/header.tsx b/Cunkebao/src/components/PopuLayout/header.tsx deleted file mode 100644 index 51cad1b2..00000000 --- a/Cunkebao/src/components/PopuLayout/header.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import React from "react"; -import { SearchOutlined, ReloadOutlined } from "@ant-design/icons"; -import { Input, Button } from "antd"; -import { Tabs } from "antd-mobile"; -import style from "./header.module.scss"; - -interface PopupHeaderProps { - title: string; - searchQuery: string; - setSearchQuery: (value: string) => void; - searchPlaceholder?: string; - loading?: boolean; - onRefresh?: () => void; - onSearch?: (query: string) => void; - showRefresh?: boolean; - showSearch?: boolean; - showTabs?: boolean; - tabsConfig?: { - activeKey: string; - onChange: (key: string) => void; - tabs: Array<{ title: string; key: string }>; - }; -} - -const PopupHeader: React.FC = ({ - title, - searchQuery, - setSearchQuery, - searchPlaceholder = "搜索...", - loading = false, - onRefresh, - onSearch, - showRefresh = true, - showSearch = true, - showTabs = false, - tabsConfig, -}) => { - return ( - <> -
-
{title}
-
- - {showSearch && ( -
-
- setSearchQuery(e.target.value)} - onSearch={() => onSearch && onSearch(searchQuery)} - prefix={} - size="large" - /> -
- - {showRefresh && onRefresh && ( - - )} -
- )} - - {showTabs && tabsConfig && ( - - {tabsConfig.tabs.map(tab => ( - - ))} - - )} - - ); -}; - -export default PopupHeader; diff --git a/Cunkebao/src/components/StepIndicator/index.tsx b/Cunkebao/src/components/StepIndicator/index.tsx deleted file mode 100644 index 655bbafd..00000000 --- a/Cunkebao/src/components/StepIndicator/index.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from "react"; -import { Steps } from "antd-mobile"; - -interface StepIndicatorProps { - currentStep: number; - steps: { id: number; title: string; subtitle: string }[]; -} - -const StepIndicator: React.FC = ({ - currentStep, - steps, -}) => { - return ( -
- - {steps.map((step, idx) => ( - - {step.id} -
- } - /> - ))} - - - ); -}; - -export default StepIndicator; diff --git a/Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.module.scss b/Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.module.scss deleted file mode 100644 index 5f53a343..00000000 --- a/Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.module.scss +++ /dev/null @@ -1,153 +0,0 @@ -.twoColumnModal { - .ant-modal-body { - padding: 0; - } -} - -.container { - display: flex; - height: 500px; - border: 1px solid #e8e8e8; -} - -.leftColumn { - flex: 1; - border-right: 1px solid #e8e8e8; - display: flex; - flex-direction: column; -} - -.rightColumn { - width: 300px; - display: flex; - flex-direction: column; - background: #fafafa; -} - -.searchWrapper { - padding: 16px; - border-bottom: 1px solid #e8e8e8; - - .ant-input { - border-radius: 6px; - } -} - -.friendList { - flex: 1; - overflow-y: auto; - padding: 8px 0; -} - -.friendItem { - display: flex; - align-items: center; - padding: 12px 16px; - cursor: pointer; - transition: background-color 0.2s; - - &:hover { - background-color: #f5f5f5; - } - - &.selected { - background-color: #e6f7ff; - } - - .ant-checkbox { - margin-right: 12px; - } -} - -.friendInfo { - margin-left: 12px; - flex: 1; -} - -.friendName { - font-size: 14px; - font-weight: 500; - color: #333; - margin-bottom: 2px; -} - -.friendId { - font-size: 12px; - color: #999; -} - -.selectedHeader { - padding: 16px; - border-bottom: 1px solid #e8e8e8; - font-weight: 500; - color: #333; - background: #fff; -} - -.selectedList { - flex: 1; - overflow-y: auto; - padding: 8px 0; -} - -.selectedItem { - display: flex; - align-items: center; - padding: 8px 16px; - background: #fff; - margin: 4px 8px; - border-radius: 6px; - border: 1px solid #e8e8e8; -} - -.selectedInfo { - margin-left: 8px; - flex: 1; -} - -.selectedName { - font-size: 13px; - color: #333; -} - -.removeBtn { - color: #999; - font-size: 16px; - padding: 0; - width: 20px; - height: 20px; - display: flex; - align-items: center; - justify-content: center; - - &:hover { - color: #ff4d4f; - background: #fff2f0; - } -} - -.loading { - display: flex; - align-items: center; - justify-content: center; - height: 100px; - color: #999; -} - -.empty { - display: flex; - align-items: center; - justify-content: center; - height: 100px; - color: #999; - font-size: 14px; -} - -.emptySelected { - display: flex; - align-items: center; - justify-content: center; - height: 100px; - color: #999; - font-size: 14px; -} diff --git a/Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.tsx b/Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.tsx deleted file mode 100644 index e5400bf6..00000000 --- a/Cunkebao/src/components/TwoColumnSelection/TwoColumnSelection.tsx +++ /dev/null @@ -1,329 +0,0 @@ -import React, { useState, useCallback, useEffect, useMemo, memo } from "react"; -import { Modal, Input, Avatar, Button, Checkbox, message } from "antd"; -import { SearchOutlined } from "@ant-design/icons"; -import { getFriendList } from "../FriendSelection/api"; -import type { FriendSelectionItem } from "../FriendSelection/data"; -import styles from "./TwoColumnSelection.module.scss"; - -// 使用 React.memo 优化好友列表项组件 -const FriendListItem = memo<{ - friend: FriendSelectionItem; - isSelected: boolean; - onSelect: (friend: FriendSelectionItem) => void; -}>(({ friend, isSelected, onSelect }) => { - return ( -
onSelect(friend)} - > - - - {friend.nickname?.charAt(0)} - -
-
{friend.nickname}
-
{friend.wechatId}
-
-
- ); -}); - -FriendListItem.displayName = "FriendListItem"; - -interface TwoColumnSelectionProps { - visible: boolean; - onCancel: () => void; - onConfirm: ( - selectedIds: string[], - selectedItems: FriendSelectionItem[], - ) => void; - title?: string; - deviceIds?: number[]; - enableDeviceFilter?: boolean; - dataSource?: FriendSelectionItem[]; -} - -const TwoColumnSelection: React.FC = ({ - visible, - onCancel, - onConfirm, - title = "选择好友", - deviceIds = [], - enableDeviceFilter = true, - dataSource, -}) => { - const [rawFriends, setRawFriends] = useState([]); - const [selectedFriends, setSelectedFriends] = useState( - [], - ); - const [searchQuery, setSearchQuery] = useState(""); - const [loading, setLoading] = useState(false); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - - // 使用 useMemo 缓存过滤结果,避免每次渲染都重新计算 - const filteredFriends = useMemo(() => { - const sourceData = dataSource || rawFriends; - if (!searchQuery.trim()) { - return sourceData; - } - - const query = searchQuery.toLowerCase(); - return sourceData.filter( - item => - item.name?.toLowerCase().includes(query) || - item.nickname?.toLowerCase().includes(query), - ); - }, [dataSource, rawFriends, searchQuery]); - - // 分页显示好友列表,避免一次性渲染太多项目 - const ITEMS_PER_PAGE = 50; - const [displayPage, setDisplayPage] = useState(1); - - const friends = useMemo(() => { - const startIndex = 0; - const endIndex = displayPage * ITEMS_PER_PAGE; - return filteredFriends.slice(startIndex, endIndex); - }, [filteredFriends, displayPage]); - - const hasMoreFriends = filteredFriends.length > friends.length; - - // 使用 useMemo 缓存选中状态映射,避免每次渲染都重新计算 - const selectedFriendsMap = useMemo(() => { - const map = new Map(); - selectedFriends.forEach(friend => { - map.set(friend.id, true); - }); - return map; - }, [selectedFriends]); - - // 获取好友列表 - const fetchFriends = useCallback( - async (page: number, keyword: string = "") => { - setLoading(true); - try { - const params: any = { - page, - pageSize: 20, - }; - - if (keyword) { - params.keyword = keyword; - } - - if (enableDeviceFilter && deviceIds.length > 0) { - params.deviceIds = deviceIds; - } - - const response = await getFriendList(params); - - if (response.success) { - setRawFriends(response.data.list || []); - setTotalPages(Math.ceil((response.data.total || 0) / 20)); - } else { - setRawFriends([]); - message.error(response.message || "获取好友列表失败"); - } - } catch (error) { - console.error("获取好友列表失败:", error); - message.error("获取好友列表失败"); - } finally { - setLoading(false); - } - }, - [deviceIds, enableDeviceFilter], - ); - - // 初始化数据加载 - useEffect(() => { - if (visible && !dataSource) { - // 只有在没有外部数据源时才调用 API - fetchFriends(1); - setCurrentPage(1); - } - }, [visible, dataSource, fetchFriends]); - - // 重置搜索状态 - useEffect(() => { - if (visible) { - setSearchQuery(""); - setSelectedFriends([]); - setLoading(false); - } - }, [visible]); - - // 防抖搜索处理 - const handleSearch = useCallback(() => { - let timeoutId: NodeJS.Timeout; - return (value: string) => { - clearTimeout(timeoutId); - timeoutId = setTimeout(() => { - setDisplayPage(1); // 重置分页 - if (!dataSource) { - fetchFriends(1, value); - } - }, 300); - }; - }, [dataSource, fetchFriends])(); - - // API搜索处理(当没有外部数据源时) - const handleApiSearch = useCallback( - async (keyword: string) => { - if (!dataSource) { - await fetchFriends(1, keyword); - } - }, - [dataSource, fetchFriends], - ); - - // 加载更多好友 - const handleLoadMore = useCallback(() => { - setDisplayPage(prev => prev + 1); - }, []); - - // 防抖搜索 - useEffect(() => { - if (!dataSource && searchQuery.trim()) { - const timer = setTimeout(() => { - handleApiSearch(searchQuery); - }, 300); - return () => clearTimeout(timer); - } - }, [searchQuery, dataSource, handleApiSearch]); - - // 选择好友 - 使用 useCallback 优化性能 - const handleSelectFriend = useCallback((friend: FriendSelectionItem) => { - setSelectedFriends(prev => { - const isSelected = prev.some(f => f.id === friend.id); - if (isSelected) { - return prev.filter(f => f.id !== friend.id); - } else { - return [...prev, friend]; - } - }); - }, []); - - // 移除已选好友 - 使用 useCallback 优化性能 - const handleRemoveFriend = useCallback((friendId: number) => { - setSelectedFriends(prev => prev.filter(f => f.id !== friendId)); - }, []); - - // 确认选择 - 使用 useCallback 优化性能 - const handleConfirmSelection = useCallback(() => { - const selectedIds = selectedFriends.map(f => f.id.toString()); - onConfirm(selectedIds, selectedFriends); - setSelectedFriends([]); - setSearchQuery(""); - }, [selectedFriends, onConfirm]); - - // 取消选择 - 使用 useCallback 优化性能 - const handleCancel = useCallback(() => { - setSelectedFriends([]); - setSearchQuery(""); - onCancel(); - }, [onCancel]); - - return ( - - 取消 - , - , - ]} - className={styles.twoColumnModal} - > -
- {/* 左侧:好友列表 */} -
-
- { - const value = e.target.value; - setSearchQuery(value); // 立即更新显示 - handleSearch(value); // 防抖处理搜索 - }} - prefix={} - allowClear - /> -
- -
- {loading ? ( -
加载中...
- ) : friends.length > 0 ? ( - // 使用 React.memo 优化列表项渲染 - friends.map(friend => { - const isSelected = selectedFriendsMap.has(friend.id); - return ( - - ); - }) - ) : ( -
- {searchQuery - ? `没有找到包含"${searchQuery}"的好友` - : "暂无好友"} -
- )} - - {hasMoreFriends && ( -
- -
- )} -
-
- - {/* 右侧:已选好友 */} -
-
- 已选联系人 ({selectedFriends.length}) -
- -
- {selectedFriends.length > 0 ? ( - selectedFriends.map(friend => ( -
- - {friend.nickname?.charAt(0)} - -
-
{friend.nickname}
-
- -
- )) - ) : ( -
暂无选择
- )} -
-
-
-
- ); -}; - -export default TwoColumnSelection; diff --git a/Cunkebao/src/components/UpdateNotification/index.tsx b/Cunkebao/src/components/UpdateNotification/index.tsx deleted file mode 100644 index 79f37c84..00000000 --- a/Cunkebao/src/components/UpdateNotification/index.tsx +++ /dev/null @@ -1,217 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Button } from "antd-mobile"; -import { updateChecker } from "@/utils/updateChecker"; -import { ReloadOutlined } from "@ant-design/icons"; - -interface UpdateNotificationProps { - position?: "top" | "bottom"; - autoReload?: boolean; - showToast?: boolean; - forceShow?: boolean; - onClose?: () => void; -} - -const UpdateNotification: React.FC = ({ - position = "top", - autoReload = false, - showToast = true, - forceShow = false, - onClose, -}) => { - const [hasUpdate, setHasUpdate] = useState(false); - const [isVisible, setIsVisible] = useState(false); - - useEffect(() => { - // 注册更新检测回调 - const handleUpdate = (info: { hasUpdate: boolean }) => { - if (info.hasUpdate) { - setHasUpdate(true); - setIsVisible(true); - - if (autoReload) { - // 自动刷新 - setTimeout(() => { - updateChecker.forceReload(); - }, 3000); - } - } - }; - - updateChecker.onUpdate(handleUpdate); - - // 启动更新检测 - updateChecker.start(); - - return () => { - updateChecker.offUpdate(handleUpdate); - updateChecker.stop(); - }; - }, [autoReload, showToast]); - const handleReload = () => { - updateChecker.forceReload(); - }; - - const handleLater = () => { - setIsVisible(false); - onClose?.(); - // 10分钟后再次检查 - setTimeout( - () => { - updateChecker.start(); - }, - 10 * 60 * 1000, - ); - }; - - if ((!isVisible || !hasUpdate) && !forceShow) { - return null; - } - - return ( -
-
- {/* 左侧内容 */} -
- {/* 更新图标 */} -
- -
- {/* 文本信息 */} -
-
- 发现新版本 -
-
- 建议立即更新获得更好体验 -
-
-
- - {/* 右侧按钮组 */} -
- - -
-
- - {/* 动画样式 */} - -
- ); -}; - -export default UpdateNotification; diff --git a/Cunkebao/src/components/Upload/AudioRecorder/index.tsx b/Cunkebao/src/components/Upload/AudioRecorder/index.tsx deleted file mode 100644 index 1bcc705e..00000000 --- a/Cunkebao/src/components/Upload/AudioRecorder/index.tsx +++ /dev/null @@ -1,411 +0,0 @@ -import React, { useState, useRef, useCallback } from "react"; -import { Button, message, Modal } from "antd"; -import { - AudioOutlined, - PlayCircleOutlined, - PauseCircleOutlined, - SendOutlined, - DeleteOutlined, -} from "@ant-design/icons"; -import { uploadFile } from "@/api/common"; - -interface AudioRecorderProps { - onAudioUploaded: (audioData: { url: string; durationMs: number }) => void; - className?: string; - disabled?: boolean; - maxDuration?: number; // 最大录音时长(秒) -} - -type RecordingState = - | "idle" - | "recording" - | "recorded" - | "playing" - | "uploading"; - -const AudioRecorder: React.FC = ({ - onAudioUploaded, - className, - disabled = false, - maxDuration = 60, -}) => { - const [visible, setVisible] = useState(false); - const [state, setState] = useState("idle"); - const [recordingTime, setRecordingTime] = useState(0); - const [audioBlob, setAudioBlob] = useState(null); - const [audioUrl, setAudioUrl] = useState(""); - - const mediaRecorderRef = useRef(null); - const audioRef = useRef(null); - const timerRef = useRef(null); - const chunksRef = useRef([]); - - // 打开弹窗 - const openRecorder = () => { - setVisible(true); - }; - - // 关闭弹窗并重置状态 - const closeRecorder = () => { - if (state === "recording") { - stopRecording(); - } - if (state === "playing") { - pauseAudio(); - } - deleteRecording(); - setVisible(false); - }; - - // 开始录音 - const startRecording = useCallback(async () => { - try { - const stream = await navigator.mediaDevices.getUserMedia({ audio: true }); - - // 尝试使用MP3格式,如果不支持则回退到WebM - const mp3Types = [ - "audio/mpeg", - "audio/mp3", - "audio/mpeg; codecs=mp3", - "audio/mp4", - "audio/mp4; codecs=mp4a.40.2", - ]; - - let mimeType = "audio/webm"; // 默认回退格式 - - // 检测并选择支持的MP3格式 - for (const type of mp3Types) { - if (MediaRecorder.isTypeSupported(type)) { - mimeType = type; - console.log(`使用音频格式: ${type}`); - break; - } - } - - if (mimeType === "audio/webm") { - console.log("浏览器不支持MP3格式,使用WebM格式"); - } - - const mediaRecorder = new MediaRecorder(stream, { mimeType }); - mediaRecorderRef.current = mediaRecorder; - chunksRef.current = []; - - mediaRecorder.ondataavailable = event => { - if (event.data.size > 0) { - chunksRef.current.push(event.data); - } - }; - - mediaRecorder.onstop = () => { - const blob = new Blob(chunksRef.current, { type: mimeType }); - setAudioBlob(blob); - const url = URL.createObjectURL(blob); - setAudioUrl(url); - setState("recorded"); - - // 停止所有音频轨道 - stream.getTracks().forEach(track => track.stop()); - }; - - mediaRecorder.start(); - setState("recording"); - setRecordingTime(0); - - // 开始计时 - timerRef.current = setInterval(() => { - setRecordingTime(prev => { - const newTime = prev + 1; - if (newTime >= maxDuration) { - stopRecording(); - } - return newTime; - }); - }, 1000); - } catch (error) { - console.error("录音失败:", error); - message.error("无法访问麦克风,请检查权限设置"); - } - }, [maxDuration]); - - // 停止录音 - const stopRecording = useCallback(() => { - if ( - mediaRecorderRef.current && - mediaRecorderRef.current.state === "recording" - ) { - mediaRecorderRef.current.stop(); - } - if (timerRef.current) { - clearInterval(timerRef.current); - timerRef.current = null; - } - }, []); - - // 播放录音 - const playAudio = useCallback(() => { - if (audioRef.current && audioUrl) { - audioRef.current.play(); - setState("playing"); - } - }, [audioUrl]); - - // 暂停播放 - const pauseAudio = useCallback(() => { - if (audioRef.current) { - audioRef.current.pause(); - setState("recorded"); - } - }, []); - - // 删除录音 - const deleteRecording = useCallback(() => { - if (audioUrl) { - URL.revokeObjectURL(audioUrl); - } - setAudioBlob(null); - setAudioUrl(""); - setRecordingTime(0); - setState("idle"); - }, [audioUrl]); - - // 发送录音 - const sendAudio = useCallback(async () => { - if (!audioBlob) return; - - try { - setState("uploading"); - - // 创建文件对象 - const timestamp = Date.now(); - const fileExtension = - audioBlob.type.includes("mp3") || - audioBlob.type.includes("mpeg") || - audioBlob.type.includes("mp4") - ? "mp3" - : "webm"; - const audioFile = new File( - [audioBlob], - `audio_${timestamp}.${fileExtension}`, - { - type: audioBlob.type, - }, - ); - - // 打印文件格式信息 - console.log("音频文件信息:", { - fileName: audioFile.name, - fileType: audioFile.type, - fileSize: audioFile.size, - fileExtension: fileExtension, - blobType: audioBlob.type, - }); - - // 上传文件 - const filePath = await uploadFile(audioFile); - - // 调用回调函数,传递音频URL和时长(毫秒) - onAudioUploaded({ - url: filePath, - durationMs: recordingTime * 1000, // 将秒转换为毫秒 - }); - - // 重置状态并关闭弹窗 - deleteRecording(); - setVisible(false); - message.success("语音发送成功"); - } catch (error) { - console.error("语音上传失败:", error); - message.error("语音发送失败,请重试"); - setState("recorded"); - } - }, [audioBlob, onAudioUploaded, deleteRecording]); - - // 格式化时间显示 - const formatTime = (seconds: number) => { - const mins = Math.floor(seconds / 60); - const secs = seconds % 60; - return `${mins.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`; - }; - - // 渲染弹窗内容 - const renderModalContent = () => { - switch (state) { - case "idle": - return ( -
-
- 点击下方按钮开始录音 -
-
- ); - - case "recording": - return ( -
-
-
- {formatTime(recordingTime)} -
-
- 正在录音中... -
-
- -
- ); - - case "recorded": - case "playing": - return ( -
-
-
- 录音时长: {formatTime(recordingTime)} -
-
- {state === "playing" - ? "正在播放..." - : "录音完成,可以试听或发送"} -
-
- -
-
- -
- -
-
- ); - - case "uploading": - return ( -
- -
- ); - - default: - return null; - } - }; - - return ( - <> -

4P1dmVh3va& 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 z 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