From 7bf80cb179182deac30810ed3593bbdb63f1f09a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sun, 19 Oct 2025 09:31:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E7=A7=BB=E9=99=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E7=95=8C=E9=9D=A2=E7=9A=84=E6=97=A7=E7=89=88?= =?UTF-8?q?=20SVG=20=E5=9B=BE=E6=A0=87-=20=E5=88=A0=E9=99=A4=E4=BA=86?= =?UTF-8?q?=E4=BD=8D=E4=BA=8E=20/dict/admin/public/assets/=20=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E4=B8=8B=E7=9A=84=20logo.svg=20=E6=96=87=E4=BB=B6-=20?= =?UTF-8?q?=E6=B8=85=E7=90=86=E4=BA=86=E9=A1=B9=E7=9B=AE=E4=B8=AD=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E4=BD=BF=E7=94=A8=E7=9A=84=E5=9B=BE=E6=A0=87=E8=B5=84?= =?UTF-8?q?=E6=BA=90=20-=20=E5=87=8F=E5=B0=91=E4=BA=86=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90=E4=BD=93=E7=A7=AF=20-?= =?UTF-8?q?=E4=B8=BA=E5=90=8E=E7=BB=AD=E5=BC=95=E5=85=A5=E6=96=B0=E7=89=88?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=B3=BB=E7=BB=9F=E5=81=9A=E5=87=86=E5=A4=87?= =?UTF-8?q?=20-=20=E6=9B=B4=E6=96=B0=E4=BA=86=E7=9B=B8=E5=85=B3=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E8=B7=AF=E5=BE=84=EF=BC=88=E5=A6=82=E6=9C=89=EF=BC=89?= =?UTF-8?q?-=20=E7=A1=AE=E4=BF=9D=E7=A7=BB=E9=99=A4=E5=90=8E=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=AD=A3=E5=B8=B8=E8=BF=90=E8=A1=8C=E4=B8=94=E6=97=A0?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dict/admin/index.html | 68 - dict/admin/package-lock.json | 19250 ---------------- dict/admin/package.json | 90 - dict/admin/postcss.config.js | 6 - dict/admin/prettier.config.js | 19 - ...waRtkJyvf_!!6000000001499-55-tps-70-70.svg | 1 - dict/admin/public/assets/bg-2.jpeg | Bin 406999 -> 0 bytes dict/admin/public/assets/logo.svg | 15 - dict/admin/public/favicon.ico | Bin 303 -> 0 bytes .../public/json/china-provinces.geo.json | 1 - dict/admin/public/json/industry-data.json | 1 - dict/admin/public/json/regions-data.json | 1 - dict/admin/public/logo.png | Bin 5238 -> 0 bytes dict/admin/public/logo.svg | 1 - dict/admin/public/tinymce/langs/zh_CN.js | 462 - dict/admin/public/tinymce/langs/zh_TW.js | 419 - .../tinymce/skins/content/dark/content.css | 72 - .../skins/content/dark/content.min.css | 7 - .../tinymce/skins/content/default/content.css | 66 - .../skins/content/default/content.min.css | 7 - .../skins/content/document/content.css | 72 - .../skins/content/document/content.min.css | 7 - .../tinymce/skins/content/writer/content.css | 68 - .../skins/content/writer/content.min.css | 7 - .../tinymce/skins/ui/oxide-dark/content.css | 714 - .../skins/ui/oxide-dark/content.inline.css | 726 - .../ui/oxide-dark/content.inline.min.css | 7 - .../skins/ui/oxide-dark/content.min.css | 7 - .../skins/ui/oxide-dark/content.mobile.css | 29 - .../ui/oxide-dark/content.mobile.min.css | 7 - .../ui/oxide-dark/fonts/tinymce-mobile.woff | Bin 4624 -> 0 bytes .../tinymce/skins/ui/oxide-dark/skin.css | 3047 --- .../tinymce/skins/ui/oxide-dark/skin.min.css | 7 - .../skins/ui/oxide-dark/skin.mobile.css | 673 - .../skins/ui/oxide-dark/skin.mobile.min.css | 7 - .../skins/ui/oxide-dark/skin.shadowdom.css | 37 - .../ui/oxide-dark/skin.shadowdom.min.css | 7 - .../public/tinymce/skins/ui/oxide/content.css | 732 - .../tinymce/skins/ui/oxide/content.inline.css | 726 - .../skins/ui/oxide/content.inline.min.css | 7 - .../tinymce/skins/ui/oxide/content.min.css | 7 - .../tinymce/skins/ui/oxide/content.mobile.css | 29 - .../skins/ui/oxide/content.mobile.min.css | 7 - .../skins/ui/oxide/fonts/tinymce-mobile.woff | Bin 4624 -> 0 bytes .../public/tinymce/skins/ui/oxide/skin.css | 3047 --- .../tinymce/skins/ui/oxide/skin.min.css | 7 - .../tinymce/skins/ui/oxide/skin.mobile.css | 673 - .../skins/ui/oxide/skin.mobile.min.css | 7 - .../tinymce/skins/ui/oxide/skin.shadowdom.css | 37 - .../skins/ui/oxide/skin.shadowdom.min.css | 7 - dict/admin/public/ws-logo.svg | 15 - dict/admin/public/xieyi/01.html | 700 - dict/admin/src/App.vue | 43 - dict/admin/src/api/bszx/bszxBm/index.ts | 106 - dict/admin/src/api/bszx/bszxBm/model/index.ts | 78 - dict/admin/src/api/bszx/bszxBranch/index.ts | 106 - .../src/api/bszx/bszxBranch/model/index.ts | 23 - .../src/api/bszx/bszxClass/model/index.ts | 48 - dict/admin/src/api/bszx/bszxEra/index.ts | 106 - .../admin/src/api/bszx/bszxEra/model/index.ts | 21 - dict/admin/src/api/bszx/bszxGrade/index.ts | 106 - .../src/api/bszx/bszxGrade/model/index.ts | 37 - dict/admin/src/api/bszx/bszxOrder/index.ts | 37 - dict/admin/src/api/bszx/bszxPay/index.ts | 121 - .../admin/src/api/bszx/bszxPay/model/index.ts | 69 - .../src/api/bszx/bszxPayRanking/index.ts | 135 - .../api/bszx/bszxPayRanking/model/index.ts | 35 - dict/admin/src/api/cms/cmsAd/index.ts | 106 - dict/admin/src/api/cms/cmsAd/model/index.ts | 65 - dict/admin/src/api/cms/cmsAdRecord/index.ts | 106 - .../src/api/cms/cmsAdRecord/model/index.ts | 35 - dict/admin/src/api/cms/cmsArticle/index.ts | 160 - .../src/api/cms/cmsArticle/model/index.ts | 131 - .../src/api/cms/cmsArticleCategory/index.ts | 108 - .../api/cms/cmsArticleCategory/model/index.ts | 59 - .../src/api/cms/cmsArticleComment/index.ts | 106 - .../api/cms/cmsArticleComment/model/index.ts | 47 - .../src/api/cms/cmsArticleContent/index.ts | 106 - .../api/cms/cmsArticleContent/model/index.ts | 25 - .../src/api/cms/cmsArticleCount/index.ts | 106 - .../api/cms/cmsArticleCount/model/index.ts | 25 - .../admin/src/api/cms/cmsArticleLike/index.ts | 106 - .../src/api/cms/cmsArticleLike/model/index.ts | 25 - dict/admin/src/api/cms/cmsDesign/index.ts | 106 - .../src/api/cms/cmsDesign/model/index.ts | 64 - dict/admin/src/api/cms/cmsDomain/index.ts | 153 - .../src/api/cms/cmsDomain/model/index.ts | 43 - dict/admin/src/api/cms/cmsForm/index.ts | 106 - dict/admin/src/api/cms/cmsForm/model/index.ts | 53 - dict/admin/src/api/cms/cmsFormRecord/index.ts | 106 - .../src/api/cms/cmsFormRecord/model/index.ts | 41 - dict/admin/src/api/cms/cmsLang/index.ts | 106 - dict/admin/src/api/cms/cmsLang/model/index.ts | 35 - dict/admin/src/api/cms/cmsLangLog/index.ts | 106 - .../src/api/cms/cmsLangLog/model/index.ts | 27 - dict/admin/src/api/cms/cmsLink/index.ts | 120 - dict/admin/src/api/cms/cmsLink/model/index.ts | 45 - .../admin/src/api/cms/cmsModel/model/index.ts | 63 - dict/admin/src/api/cms/cmsNavigation/index.ts | 151 - .../src/api/cms/cmsNavigation/model/index.ts | 106 - dict/admin/src/api/cms/cmsOrder/index.ts | 106 - .../admin/src/api/cms/cmsOrder/model/index.ts | 66 - dict/admin/src/api/cms/cmsStatistics/index.ts | 106 - .../src/api/cms/cmsStatistics/model/index.ts | 79 - dict/admin/src/api/cms/cmsTemplate/index.ts | 106 - .../src/api/cms/cmsTemplate/model/index.ts | 59 - dict/admin/src/api/cms/cmsWebsite/index.ts | 119 - .../src/api/cms/cmsWebsite/model/index.ts | 162 - .../src/api/cms/cmsWebsiteField/index.ts | 167 - .../api/cms/cmsWebsiteField/model/index.ts | 65 - .../src/api/cms/cmsWebsiteSetting/index.ts | 106 - .../api/cms/cmsWebsiteSetting/model/index.ts | 55 - dict/admin/src/api/cms/link/index.ts | 113 - dict/admin/src/api/cms/link/model/index.ts | 31 - .../src/api/dormitory/dormitoryApply/index.ts | 106 - .../src/api/dormitory/dormitoryBed/index.ts | 106 - .../api/dormitory/dormitoryBed/model/index.ts | 55 - .../api/dormitory/dormitoryBuilding/index.ts | 106 - .../dormitoryBuilding/model/index.ts | 31 - .../src/api/dormitory/dormitoryFloor/index.ts | 106 - .../dormitory/dormitoryFloor/model/index.ts | 35 - .../api/dormitory/dormitoryRecord/index.ts | 106 - .../dormitory/dormitoryRecord/model/index.ts | 43 - dict/admin/src/api/hjm/hjmBxLog/index.ts | 106 - .../admin/src/api/hjm/hjmBxLog/model/index.ts | 45 - dict/admin/src/api/hjm/hjmCar/index.ts | 135 - dict/admin/src/api/hjm/hjmCar/model/index.ts | 96 - dict/admin/src/api/hjm/hjmChoices/index.ts | 106 - .../src/api/hjm/hjmChoices/model/index.ts | 39 - .../src/api/hjm/hjmCourses/model/index.ts | 41 - dict/admin/src/api/hjm/hjmExamLog/index.ts | 106 - .../src/api/hjm/hjmExamLog/model/index.ts | 38 - dict/admin/src/api/hjm/hjmFence/index.ts | 106 - .../admin/src/api/hjm/hjmFence/model/index.ts | 44 - dict/admin/src/api/hjm/hjmGpsLog/index.ts | 106 - .../src/api/hjm/hjmGpsLog/model/index.ts | 34 - .../src/api/hjm/hjmQuestions/model/index.ts | 55 - dict/admin/src/api/hjm/hjmViolation/index.ts | 106 - .../src/api/hjm/hjmViolation/model/index.ts | 43 - dict/admin/src/api/index.ts | 61 - dict/admin/src/api/layout/index.ts | 153 - dict/admin/src/api/layout/model/index.ts | 74 - dict/admin/src/api/miniprogram/index.ts | 50 - dict/admin/src/api/passport/login/index.ts | 117 - .../src/api/passport/login/model/index.ts | 46 - dict/admin/src/api/passport/qrLogin/index.ts | 110 - .../admin/src/api/sdy/sdyDealerOrder/index.ts | 135 - .../shop/shopCommissionRole/model/index.ts | 35 - dict/admin/src/api/shop/shopCoupon/index.ts | 105 - .../src/api/shop/shopCoupon/model/index.ts | 71 - .../shop/shopCouponApplyCate/model/index.ts | 11 - .../shop/shopCouponApplyItem/model/index.ts | 11 - .../src/api/shop/shopDealerApply/index.ts | 158 - .../api/shop/shopDealerApply/model/index.ts | 61 - .../src/api/shop/shopDealerCapital/index.ts | 105 - .../api/shop/shopDealerCapital/model/index.ts | 35 - .../src/api/shop/shopDealerOrder/index.ts | 221 - .../src/api/shop/shopDealerPoster/index.ts | 131 - .../api/shop/shopDealerPoster/model/index.ts | 93 - .../src/api/shop/shopDealerRecord/index.ts | 106 - .../api/shop/shopDealerRecord/model/index.ts | 39 - .../src/api/shop/shopDealerReferee/index.ts | 105 - .../api/shop/shopDealerReferee/model/index.ts | 34 - .../src/api/shop/shopDealerSetting/index.ts | 105 - .../api/shop/shopDealerSetting/model/index.ts | 25 - .../src/api/shop/shopDealerUser/index.ts | 140 - .../src/api/shop/shopDealerWithdraw/index.ts | 105 - .../shop/shopDealerWithdraw/model/index.ts | 47 - .../src/api/shop/shopExpress/model/index.ts | 35 - .../shop/shopExpressTemplate/model/index.ts | 43 - .../shopExpressTemplateDetail/model/index.ts | 45 - dict/admin/src/api/shop/shopGift/index.ts | 130 - .../src/api/shop/shopGift/model/index.ts | 61 - dict/admin/src/api/shop/shopGoods/index.ts | 116 - .../src/api/shop/shopGoods/model/index.ts | 148 - .../src/api/shop/shopGoodsCategory/index.ts | 106 - .../api/shop/shopGoodsCategory/model/index.ts | 64 - .../src/api/shop/shopGoodsCoupon/index.ts | 106 - .../api/shop/shopGoodsCoupon/model/index.ts | 37 - .../api/shop/shopGoodsRoleCommission/index.ts | 106 - .../shopGoodsRoleCommission/model/index.ts | 35 - dict/admin/src/api/shop/shopGoodsSku/index.ts | 118 - .../src/api/shop/shopGoodsSku/model/index.ts | 50 - .../admin/src/api/shop/shopGoodsSpec/index.ts | 105 - .../src/api/shop/shopGoodsSpec/model/index.ts | 29 - dict/admin/src/api/shop/shopMerchant/index.ts | 106 - .../src/api/shop/shopMerchant/model/index.ts | 95 - .../src/api/shop/shopMerchantAccount/index.ts | 106 - .../shop/shopMerchantAccount/model/index.ts | 39 - .../src/api/shop/shopMerchantApply/index.ts | 120 - .../api/shop/shopMerchantApply/model/index.ts | 72 - .../src/api/shop/shopMerchantCount/index.ts | 108 - .../api/shop/shopMerchantCount/model/index.ts | 29 - .../src/api/shop/shopMerchantType/index.ts | 108 - .../api/shop/shopMerchantType/model/index.ts | 30 - dict/admin/src/api/shop/shopOrder/index.ts | 137 - .../src/api/shop/shopOrderGoods/index.ts | 106 - .../api/shop/shopOrderGoods/model/index.ts | 71 - dict/admin/src/api/shop/shopSpec/index.ts | 106 - .../src/api/shop/shopSpec/model/index.ts | 38 - .../admin/src/api/shop/shopSpecValue/index.ts | 105 - .../src/api/shop/shopSpecValue/model/index.ts | 29 - dict/admin/src/api/shop/shopUser/index.ts | 106 - .../src/api/shop/shopUser/model/index.ts | 163 - .../src/api/shop/shopUserAddress/index.ts | 106 - .../api/shop/shopUserAddress/model/index.ts | 49 - .../api/shop/shopUserCoupon/model/index.ts | 61 - .../src/api/shop/shopUserReferee/index.ts | 105 - .../api/shop/shopUserReferee/model/index.ts | 33 - dict/admin/src/api/shop/spec/model/index.ts | 37 - dict/admin/src/api/shop/specValue/index.ts | 106 - .../src/api/shop/specValue/model/index.ts | 33 - dict/admin/src/api/system/access-key/index.ts | 59 - .../src/api/system/access-key/model/index.ts | 20 - dict/admin/src/api/system/appstore/index.ts | 11 - .../src/api/system/appstore/model/index.ts | 13 - dict/admin/src/api/system/cache/index.ts | 76 - .../admin/src/api/system/cache/model/index.ts | 18 - dict/admin/src/api/system/chat/index.ts | 157 - dict/admin/src/api/system/chat/model/index.ts | 49 - .../src/api/system/chatConversation/index.ts | 106 - .../system/chatConversation/model/index.ts | 37 - .../admin/src/api/system/chatMessage/index.ts | 120 - .../src/api/system/chatMessage/model/index.ts | 49 - .../src/api/system/comment/model/index.ts | 33 - dict/admin/src/api/system/company/index.ts | 162 - .../src/api/system/company/model/index.ts | 187 - .../src/api/system/companyComment/index.ts | 106 - .../api/system/companyComment/model/index.ts | 35 - .../src/api/system/companyContent/index.ts | 121 - .../api/system/companyContent/model/index.ts | 25 - dict/admin/src/api/system/companyGit/index.ts | 106 - .../src/api/system/companyGit/model/index.ts | 41 - .../src/api/system/companyParameter/index.ts | 106 - .../system/companyParameter/model/index.ts | 33 - dict/admin/src/api/system/companyUrl/index.ts | 106 - .../src/api/system/companyUrl/model/index.ts | 39 - dict/admin/src/api/system/dict-data/index.ts | 87 - .../src/api/system/dict-data/model/index.ts | 49 - dict/admin/src/api/system/dict/index.ts | 61 - dict/admin/src/api/system/dict/model/index.ts | 29 - .../src/api/system/dictionary-data/index.ts | 87 - .../api/system/dictionary-data/model/index.ts | 37 - dict/admin/src/api/system/dictionary/index.ts | 61 - .../src/api/system/dictionary/model/index.ts | 29 - dict/admin/src/api/system/domain/index.ts | 119 - .../src/api/system/domain/model/index.ts | 38 - .../admin/src/api/system/environment/index.ts | 125 - .../src/api/system/environment/model/index.ts | 25 - dict/admin/src/api/system/file/index.ts | 250 - dict/admin/src/api/system/file/model/index.ts | 55 - .../src/api/system/login-record/index.ts | 32 - .../api/system/login-record/model/index.ts | 38 - dict/admin/src/api/system/menu/index.ts | 172 - dict/admin/src/api/system/menu/model/index.ts | 67 - dict/admin/src/api/system/modules/index.ts | 118 - .../src/api/system/modules/model/index.ts | 22 - .../src/api/system/operation-record/index.ts | 32 - .../system/operation-record/model/index.ts | 56 - dict/admin/src/api/system/order/index.ts | 106 - .../admin/src/api/system/order/model/index.ts | 98 - dict/admin/src/api/system/orderGoods/index.ts | 106 - .../src/api/system/orderGoods/model/index.ts | 57 - .../src/api/system/organization/index.ts | 73 - .../api/system/organization/model/index.ts | 42 - dict/admin/src/api/system/parameter/index.ts | 106 - .../src/api/system/parameter/model/index.ts | 31 - dict/admin/src/api/system/payment/index.ts | 121 - .../src/api/system/payment/model/index.ts | 59 - dict/admin/src/api/system/plug/index.ts | 125 - dict/admin/src/api/system/plug/model/index.ts | 67 - dict/admin/src/api/system/role/index.ts | 119 - dict/admin/src/api/system/role/model/index.ts | 27 - dict/admin/src/api/system/setting/index.ts | 153 - .../src/api/system/setting/model/index.ts | 127 - dict/admin/src/api/system/tenant/index.ts | 191 - .../src/api/system/tenant/model/index.ts | 46 - dict/admin/src/api/system/url/index.ts | 106 - dict/admin/src/api/system/url/model/index.ts | 37 - .../src/api/system/user-collection/index.ts | 106 - .../api/system/user-collection/model/index.ts | 25 - dict/admin/src/api/system/user-file/index.ts | 89 - .../src/api/system/user-file/model/index.ts | 39 - dict/admin/src/api/system/user-grade/index.ts | 120 - .../src/api/system/user-grade/model/index.ts | 28 - dict/admin/src/api/system/user-group/index.ts | 120 - .../src/api/system/user-group/model/index.ts | 23 - dict/admin/src/api/system/user/index.ts | 298 - dict/admin/src/api/system/user/model/count.ts | 15 - dict/admin/src/api/system/user/model/index.ts | 161 - dict/admin/src/api/system/userOauth/index.ts | 106 - .../src/api/system/userOauth/model/index.ts | 39 - dict/admin/src/api/system/userRole/index.ts | 48 - .../src/api/system/userRole/model/index.ts | 30 - dict/admin/src/api/system/userVerify/index.ts | 106 - .../src/api/system/userVerify/model/index.ts | 54 - dict/admin/src/api/system/version/index.ts | 119 - .../src/api/system/version/model/index.ts | 26 - .../src/api/system/website/field/index.ts | 162 - .../api/system/website/field/model/index.ts | 63 - dict/admin/src/api/system/website/index.ts | 169 - .../src/api/system/website/model/index.ts | 97 - .../src/api/system/white-domain/index.ts | 146 - .../api/system/white-domain/model/index.ts | 27 - dict/admin/src/api/user/balance-log/index.ts | 104 - .../src/api/user/balance-log/model/index.ts | 31 - dict/admin/src/api/user/feedback/index.ts | 103 - .../src/api/user/feedback/model/index.ts | 29 - dict/admin/src/api/user/grade/index.ts | 114 - dict/admin/src/api/user/grade/model/index.ts | 28 - dict/admin/src/api/user/index.ts | 18 - dict/admin/src/api/user/model/index.ts | 57 - .../src/api/user/recharge/export/index.ts | 109 - .../api/user/recharge/export/model/index.ts | 37 - .../src/api/user/recharge/order/index.ts | 134 - .../api/user/recharge/order/model/index.ts | 34 - dict/admin/src/api/user/referee/index.ts | 102 - .../admin/src/api/user/referee/model/index.ts | 24 - dict/admin/src/api/user/userCoupon/index.ts | 106 - .../src/api/user/userCoupon/model/index.ts | 59 - ...waRtkJyvf_!!6000000001499-55-tps-70-70.svg | 1 - dict/admin/src/assets/bg-2.jpeg | Bin 406999 -> 0 bytes dict/admin/src/assets/bg-login.jpg | Bin 66953 -> 0 bytes dict/admin/src/assets/icon/app1.png | Bin 1986 -> 0 bytes dict/admin/src/assets/icon/book.png | Bin 3134 -> 0 bytes dict/admin/src/assets/icon/forum.png | Bin 2979 -> 0 bytes dict/admin/src/assets/icon/gitea.png | Bin 2699 -> 0 bytes dict/admin/src/assets/icon/openai-avatar.jpeg | Bin 17990 -> 0 bytes dict/admin/src/assets/icon/other.png | Bin 4744 -> 0 bytes dict/admin/src/assets/icon/pc.png | Bin 1253 -> 0 bytes dict/admin/src/assets/icon/question.png | Bin 3976 -> 0 bytes dict/admin/src/assets/icon/weixin.png | Bin 4424 -> 0 bytes dict/admin/src/assets/img/app-ui.png | Bin 19578 -> 0 bytes dict/admin/src/assets/img/circular.png | Bin 2374 -> 0 bytes dict/admin/src/assets/img/default-avatar.png | Bin 2672 -> 0 bytes dict/admin/src/assets/img/phone-top-black.png | Bin 4420 -> 0 bytes dict/admin/src/assets/img/phone-top-white.png | Bin 4108 -> 0 bytes dict/admin/src/assets/img/phone-ui.png | Bin 18758 -> 0 bytes dict/admin/src/assets/logo.svg | 15 - .../src/components/ByteMdEditor/index.vue | 109 - .../src/components/ByteMdViewer/index.vue | 93 - .../src/components/ChooseDictionary/index.vue | 73 - .../src/components/DesignBanner/index.vue | 173 - .../src/components/DesignHeader/index.vue | 48 - dict/admin/src/components/DictRadio/index.vue | 58 - .../admin/src/components/DictSelect/index.vue | 75 - .../components/DictSelectMultiple/index.vue | 65 - .../admin/src/components/FormSelect/index.vue | 61 - .../src/components/IndustrySelect/index.vue | 127 - .../components/IndustrySelect/load-data.ts | 25 - .../components/IndustrySelect/types/index.ts | 15 - dict/admin/src/components/PayMethod/index.vue | 76 - dict/admin/src/components/QrCode/index.vue | 41 - dict/admin/src/components/QrLogin/demo.vue | 258 - dict/admin/src/components/QrLogin/index.vue | 312 - .../admin/src/components/RadioGroup/index.vue | 45 - .../src/components/RedirectLayout/index.ts | 21 - .../src/components/RegionsSelect/index.vue | 127 - .../src/components/RegionsSelect/load-data.ts | 25 - .../components/RegionsSelect/types/index.ts | 15 - .../src/components/RouterLayout/index.vue | 26 - .../SelectArticle/components/select-data.vue | 143 - .../src/components/SelectArticle/index.vue | 60 - .../components/select-data.vue | 143 - .../SelectArticleCategory/index.vue | 60 - .../SelectDesign/components/select-data.vue | 142 - .../src/components/SelectDesign/index.vue | 60 - .../SelectDict/components/select-data.vue | 146 - .../admin/src/components/SelectDict/index.vue | 67 - .../components/select-data.vue | 151 - .../components/SelectDictDictionary/index.vue | 66 - .../SelectFence/components/select-data.vue | 139 - .../src/components/SelectFence/index.vue | 75 - .../components/file-record-edit.vue | 179 - .../SelectFile/components/select-data.vue | 375 - .../admin/src/components/SelectFile/index.vue | 135 - .../SelectForm/components/select-data.vue | 143 - .../admin/src/components/SelectForm/index.vue | 60 - .../components/SelectGoodsCategory/index.vue | 138 - .../SelectGoodsCategory/load-data.ts | 25 - .../SelectGoodsCategory/types/index.ts | 15 - .../SelectGrade/components/select-data.vue | 137 - .../src/components/SelectGrade/index.vue | 60 - .../SelectGroup/components/select-data.vue | 137 - .../src/components/SelectGroup/index.vue | 60 - .../SelectMerchant/components/select-data.vue | 161 - .../src/components/SelectMerchant/index.vue | 64 - .../SelectModel/components/select-data.vue | 147 - .../src/components/SelectModel/index.vue | 62 - .../SelectModules/components/select-data.vue | 139 - .../src/components/SelectModules/index.vue | 62 - .../SelectMpPages/components/select-data.vue | 144 - .../src/components/SelectMpPages/index.vue | 60 - .../components/select-data.vue | 223 - .../components/SelectNavigsation/index.vue | 62 - .../components/select-data.vue | 224 - .../components/select-organization.vue | 123 - .../components/SelectOrganization/index.vue | 60 - .../SelectRole/components/select-data.vue | 151 - .../admin/src/components/SelectRole/index.vue | 62 - .../SelectSpec/components/select-data.vue | 169 - .../admin/src/components/SelectSpec/index.vue | 62 - .../src/components/SelectSpecValue/index.vue | 81 - .../SelectStaff/components/select-data.vue | 144 - .../SelectStaff/components/select-user.vue | 139 - .../src/components/SelectStaff/index.vue | 70 - .../SelectStudent/components/select-data.vue | 137 - .../src/components/SelectStudent/index.vue | 53 - .../SelectUser/components/select-data.vue | 151 - .../SelectUser/components/select-user.vue | 138 - .../admin/src/components/SelectUser/index.vue | 64 - .../components/select-data.vue | 146 - .../components/SelectUserByButton/index.vue | 53 - .../components/select-data.vue | 169 - .../components/SelectWebsiteField/index.vue | 64 - dict/admin/src/components/Simulator/index.vue | 510 - dict/admin/src/components/Tag/index.vue | 25 - .../src/components/TinymceEditor/index.vue | 247 - .../src/components/TinymceEditor/util.ts | 350 - .../admin/src/components/UploadCert/index.vue | 87 - .../admin/src/components/UploadFile/index.vue | 142 - dict/admin/src/components/User/index.vue | 65 - .../components/UserChoose/choose-search.vue | 37 - .../admin/src/components/UserChoose/index.vue | 146 - .../src/components/UserChoose/types/index.ts | 9 - .../admin/src/components/UserSelect/index.vue | 144 - .../src/components/UserSelect/types/index.ts | 9 - .../src/components/UserSelect/user-search.vue | 37 - dict/admin/src/composables/useSiteData.ts | 101 - dict/admin/src/config/menu.ts | 117 - dict/admin/src/config/performance.ts | 396 - dict/admin/src/config/setting.ts | 78 - dict/admin/src/i18n/index.ts | 20 - dict/admin/src/i18n/lang/en/index.ts | 14 - dict/admin/src/i18n/lang/en/layout.ts | 80 - dict/admin/src/i18n/lang/en/list.ts | 17 - dict/admin/src/i18n/lang/en/login.ts | 14 - dict/admin/src/i18n/lang/en/route.ts | 22 - dict/admin/src/i18n/lang/zh_CN/index.ts | 14 - dict/admin/src/i18n/lang/zh_CN/layout.ts | 81 - dict/admin/src/i18n/lang/zh_CN/list.ts | 17 - dict/admin/src/i18n/lang/zh_CN/login.ts | 14 - dict/admin/src/i18n/lang/zh_CN/route.ts | 16 - dict/admin/src/i18n/use-locale.ts | 35 - .../src/layout/components/header-notice.vue | 133 - .../src/layout/components/header-tools.vue | 311 - .../src/layout/components/header-wechat.vue | 33 - .../admin/src/layout/components/i18n-icon.vue | 52 - .../src/layout/components/menu-title.vue | 17 - .../src/layout/components/page-footer.vue | 26 - .../src/layout/components/password-modal.vue | 148 - .../src/layout/components/setting-drawer.vue | 747 - dict/admin/src/layout/index.vue | 368 - dict/admin/src/layout/menu-icons.ts | 153 - dict/admin/src/lib/port-manager.ts | 355 - dict/admin/src/lib/port-strategy.ts | 415 - dict/admin/src/lib/tenant-port-manager.ts | 411 - dict/admin/src/main.ts | 16 - dict/admin/src/router/index.ts | 86 - dict/admin/src/router/performance.ts | 313 - dict/admin/src/router/routes.ts | 118 - dict/admin/src/shims-vue.d.ts | 6 - dict/admin/src/store/index.ts | 6 - .../src/store/modules/bszx-statistics.ts | 141 - dict/admin/src/store/modules/chat.ts | 134 - dict/admin/src/store/modules/params.ts | 40 - dict/admin/src/store/modules/setting.ts | 25 - dict/admin/src/store/modules/site.ts | 172 - dict/admin/src/store/modules/statistics.ts | 320 - dict/admin/src/store/modules/template.ts | 119 - dict/admin/src/store/modules/tenant.ts | 70 - dict/admin/src/store/modules/theme.ts | 698 - dict/admin/src/store/modules/user.ts | 145 - dict/admin/src/styles/as-needed.less | 6 - dict/admin/src/styles/component.less | 17 - dict/admin/src/styles/global-import.less | 4 - dict/admin/src/styles/index.less | 39 - dict/admin/src/styles/transition/fade.less | 10 - dict/admin/src/styles/transition/index.less | 4 - dict/admin/src/styles/transition/slide.less | 31 - dict/admin/src/styles/transition/zoom.less | 31 - dict/admin/src/utils/cache-manager.ts | 429 - dict/admin/src/utils/common.ts | 565 - .../admin/src/utils/component-optimization.ts | 429 - dict/admin/src/utils/document-title-util.ts | 71 - dict/admin/src/utils/domain.ts | 144 - dict/admin/src/utils/editor.ts | 47 - dict/admin/src/utils/enhanced-request.ts | 352 - dict/admin/src/utils/lazy-load.ts | 318 - dict/admin/src/utils/merchant.ts | 42 - dict/admin/src/utils/on-size-change.ts | 18 - dict/admin/src/utils/oss.js | 43 - dict/admin/src/utils/page-tab-util.ts | 261 - dict/admin/src/utils/performance.ts | 263 - dict/admin/src/utils/permission.ts | 119 - dict/admin/src/utils/plug-uitl.ts | 53 - dict/admin/src/utils/port-config-manager.ts | 357 - dict/admin/src/utils/request.ts | 116 - dict/admin/src/utils/shop.ts | 90 - dict/admin/src/utils/token-util.ts | 71 - dict/admin/src/utils/type-guards.ts | 105 - dict/admin/src/utils/use-echarts.ts | 76 - dict/admin/src/utils/use-form-data.ts | 29 - dict/admin/src/utils/use-search.ts | 27 - .../bsyxClass/components/bszxClassEdit.vue | 199 - .../bsyx/bsyxClass/components/search.vue | 98 - dict/admin/src/views/bsyx/bsyxClass/index.vue | 237 - .../bsyxGrade/components/bszxGradeEdit.vue | 165 - .../bsyx/bsyxGrade/components/search.vue | 52 - dict/admin/src/views/bsyx/bsyxGrade/index.vue | 230 - .../bsyx/bsyxOrder/components/bszxPayEdit.vue | 249 - .../bsyx/bsyxOrder/components/orderInfo.vue | 566 - .../bsyx/bsyxOrder/components/search.vue | 204 - dict/admin/src/views/bsyx/bsyxOrder/index.vue | 307 - .../bsyx/bsyxPay/components/bszxPayEdit.vue | 249 - .../views/bsyx/bsyxPay/components/search.vue | 230 - dict/admin/src/views/bsyx/bsyxPay/index.vue | 336 - .../components/bszxPayRankingEdit.vue | 214 - .../bsyx/bsyxPayRanking/components/search.vue | 86 - .../src/views/bsyx/bsyxPayRanking/index.vue | 242 - dict/admin/src/views/bsyx/extra.vue | 60 - .../bszx/bszxBm/components/bszxBmEdit.vue | 283 - .../views/bszx/bszxBm/components/search.vue | 224 - dict/admin/src/views/bszx/bszxBm/index.vue | 306 - .../bszxBranch/components/bszxBranchEdit.vue | 179 - .../admin/src/views/bszx/bszxBranch/index.vue | 218 - .../bszxClass/components/bszxClassEdit.vue | 205 - .../bszx/bszxClass/components/search.vue | 102 - dict/admin/src/views/bszx/bszxClass/index.vue | 244 - .../bszxGrade/components/bszxGradeEdit.vue | 170 - .../bszx/bszxGrade/components/search.vue | 56 - dict/admin/src/views/bszx/bszxGrade/index.vue | 237 - .../bszx/bszxOrder/components/bszxPayEdit.vue | 249 - .../bszx/bszxOrder/components/orderInfo.vue | 566 - .../bszx/bszxOrder/components/search.vue | 204 - dict/admin/src/views/bszx/bszxOrder/index.vue | 307 - .../bszx/bszxPay/components/bszxPayEdit.vue | 249 - .../views/bszx/bszxPay/components/search.vue | 235 - dict/admin/src/views/bszx/bszxPay/index.vue | 336 - .../bszxPayCert/components/appBszxPayEdit.vue | 270 - .../bszx/bszxPayCert/components/search.vue | 141 - .../src/views/bszx/bszxPayCert/index.vue | 112 - .../components/bszxPayRankingEdit.vue | 215 - .../bszx/bszxPayRanking/components/search.vue | 86 - .../src/views/bszx/bszxPayRanking/index.vue | 242 - .../components/bszxPayRankingEdit.vue | 213 - .../bszxPayRanking2/components/search.vue | 217 - .../src/views/bszx/bszxPayRanking2/index.vue | 226 - .../bszx/dashboard/components/search.vue | 100 - .../bszx/dashboard/components/websiteEdit.vue | 413 - dict/admin/src/views/bszx/dashboard/index.vue | 264 - dict/admin/src/views/bszx/extra.vue | 65 - .../admin/src/views/cms/clear-cache/index.vue | 41 - .../views/cms/cmsAd/components/cmsAdEdit.vue | 402 - .../src/views/cms/cmsAd/components/search.vue | 81 - dict/admin/src/views/cms/cmsAd/index.vue | 288 - .../components/cmsAdRecordEdit.vue | 215 - .../admin/src/views/cms/cmsAdRecord/index.vue | 257 - .../cms/cmsArticle/components/Import.vue | 82 - .../cms/cmsArticle/components/articleEdit.vue | 1554 -- .../cmsArticle/components/articleUpdate.vue | 207 - .../cms/cmsArticle/components/search.vue | 326 - .../cmsArticle/dictionary/source-select.vue | 51 - dict/admin/src/views/cms/cmsArticle/index.vue | 467 - .../src/views/cms/cmsArticleComment/index.vue | 293 - .../components/cmsArticleContentEdit.vue | 178 - .../src/views/cms/cmsArticleContent/index.vue | 227 - .../components/cmsArticleCountEdit.vue | 178 - .../src/views/cms/cmsArticleCount/index.vue | 227 - .../components/cmsArticleLikeEdit.vue | 178 - .../src/views/cms/cmsArticleLike/index.vue | 227 - .../cmsDesign/components/cmsDesignEdit.vue | 275 - .../views/cms/cmsDesign/components/search.vue | 111 - dict/admin/src/views/cms/cmsDesign/index.vue | 240 - .../cmsDomain/components/cmsDomainEdit.vue | 186 - .../views/cms/cmsDomain/components/search.vue | 42 - dict/admin/src/views/cms/cmsDomain/index.vue | 249 - .../cms/cmsForm/components/cmsFormEdit.vue | 465 - dict/admin/src/views/cms/cmsForm/index.vue | 238 - .../components/cmsFormRecordEdit.vue | 239 - .../src/views/cms/cmsFormRecord/index.vue | 275 - .../cms/cmsLang/components/cmsLangEdit.vue | 202 - .../views/cms/cmsLang/components/search.vue | 43 - dict/admin/src/views/cms/cmsLang/index.vue | 207 - .../cmsLangLog/components/cmsLangLogEdit.vue | 178 - dict/admin/src/views/cms/cmsLangLog/index.vue | 227 - .../cms/cmsLink/components/cmsLinkEdit.vue | 273 - .../cms/cmsLink/components/linkUpdate.vue | 199 - .../views/cms/cmsLink/components/search.vue | 94 - dict/admin/src/views/cms/cmsLink/index.vue | 273 - .../cms/cmsModel/components/cmsModelEdit.vue | 316 - .../views/cms/cmsModel/components/search.vue | 42 - dict/admin/src/views/cms/cmsModel/index.vue | 260 - .../components/designRecordEdit.vue | 245 - .../components/components/search.vue | 42 - .../cmsNavigation/components/design-edit.vue | 482 - .../cms/cmsNavigation/components/extra.vue | 60 - .../components/navigation-edit.vue | 595 - .../cms/cmsNavigation/components/search.vue | 184 - .../src/views/cms/cmsNavigation/index.vue | 590 - .../cms/cmsOrder/components/orderInfo.vue | 586 - .../views/cms/cmsOrder/components/search.vue | 222 - dict/admin/src/views/cms/cmsOrder/index.vue | 374 - dict/admin/src/views/cms/cmsSetting/index.vue | 176 - .../components/cmsStatisticsEdit.vue | 387 - .../src/views/cms/cmsStatistics/index.vue | 163 - .../components/cmsTemplateEdit.vue | 289 - .../admin/src/views/cms/cmsTemplate/index.vue | 230 - .../cms/cmsWebsite/components/search.vue | 100 - .../cms/cmsWebsite/components/websiteEdit.vue | 418 - dict/admin/src/views/cms/cmsWebsite/index.vue | 320 - .../cms/cmsWebsiteField/components/Import.vue | 82 - .../cms/cmsWebsiteField/components/edit.vue | 315 - .../cms/cmsWebsiteField/components/search.vue | 114 - .../src/views/cms/cmsWebsiteField/index.vue | 284 - .../components/cmsWebsiteSettingEdit.vue | 257 - .../cmsWebsiteSetting/components/search.vue | 42 - .../src/views/cms/cmsWebsiteSetting/index.vue | 305 - .../views/cms/dashboard/components/search.vue | 100 - .../cms/dashboard/components/websiteEdit.vue | 413 - dict/admin/src/views/cms/dashboard/index.vue | 258 - .../views/cms/dict/components/dict-edit.vue | 177 - dict/admin/src/views/cms/dict/index.vue | 213 - .../views/cms/file/components/video-edit.vue | 241 - dict/admin/src/views/cms/file/index.vue | 307 - .../admin/src/views/cms/file/player/index.vue | 131 - .../views/cms/help/components/articleEdit.vue | 237 - .../src/views/cms/help/components/search.vue | 69 - dict/admin/src/views/cms/help/index.vue | 381 - .../src/views/cms/photo/components/Extra.vue | 70 - .../views/cms/photo/components/photo-edit.vue | 276 - .../cms/photo/dict/components/dict-edit.vue | 178 - dict/admin/src/views/cms/photo/dict/index.vue | 210 - dict/admin/src/views/cms/photo/image.vue | 141 - dict/admin/src/views/cms/photo/index.vue | 176 - dict/admin/src/views/cms/photo/list.vue | 348 - .../src/views/cms/photo/player/index.vue | 124 - .../views/cms/setting/components/field.vue | 250 - .../setting/components/website-field-edit.vue | 181 - .../components/website-field-search.vue | 13 - .../cms/setting/components/website-field.vue | 189 - dict/admin/src/views/cms/setting/index.vue | 367 - .../views/cms/video/components/video-edit.vue | 241 - dict/admin/src/views/cms/video/index.vue | 321 - .../src/views/cms/video/player/index.vue | 131 - dict/admin/src/views/dormitory/Extra.vue | 52 - .../dormitory/dashboard/components/search.vue | 100 - .../dashboard/components/websiteEdit.vue | 413 - .../src/views/dormitory/dashboard/index.vue | 295 - .../dormitoryApply/components/search.vue | 42 - .../views/dormitory/dormitoryApply/index.vue | 292 - .../components/dormitoryBedEdit.vue | 244 - .../dormitoryBed/components/search.vue | 42 - .../views/dormitory/dormitoryBed/index.vue | 288 - .../components/dormitoryBuildingEdit.vue | 177 - .../dormitoryBuilding/components/search.vue | 42 - .../dormitory/dormitoryBuilding/index.vue | 242 - .../components/dormitoryFloorEdit.vue | 194 - .../dormitoryFloor/components/search.vue | 42 - .../views/dormitory/dormitoryFloor/index.vue | 248 - .../components/dormitoryRecordEdit.vue | 205 - .../dormitoryRecord/components/search.vue | 42 - .../views/dormitory/dormitoryRecord/index.vue | 278 - .../views/dormitory/user/components/Extra.vue | 55 - .../dormitory/user/components/org-select.vue | 39 - .../dormitory/user/components/role-select.vue | 71 - .../dormitory/user/components/search.vue | 42 - .../dormitory/user/components/sex-select.vue | 45 - .../dormitory/user/components/user-edit.vue | 363 - .../dormitory/user/components/user-import.vue | 88 - .../dormitory/user/components/user-info.vue | 143 - .../dormitory/user/components/user-search.vue | 111 - .../dormitory/user/components/userEdit.vue | 274 - .../views/dormitory/user/details/index.vue | 130 - dict/admin/src/views/dormitory/user/index.vue | 681 - .../hjm/count/components/hjmFenceEdit.vue | 306 - .../src/views/hjm/count/components/search.vue | 42 - dict/admin/src/views/hjm/count/index.vue | 150 - .../hjm/hjmBxLog/components/hjmBxLogEdit.vue | 207 - .../views/hjm/hjmBxLog/components/search.vue | 42 - dict/admin/src/views/hjm/hjmBxLog/index.vue | 252 - .../src/views/hjm/hjmCar/components/Extra.vue | 54 - .../views/hjm/hjmCar/components/Import.vue | 82 - .../hjm/hjmCar/components/hjmCarEdit.vue | 486 - .../views/hjm/hjmCar/components/qrcode.vue | 39 - .../views/hjm/hjmCar/components/search.vue | 456 - dict/admin/src/views/hjm/hjmCar/index.vue | 410 - .../hjmChoices/components/hjmChoicesEdit.vue | 223 - .../hjm/hjmChoices/components/search.vue | 42 - dict/admin/src/views/hjm/hjmChoices/index.vue | 263 - .../hjm/hjmCourses/components/search.vue | 42 - dict/admin/src/views/hjm/hjmCourses/index.vue | 256 - .../hjmExamLog/components/hjmExamLogEdit.vue | 223 - .../hjm/hjmExamLog/components/search.vue | 59 - dict/admin/src/views/hjm/hjmExamLog/index.vue | 230 - .../hjm/hjmFence/components/hjmFenceEdit.vue | 306 - .../views/hjm/hjmFence/components/search.vue | 42 - dict/admin/src/views/hjm/hjmFence/index.vue | 272 - .../hjmGpsLog/components/hjmGpsLogEdit.vue | 205 - .../views/hjm/hjmGpsLog/components/search.vue | 51 - dict/admin/src/views/hjm/hjmGpsLog/index.vue | 261 - .../hjm/hjmQuestions/components/Extra.vue | 59 - .../hjm/hjmQuestions/components/Import.vue | 82 - .../components/hjmQuestionsEdit.vue | 432 - .../hjm/hjmQuestions/components/search.vue | 98 - .../src/views/hjm/hjmQuestions/index.vue | 303 - .../components/hjmViolationEdit.vue | 214 - .../hjm/hjmViolation/components/search.vue | 42 - .../src/views/hjm/hjmViolation/index.vue | 243 - .../views/hjm/staff/components/org-edit.vue | 229 - .../views/hjm/staff/components/org-select.vue | 39 - .../hjm/staff/components/org-type-select.vue | 39 - .../hjm/staff/components/org-user-edit.vue | 509 - .../hjm/staff/components/org-user-list.vue | 199 - .../hjm/staff/components/org-user-search.vue | 31 - .../hjm/staff/components/role-select.vue | 71 - .../views/hjm/staff/components/sex-select.vue | 45 - dict/admin/src/views/hjm/staff/index.vue | 213 - .../views/hjm/userAlert/components/Edit.vue | 149 - .../views/hjm/userAlert/components/search.vue | 36 - dict/admin/src/views/hjm/userAlert/index.vue | 171 - .../views/hjm/userVerify/components/Extra.vue | 55 - .../hjm/userVerify/components/search.vue | 67 - .../userVerify/components/userVerifyEdit.vue | 352 - dict/admin/src/views/hjm/userVerify/index.vue | 282 - .../hjm/userVerify2/components/search.vue | 67 - .../userVerify2/components/userVerifyEdit.vue | 374 - .../admin/src/views/hjm/userVerify2/index.vue | 273 - .../src/views/passport/dealer/register.vue | 685 - .../register/step/components/step-confirm.vue | 279 - .../register/step/components/step-edit.vue | 286 - .../register/step/components/step-success.vue | 24 - .../login/components/register/step/index.vue | 67 - .../components/register/step/model/index.ts | 12 - .../passport/login/components/wx-work.vue | 41 - dict/admin/src/views/passport/login/index.vue | 783 - .../src/views/passport/loginToken/index.vue | 31 - .../src/views/passport/qrConfirm/index.vue | 371 - .../src/views/passport/register/index.vue | 807 - .../src/views/passport/register2/index.vue | 804 - dict/admin/src/views/result/fail/index.vue | 62 - dict/admin/src/views/result/success/index.vue | 34 - .../sdy/shopDealerApply/components/search.vue | 159 - .../components/shopDealerApplyEdit.vue | 595 - .../src/views/sdy/shopDealerApply/index.vue | 440 - .../shopDealerApplyRs/components/search.vue | 219 - .../components/shop-dealer-apply-import.vue | 88 - .../components/shopDealerApplyEdit.vue | 280 - .../src/views/sdy/shopDealerApplyRs/index.vue | 310 - .../sdy/shopDealerOrder/components/Import.vue | 83 - .../sdy/shopDealerOrder/components/search.vue | 206 - .../components/shopDealerOrderEdit.vue | 386 - .../src/views/sdy/shopDealerOrder/index.vue | 462 - .../shopDealerOrder2/components/Import.vue | 79 - .../shopDealerOrder2/components/search.vue | 146 - .../components/shopDealerOrderEdit.vue | 341 - .../src/views/sdy/shopDealerOrder2/index.vue | 475 - .../sdy/shopDealerUser/components/search.vue | 219 - .../components/shopDealerApplyEdit.vue | 407 - .../src/views/sdy/shopDealerUser/index.vue | 496 - .../views/sdy/user/components/org-select.vue | 39 - .../src/views/sdy/user/components/search.vue | 42 - .../views/sdy/user/components/status-test.vue | 65 - .../views/sdy/user/components/user-edit.vue | 312 - .../views/sdy/user/components/user-import.vue | 88 - dict/admin/src/views/sdy/user/index.vue | 603 - .../shop/dashboard/components/search.vue | 100 - .../shop/dashboard/components/websiteEdit.vue | 413 - dict/admin/src/views/shop/dashboard/index.vue | 295 - .../shopAdmin/components/invitation-modal.vue | 293 - .../shop/shopAdmin/components/org-select.vue | 39 - .../shop/shopAdmin/components/search.vue | 42 - .../shop/shopAdmin/components/super-admin.vue | 41 - .../shop/shopAdmin/components/user-edit.vue | 275 - dict/admin/src/views/shop/shopAdmin/index.vue | 431 - .../shop/shopCoupon/components/search.vue | 42 - .../shopCoupon/components/shopCouponEdit.vue | 930 - .../admin/src/views/shop/shopCoupon/index.vue | 708 - .../shopDealerApply/components/search.vue | 219 - .../components/shopDealerApplyEdit.vue | 407 - .../src/views/shop/shopDealerApply/index.vue | 494 - .../shopDealerCapital/components/search.vue | 42 - .../components/shopDealerCapitalEdit.vue | 398 - .../shopDealerOrder/components/Import.vue | 79 - .../shopDealerOrder/components/search.vue | 196 - .../components/shopDealerOrderEdit.vue | 458 - .../src/views/shop/shopDealerOrder/index.vue | 486 - .../src/views/shop/shopDealerPoster/index.vue | 751 - .../shopDealerReferee/components/search.vue | 192 - .../components/shopDealerRefereeEdit.vue | 185 - .../views/shop/shopDealerReferee/index.vue | 490 - .../shopDealerSetting/components/search.vue | 42 - .../components/shopDealerSettingEdit.vue | 744 - .../views/shop/shopDealerSetting/index.vue | 403 - .../shop/shopDealerUser/components/Import.vue | 110 - .../shop/shopDealerUser/components/search.vue | 206 - .../components/shopDealerUserEdit.vue | 516 - .../src/views/shop/shopDealerUser/index.vue | 394 - .../shopDealerWithdraw/components/search.vue | 42 - .../components/shopDealerWithdrawEdit.vue | 698 - .../views/shop/shopDealerWithdraw/index.vue | 468 - .../shop/shopExpress/components/search.vue | 42 - .../components/shopExpressEdit.vue | 220 - .../src/views/shop/shopExpress/index.vue | 244 - .../shopExpressTemplate/components/search.vue | 42 - .../components/shopExpressTemplateEdit.vue | 239 - .../components/search.vue | 42 - .../shopExpressTemplateDetailEdit.vue | 232 - .../shop/shopGift/components/makeCard.vue | 370 - .../views/shop/shopGift/components/search.vue | 627 - .../shop/shopGift/components/shopGiftEdit.vue | 707 - dict/admin/src/views/shop/shopGift/index.vue | 253 - .../views/shop/shopGoods/components/extra.vue | 39 - .../shop/shopGoods/components/search.vue | 158 - .../shopGoods/components/shopGoodsEdit.vue | 1947 -- dict/admin/src/views/shop/shopGoods/index.vue | 323 - .../shopGoodsCoupon/components/search.vue | 42 - .../components/shopGoodsCouponEdit.vue | 193 - .../src/views/shop/shopGoodsCoupon/index.vue | 257 - .../shop/shopGoodsSku/components/search.vue | 42 - .../components/shopGoodsSkuEdit.vue | 273 - .../src/views/shop/shopGoodsSku/index.vue | 299 - .../shop/shopGoodsSpec/components/search.vue | 42 - .../components/shopGoodsSpecEdit.vue | 201 - .../src/views/shop/shopGoodsSpec/index.vue | 236 - .../shop/shopMerchant/components/search.vue | 41 - .../components/shopMerchantEdit.vue | 454 - .../src/views/shop/shopMerchant/index.vue | 244 - .../shopOrder/components/deliveryModal.vue | 311 - .../components/expressSettingModal.vue | 369 - .../shop/shopOrder/components/orderInfo.vue | 1034 - .../shop/shopOrder/components/search.vue | 273 - dict/admin/src/views/shop/shopOrder/index.vue | 675 - .../shop/shopOrderGoods/components/search.vue | 42 - .../views/shop/shopSpec/components/search.vue | 42 - .../shop/shopSpec/components/shopSpecEdit.vue | 223 - dict/admin/src/views/shop/shopSpec/index.vue | 263 - .../shop/shopSpecValue/components/search.vue | 42 - .../components/shopSpecValueEdit.vue | 192 - .../src/views/shop/shopSpecValue/index.vue | 239 - .../shop/shopUser/components/org-select.vue | 39 - .../views/shop/shopUser/components/search.vue | 42 - .../shop/shopUser/components/user-edit.vue | 278 - .../shop/shopUser/components/user-import.vue | 88 - dict/admin/src/views/shop/shopUser/index.vue | 608 - .../shop/shopUserCoupon/components/search.vue | 42 - .../shopUserReferee/components/search.vue | 42 - .../access-key/components/accesskey-edit.vue | 130 - .../src/views/system/access-key/index.vue | 155 - .../system/admin/components/org-select.vue | 39 - .../system/admin/components/role-select.vue | 71 - .../views/system/admin/components/search.vue | 42 - .../system/admin/components/sex-select.vue | 45 - .../system/admin/components/user-edit.vue | 299 - .../system/admin/components/user-import.vue | 88 - .../system/admin/components/user-info.vue | 143 - .../system/admin/components/user-search.vue | 111 - .../system/admin/components/userEdit.vue | 274 - .../src/views/system/admin/details/index.vue | 130 - dict/admin/src/views/system/admin/index.vue | 434 - .../system/cache/components/cache-edit.vue | 165 - .../system/cache/components/send-sms.vue | 233 - dict/admin/src/views/system/cache/index.vue | 167 - .../components/chatConversationEdit.vue | 218 - .../chatConversation/components/search.vue | 42 - .../views/system/chatConversation/index.vue | 263 - .../components/chatMessageEdit.vue | 254 - .../system/chatMessage/components/search.vue | 42 - .../src/views/system/chatMessage/index.vue | 287 - dict/admin/src/views/system/demo/index.vue | 23 - .../system/developer/components/CodeInfo.vue | 68 - .../system/developer/components/ParamInfo.vue | 68 - .../developer/components/ServerInfo.vue | 28 - .../developer/components/TenantInfo.vue | 47 - .../src/views/system/developer/index.vue | 34 - .../system/dict/components/dict-data-edit.vue | 176 - .../dict/components/dict-data-search.vue | 70 - .../system/dict/components/dict-data.vue | 229 - .../system/dict/components/dict-edit.vue | 160 - dict/admin/src/views/system/dict/index.vue | 195 - dict/admin/src/views/system/dict/list.vue | 215 - .../dictionary/components/dict-data-edit.vue | 181 - .../components/dict-data-search.vue | 70 - .../dictionary/components/dict-data.vue | 207 - .../dictionary/components/dict-edit.vue | 160 - .../src/views/system/dictionary/index.vue | 203 - .../src/views/system/dictionary/list.vue | 195 - .../system/domain/components/domainEdit.vue | 193 - .../views/system/domain/components/search.vue | 53 - dict/admin/src/views/system/domain/index.vue | 250 - .../src/views/system/exception/403/index.vue | 17 - .../src/views/system/exception/404/index.vue | 70 - .../src/views/system/exception/500/index.vue | 17 - .../views/system/field/components/edit.vue | 237 - .../views/system/field/components/search.vue | 13 - dict/admin/src/views/system/field/index.vue | 230 - .../system/file/components/file-search.vue | 106 - dict/admin/src/views/system/file/index.vue | 244 - .../system/grade/components/grade-edit.vue | 191 - .../views/system/grade/components/search.vue | 42 - dict/admin/src/views/system/grade/index.vue | 296 - .../components/login-record-search.vue | 115 - .../src/views/system/login-record/index.vue | 235 - .../views/system/menu/components/Import.vue | 79 - .../views/system/menu/components/clone.vue | 216 - .../views/system/menu/components/delete.vue | 175 - .../system/menu/components/menu-edit.vue | 474 - .../system/menu/components/menu-plug.vue | 168 - .../menu/components/menu-search-original.vue | 106 - .../system/menu/components/menu-search.vue | 174 - dict/admin/src/views/system/menu/index.vue | 392 - .../modules/components/modules-edit.vue | 171 - .../modules/components/modules-search.vue | 106 - dict/admin/src/views/system/modules/index.vue | 160 - .../components/operation-record-detail.vue | 131 - .../components/operation-record-search.vue | 112 - .../components/text-ellipsis.vue | 59 - .../views/system/operation-record/index.vue | 273 - .../system/order/components/order-edit.vue | 175 - .../views/system/order/components/search.vue | 104 - dict/admin/src/views/system/order/index.vue | 193 - .../organization/components/org-edit.vue | 229 - .../organization/components/org-select.vue | 39 - .../components/org-type-select.vue | 39 - .../organization/components/org-user-edit.vue | 509 - .../organization/components/org-user-list.vue | 201 - .../components/org-user-search.vue | 31 - .../organization/components/role-select.vue | 71 - .../organization/components/sex-select.vue | 45 - .../src/views/system/organization/index.vue | 214 - .../system/payment/components/paymentEdit.vue | 369 - .../system/payment/components/search.vue | 42 - dict/admin/src/views/system/payment/index.vue | 252 - .../system/plug/components/companyEdit.vue | 1012 - .../system/plug/components/menu-edit.vue | 416 - .../system/plug/components/menu-search.vue | 106 - .../system/plug/components/plug-edit.vue | 253 - .../system/plug/components/plug-search.vue | 67 - .../src/views/system/plug/components/plug.vue | 194 - .../views/system/plug/components/search.vue | 104 - .../views/system/plug/components/tenant.vue | 239 - .../system/plug/create/components/clone.vue | 186 - .../plug/create/components/plug-edit.vue | 261 - .../plug/create/components/plug-search.vue | 98 - .../src/views/system/plug/create/index.vue | 296 - .../src/views/system/plug/detail/index.vue | 308 - dict/admin/src/views/system/plug/index.vue | 20 - .../src/views/system/plug/list/index.vue | 253 - .../src/views/system/plug/search/index.vue | 285 - .../views/system/profile/components/field.vue | 274 - .../system/profile/components/sex-select.vue | 45 - .../system/profile/components/version.vue | 232 - dict/admin/src/views/system/profile/index.vue | 449 - .../system/role/components/role-auth.vue | 159 - .../system/role/components/role-edit.vue | 169 - .../system/role/components/role-search.vue | 106 - dict/admin/src/views/system/role/index.vue | 209 - .../views/system/setting/components/basic.vue | 316 - .../views/system/setting/components/clear.vue | 137 - .../system/setting/components/developer.vue | 202 - .../system/setting/components/mp-weixin.vue | 217 - .../system/setting/components/payment.vue | 526 - .../system/setting/components/printer.vue | 214 - .../system/setting/components/privacy.vue | 102 - .../system/setting/components/register.vue | 236 - .../system/setting/components/role-select.vue | 64 - .../views/system/setting/components/sms.vue | 246 - .../system/setting/components/upload.vue | 313 - .../system/setting/components/website.vue | 187 - .../system/setting/components/wx-official.vue | 176 - .../system/setting/components/wx-work.vue | 210 - dict/admin/src/views/system/setting/index.vue | 84 - .../user-group/components/category-select.vue | 39 - .../user-group/components/group-edit.vue | 161 - .../system/user-group/components/search.vue | 42 - .../src/views/system/user-group/index.vue | 267 - .../src/views/system/user-info/index.vue | 111 - .../views/system/user/components/Extra.vue | 55 - .../system/user/components/org-select.vue | 39 - .../system/user/components/role-select.vue | 71 - .../views/system/user/components/search.vue | 42 - .../system/user/components/sex-select.vue | 45 - .../system/user/components/user-edit.vue | 363 - .../system/user/components/user-import.vue | 88 - .../system/user/components/user-info.vue | 143 - .../system/user/components/user-search.vue | 111 - .../views/system/user/components/userEdit.vue | 274 - .../src/views/system/user/details/index.vue | 130 - dict/admin/src/views/system/user/index.vue | 681 - .../system/userOauth/components/search.vue | 42 - .../userOauth/components/userOauthEdit.vue | 209 - .../src/views/system/userOauth/index.vue | 223 - .../system/userVerify/components/search.vue | 67 - .../userVerify/components/userVerifyEdit.vue | 300 - .../src/views/system/userVerify/index.vue | 273 - .../system/userVerify2/components/search.vue | 67 - .../userVerify2/components/userVerifyEdit.vue | 376 - .../src/views/system/userVerify2/index.vue | 273 - .../version/components/version-edit.vue | 266 - dict/admin/src/views/system/version/index.vue | 212 - .../system/white-domain/components/search.vue | 42 - .../components/white-domain-edit.vue | 156 - .../src/views/system/white-domain/index.vue | 203 - .../components/chatConversationEdit.vue | 220 - .../chat-conversation/components/search.vue | 42 - .../views/user/chat-conversation/index.vue | 263 - .../components/chatMessageEdit.vue | 299 - .../user/chat-message/components/search.vue | 69 - .../src/views/user/chat-message/index.vue | 243 - .../user/profile/components/sex-select.vue | 45 - dict/admin/src/views/user/profile/index.vue | 454 - dict/admin/src/vite-env.d.ts | 1 - dict/admin/tailwind.config.js | 11 - dict/admin/tsconfig.json | 37 - dict/admin/version.json | 3 - dict/admin/vite.config.ts | 229 - dict/admin/yarn.lock | 6512 ------ dict/taro/babel.config.js | 24 - dict/taro/config/app.ts | 10 - dict/taro/config/dev.ts | 13 - dict/taro/config/env.ts | 42 - dict/taro/config/index.ts | 113 - dict/taro/config/prod.ts | 36 - dict/taro/package.json | 97 - dict/taro/pnpm-lock.yaml | 14161 ------------ dict/taro/postcss.config.js | 6 - dict/taro/project.config.json | 25 - dict/taro/project.tt.json | 13 - dict/taro/src/api/index.ts | 62 - dict/taro/src/app.config.ts | 129 - dict/taro/src/app.scss | 36 - dict/taro/src/app.ts | 49 - dict/taro/src/assets/tabbar/home-active.png | Bin 1628 -> 0 bytes dict/taro/src/assets/tabbar/home.png | Bin 1632 -> 0 bytes dict/taro/src/assets/tabbar/kefu-active.png | Bin 2387 -> 0 bytes dict/taro/src/assets/tabbar/kefu.png | Bin 2383 -> 0 bytes dict/taro/src/assets/tabbar/order-active.png | Bin 1858 -> 0 bytes dict/taro/src/assets/tabbar/order.png | Bin 1855 -> 0 bytes dict/taro/src/assets/tabbar/shop-active.png | Bin 1667 -> 0 bytes dict/taro/src/assets/tabbar/shop.png | Bin 1746 -> 0 bytes dict/taro/src/assets/tabbar/store-active.png | Bin 1889 -> 0 bytes dict/taro/src/assets/tabbar/store.png | Bin 1909 -> 0 bytes dict/taro/src/assets/tabbar/user-active.png | Bin 1557 -> 0 bytes dict/taro/src/assets/tabbar/user.png | Bin 1541 -> 0 bytes dict/taro/src/components/AddCartBar.tsx | 70 - dict/taro/src/components/Gap.tsx | 6 - dict/taro/src/components/GoodsList.tsx | 162 - dict/taro/src/components/Header.tsx | 31 - dict/taro/src/components/OrderList.tsx | 170 - dict/taro/src/components/PayRecord.tsx | 118 - dict/taro/src/components/Questions.tsx | 42 - dict/taro/src/components/TabBar.tsx | 28 - dict/taro/src/components/UnifiedQRButton.tsx | 126 - dict/taro/src/hooks/useAdminMode.ts | 66 - dict/taro/src/hooks/useCart.ts | 161 - dict/taro/src/hooks/useDealerApply.ts | 81 - dict/taro/src/hooks/useDealerUser.ts | 81 - dict/taro/src/hooks/useOrderStats.ts | 120 - dict/taro/src/hooks/usePaymentCountdown.ts | 163 - dict/taro/src/hooks/useQRLogin.ts | 228 - dict/taro/src/hooks/useShopInfo.ts | 323 - dict/taro/src/hooks/useTheme.ts | 95 - dict/taro/src/hooks/useUnifiedQRScan.ts | 331 - dict/taro/src/hooks/useUser.ts | 334 - dict/taro/src/hooks/useUserData.ts | 136 - dict/taro/src/index.html | 17 - dict/taro/src/pages/article/article.config.ts | 3 - dict/taro/src/pages/article/article.tsx | 50 - dict/taro/src/pages/index/Banner.tsx | 30 - dict/taro/src/pages/index/BestSellers.tsx | 44 - dict/taro/src/pages/index/Chart.tsx | 69 - dict/taro/src/pages/index/ExpirationTime.tsx | 259 - dict/taro/src/pages/index/Header.tsx | 214 - dict/taro/src/pages/index/Help.tsx | 68 - dict/taro/src/pages/index/Login.tsx | 75 - dict/taro/src/pages/index/Menu.tsx | 163 - dict/taro/src/pages/index/SiteUrl.tsx | 29 - dict/taro/src/pages/index/chart/DemoLine.tsx | 38 - dict/taro/src/pages/index/chart/index.scss | 7 - dict/taro/src/pages/index/index.config.ts | 5 - dict/taro/src/pages/index/index.scss | 4 - dict/taro/src/pages/index/index.tsx | 387 - dict/taro/src/pages/index/login.scss | 10 - dict/taro/src/pages/kefu/kefu.config.ts | 5 - dict/taro/src/pages/kefu/kefu.tsx | 67 - dict/taro/src/pages/order/order.config.ts | 5 - dict/taro/src/pages/order/order.tsx | 53 - dict/taro/src/pages/study/study.config.ts | 3 - dict/taro/src/pages/study/study.tsx | 74 - .../src/pages/user/components/OrderIcon.tsx | 163 - .../src/pages/user/components/UserCard.tsx | 155 - .../src/pages/user/components/UserCell.tsx | 272 - .../src/pages/user/components/UserFooter.tsx | 102 - dict/taro/src/pages/user/user.config.ts | 3 - dict/taro/src/pages/user/user.tsx | 19 - dict/taro/src/passport/agreement.scss | 4 - dict/taro/src/passport/agreement.tsx | 43 - dict/taro/src/passport/forget.tsx | 36 - dict/taro/src/passport/login.tsx | 411 - dict/taro/src/passport/register.tsx | 47 - dict/taro/src/passport/setting.tsx | 82 - dict/taro/src/passport/sms-login.config.ts | 4 - dict/taro/src/passport/sms-login.tsx | 204 - dict/taro/src/passport/wxLogin.tsx | 108 - dict/taro/src/utils/common.ts | 62 - dict/taro/src/utils/config.ts | 8 - dict/taro/src/utils/domain.ts | 110 - dict/taro/src/utils/invite.ts | 484 - dict/taro/src/utils/jsonUtils.ts | 31 - dict/taro/src/utils/request.ts | 89 - dict/taro/src/utils/server.ts | 20 - dict/taro/src/utils/time.ts | 77 - dict/taro/src/utils/wxLogin.ts | 94 - dict/taro/tailwind.config.js | 12 - dict/taro/tsconfig.json | 34 - dict/taro/types/global.d.ts | 27 - .../src/api/clinic/clinicAppointment/index.ts | 0 .../clinic/clinicAppointment/model/index.ts | 0 .../src/api/clinic/clinicDoctorApply/index.ts | 0 .../clinic/clinicDoctorApply/model/index.ts | 0 .../clinicDoctorMedicalRecord}/index.ts | 50 +- .../clinicDoctorMedicalRecord}/model/index.ts | 50 +- .../src/api/clinic/clinicDoctorUser}/index.ts | 51 +- .../clinic/clinicDoctorUser}/model/index.ts | 23 +- .../api/clinic/clinicMedicalHistory}/index.ts | 51 +- .../clinicMedicalHistory/model/index.ts | 61 + .../src/api/clinic/clinicMedicine}/index.ts | 50 +- .../api/clinic/clinicMedicine/model/index.ts | 43 + .../api/clinic/clinicMedicineInout}/index.ts | 50 +- .../clinic/clinicMedicineInout/model/index.ts | 61 + .../api/clinic/clinicMedicineStock}/index.ts | 51 +- .../clinic/clinicMedicineStock/model/index.ts | 35 + .../src/api/clinic/clinicOrder}/index.ts | 50 +- .../api/clinic/clinicOrder}/model/index.ts | 76 +- .../api/clinic/clinicPatientUser}/index.ts | 51 +- .../clinic/clinicPatientUser/model/index.ts | 59 + .../api/clinic/clinicPrescription}/index.ts | 57 +- .../clinic/clinicPrescription/model/index.ts | 57 + .../clinic/clinicPrescriptionItem/index.ts | 112 + .../clinicPrescriptionItem/model/index.ts | 49 + .../src/api/clinic/clinicReport}/index.ts | 51 +- .../api/clinic/clinicReport}/model/index.ts | 34 +- .../api/clinic/clinicVisitRecord}/index.ts | 51 +- .../clinic/clinicVisitRecord/model/index.ts | 61 + .../components/clinicAppointmentEdit.vue | 0 .../clinicAppointment}/components/search.vue | 0 .../views/clinic/clinicAppointment/index.vue | 0 .../components/clinicDoctorApplyEdit.vue | 0 .../clinicDoctorApply}/components/search.vue | 0 .../views/clinic/clinicDoctorApply/index.vue | 0 .../clinicDoctorMedicalRecordEdit.vue | 279 +- .../components/search.vue | 0 .../clinicDoctorMedicalRecord/index.vue | 352 + .../components/clinicDoctorUserEdit.vue | 186 +- .../clinicDoctorUser}/components/search.vue | 0 .../views/clinic/clinicDoctorUser}/index.vue | 239 +- .../components/clinicMedicalHistoryEdit.vue | 201 +- .../components/search.vue | 0 .../clinic/clinicMedicalHistory/index.vue | 352 + .../components/clinicMedicineEdit.vue | 118 +- .../clinicMedicine}/components/search.vue | 0 .../views/clinic/clinicMedicine}/index.vue | 147 +- .../components/clinicMedicineInoutEdit.vue | 323 + .../components/search.vue | 0 .../clinic/clinicMedicineInout/index.vue | 352 + .../components/clinicMedicineStockEdit.vue | 75 +- .../components/search.vue | 0 .../clinic/clinicMedicineStock}/index.vue | 102 +- .../components/clinicOrderEdit.vue | 344 +- .../clinic/clinicOrder}/components/search.vue | 0 .../src/views/clinic/clinicOrder/index.vue | 671 + .../components/clinicPatientUserEdit.vue | 164 +- .../clinicPatientUser}/components/search.vue | 0 .../views/clinic/clinicPatientUser/index.vue | 346 + .../components/clinicPrescriptionEdit.vue | 249 +- .../clinicPrescription}/components/search.vue | 0 .../clinic/clinicPrescription}/index.vue | 239 +- .../components/clinicPrescriptionItemEdit.vue | 117 +- .../components/search.vue | 0 .../clinic/clinicPrescriptionItem}/index.vue | 172 +- .../components/clinicReportEdit.vue | 323 + .../clinicReport}/components/search.vue | 0 .../src/views/clinic/clinicReport}/index.vue | 243 +- .../components/clinicVisitRecordEdit.vue | 323 + .../clinicVisitRecord}/components/search.vue | 0 .../views/clinic/clinicVisitRecord}/index.vue | 223 +- .../src/api/clinic/clinicAppointment/index.ts | 101 + .../clinic/clinicAppointment/model/index.ts | 39 + .../src/api/clinic/clinicDoctorApply/index.ts | 101 + .../clinic/clinicDoctorApply}/model/index.ts | 38 +- .../clinic/clinicDoctorMedicalRecord/index.ts | 101 + .../clinicDoctorMedicalRecord/model/index.ts | 61 + .../src/api/clinic/clinicDoctorUser/index.ts | 101 + .../clinic/clinicDoctorUser/model/index.ts | 59 + .../api/clinic/clinicMedicalHistory/index.ts | 101 + .../clinicMedicalHistory/model/index.ts | 61 + .../src/api/clinic/clinicMedicine/index.ts | 101 + .../api/clinic/clinicMedicine/model/index.ts | 43 + .../api/clinic/clinicMedicineInout/index.ts | 101 + .../clinic/clinicMedicineInout/model/index.ts | 61 + .../api/clinic/clinicMedicineStock/index.ts | 101 + .../clinic/clinicMedicineStock/model/index.ts | 35 + .../taro/src/api/clinic/clinicOrder/index.ts | 101 + .../src/api/clinic/clinicOrder/model/index.ts | 167 + .../src/api/clinic/clinicPatientUser/index.ts | 101 + .../clinic/clinicPatientUser/model/index.ts | 59 + .../api/clinic/clinicPrescription/index.ts | 108 + .../clinic/clinicPrescription/model/index.ts | 57 + .../clinic/clinicPrescriptionItem/index.ts | 108 + .../clinicPrescriptionItem/model/index.ts | 49 + .../taro/src/api/clinic/clinicReport/index.ts | 101 + .../api/clinic/clinicReport/model/index.ts | 61 + .../src/api/clinic/clinicVisitRecord/index.ts | 101 + .../clinic/clinicVisitRecord/model/index.ts | 61 + .../clinic/clinicAppointment/add.config.ts | 2 +- .../taro/src/clinic/clinicAppointment/add.tsx | 98 + .../clinic/clinicAppointment/index.config.ts | 2 +- .../src/clinic/clinicAppointment/index.tsx | 64 + .../clinic/clinicDoctorApply/add.config.ts | 4 + .../taro/src/clinic/clinicDoctorApply/add.tsx | 98 + .../clinic/clinicDoctorApply/index.config.ts | 4 + .../src/clinic/clinicDoctorApply/index.tsx | 64 + .../clinicDoctorMedicalRecord/add.config.ts | 4 + .../clinic/clinicDoctorMedicalRecord/add.tsx | 98 + .../clinicDoctorMedicalRecord/index.config.ts | 4 + .../clinicDoctorMedicalRecord/index.tsx | 64 + .../src/clinic/clinicDoctorUser/add.config.ts | 2 +- .../taro/src/clinic/clinicDoctorUser/add.tsx | 98 + .../clinic/clinicDoctorUser/index.config.ts | 4 + .../src/clinic/clinicDoctorUser/index.tsx | 64 + .../clinic/clinicMedicalHistory/add.config.ts | 2 +- .../src/clinic/clinicMedicalHistory/add.tsx | 98 + .../clinicMedicalHistory/index.config.ts | 2 +- .../src/clinic/clinicMedicalHistory/index.tsx | 64 + .../src/clinic/clinicMedicine/add.config.ts | 2 +- output/taro/src/clinic/clinicMedicine/add.tsx | 98 + .../src/clinic/clinicMedicine/index.config.ts | 4 + .../taro/src/clinic/clinicMedicine/index.tsx | 64 + .../clinic/clinicMedicineInout/add.config.ts | 4 + .../src/clinic/clinicMedicineInout/add.tsx | 98 + .../clinicMedicineInout/index.config.ts | 4 + .../src/clinic/clinicMedicineInout/index.tsx | 64 + .../clinic/clinicMedicineStock/add.config.ts | 4 + .../src/clinic/clinicMedicineStock/add.tsx | 98 + .../clinicMedicineStock/index.config.ts | 4 + .../src/clinic/clinicMedicineStock/index.tsx | 64 + .../taro/src/clinic/clinicOrder/add.config.ts | 4 + output/taro/src/clinic/clinicOrder/add.tsx | 98 + .../src/clinic/clinicOrder/index.config.ts | 4 + output/taro/src/clinic/clinicOrder/index.tsx | 64 + .../clinic/clinicPatientUser/add.config.ts | 4 + .../taro/src/clinic/clinicPatientUser/add.tsx | 98 + .../clinic/clinicPatientUser/index.config.ts | 4 + .../src/clinic/clinicPatientUser/index.tsx | 64 + .../clinic/clinicPrescription/add.config.ts | 5 + .../src/clinic/clinicPrescription/add.tsx | 98 + .../clinic/clinicPrescription/index.config.ts | 5 + .../src/clinic/clinicPrescription/index.tsx | 65 + .../clinicPrescriptionItem/add.config.ts | 5 + .../src/clinic/clinicPrescriptionItem/add.tsx | 98 + .../clinicPrescriptionItem/index.config.ts | 5 + .../clinic/clinicPrescriptionItem/index.tsx | 65 + .../src/clinic/clinicReport/add.config.ts | 4 + output/taro/src/clinic/clinicReport/add.tsx | 98 + .../src/clinic/clinicReport/index.config.ts | 4 + output/taro/src/clinic/clinicReport/index.tsx | 64 + .../clinic/clinicVisitRecord/add.config.ts | 4 + .../taro/src/clinic/clinicVisitRecord/add.tsx | 98 + .../clinic/clinicVisitRecord/index.config.ts | 4 + .../src/clinic/clinicVisitRecord/index.tsx | 64 + .../ClinicAppointmentController.java | 2 +- .../ClinicDoctorApplyController.java | 2 +- .../ClinicDoctorUserController.java | 128 + .../ClinicPatientUserController.java | 128 + .../clinic/entity/ClinicAppointment.java | 2 +- .../clinic/entity/ClinicDoctorApply.java | 2 +- .../clinic/entity/ClinicDoctorUser.java | 94 + .../clinic/entity/ClinicPatientUser.java | 94 + .../mapper/ClinicAppointmentMapper.java | 2 +- .../mapper/ClinicDoctorApplyMapper.java | 2 +- .../clinic/mapper/ClinicDoctorUserMapper.java | 37 + .../mapper/ClinicPatientUserMapper.java | 37 + .../mapper/xml/ClinicDoctorUserMapper.xml | 90 + .../mapper/xml/ClinicPatientUserMapper.xml | 90 + .../clinic/param/ClinicAppointmentParam.java | 2 +- .../clinic/param/ClinicDoctorApplyParam.java | 2 +- .../clinic/param/ClinicDoctorUserParam.java | 96 + .../clinic/param/ClinicPatientUserParam.java | 96 + .../service/ClinicAppointmentService.java | 2 +- .../service/ClinicDoctorApplyService.java | 2 +- .../service/ClinicDoctorUserService.java | 42 + .../service/ClinicPatientUserService.java | 42 + .../impl/ClinicAppointmentServiceImpl.java | 2 +- .../impl/ClinicDoctorApplyServiceImpl.java | 2 +- .../impl/ClinicDoctorUserServiceImpl.java | 47 + .../impl/ClinicPatientUserServiceImpl.java | 47 + .../gxwebsoft/generator/ClinicGenerator.java | 8 +- 1297 files changed, 11476 insertions(+), 217630 deletions(-) delete mode 100644 dict/admin/index.html delete mode 100644 dict/admin/package-lock.json delete mode 100644 dict/admin/package.json delete mode 100644 dict/admin/postcss.config.js delete mode 100644 dict/admin/prettier.config.js delete mode 100644 dict/admin/public/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg delete mode 100644 dict/admin/public/assets/bg-2.jpeg delete mode 100644 dict/admin/public/assets/logo.svg delete mode 100644 dict/admin/public/favicon.ico delete mode 100644 dict/admin/public/json/china-provinces.geo.json delete mode 100644 dict/admin/public/json/industry-data.json delete mode 100644 dict/admin/public/json/regions-data.json delete mode 100644 dict/admin/public/logo.png delete mode 100644 dict/admin/public/logo.svg delete mode 100644 dict/admin/public/tinymce/langs/zh_CN.js delete mode 100644 dict/admin/public/tinymce/langs/zh_TW.js delete mode 100644 dict/admin/public/tinymce/skins/content/dark/content.css delete mode 100644 dict/admin/public/tinymce/skins/content/dark/content.min.css delete mode 100644 dict/admin/public/tinymce/skins/content/default/content.css delete mode 100644 dict/admin/public/tinymce/skins/content/default/content.min.css delete mode 100644 dict/admin/public/tinymce/skins/content/document/content.css delete mode 100644 dict/admin/public/tinymce/skins/content/document/content.min.css delete mode 100644 dict/admin/public/tinymce/skins/content/writer/content.css delete mode 100644 dict/admin/public/tinymce/skins/content/writer/content.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/content.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/content.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/skin.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/skin.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/content.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/content.inline.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/content.inline.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/content.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/content.mobile.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/content.mobile.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/skin.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/skin.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.min.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.css delete mode 100644 dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css delete mode 100644 dict/admin/public/ws-logo.svg delete mode 100644 dict/admin/public/xieyi/01.html delete mode 100644 dict/admin/src/App.vue delete mode 100644 dict/admin/src/api/bszx/bszxBm/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxBm/model/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxBranch/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxBranch/model/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxClass/model/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxEra/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxEra/model/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxGrade/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxGrade/model/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxOrder/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxPay/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxPay/model/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxPayRanking/index.ts delete mode 100644 dict/admin/src/api/bszx/bszxPayRanking/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsAd/index.ts delete mode 100644 dict/admin/src/api/cms/cmsAd/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsAdRecord/index.ts delete mode 100644 dict/admin/src/api/cms/cmsAdRecord/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticle/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticle/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleCategory/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleCategory/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleComment/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleComment/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleContent/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleContent/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleCount/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleCount/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleLike/index.ts delete mode 100644 dict/admin/src/api/cms/cmsArticleLike/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsDesign/index.ts delete mode 100644 dict/admin/src/api/cms/cmsDesign/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsDomain/index.ts delete mode 100644 dict/admin/src/api/cms/cmsDomain/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsForm/index.ts delete mode 100644 dict/admin/src/api/cms/cmsForm/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsFormRecord/index.ts delete mode 100644 dict/admin/src/api/cms/cmsFormRecord/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsLang/index.ts delete mode 100644 dict/admin/src/api/cms/cmsLang/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsLangLog/index.ts delete mode 100644 dict/admin/src/api/cms/cmsLangLog/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsLink/index.ts delete mode 100644 dict/admin/src/api/cms/cmsLink/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsModel/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsNavigation/index.ts delete mode 100644 dict/admin/src/api/cms/cmsNavigation/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsOrder/index.ts delete mode 100644 dict/admin/src/api/cms/cmsOrder/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsStatistics/index.ts delete mode 100644 dict/admin/src/api/cms/cmsStatistics/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsTemplate/index.ts delete mode 100644 dict/admin/src/api/cms/cmsTemplate/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsWebsite/index.ts delete mode 100644 dict/admin/src/api/cms/cmsWebsite/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsWebsiteField/index.ts delete mode 100644 dict/admin/src/api/cms/cmsWebsiteField/model/index.ts delete mode 100644 dict/admin/src/api/cms/cmsWebsiteSetting/index.ts delete mode 100644 dict/admin/src/api/cms/cmsWebsiteSetting/model/index.ts delete mode 100644 dict/admin/src/api/cms/link/index.ts delete mode 100644 dict/admin/src/api/cms/link/model/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryApply/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryBed/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryBed/model/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryBuilding/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryBuilding/model/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryFloor/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryFloor/model/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryRecord/index.ts delete mode 100644 dict/admin/src/api/dormitory/dormitoryRecord/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmBxLog/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmBxLog/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmCar/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmCar/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmChoices/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmChoices/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmCourses/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmExamLog/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmExamLog/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmFence/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmFence/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmGpsLog/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmGpsLog/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmQuestions/model/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmViolation/index.ts delete mode 100644 dict/admin/src/api/hjm/hjmViolation/model/index.ts delete mode 100644 dict/admin/src/api/index.ts delete mode 100644 dict/admin/src/api/layout/index.ts delete mode 100644 dict/admin/src/api/layout/model/index.ts delete mode 100644 dict/admin/src/api/miniprogram/index.ts delete mode 100644 dict/admin/src/api/passport/login/index.ts delete mode 100644 dict/admin/src/api/passport/login/model/index.ts delete mode 100644 dict/admin/src/api/passport/qrLogin/index.ts delete mode 100644 dict/admin/src/api/sdy/sdyDealerOrder/index.ts delete mode 100644 dict/admin/src/api/shop/shopCommissionRole/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopCoupon/index.ts delete mode 100644 dict/admin/src/api/shop/shopCoupon/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopCouponApplyCate/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopCouponApplyItem/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerApply/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerApply/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerCapital/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerCapital/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerOrder/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerPoster/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerPoster/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerRecord/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerRecord/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerReferee/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerReferee/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerSetting/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerSetting/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerUser/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerWithdraw/index.ts delete mode 100644 dict/admin/src/api/shop/shopDealerWithdraw/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopExpress/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopExpressTemplate/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopExpressTemplateDetail/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGift/index.ts delete mode 100644 dict/admin/src/api/shop/shopGift/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoods/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoods/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsCategory/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsCategory/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsCoupon/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsCoupon/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsRoleCommission/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsRoleCommission/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsSku/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsSku/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsSpec/index.ts delete mode 100644 dict/admin/src/api/shop/shopGoodsSpec/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchant/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchant/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantAccount/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantAccount/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantApply/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantApply/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantCount/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantCount/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantType/index.ts delete mode 100644 dict/admin/src/api/shop/shopMerchantType/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopOrder/index.ts delete mode 100644 dict/admin/src/api/shop/shopOrderGoods/index.ts delete mode 100644 dict/admin/src/api/shop/shopOrderGoods/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopSpec/index.ts delete mode 100644 dict/admin/src/api/shop/shopSpec/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopSpecValue/index.ts delete mode 100644 dict/admin/src/api/shop/shopSpecValue/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopUser/index.ts delete mode 100644 dict/admin/src/api/shop/shopUser/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopUserAddress/index.ts delete mode 100644 dict/admin/src/api/shop/shopUserAddress/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopUserCoupon/model/index.ts delete mode 100644 dict/admin/src/api/shop/shopUserReferee/index.ts delete mode 100644 dict/admin/src/api/shop/shopUserReferee/model/index.ts delete mode 100644 dict/admin/src/api/shop/spec/model/index.ts delete mode 100644 dict/admin/src/api/shop/specValue/index.ts delete mode 100644 dict/admin/src/api/shop/specValue/model/index.ts delete mode 100644 dict/admin/src/api/system/access-key/index.ts delete mode 100644 dict/admin/src/api/system/access-key/model/index.ts delete mode 100644 dict/admin/src/api/system/appstore/index.ts delete mode 100644 dict/admin/src/api/system/appstore/model/index.ts delete mode 100644 dict/admin/src/api/system/cache/index.ts delete mode 100644 dict/admin/src/api/system/cache/model/index.ts delete mode 100644 dict/admin/src/api/system/chat/index.ts delete mode 100644 dict/admin/src/api/system/chat/model/index.ts delete mode 100644 dict/admin/src/api/system/chatConversation/index.ts delete mode 100644 dict/admin/src/api/system/chatConversation/model/index.ts delete mode 100644 dict/admin/src/api/system/chatMessage/index.ts delete mode 100644 dict/admin/src/api/system/chatMessage/model/index.ts delete mode 100644 dict/admin/src/api/system/comment/model/index.ts delete mode 100644 dict/admin/src/api/system/company/index.ts delete mode 100644 dict/admin/src/api/system/company/model/index.ts delete mode 100644 dict/admin/src/api/system/companyComment/index.ts delete mode 100644 dict/admin/src/api/system/companyComment/model/index.ts delete mode 100644 dict/admin/src/api/system/companyContent/index.ts delete mode 100644 dict/admin/src/api/system/companyContent/model/index.ts delete mode 100644 dict/admin/src/api/system/companyGit/index.ts delete mode 100644 dict/admin/src/api/system/companyGit/model/index.ts delete mode 100644 dict/admin/src/api/system/companyParameter/index.ts delete mode 100644 dict/admin/src/api/system/companyParameter/model/index.ts delete mode 100644 dict/admin/src/api/system/companyUrl/index.ts delete mode 100644 dict/admin/src/api/system/companyUrl/model/index.ts delete mode 100644 dict/admin/src/api/system/dict-data/index.ts delete mode 100644 dict/admin/src/api/system/dict-data/model/index.ts delete mode 100644 dict/admin/src/api/system/dict/index.ts delete mode 100644 dict/admin/src/api/system/dict/model/index.ts delete mode 100644 dict/admin/src/api/system/dictionary-data/index.ts delete mode 100644 dict/admin/src/api/system/dictionary-data/model/index.ts delete mode 100644 dict/admin/src/api/system/dictionary/index.ts delete mode 100644 dict/admin/src/api/system/dictionary/model/index.ts delete mode 100644 dict/admin/src/api/system/domain/index.ts delete mode 100644 dict/admin/src/api/system/domain/model/index.ts delete mode 100644 dict/admin/src/api/system/environment/index.ts delete mode 100644 dict/admin/src/api/system/environment/model/index.ts delete mode 100644 dict/admin/src/api/system/file/index.ts delete mode 100644 dict/admin/src/api/system/file/model/index.ts delete mode 100644 dict/admin/src/api/system/login-record/index.ts delete mode 100644 dict/admin/src/api/system/login-record/model/index.ts delete mode 100644 dict/admin/src/api/system/menu/index.ts delete mode 100644 dict/admin/src/api/system/menu/model/index.ts delete mode 100644 dict/admin/src/api/system/modules/index.ts delete mode 100644 dict/admin/src/api/system/modules/model/index.ts delete mode 100644 dict/admin/src/api/system/operation-record/index.ts delete mode 100644 dict/admin/src/api/system/operation-record/model/index.ts delete mode 100644 dict/admin/src/api/system/order/index.ts delete mode 100644 dict/admin/src/api/system/order/model/index.ts delete mode 100644 dict/admin/src/api/system/orderGoods/index.ts delete mode 100644 dict/admin/src/api/system/orderGoods/model/index.ts delete mode 100644 dict/admin/src/api/system/organization/index.ts delete mode 100644 dict/admin/src/api/system/organization/model/index.ts delete mode 100644 dict/admin/src/api/system/parameter/index.ts delete mode 100644 dict/admin/src/api/system/parameter/model/index.ts delete mode 100644 dict/admin/src/api/system/payment/index.ts delete mode 100644 dict/admin/src/api/system/payment/model/index.ts delete mode 100644 dict/admin/src/api/system/plug/index.ts delete mode 100644 dict/admin/src/api/system/plug/model/index.ts delete mode 100644 dict/admin/src/api/system/role/index.ts delete mode 100644 dict/admin/src/api/system/role/model/index.ts delete mode 100644 dict/admin/src/api/system/setting/index.ts delete mode 100644 dict/admin/src/api/system/setting/model/index.ts delete mode 100644 dict/admin/src/api/system/tenant/index.ts delete mode 100644 dict/admin/src/api/system/tenant/model/index.ts delete mode 100644 dict/admin/src/api/system/url/index.ts delete mode 100644 dict/admin/src/api/system/url/model/index.ts delete mode 100644 dict/admin/src/api/system/user-collection/index.ts delete mode 100644 dict/admin/src/api/system/user-collection/model/index.ts delete mode 100644 dict/admin/src/api/system/user-file/index.ts delete mode 100644 dict/admin/src/api/system/user-file/model/index.ts delete mode 100644 dict/admin/src/api/system/user-grade/index.ts delete mode 100644 dict/admin/src/api/system/user-grade/model/index.ts delete mode 100644 dict/admin/src/api/system/user-group/index.ts delete mode 100644 dict/admin/src/api/system/user-group/model/index.ts delete mode 100644 dict/admin/src/api/system/user/index.ts delete mode 100644 dict/admin/src/api/system/user/model/count.ts delete mode 100644 dict/admin/src/api/system/user/model/index.ts delete mode 100644 dict/admin/src/api/system/userOauth/index.ts delete mode 100644 dict/admin/src/api/system/userOauth/model/index.ts delete mode 100644 dict/admin/src/api/system/userRole/index.ts delete mode 100644 dict/admin/src/api/system/userRole/model/index.ts delete mode 100644 dict/admin/src/api/system/userVerify/index.ts delete mode 100644 dict/admin/src/api/system/userVerify/model/index.ts delete mode 100644 dict/admin/src/api/system/version/index.ts delete mode 100644 dict/admin/src/api/system/version/model/index.ts delete mode 100644 dict/admin/src/api/system/website/field/index.ts delete mode 100644 dict/admin/src/api/system/website/field/model/index.ts delete mode 100644 dict/admin/src/api/system/website/index.ts delete mode 100644 dict/admin/src/api/system/website/model/index.ts delete mode 100644 dict/admin/src/api/system/white-domain/index.ts delete mode 100644 dict/admin/src/api/system/white-domain/model/index.ts delete mode 100644 dict/admin/src/api/user/balance-log/index.ts delete mode 100644 dict/admin/src/api/user/balance-log/model/index.ts delete mode 100644 dict/admin/src/api/user/feedback/index.ts delete mode 100644 dict/admin/src/api/user/feedback/model/index.ts delete mode 100644 dict/admin/src/api/user/grade/index.ts delete mode 100644 dict/admin/src/api/user/grade/model/index.ts delete mode 100644 dict/admin/src/api/user/index.ts delete mode 100644 dict/admin/src/api/user/model/index.ts delete mode 100644 dict/admin/src/api/user/recharge/export/index.ts delete mode 100644 dict/admin/src/api/user/recharge/export/model/index.ts delete mode 100644 dict/admin/src/api/user/recharge/order/index.ts delete mode 100644 dict/admin/src/api/user/recharge/order/model/index.ts delete mode 100644 dict/admin/src/api/user/referee/index.ts delete mode 100644 dict/admin/src/api/user/referee/model/index.ts delete mode 100644 dict/admin/src/api/user/userCoupon/index.ts delete mode 100644 dict/admin/src/api/user/userCoupon/model/index.ts delete mode 100644 dict/admin/src/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg delete mode 100644 dict/admin/src/assets/bg-2.jpeg delete mode 100644 dict/admin/src/assets/bg-login.jpg delete mode 100644 dict/admin/src/assets/icon/app1.png delete mode 100644 dict/admin/src/assets/icon/book.png delete mode 100644 dict/admin/src/assets/icon/forum.png delete mode 100644 dict/admin/src/assets/icon/gitea.png delete mode 100644 dict/admin/src/assets/icon/openai-avatar.jpeg delete mode 100644 dict/admin/src/assets/icon/other.png delete mode 100644 dict/admin/src/assets/icon/pc.png delete mode 100644 dict/admin/src/assets/icon/question.png delete mode 100644 dict/admin/src/assets/icon/weixin.png delete mode 100644 dict/admin/src/assets/img/app-ui.png delete mode 100755 dict/admin/src/assets/img/circular.png delete mode 100755 dict/admin/src/assets/img/default-avatar.png delete mode 100755 dict/admin/src/assets/img/phone-top-black.png delete mode 100755 dict/admin/src/assets/img/phone-top-white.png delete mode 100644 dict/admin/src/assets/img/phone-ui.png delete mode 100644 dict/admin/src/assets/logo.svg delete mode 100644 dict/admin/src/components/ByteMdEditor/index.vue delete mode 100644 dict/admin/src/components/ByteMdViewer/index.vue delete mode 100644 dict/admin/src/components/ChooseDictionary/index.vue delete mode 100644 dict/admin/src/components/DesignBanner/index.vue delete mode 100644 dict/admin/src/components/DesignHeader/index.vue delete mode 100644 dict/admin/src/components/DictRadio/index.vue delete mode 100644 dict/admin/src/components/DictSelect/index.vue delete mode 100644 dict/admin/src/components/DictSelectMultiple/index.vue delete mode 100644 dict/admin/src/components/FormSelect/index.vue delete mode 100644 dict/admin/src/components/IndustrySelect/index.vue delete mode 100644 dict/admin/src/components/IndustrySelect/load-data.ts delete mode 100644 dict/admin/src/components/IndustrySelect/types/index.ts delete mode 100644 dict/admin/src/components/PayMethod/index.vue delete mode 100644 dict/admin/src/components/QrCode/index.vue delete mode 100644 dict/admin/src/components/QrLogin/demo.vue delete mode 100644 dict/admin/src/components/QrLogin/index.vue delete mode 100644 dict/admin/src/components/RadioGroup/index.vue delete mode 100644 dict/admin/src/components/RedirectLayout/index.ts delete mode 100644 dict/admin/src/components/RegionsSelect/index.vue delete mode 100644 dict/admin/src/components/RegionsSelect/load-data.ts delete mode 100644 dict/admin/src/components/RegionsSelect/types/index.ts delete mode 100644 dict/admin/src/components/RouterLayout/index.vue delete mode 100644 dict/admin/src/components/SelectArticle/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectArticle/index.vue delete mode 100644 dict/admin/src/components/SelectArticleCategory/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectArticleCategory/index.vue delete mode 100644 dict/admin/src/components/SelectDesign/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectDesign/index.vue delete mode 100644 dict/admin/src/components/SelectDict/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectDict/index.vue delete mode 100644 dict/admin/src/components/SelectDictDictionary/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectDictDictionary/index.vue delete mode 100644 dict/admin/src/components/SelectFence/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectFence/index.vue delete mode 100644 dict/admin/src/components/SelectFile/components/file-record-edit.vue delete mode 100644 dict/admin/src/components/SelectFile/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectFile/index.vue delete mode 100644 dict/admin/src/components/SelectForm/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectForm/index.vue delete mode 100644 dict/admin/src/components/SelectGoodsCategory/index.vue delete mode 100644 dict/admin/src/components/SelectGoodsCategory/load-data.ts delete mode 100644 dict/admin/src/components/SelectGoodsCategory/types/index.ts delete mode 100644 dict/admin/src/components/SelectGrade/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectGrade/index.vue delete mode 100644 dict/admin/src/components/SelectGroup/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectGroup/index.vue delete mode 100644 dict/admin/src/components/SelectMerchant/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectMerchant/index.vue delete mode 100644 dict/admin/src/components/SelectModel/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectModel/index.vue delete mode 100644 dict/admin/src/components/SelectModules/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectModules/index.vue delete mode 100644 dict/admin/src/components/SelectMpPages/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectMpPages/index.vue delete mode 100644 dict/admin/src/components/SelectNavigsation/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectNavigsation/index.vue delete mode 100644 dict/admin/src/components/SelectOrganization/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectOrganization/components/select-organization.vue delete mode 100644 dict/admin/src/components/SelectOrganization/index.vue delete mode 100644 dict/admin/src/components/SelectRole/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectRole/index.vue delete mode 100644 dict/admin/src/components/SelectSpec/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectSpec/index.vue delete mode 100644 dict/admin/src/components/SelectSpecValue/index.vue delete mode 100644 dict/admin/src/components/SelectStaff/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectStaff/components/select-user.vue delete mode 100644 dict/admin/src/components/SelectStaff/index.vue delete mode 100644 dict/admin/src/components/SelectStudent/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectStudent/index.vue delete mode 100644 dict/admin/src/components/SelectUser/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectUser/components/select-user.vue delete mode 100644 dict/admin/src/components/SelectUser/index.vue delete mode 100644 dict/admin/src/components/SelectUserByButton/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectUserByButton/index.vue delete mode 100644 dict/admin/src/components/SelectWebsiteField/components/select-data.vue delete mode 100644 dict/admin/src/components/SelectWebsiteField/index.vue delete mode 100644 dict/admin/src/components/Simulator/index.vue delete mode 100644 dict/admin/src/components/Tag/index.vue delete mode 100644 dict/admin/src/components/TinymceEditor/index.vue delete mode 100644 dict/admin/src/components/TinymceEditor/util.ts delete mode 100644 dict/admin/src/components/UploadCert/index.vue delete mode 100644 dict/admin/src/components/UploadFile/index.vue delete mode 100644 dict/admin/src/components/User/index.vue delete mode 100644 dict/admin/src/components/UserChoose/choose-search.vue delete mode 100644 dict/admin/src/components/UserChoose/index.vue delete mode 100644 dict/admin/src/components/UserChoose/types/index.ts delete mode 100644 dict/admin/src/components/UserSelect/index.vue delete mode 100644 dict/admin/src/components/UserSelect/types/index.ts delete mode 100644 dict/admin/src/components/UserSelect/user-search.vue delete mode 100644 dict/admin/src/composables/useSiteData.ts delete mode 100644 dict/admin/src/config/menu.ts delete mode 100644 dict/admin/src/config/performance.ts delete mode 100644 dict/admin/src/config/setting.ts delete mode 100644 dict/admin/src/i18n/index.ts delete mode 100644 dict/admin/src/i18n/lang/en/index.ts delete mode 100644 dict/admin/src/i18n/lang/en/layout.ts delete mode 100644 dict/admin/src/i18n/lang/en/list.ts delete mode 100644 dict/admin/src/i18n/lang/en/login.ts delete mode 100644 dict/admin/src/i18n/lang/en/route.ts delete mode 100644 dict/admin/src/i18n/lang/zh_CN/index.ts delete mode 100644 dict/admin/src/i18n/lang/zh_CN/layout.ts delete mode 100644 dict/admin/src/i18n/lang/zh_CN/list.ts delete mode 100644 dict/admin/src/i18n/lang/zh_CN/login.ts delete mode 100644 dict/admin/src/i18n/lang/zh_CN/route.ts delete mode 100644 dict/admin/src/i18n/use-locale.ts delete mode 100644 dict/admin/src/layout/components/header-notice.vue delete mode 100644 dict/admin/src/layout/components/header-tools.vue delete mode 100644 dict/admin/src/layout/components/header-wechat.vue delete mode 100644 dict/admin/src/layout/components/i18n-icon.vue delete mode 100644 dict/admin/src/layout/components/menu-title.vue delete mode 100644 dict/admin/src/layout/components/page-footer.vue delete mode 100644 dict/admin/src/layout/components/password-modal.vue delete mode 100644 dict/admin/src/layout/components/setting-drawer.vue delete mode 100644 dict/admin/src/layout/index.vue delete mode 100644 dict/admin/src/layout/menu-icons.ts delete mode 100644 dict/admin/src/lib/port-manager.ts delete mode 100644 dict/admin/src/lib/port-strategy.ts delete mode 100644 dict/admin/src/lib/tenant-port-manager.ts delete mode 100644 dict/admin/src/main.ts delete mode 100644 dict/admin/src/router/index.ts delete mode 100644 dict/admin/src/router/performance.ts delete mode 100644 dict/admin/src/router/routes.ts delete mode 100644 dict/admin/src/shims-vue.d.ts delete mode 100644 dict/admin/src/store/index.ts delete mode 100644 dict/admin/src/store/modules/bszx-statistics.ts delete mode 100644 dict/admin/src/store/modules/chat.ts delete mode 100644 dict/admin/src/store/modules/params.ts delete mode 100644 dict/admin/src/store/modules/setting.ts delete mode 100644 dict/admin/src/store/modules/site.ts delete mode 100644 dict/admin/src/store/modules/statistics.ts delete mode 100644 dict/admin/src/store/modules/template.ts delete mode 100644 dict/admin/src/store/modules/tenant.ts delete mode 100644 dict/admin/src/store/modules/theme.ts delete mode 100644 dict/admin/src/store/modules/user.ts delete mode 100644 dict/admin/src/styles/as-needed.less delete mode 100644 dict/admin/src/styles/component.less delete mode 100644 dict/admin/src/styles/global-import.less delete mode 100644 dict/admin/src/styles/index.less delete mode 100644 dict/admin/src/styles/transition/fade.less delete mode 100644 dict/admin/src/styles/transition/index.less delete mode 100644 dict/admin/src/styles/transition/slide.less delete mode 100644 dict/admin/src/styles/transition/zoom.less delete mode 100644 dict/admin/src/utils/cache-manager.ts delete mode 100644 dict/admin/src/utils/common.ts delete mode 100644 dict/admin/src/utils/component-optimization.ts delete mode 100644 dict/admin/src/utils/document-title-util.ts delete mode 100644 dict/admin/src/utils/domain.ts delete mode 100644 dict/admin/src/utils/editor.ts delete mode 100644 dict/admin/src/utils/enhanced-request.ts delete mode 100644 dict/admin/src/utils/lazy-load.ts delete mode 100644 dict/admin/src/utils/merchant.ts delete mode 100644 dict/admin/src/utils/on-size-change.ts delete mode 100644 dict/admin/src/utils/oss.js delete mode 100644 dict/admin/src/utils/page-tab-util.ts delete mode 100644 dict/admin/src/utils/performance.ts delete mode 100644 dict/admin/src/utils/permission.ts delete mode 100644 dict/admin/src/utils/plug-uitl.ts delete mode 100644 dict/admin/src/utils/port-config-manager.ts delete mode 100644 dict/admin/src/utils/request.ts delete mode 100644 dict/admin/src/utils/shop.ts delete mode 100644 dict/admin/src/utils/token-util.ts delete mode 100644 dict/admin/src/utils/type-guards.ts delete mode 100644 dict/admin/src/utils/use-echarts.ts delete mode 100644 dict/admin/src/utils/use-form-data.ts delete mode 100644 dict/admin/src/utils/use-search.ts delete mode 100644 dict/admin/src/views/bsyx/bsyxClass/components/bszxClassEdit.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxClass/components/search.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxClass/index.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxGrade/components/bszxGradeEdit.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxGrade/components/search.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxGrade/index.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxOrder/components/bszxPayEdit.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxOrder/components/orderInfo.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxOrder/components/search.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxOrder/index.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxPay/components/bszxPayEdit.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxPay/components/search.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxPay/index.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxPayRanking/components/bszxPayRankingEdit.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxPayRanking/components/search.vue delete mode 100644 dict/admin/src/views/bsyx/bsyxPayRanking/index.vue delete mode 100644 dict/admin/src/views/bsyx/extra.vue delete mode 100644 dict/admin/src/views/bszx/bszxBm/components/bszxBmEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxBm/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxBm/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxBranch/components/bszxBranchEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxBranch/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxClass/components/bszxClassEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxClass/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxClass/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxGrade/components/bszxGradeEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxGrade/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxGrade/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxOrder/components/bszxPayEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxOrder/components/orderInfo.vue delete mode 100644 dict/admin/src/views/bszx/bszxOrder/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxOrder/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxPay/components/bszxPayEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxPay/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxPay/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayCert/components/appBszxPayEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayCert/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayCert/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayRanking/components/bszxPayRankingEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayRanking/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayRanking/index.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayRanking2/components/bszxPayRankingEdit.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayRanking2/components/search.vue delete mode 100644 dict/admin/src/views/bszx/bszxPayRanking2/index.vue delete mode 100644 dict/admin/src/views/bszx/dashboard/components/search.vue delete mode 100644 dict/admin/src/views/bszx/dashboard/components/websiteEdit.vue delete mode 100644 dict/admin/src/views/bszx/dashboard/index.vue delete mode 100644 dict/admin/src/views/bszx/extra.vue delete mode 100644 dict/admin/src/views/cms/clear-cache/index.vue delete mode 100644 dict/admin/src/views/cms/cmsAd/components/cmsAdEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsAd/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsAd/index.vue delete mode 100644 dict/admin/src/views/cms/cmsAdRecord/components/cmsAdRecordEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsAdRecord/index.vue delete mode 100644 dict/admin/src/views/cms/cmsArticle/components/Import.vue delete mode 100644 dict/admin/src/views/cms/cmsArticle/components/articleEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsArticle/components/articleUpdate.vue delete mode 100644 dict/admin/src/views/cms/cmsArticle/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsArticle/dictionary/source-select.vue delete mode 100644 dict/admin/src/views/cms/cmsArticle/index.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleComment/index.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleContent/components/cmsArticleContentEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleContent/index.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleCount/components/cmsArticleCountEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleCount/index.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleLike/components/cmsArticleLikeEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsArticleLike/index.vue delete mode 100644 dict/admin/src/views/cms/cmsDesign/components/cmsDesignEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsDesign/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsDesign/index.vue delete mode 100644 dict/admin/src/views/cms/cmsDomain/components/cmsDomainEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsDomain/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsDomain/index.vue delete mode 100644 dict/admin/src/views/cms/cmsForm/components/cmsFormEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsForm/index.vue delete mode 100644 dict/admin/src/views/cms/cmsFormRecord/components/cmsFormRecordEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsFormRecord/index.vue delete mode 100644 dict/admin/src/views/cms/cmsLang/components/cmsLangEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsLang/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsLang/index.vue delete mode 100644 dict/admin/src/views/cms/cmsLangLog/components/cmsLangLogEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsLangLog/index.vue delete mode 100644 dict/admin/src/views/cms/cmsLink/components/cmsLinkEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsLink/components/linkUpdate.vue delete mode 100644 dict/admin/src/views/cms/cmsLink/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsLink/index.vue delete mode 100644 dict/admin/src/views/cms/cmsModel/components/cmsModelEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsModel/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsModel/index.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/components/components/designRecordEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/components/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/components/design-edit.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/components/extra.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/components/navigation-edit.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsNavigation/index.vue delete mode 100644 dict/admin/src/views/cms/cmsOrder/components/orderInfo.vue delete mode 100644 dict/admin/src/views/cms/cmsOrder/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsOrder/index.vue delete mode 100644 dict/admin/src/views/cms/cmsSetting/index.vue delete mode 100644 dict/admin/src/views/cms/cmsStatistics/components/cmsStatisticsEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsStatistics/index.vue delete mode 100644 dict/admin/src/views/cms/cmsTemplate/components/cmsTemplateEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsTemplate/index.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsite/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsite/components/websiteEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsite/index.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteField/components/Import.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteField/components/edit.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteField/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteField/index.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteSetting/components/cmsWebsiteSettingEdit.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteSetting/components/search.vue delete mode 100644 dict/admin/src/views/cms/cmsWebsiteSetting/index.vue delete mode 100644 dict/admin/src/views/cms/dashboard/components/search.vue delete mode 100644 dict/admin/src/views/cms/dashboard/components/websiteEdit.vue delete mode 100644 dict/admin/src/views/cms/dashboard/index.vue delete mode 100644 dict/admin/src/views/cms/dict/components/dict-edit.vue delete mode 100644 dict/admin/src/views/cms/dict/index.vue delete mode 100644 dict/admin/src/views/cms/file/components/video-edit.vue delete mode 100644 dict/admin/src/views/cms/file/index.vue delete mode 100644 dict/admin/src/views/cms/file/player/index.vue delete mode 100644 dict/admin/src/views/cms/help/components/articleEdit.vue delete mode 100644 dict/admin/src/views/cms/help/components/search.vue delete mode 100644 dict/admin/src/views/cms/help/index.vue delete mode 100644 dict/admin/src/views/cms/photo/components/Extra.vue delete mode 100644 dict/admin/src/views/cms/photo/components/photo-edit.vue delete mode 100644 dict/admin/src/views/cms/photo/dict/components/dict-edit.vue delete mode 100644 dict/admin/src/views/cms/photo/dict/index.vue delete mode 100644 dict/admin/src/views/cms/photo/image.vue delete mode 100644 dict/admin/src/views/cms/photo/index.vue delete mode 100644 dict/admin/src/views/cms/photo/list.vue delete mode 100644 dict/admin/src/views/cms/photo/player/index.vue delete mode 100644 dict/admin/src/views/cms/setting/components/field.vue delete mode 100644 dict/admin/src/views/cms/setting/components/website-field-edit.vue delete mode 100644 dict/admin/src/views/cms/setting/components/website-field-search.vue delete mode 100644 dict/admin/src/views/cms/setting/components/website-field.vue delete mode 100644 dict/admin/src/views/cms/setting/index.vue delete mode 100644 dict/admin/src/views/cms/video/components/video-edit.vue delete mode 100644 dict/admin/src/views/cms/video/index.vue delete mode 100644 dict/admin/src/views/cms/video/player/index.vue delete mode 100644 dict/admin/src/views/dormitory/Extra.vue delete mode 100644 dict/admin/src/views/dormitory/dashboard/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/dashboard/components/websiteEdit.vue delete mode 100644 dict/admin/src/views/dormitory/dashboard/index.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryApply/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryApply/index.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryBed/components/dormitoryBedEdit.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryBed/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryBed/index.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryBuilding/components/dormitoryBuildingEdit.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryBuilding/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryBuilding/index.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryFloor/components/dormitoryFloorEdit.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryFloor/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryFloor/index.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryRecord/components/dormitoryRecordEdit.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryRecord/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/dormitoryRecord/index.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/Extra.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/org-select.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/role-select.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/search.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/sex-select.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/user-edit.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/user-import.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/user-info.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/user-search.vue delete mode 100644 dict/admin/src/views/dormitory/user/components/userEdit.vue delete mode 100644 dict/admin/src/views/dormitory/user/details/index.vue delete mode 100644 dict/admin/src/views/dormitory/user/index.vue delete mode 100644 dict/admin/src/views/hjm/count/components/hjmFenceEdit.vue delete mode 100644 dict/admin/src/views/hjm/count/components/search.vue delete mode 100644 dict/admin/src/views/hjm/count/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmBxLog/components/hjmBxLogEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmBxLog/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmBxLog/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmCar/components/Extra.vue delete mode 100644 dict/admin/src/views/hjm/hjmCar/components/Import.vue delete mode 100644 dict/admin/src/views/hjm/hjmCar/components/hjmCarEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmCar/components/qrcode.vue delete mode 100644 dict/admin/src/views/hjm/hjmCar/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmCar/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmChoices/components/hjmChoicesEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmChoices/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmChoices/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmCourses/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmCourses/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmExamLog/components/hjmExamLogEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmExamLog/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmExamLog/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmFence/components/hjmFenceEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmFence/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmFence/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmGpsLog/components/hjmGpsLogEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmGpsLog/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmGpsLog/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmQuestions/components/Extra.vue delete mode 100644 dict/admin/src/views/hjm/hjmQuestions/components/Import.vue delete mode 100644 dict/admin/src/views/hjm/hjmQuestions/components/hjmQuestionsEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmQuestions/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmQuestions/index.vue delete mode 100644 dict/admin/src/views/hjm/hjmViolation/components/hjmViolationEdit.vue delete mode 100644 dict/admin/src/views/hjm/hjmViolation/components/search.vue delete mode 100644 dict/admin/src/views/hjm/hjmViolation/index.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/org-edit.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/org-select.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/org-type-select.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/org-user-edit.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/org-user-list.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/org-user-search.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/role-select.vue delete mode 100644 dict/admin/src/views/hjm/staff/components/sex-select.vue delete mode 100644 dict/admin/src/views/hjm/staff/index.vue delete mode 100644 dict/admin/src/views/hjm/userAlert/components/Edit.vue delete mode 100644 dict/admin/src/views/hjm/userAlert/components/search.vue delete mode 100644 dict/admin/src/views/hjm/userAlert/index.vue delete mode 100644 dict/admin/src/views/hjm/userVerify/components/Extra.vue delete mode 100644 dict/admin/src/views/hjm/userVerify/components/search.vue delete mode 100644 dict/admin/src/views/hjm/userVerify/components/userVerifyEdit.vue delete mode 100644 dict/admin/src/views/hjm/userVerify/index.vue delete mode 100644 dict/admin/src/views/hjm/userVerify2/components/search.vue delete mode 100644 dict/admin/src/views/hjm/userVerify2/components/userVerifyEdit.vue delete mode 100644 dict/admin/src/views/hjm/userVerify2/index.vue delete mode 100644 dict/admin/src/views/passport/dealer/register.vue delete mode 100644 dict/admin/src/views/passport/login/components/register/step/components/step-confirm.vue delete mode 100644 dict/admin/src/views/passport/login/components/register/step/components/step-edit.vue delete mode 100644 dict/admin/src/views/passport/login/components/register/step/components/step-success.vue delete mode 100644 dict/admin/src/views/passport/login/components/register/step/index.vue delete mode 100644 dict/admin/src/views/passport/login/components/register/step/model/index.ts delete mode 100644 dict/admin/src/views/passport/login/components/wx-work.vue delete mode 100644 dict/admin/src/views/passport/login/index.vue delete mode 100644 dict/admin/src/views/passport/loginToken/index.vue delete mode 100644 dict/admin/src/views/passport/qrConfirm/index.vue delete mode 100644 dict/admin/src/views/passport/register/index.vue delete mode 100644 dict/admin/src/views/passport/register2/index.vue delete mode 100644 dict/admin/src/views/result/fail/index.vue delete mode 100644 dict/admin/src/views/result/success/index.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApply/components/search.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApply/components/shopDealerApplyEdit.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApply/index.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApplyRs/components/search.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApplyRs/components/shop-dealer-apply-import.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApplyRs/components/shopDealerApplyEdit.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerApplyRs/index.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder/components/Import.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder/components/search.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder/components/shopDealerOrderEdit.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder/index.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder2/components/Import.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder2/components/search.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder2/components/shopDealerOrderEdit.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerOrder2/index.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerUser/components/search.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerUser/components/shopDealerApplyEdit.vue delete mode 100644 dict/admin/src/views/sdy/shopDealerUser/index.vue delete mode 100644 dict/admin/src/views/sdy/user/components/org-select.vue delete mode 100644 dict/admin/src/views/sdy/user/components/search.vue delete mode 100644 dict/admin/src/views/sdy/user/components/status-test.vue delete mode 100644 dict/admin/src/views/sdy/user/components/user-edit.vue delete mode 100644 dict/admin/src/views/sdy/user/components/user-import.vue delete mode 100644 dict/admin/src/views/sdy/user/index.vue delete mode 100644 dict/admin/src/views/shop/dashboard/components/search.vue delete mode 100644 dict/admin/src/views/shop/dashboard/components/websiteEdit.vue delete mode 100644 dict/admin/src/views/shop/dashboard/index.vue delete mode 100644 dict/admin/src/views/shop/shopAdmin/components/invitation-modal.vue delete mode 100644 dict/admin/src/views/shop/shopAdmin/components/org-select.vue delete mode 100644 dict/admin/src/views/shop/shopAdmin/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopAdmin/components/super-admin.vue delete mode 100644 dict/admin/src/views/shop/shopAdmin/components/user-edit.vue delete mode 100644 dict/admin/src/views/shop/shopAdmin/index.vue delete mode 100644 dict/admin/src/views/shop/shopCoupon/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopCoupon/components/shopCouponEdit.vue delete mode 100644 dict/admin/src/views/shop/shopCoupon/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerApply/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerApply/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerCapital/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerOrder/components/Import.vue delete mode 100644 dict/admin/src/views/shop/shopDealerOrder/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerOrder/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerPoster/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerReferee/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerReferee/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerSetting/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerSetting/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerUser/components/Import.vue delete mode 100644 dict/admin/src/views/shop/shopDealerUser/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerUser/index.vue delete mode 100644 dict/admin/src/views/shop/shopDealerWithdraw/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue delete mode 100644 dict/admin/src/views/shop/shopDealerWithdraw/index.vue delete mode 100644 dict/admin/src/views/shop/shopExpress/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopExpress/components/shopExpressEdit.vue delete mode 100644 dict/admin/src/views/shop/shopExpress/index.vue delete mode 100644 dict/admin/src/views/shop/shopExpressTemplate/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopExpressTemplate/components/shopExpressTemplateEdit.vue delete mode 100644 dict/admin/src/views/shop/shopExpressTemplateDetail/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopExpressTemplateDetail/components/shopExpressTemplateDetailEdit.vue delete mode 100644 dict/admin/src/views/shop/shopGift/components/makeCard.vue delete mode 100644 dict/admin/src/views/shop/shopGift/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopGift/components/shopGiftEdit.vue delete mode 100644 dict/admin/src/views/shop/shopGift/index.vue delete mode 100644 dict/admin/src/views/shop/shopGoods/components/extra.vue delete mode 100644 dict/admin/src/views/shop/shopGoods/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopGoods/components/shopGoodsEdit.vue delete mode 100644 dict/admin/src/views/shop/shopGoods/index.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsCoupon/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsCoupon/components/shopGoodsCouponEdit.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsCoupon/index.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsSku/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsSku/components/shopGoodsSkuEdit.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsSku/index.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsSpec/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsSpec/components/shopGoodsSpecEdit.vue delete mode 100644 dict/admin/src/views/shop/shopGoodsSpec/index.vue delete mode 100644 dict/admin/src/views/shop/shopMerchant/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopMerchant/components/shopMerchantEdit.vue delete mode 100644 dict/admin/src/views/shop/shopMerchant/index.vue delete mode 100644 dict/admin/src/views/shop/shopOrder/components/deliveryModal.vue delete mode 100644 dict/admin/src/views/shop/shopOrder/components/expressSettingModal.vue delete mode 100644 dict/admin/src/views/shop/shopOrder/components/orderInfo.vue delete mode 100644 dict/admin/src/views/shop/shopOrder/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopOrder/index.vue delete mode 100644 dict/admin/src/views/shop/shopOrderGoods/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopSpec/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopSpec/components/shopSpecEdit.vue delete mode 100644 dict/admin/src/views/shop/shopSpec/index.vue delete mode 100644 dict/admin/src/views/shop/shopSpecValue/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopSpecValue/components/shopSpecValueEdit.vue delete mode 100644 dict/admin/src/views/shop/shopSpecValue/index.vue delete mode 100644 dict/admin/src/views/shop/shopUser/components/org-select.vue delete mode 100644 dict/admin/src/views/shop/shopUser/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopUser/components/user-edit.vue delete mode 100644 dict/admin/src/views/shop/shopUser/components/user-import.vue delete mode 100644 dict/admin/src/views/shop/shopUser/index.vue delete mode 100644 dict/admin/src/views/shop/shopUserCoupon/components/search.vue delete mode 100644 dict/admin/src/views/shop/shopUserReferee/components/search.vue delete mode 100644 dict/admin/src/views/system/access-key/components/accesskey-edit.vue delete mode 100644 dict/admin/src/views/system/access-key/index.vue delete mode 100644 dict/admin/src/views/system/admin/components/org-select.vue delete mode 100644 dict/admin/src/views/system/admin/components/role-select.vue delete mode 100644 dict/admin/src/views/system/admin/components/search.vue delete mode 100644 dict/admin/src/views/system/admin/components/sex-select.vue delete mode 100644 dict/admin/src/views/system/admin/components/user-edit.vue delete mode 100644 dict/admin/src/views/system/admin/components/user-import.vue delete mode 100644 dict/admin/src/views/system/admin/components/user-info.vue delete mode 100644 dict/admin/src/views/system/admin/components/user-search.vue delete mode 100644 dict/admin/src/views/system/admin/components/userEdit.vue delete mode 100644 dict/admin/src/views/system/admin/details/index.vue delete mode 100644 dict/admin/src/views/system/admin/index.vue delete mode 100644 dict/admin/src/views/system/cache/components/cache-edit.vue delete mode 100644 dict/admin/src/views/system/cache/components/send-sms.vue delete mode 100644 dict/admin/src/views/system/cache/index.vue delete mode 100644 dict/admin/src/views/system/chatConversation/components/chatConversationEdit.vue delete mode 100644 dict/admin/src/views/system/chatConversation/components/search.vue delete mode 100644 dict/admin/src/views/system/chatConversation/index.vue delete mode 100644 dict/admin/src/views/system/chatMessage/components/chatMessageEdit.vue delete mode 100644 dict/admin/src/views/system/chatMessage/components/search.vue delete mode 100644 dict/admin/src/views/system/chatMessage/index.vue delete mode 100644 dict/admin/src/views/system/demo/index.vue delete mode 100644 dict/admin/src/views/system/developer/components/CodeInfo.vue delete mode 100644 dict/admin/src/views/system/developer/components/ParamInfo.vue delete mode 100644 dict/admin/src/views/system/developer/components/ServerInfo.vue delete mode 100644 dict/admin/src/views/system/developer/components/TenantInfo.vue delete mode 100644 dict/admin/src/views/system/developer/index.vue delete mode 100644 dict/admin/src/views/system/dict/components/dict-data-edit.vue delete mode 100644 dict/admin/src/views/system/dict/components/dict-data-search.vue delete mode 100644 dict/admin/src/views/system/dict/components/dict-data.vue delete mode 100644 dict/admin/src/views/system/dict/components/dict-edit.vue delete mode 100644 dict/admin/src/views/system/dict/index.vue delete mode 100644 dict/admin/src/views/system/dict/list.vue delete mode 100644 dict/admin/src/views/system/dictionary/components/dict-data-edit.vue delete mode 100644 dict/admin/src/views/system/dictionary/components/dict-data-search.vue delete mode 100644 dict/admin/src/views/system/dictionary/components/dict-data.vue delete mode 100644 dict/admin/src/views/system/dictionary/components/dict-edit.vue delete mode 100644 dict/admin/src/views/system/dictionary/index.vue delete mode 100644 dict/admin/src/views/system/dictionary/list.vue delete mode 100644 dict/admin/src/views/system/domain/components/domainEdit.vue delete mode 100644 dict/admin/src/views/system/domain/components/search.vue delete mode 100644 dict/admin/src/views/system/domain/index.vue delete mode 100644 dict/admin/src/views/system/exception/403/index.vue delete mode 100644 dict/admin/src/views/system/exception/404/index.vue delete mode 100644 dict/admin/src/views/system/exception/500/index.vue delete mode 100644 dict/admin/src/views/system/field/components/edit.vue delete mode 100644 dict/admin/src/views/system/field/components/search.vue delete mode 100644 dict/admin/src/views/system/field/index.vue delete mode 100644 dict/admin/src/views/system/file/components/file-search.vue delete mode 100644 dict/admin/src/views/system/file/index.vue delete mode 100644 dict/admin/src/views/system/grade/components/grade-edit.vue delete mode 100644 dict/admin/src/views/system/grade/components/search.vue delete mode 100644 dict/admin/src/views/system/grade/index.vue delete mode 100644 dict/admin/src/views/system/login-record/components/login-record-search.vue delete mode 100644 dict/admin/src/views/system/login-record/index.vue delete mode 100644 dict/admin/src/views/system/menu/components/Import.vue delete mode 100644 dict/admin/src/views/system/menu/components/clone.vue delete mode 100644 dict/admin/src/views/system/menu/components/delete.vue delete mode 100644 dict/admin/src/views/system/menu/components/menu-edit.vue delete mode 100644 dict/admin/src/views/system/menu/components/menu-plug.vue delete mode 100644 dict/admin/src/views/system/menu/components/menu-search-original.vue delete mode 100644 dict/admin/src/views/system/menu/components/menu-search.vue delete mode 100644 dict/admin/src/views/system/menu/index.vue delete mode 100644 dict/admin/src/views/system/modules/components/modules-edit.vue delete mode 100644 dict/admin/src/views/system/modules/components/modules-search.vue delete mode 100644 dict/admin/src/views/system/modules/index.vue delete mode 100644 dict/admin/src/views/system/operation-record/components/operation-record-detail.vue delete mode 100644 dict/admin/src/views/system/operation-record/components/operation-record-search.vue delete mode 100644 dict/admin/src/views/system/operation-record/components/text-ellipsis.vue delete mode 100644 dict/admin/src/views/system/operation-record/index.vue delete mode 100644 dict/admin/src/views/system/order/components/order-edit.vue delete mode 100644 dict/admin/src/views/system/order/components/search.vue delete mode 100644 dict/admin/src/views/system/order/index.vue delete mode 100644 dict/admin/src/views/system/organization/components/org-edit.vue delete mode 100644 dict/admin/src/views/system/organization/components/org-select.vue delete mode 100644 dict/admin/src/views/system/organization/components/org-type-select.vue delete mode 100644 dict/admin/src/views/system/organization/components/org-user-edit.vue delete mode 100644 dict/admin/src/views/system/organization/components/org-user-list.vue delete mode 100644 dict/admin/src/views/system/organization/components/org-user-search.vue delete mode 100644 dict/admin/src/views/system/organization/components/role-select.vue delete mode 100644 dict/admin/src/views/system/organization/components/sex-select.vue delete mode 100644 dict/admin/src/views/system/organization/index.vue delete mode 100644 dict/admin/src/views/system/payment/components/paymentEdit.vue delete mode 100644 dict/admin/src/views/system/payment/components/search.vue delete mode 100644 dict/admin/src/views/system/payment/index.vue delete mode 100644 dict/admin/src/views/system/plug/components/companyEdit.vue delete mode 100644 dict/admin/src/views/system/plug/components/menu-edit.vue delete mode 100644 dict/admin/src/views/system/plug/components/menu-search.vue delete mode 100644 dict/admin/src/views/system/plug/components/plug-edit.vue delete mode 100644 dict/admin/src/views/system/plug/components/plug-search.vue delete mode 100644 dict/admin/src/views/system/plug/components/plug.vue delete mode 100644 dict/admin/src/views/system/plug/components/search.vue delete mode 100644 dict/admin/src/views/system/plug/components/tenant.vue delete mode 100644 dict/admin/src/views/system/plug/create/components/clone.vue delete mode 100644 dict/admin/src/views/system/plug/create/components/plug-edit.vue delete mode 100644 dict/admin/src/views/system/plug/create/components/plug-search.vue delete mode 100644 dict/admin/src/views/system/plug/create/index.vue delete mode 100644 dict/admin/src/views/system/plug/detail/index.vue delete mode 100644 dict/admin/src/views/system/plug/index.vue delete mode 100644 dict/admin/src/views/system/plug/list/index.vue delete mode 100644 dict/admin/src/views/system/plug/search/index.vue delete mode 100644 dict/admin/src/views/system/profile/components/field.vue delete mode 100644 dict/admin/src/views/system/profile/components/sex-select.vue delete mode 100644 dict/admin/src/views/system/profile/components/version.vue delete mode 100644 dict/admin/src/views/system/profile/index.vue delete mode 100644 dict/admin/src/views/system/role/components/role-auth.vue delete mode 100644 dict/admin/src/views/system/role/components/role-edit.vue delete mode 100644 dict/admin/src/views/system/role/components/role-search.vue delete mode 100644 dict/admin/src/views/system/role/index.vue delete mode 100644 dict/admin/src/views/system/setting/components/basic.vue delete mode 100644 dict/admin/src/views/system/setting/components/clear.vue delete mode 100644 dict/admin/src/views/system/setting/components/developer.vue delete mode 100644 dict/admin/src/views/system/setting/components/mp-weixin.vue delete mode 100644 dict/admin/src/views/system/setting/components/payment.vue delete mode 100644 dict/admin/src/views/system/setting/components/printer.vue delete mode 100644 dict/admin/src/views/system/setting/components/privacy.vue delete mode 100644 dict/admin/src/views/system/setting/components/register.vue delete mode 100644 dict/admin/src/views/system/setting/components/role-select.vue delete mode 100644 dict/admin/src/views/system/setting/components/sms.vue delete mode 100644 dict/admin/src/views/system/setting/components/upload.vue delete mode 100644 dict/admin/src/views/system/setting/components/website.vue delete mode 100644 dict/admin/src/views/system/setting/components/wx-official.vue delete mode 100644 dict/admin/src/views/system/setting/components/wx-work.vue delete mode 100644 dict/admin/src/views/system/setting/index.vue delete mode 100644 dict/admin/src/views/system/user-group/components/category-select.vue delete mode 100644 dict/admin/src/views/system/user-group/components/group-edit.vue delete mode 100644 dict/admin/src/views/system/user-group/components/search.vue delete mode 100644 dict/admin/src/views/system/user-group/index.vue delete mode 100644 dict/admin/src/views/system/user-info/index.vue delete mode 100644 dict/admin/src/views/system/user/components/Extra.vue delete mode 100644 dict/admin/src/views/system/user/components/org-select.vue delete mode 100644 dict/admin/src/views/system/user/components/role-select.vue delete mode 100644 dict/admin/src/views/system/user/components/search.vue delete mode 100644 dict/admin/src/views/system/user/components/sex-select.vue delete mode 100644 dict/admin/src/views/system/user/components/user-edit.vue delete mode 100644 dict/admin/src/views/system/user/components/user-import.vue delete mode 100644 dict/admin/src/views/system/user/components/user-info.vue delete mode 100644 dict/admin/src/views/system/user/components/user-search.vue delete mode 100644 dict/admin/src/views/system/user/components/userEdit.vue delete mode 100644 dict/admin/src/views/system/user/details/index.vue delete mode 100644 dict/admin/src/views/system/user/index.vue delete mode 100644 dict/admin/src/views/system/userOauth/components/search.vue delete mode 100644 dict/admin/src/views/system/userOauth/components/userOauthEdit.vue delete mode 100644 dict/admin/src/views/system/userOauth/index.vue delete mode 100644 dict/admin/src/views/system/userVerify/components/search.vue delete mode 100644 dict/admin/src/views/system/userVerify/components/userVerifyEdit.vue delete mode 100644 dict/admin/src/views/system/userVerify/index.vue delete mode 100644 dict/admin/src/views/system/userVerify2/components/search.vue delete mode 100644 dict/admin/src/views/system/userVerify2/components/userVerifyEdit.vue delete mode 100644 dict/admin/src/views/system/userVerify2/index.vue delete mode 100644 dict/admin/src/views/system/version/components/version-edit.vue delete mode 100644 dict/admin/src/views/system/version/index.vue delete mode 100644 dict/admin/src/views/system/white-domain/components/search.vue delete mode 100644 dict/admin/src/views/system/white-domain/components/white-domain-edit.vue delete mode 100644 dict/admin/src/views/system/white-domain/index.vue delete mode 100644 dict/admin/src/views/user/chat-conversation/components/chatConversationEdit.vue delete mode 100644 dict/admin/src/views/user/chat-conversation/components/search.vue delete mode 100644 dict/admin/src/views/user/chat-conversation/index.vue delete mode 100644 dict/admin/src/views/user/chat-message/components/chatMessageEdit.vue delete mode 100644 dict/admin/src/views/user/chat-message/components/search.vue delete mode 100644 dict/admin/src/views/user/chat-message/index.vue delete mode 100644 dict/admin/src/views/user/profile/components/sex-select.vue delete mode 100644 dict/admin/src/views/user/profile/index.vue delete mode 100644 dict/admin/src/vite-env.d.ts delete mode 100644 dict/admin/tailwind.config.js delete mode 100644 dict/admin/tsconfig.json delete mode 100644 dict/admin/version.json delete mode 100644 dict/admin/vite.config.ts delete mode 100644 dict/admin/yarn.lock delete mode 100644 dict/taro/babel.config.js delete mode 100644 dict/taro/config/app.ts delete mode 100644 dict/taro/config/dev.ts delete mode 100644 dict/taro/config/env.ts delete mode 100644 dict/taro/config/index.ts delete mode 100644 dict/taro/config/prod.ts delete mode 100644 dict/taro/package.json delete mode 100644 dict/taro/pnpm-lock.yaml delete mode 100644 dict/taro/postcss.config.js delete mode 100644 dict/taro/project.config.json delete mode 100644 dict/taro/project.tt.json delete mode 100644 dict/taro/src/api/index.ts delete mode 100644 dict/taro/src/app.config.ts delete mode 100644 dict/taro/src/app.scss delete mode 100644 dict/taro/src/app.ts delete mode 100644 dict/taro/src/assets/tabbar/home-active.png delete mode 100644 dict/taro/src/assets/tabbar/home.png delete mode 100644 dict/taro/src/assets/tabbar/kefu-active.png delete mode 100644 dict/taro/src/assets/tabbar/kefu.png delete mode 100644 dict/taro/src/assets/tabbar/order-active.png delete mode 100644 dict/taro/src/assets/tabbar/order.png delete mode 100644 dict/taro/src/assets/tabbar/shop-active.png delete mode 100644 dict/taro/src/assets/tabbar/shop.png delete mode 100644 dict/taro/src/assets/tabbar/store-active.png delete mode 100644 dict/taro/src/assets/tabbar/store.png delete mode 100644 dict/taro/src/assets/tabbar/user-active.png delete mode 100644 dict/taro/src/assets/tabbar/user.png delete mode 100644 dict/taro/src/components/AddCartBar.tsx delete mode 100644 dict/taro/src/components/Gap.tsx delete mode 100644 dict/taro/src/components/GoodsList.tsx delete mode 100644 dict/taro/src/components/Header.tsx delete mode 100644 dict/taro/src/components/OrderList.tsx delete mode 100644 dict/taro/src/components/PayRecord.tsx delete mode 100644 dict/taro/src/components/Questions.tsx delete mode 100644 dict/taro/src/components/TabBar.tsx delete mode 100644 dict/taro/src/components/UnifiedQRButton.tsx delete mode 100644 dict/taro/src/hooks/useAdminMode.ts delete mode 100644 dict/taro/src/hooks/useCart.ts delete mode 100644 dict/taro/src/hooks/useDealerApply.ts delete mode 100644 dict/taro/src/hooks/useDealerUser.ts delete mode 100644 dict/taro/src/hooks/useOrderStats.ts delete mode 100644 dict/taro/src/hooks/usePaymentCountdown.ts delete mode 100644 dict/taro/src/hooks/useQRLogin.ts delete mode 100644 dict/taro/src/hooks/useShopInfo.ts delete mode 100644 dict/taro/src/hooks/useTheme.ts delete mode 100644 dict/taro/src/hooks/useUnifiedQRScan.ts delete mode 100644 dict/taro/src/hooks/useUser.ts delete mode 100644 dict/taro/src/hooks/useUserData.ts delete mode 100644 dict/taro/src/index.html delete mode 100644 dict/taro/src/pages/article/article.config.ts delete mode 100644 dict/taro/src/pages/article/article.tsx delete mode 100644 dict/taro/src/pages/index/Banner.tsx delete mode 100644 dict/taro/src/pages/index/BestSellers.tsx delete mode 100644 dict/taro/src/pages/index/Chart.tsx delete mode 100644 dict/taro/src/pages/index/ExpirationTime.tsx delete mode 100644 dict/taro/src/pages/index/Header.tsx delete mode 100644 dict/taro/src/pages/index/Help.tsx delete mode 100644 dict/taro/src/pages/index/Login.tsx delete mode 100644 dict/taro/src/pages/index/Menu.tsx delete mode 100644 dict/taro/src/pages/index/SiteUrl.tsx delete mode 100644 dict/taro/src/pages/index/chart/DemoLine.tsx delete mode 100644 dict/taro/src/pages/index/chart/index.scss delete mode 100644 dict/taro/src/pages/index/index.config.ts delete mode 100644 dict/taro/src/pages/index/index.scss delete mode 100644 dict/taro/src/pages/index/index.tsx delete mode 100644 dict/taro/src/pages/index/login.scss delete mode 100644 dict/taro/src/pages/kefu/kefu.config.ts delete mode 100644 dict/taro/src/pages/kefu/kefu.tsx delete mode 100644 dict/taro/src/pages/order/order.config.ts delete mode 100644 dict/taro/src/pages/order/order.tsx delete mode 100644 dict/taro/src/pages/study/study.config.ts delete mode 100644 dict/taro/src/pages/study/study.tsx delete mode 100644 dict/taro/src/pages/user/components/OrderIcon.tsx delete mode 100644 dict/taro/src/pages/user/components/UserCard.tsx delete mode 100644 dict/taro/src/pages/user/components/UserCell.tsx delete mode 100644 dict/taro/src/pages/user/components/UserFooter.tsx delete mode 100644 dict/taro/src/pages/user/user.config.ts delete mode 100644 dict/taro/src/pages/user/user.tsx delete mode 100644 dict/taro/src/passport/agreement.scss delete mode 100644 dict/taro/src/passport/agreement.tsx delete mode 100644 dict/taro/src/passport/forget.tsx delete mode 100644 dict/taro/src/passport/login.tsx delete mode 100644 dict/taro/src/passport/register.tsx delete mode 100644 dict/taro/src/passport/setting.tsx delete mode 100644 dict/taro/src/passport/sms-login.config.ts delete mode 100644 dict/taro/src/passport/sms-login.tsx delete mode 100644 dict/taro/src/passport/wxLogin.tsx delete mode 100644 dict/taro/src/utils/common.ts delete mode 100644 dict/taro/src/utils/config.ts delete mode 100644 dict/taro/src/utils/domain.ts delete mode 100644 dict/taro/src/utils/invite.ts delete mode 100644 dict/taro/src/utils/jsonUtils.ts delete mode 100644 dict/taro/src/utils/request.ts delete mode 100644 dict/taro/src/utils/server.ts delete mode 100644 dict/taro/src/utils/time.ts delete mode 100644 dict/taro/src/utils/wxLogin.ts delete mode 100644 dict/taro/tailwind.config.js delete mode 100644 dict/taro/tsconfig.json delete mode 100644 dict/taro/types/global.d.ts rename {dict => output}/admin/src/api/clinic/clinicAppointment/index.ts (100%) rename {dict => output}/admin/src/api/clinic/clinicAppointment/model/index.ts (100%) rename {dict => output}/admin/src/api/clinic/clinicDoctorApply/index.ts (100%) rename {dict => output}/admin/src/api/clinic/clinicDoctorApply/model/index.ts (100%) rename {dict/admin/src/api/shop/shopExpressTemplateDetail => output/admin/src/api/clinic/clinicDoctorMedicalRecord}/index.ts (50%) rename {dict/admin/src/api/shop/shopDealerOrder => output/admin/src/api/clinic/clinicDoctorMedicalRecord}/model/index.ts (59%) rename {dict/admin/src/api/bszx/bszxClass => output/admin/src/api/clinic/clinicDoctorUser}/index.ts (52%) rename {dict/admin/src/api/shop/shopDealerUser => output/admin/src/api/clinic/clinicDoctorUser}/model/index.ts (74%) rename {dict/admin/src/api/hjm/hjmCourses => output/admin/src/api/clinic/clinicMedicalHistory}/index.ts (52%) create mode 100644 output/admin/src/api/clinic/clinicMedicalHistory/model/index.ts rename {dict/admin/src/api/shop/shopUserCoupon => output/admin/src/api/clinic/clinicMedicine}/index.ts (55%) create mode 100644 output/admin/src/api/clinic/clinicMedicine/model/index.ts rename {dict/admin/src/api/shop/shopExpressTemplate => output/admin/src/api/clinic/clinicMedicineInout}/index.ts (53%) create mode 100644 output/admin/src/api/clinic/clinicMedicineInout/model/index.ts rename {dict/admin/src/api/cms/cmsModel => output/admin/src/api/clinic/clinicMedicineStock}/index.ts (52%) create mode 100644 output/admin/src/api/clinic/clinicMedicineStock/model/index.ts rename {dict/admin/src/api/shop/shopExpress => output/admin/src/api/clinic/clinicOrder}/index.ts (56%) rename {dict/admin/src/api/shop/shopOrder => output/admin/src/api/clinic/clinicOrder}/model/index.ts (73%) rename {dict/admin/src/api/hjm/hjmQuestions => output/admin/src/api/clinic/clinicPatientUser}/index.ts (53%) create mode 100644 output/admin/src/api/clinic/clinicPatientUser/model/index.ts rename {dict/admin/src/api/shop/shopCommissionRole => output/admin/src/api/clinic/clinicPrescription}/index.ts (53%) create mode 100644 output/admin/src/api/clinic/clinicPrescription/model/index.ts create mode 100644 output/admin/src/api/clinic/clinicPrescriptionItem/index.ts create mode 100644 output/admin/src/api/clinic/clinicPrescriptionItem/model/index.ts rename {dict/admin/src/api/shop/spec => output/admin/src/api/clinic/clinicReport}/index.ts (56%) rename {dict/admin/src/api/sdy/sdyDealerOrder => output/admin/src/api/clinic/clinicReport}/model/index.ts (66%) rename {dict/admin/src/api/system/comment => output/admin/src/api/clinic/clinicVisitRecord}/index.ts (53%) create mode 100644 output/admin/src/api/clinic/clinicVisitRecord/model/index.ts rename {dict => output}/admin/src/views/clinic/clinicAppointment/components/clinicAppointmentEdit.vue (100%) rename {dict/admin/src/views/bszx/bszxBranch => output/admin/src/views/clinic/clinicAppointment}/components/search.vue (100%) rename {dict => output}/admin/src/views/clinic/clinicAppointment/index.vue (100%) rename {dict => output}/admin/src/views/clinic/clinicDoctorApply/components/clinicDoctorApplyEdit.vue (100%) rename {dict/admin/src/views/clinic/clinicAppointment => output/admin/src/views/clinic/clinicDoctorApply}/components/search.vue (100%) rename {dict => output}/admin/src/views/clinic/clinicDoctorApply/index.vue (100%) rename dict/admin/src/views/shop/shopUserCoupon/components/shopUserCouponEdit.vue => output/admin/src/views/clinic/clinicDoctorMedicalRecord/components/clinicDoctorMedicalRecordEdit.vue (55%) rename {dict/admin/src/views/clinic/clinicDoctorApply => output/admin/src/views/clinic/clinicDoctorMedicalRecord}/components/search.vue (100%) create mode 100644 output/admin/src/views/clinic/clinicDoctorMedicalRecord/index.vue rename dict/admin/src/views/cms/cmsWebsiteField/components/cmsWebsiteFieldEdit.vue => output/admin/src/views/clinic/clinicDoctorUser/components/clinicDoctorUserEdit.vue (54%) rename {dict/admin/src/views/cms/cmsAdRecord => output/admin/src/views/clinic/clinicDoctorUser}/components/search.vue (100%) rename {dict/admin/src/views/cms/cmsArticleCategory => output/admin/src/views/clinic/clinicDoctorUser}/index.vue (59%) rename dict/admin/src/views/shop/shopOrderGoods/components/shopOrderGoodsEdit.vue => output/admin/src/views/clinic/clinicMedicalHistory/components/clinicMedicalHistoryEdit.vue (52%) rename {dict/admin/src/views/cms/cmsArticleCategory => output/admin/src/views/clinic/clinicMedicalHistory}/components/search.vue (100%) create mode 100644 output/admin/src/views/clinic/clinicMedicalHistory/index.vue rename dict/admin/src/views/hjm/hjmCourses/components/hjmCoursesEdit.vue => output/admin/src/views/clinic/clinicMedicine/components/clinicMedicineEdit.vue (66%) rename {dict/admin/src/views/cms/cmsArticleComment => output/admin/src/views/clinic/clinicMedicine}/components/search.vue (100%) rename {dict/admin/src/views/shop/shopExpressTemplateDetail => output/admin/src/views/clinic/clinicMedicine}/index.vue (65%) create mode 100644 output/admin/src/views/clinic/clinicMedicineInout/components/clinicMedicineInoutEdit.vue rename {dict/admin/src/views/cms/cmsArticleContent => output/admin/src/views/clinic/clinicMedicineInout}/components/search.vue (100%) create mode 100644 output/admin/src/views/clinic/clinicMedicineInout/index.vue rename dict/admin/src/views/shop/shopUserReferee/components/shopUserRefereeEdit.vue => output/admin/src/views/clinic/clinicMedicineStock/components/clinicMedicineStockEdit.vue (73%) rename {dict/admin/src/views/cms/cmsArticleCount => output/admin/src/views/clinic/clinicMedicineStock}/components/search.vue (100%) rename {dict/admin/src/views/shop/shopUserReferee => output/admin/src/views/clinic/clinicMedicineStock}/index.vue (69%) rename dict/admin/src/views/system/order/components/orderEdit.vue => output/admin/src/views/clinic/clinicOrder/components/clinicOrderEdit.vue (53%) rename {dict/admin/src/views/cms/cmsArticleLike => output/admin/src/views/clinic/clinicOrder}/components/search.vue (100%) create mode 100644 output/admin/src/views/clinic/clinicOrder/index.vue rename dict/admin/src/views/dormitory/dormitoryApply/components/dormitoryApplyEdit.vue => output/admin/src/views/clinic/clinicPatientUser/components/clinicPatientUserEdit.vue (65%) rename {dict/admin/src/views/cms/cmsForm => output/admin/src/views/clinic/clinicPatientUser}/components/search.vue (100%) create mode 100644 output/admin/src/views/clinic/clinicPatientUser/index.vue rename dict/admin/src/views/cms/cmsArticleCategory/components/cmsArticleCategoryEdit.vue => output/admin/src/views/clinic/clinicPrescription/components/clinicPrescriptionEdit.vue (60%) rename {dict/admin/src/views/cms/cmsFormRecord => output/admin/src/views/clinic/clinicPrescription}/components/search.vue (100%) rename {dict/admin/src/views/shop/shopUserCoupon => output/admin/src/views/clinic/clinicPrescription}/index.vue (61%) rename dict/admin/src/views/cms/cmsArticleComment/components/cmsArticleCommentEdit.vue => output/admin/src/views/clinic/clinicPrescriptionItem/components/clinicPrescriptionItemEdit.vue (64%) rename {dict/admin/src/views/cms/cmsLangLog => output/admin/src/views/clinic/clinicPrescriptionItem}/components/search.vue (100%) rename {dict/admin/src/views/shop/shopExpressTemplate => output/admin/src/views/clinic/clinicPrescriptionItem}/index.vue (62%) create mode 100644 output/admin/src/views/clinic/clinicReport/components/clinicReportEdit.vue rename {dict/admin/src/views/cms/cmsStatistics => output/admin/src/views/clinic/clinicReport}/components/search.vue (100%) rename {dict/admin/src/views/shop/shopOrderGoods => output/admin/src/views/clinic/clinicReport}/index.vue (58%) create mode 100644 output/admin/src/views/clinic/clinicVisitRecord/components/clinicVisitRecordEdit.vue rename {dict/admin/src/views/cms/cmsTemplate => output/admin/src/views/clinic/clinicVisitRecord}/components/search.vue (100%) rename {dict/admin/src/views/shop/shopDealerCapital => output/admin/src/views/clinic/clinicVisitRecord}/index.vue (57%) create mode 100644 output/taro/src/api/clinic/clinicAppointment/index.ts create mode 100644 output/taro/src/api/clinic/clinicAppointment/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicDoctorApply/index.ts rename {dict/admin/src/api/dormitory/dormitoryApply => output/taro/src/api/clinic/clinicDoctorApply}/model/index.ts (50%) create mode 100644 output/taro/src/api/clinic/clinicDoctorMedicalRecord/index.ts create mode 100644 output/taro/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicDoctorUser/index.ts create mode 100644 output/taro/src/api/clinic/clinicDoctorUser/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicalHistory/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicalHistory/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicine/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicine/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicineInout/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicineInout/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicineStock/index.ts create mode 100644 output/taro/src/api/clinic/clinicMedicineStock/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicOrder/index.ts create mode 100644 output/taro/src/api/clinic/clinicOrder/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicPatientUser/index.ts create mode 100644 output/taro/src/api/clinic/clinicPatientUser/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicPrescription/index.ts create mode 100644 output/taro/src/api/clinic/clinicPrescription/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicPrescriptionItem/index.ts create mode 100644 output/taro/src/api/clinic/clinicPrescriptionItem/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicReport/index.ts create mode 100644 output/taro/src/api/clinic/clinicReport/model/index.ts create mode 100644 output/taro/src/api/clinic/clinicVisitRecord/index.ts create mode 100644 output/taro/src/api/clinic/clinicVisitRecord/model/index.ts rename dict/taro/src/passport/forget.config.ts => output/taro/src/clinic/clinicAppointment/add.config.ts (62%) create mode 100644 output/taro/src/clinic/clinicAppointment/add.tsx rename dict/taro/src/passport/wxLogin.config.ts => output/taro/src/clinic/clinicAppointment/index.config.ts (62%) create mode 100644 output/taro/src/clinic/clinicAppointment/index.tsx create mode 100644 output/taro/src/clinic/clinicDoctorApply/add.config.ts create mode 100644 output/taro/src/clinic/clinicDoctorApply/add.tsx create mode 100644 output/taro/src/clinic/clinicDoctorApply/index.config.ts create mode 100644 output/taro/src/clinic/clinicDoctorApply/index.tsx create mode 100644 output/taro/src/clinic/clinicDoctorMedicalRecord/add.config.ts create mode 100644 output/taro/src/clinic/clinicDoctorMedicalRecord/add.tsx create mode 100644 output/taro/src/clinic/clinicDoctorMedicalRecord/index.config.ts create mode 100644 output/taro/src/clinic/clinicDoctorMedicalRecord/index.tsx rename dict/taro/src/passport/agreement.config.ts => output/taro/src/clinic/clinicDoctorUser/add.config.ts (54%) create mode 100644 output/taro/src/clinic/clinicDoctorUser/add.tsx create mode 100644 output/taro/src/clinic/clinicDoctorUser/index.config.ts create mode 100644 output/taro/src/clinic/clinicDoctorUser/index.tsx rename dict/taro/src/passport/register.config.ts => output/taro/src/clinic/clinicMedicalHistory/add.config.ts (62%) create mode 100644 output/taro/src/clinic/clinicMedicalHistory/add.tsx rename dict/taro/src/passport/setting.config.ts => output/taro/src/clinic/clinicMedicalHistory/index.config.ts (62%) create mode 100644 output/taro/src/clinic/clinicMedicalHistory/index.tsx rename dict/taro/src/passport/login.config.ts => output/taro/src/clinic/clinicMedicine/add.config.ts (61%) create mode 100644 output/taro/src/clinic/clinicMedicine/add.tsx create mode 100644 output/taro/src/clinic/clinicMedicine/index.config.ts create mode 100644 output/taro/src/clinic/clinicMedicine/index.tsx create mode 100644 output/taro/src/clinic/clinicMedicineInout/add.config.ts create mode 100644 output/taro/src/clinic/clinicMedicineInout/add.tsx create mode 100644 output/taro/src/clinic/clinicMedicineInout/index.config.ts create mode 100644 output/taro/src/clinic/clinicMedicineInout/index.tsx create mode 100644 output/taro/src/clinic/clinicMedicineStock/add.config.ts create mode 100644 output/taro/src/clinic/clinicMedicineStock/add.tsx create mode 100644 output/taro/src/clinic/clinicMedicineStock/index.config.ts create mode 100644 output/taro/src/clinic/clinicMedicineStock/index.tsx create mode 100644 output/taro/src/clinic/clinicOrder/add.config.ts create mode 100644 output/taro/src/clinic/clinicOrder/add.tsx create mode 100644 output/taro/src/clinic/clinicOrder/index.config.ts create mode 100644 output/taro/src/clinic/clinicOrder/index.tsx create mode 100644 output/taro/src/clinic/clinicPatientUser/add.config.ts create mode 100644 output/taro/src/clinic/clinicPatientUser/add.tsx create mode 100644 output/taro/src/clinic/clinicPatientUser/index.config.ts create mode 100644 output/taro/src/clinic/clinicPatientUser/index.tsx create mode 100644 output/taro/src/clinic/clinicPrescription/add.config.ts create mode 100644 output/taro/src/clinic/clinicPrescription/add.tsx create mode 100644 output/taro/src/clinic/clinicPrescription/index.config.ts create mode 100644 output/taro/src/clinic/clinicPrescription/index.tsx create mode 100644 output/taro/src/clinic/clinicPrescriptionItem/add.config.ts create mode 100644 output/taro/src/clinic/clinicPrescriptionItem/add.tsx create mode 100644 output/taro/src/clinic/clinicPrescriptionItem/index.config.ts create mode 100644 output/taro/src/clinic/clinicPrescriptionItem/index.tsx create mode 100644 output/taro/src/clinic/clinicReport/add.config.ts create mode 100644 output/taro/src/clinic/clinicReport/add.tsx create mode 100644 output/taro/src/clinic/clinicReport/index.config.ts create mode 100644 output/taro/src/clinic/clinicReport/index.tsx create mode 100644 output/taro/src/clinic/clinicVisitRecord/add.config.ts create mode 100644 output/taro/src/clinic/clinicVisitRecord/add.tsx create mode 100644 output/taro/src/clinic/clinicVisitRecord/index.config.ts create mode 100644 output/taro/src/clinic/clinicVisitRecord/index.tsx create mode 100644 src/main/java/com/gxwebsoft/clinic/controller/ClinicDoctorUserController.java create mode 100644 src/main/java/com/gxwebsoft/clinic/controller/ClinicPatientUserController.java create mode 100644 src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorUser.java create mode 100644 src/main/java/com/gxwebsoft/clinic/entity/ClinicPatientUser.java create mode 100644 src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorUserMapper.java create mode 100644 src/main/java/com/gxwebsoft/clinic/mapper/ClinicPatientUserMapper.java create mode 100644 src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicDoctorUserMapper.xml create mode 100644 src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicPatientUserMapper.xml create mode 100644 src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorUserParam.java create mode 100644 src/main/java/com/gxwebsoft/clinic/param/ClinicPatientUserParam.java create mode 100644 src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorUserService.java create mode 100644 src/main/java/com/gxwebsoft/clinic/service/ClinicPatientUserService.java create mode 100644 src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorUserServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/clinic/service/impl/ClinicPatientUserServiceImpl.java diff --git a/dict/admin/index.html b/dict/admin/index.html deleted file mode 100644 index e45f55e..0000000 --- a/dict/admin/index.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - 网宿软件 - - - -
-
- - - - -
-
- - - diff --git a/dict/admin/package-lock.json b/dict/admin/package-lock.json deleted file mode 100644 index 2f4d057..0000000 --- a/dict/admin/package-lock.json +++ /dev/null @@ -1,19250 +0,0 @@ -{ - "name": "mp-vue-template", - "version": "1.10.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "mp-vue-template", - "version": "1.10.1", - "dependencies": { - "@amap/amap-jsapi-loader": "^1.0.1", - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-vue": "^6.1.0", - "@antv/g2": "^5.1.22", - "@bytemd/plugin-gfm": "^1.17.2", - "@bytemd/plugin-highlight": "^1.17.4", - "@bytemd/plugin-highlight-ssr": "^1.20.2", - "@wecom/jssdk": "^1.3.1", - "ali-oss": "^6.18.0", - "ant-design-vue": "^3.2.11", - "axios": "^0.27.2", - "bytemd": "^1.17.2", - "countup.js": "^2.3.2", - "cropperjs": "^1.5.12", - "crypto-js": "^4.2.0", - "dayjs": "^1.11.5", - "docx": "^9.5.0", - "echarts": "^5.3.3", - "echarts-wordcloud": "^2.0.0", - "ele-admin-pro": "^1.10.1", - "exceljs": "^4.3.0", - "file-saver": "^2.0.5", - "github-markdown-css": "^5.1.0", - "js-cookie": "^3.0.5", - "js-md5": "^0.7.3", - "jsbarcode": "^3.11.5", - "lodash-es": "^4.17.21", - "md-editor-v3": "^5.2.3", - "mitt": "^3.0.1", - "nprogress": "^0.2.0", - "pinia": "^2.0.21", - "qrcode": "^1.5.4", - "socket.io-client": "^4.7.1", - "sortablejs": "^1.15.0", - "tinymce": "^5.10.5", - "vue": "3.5.3", - "vue-echarts": "^6.2.3", - "vue-i18n": "^9.2.2", - "vue-router": "^4.1.5", - "vuedraggable": "^4.1.0", - "xgplayer": "^2.31.7", - "xlsx": "^0.18.5" - }, - "devDependencies": { - "@types/file-saver": "^2.0.7", - "@types/lodash-es": "^4.17.6", - "@types/node": "^18.7.14", - "@types/nprogress": "^0.2.0", - "@types/qrcode": "^1.5.5", - "@types/sortablejs": "^1.13.0", - "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/parser": "^5.36.1", - "@vitejs/plugin-legacy": "^2.0.1", - "@vitejs/plugin-vue": "^3.0.3", - "@vue/compiler-sfc": "^3.2.38", - "autoprefixer": "^10.4.19", - "eslint": "^8.23.0", - "eslint-config-prettier": "^8.5.0", - "eslint-define-config": "^1.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-vue": "^9.4.0", - "less": "^4.1.3", - "postcss": "^8.4.39", - "prettier": "^2.7.1", - "rimraf": "^3.0.2", - "rollup-plugin-visualizer": "^5.9.2", - "tailwindcss": "^3.4.6", - "terser": "^5.15.0", - "typescript": "^4.8.2", - "unplugin-vue-components": "^0.22.4", - "vite": "^3.0.9", - "vite-plugin-compression": "^0.5.1", - "vue-eslint-parser": "^9.0.3", - "vue-tsc": "^0.40.5" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@amap/amap-jsapi-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz", - "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==" - }, - "node_modules/@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", - "dependencies": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "node_modules/@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" - }, - "node_modules/@ant-design/icons-vue": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz", - "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1" - }, - "peerDependencies": { - "vue": ">=3.0.3" - } - }, - "node_modules/@antfu/utils": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz", - "integrity": "sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==", - "dev": true - }, - "node_modules/@antv/component": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/@antv/component/-/component-2.0.1.tgz", - "integrity": "sha512-VldsSv2O/JNjZYenFIzmtLeC+KD2RcpNARsCLKpi04Iz26joQ3uMtnwxM5W4bd/SCJYKp+eeQeMHMAbwaNR1pw==", - "license": "MIT", - "dependencies": { - "@antv/g": "^6.0.5", - "@antv/scale": "^0.4.3", - "@antv/util": "^3.3.5", - "svg-path-parser": "^1.1.0" - } - }, - "node_modules/@antv/coord": { - "version": "0.4.7", - "resolved": "https://registry.npmmirror.com/@antv/coord/-/coord-0.4.7.tgz", - "integrity": "sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA==", - "license": "MIT", - "dependencies": { - "@antv/scale": "^0.4.12", - "@antv/util": "^2.0.13", - "gl-matrix": "^3.4.3" - } - }, - "node_modules/@antv/coord/node_modules/@antv/util": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", - "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", - "license": "ISC", - "dependencies": { - "csstype": "^3.0.8", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/event-emitter": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", - "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==", - "license": "MIT" - }, - "node_modules/@antv/g": { - "version": "6.0.10", - "resolved": "https://registry.npmmirror.com/@antv/g/-/g-6.0.10.tgz", - "integrity": "sha512-VH45ddgHQhEzWZ4aDpHHcu6f77vIVKhfEMgHZzUL9bnMTmJ2P4qf0DtarhP6BKvxcHlFFpJcSyYSxTurNHvW5w==", - "license": "MIT", - "dependencies": { - "@antv/g-camera-api": "2.0.9", - "@antv/g-dom-mutation-observer-api": "2.0.6", - "@antv/g-lite": "2.0.6", - "@antv/g-web-animations-api": "2.0.7" - } - }, - "node_modules/@antv/g-camera-api": { - "version": "2.0.9", - "resolved": "https://registry.npmmirror.com/@antv/g-camera-api/-/g-camera-api-2.0.9.tgz", - "integrity": "sha512-ixeF5lypyNqZ6Btua6FC7w3YvGi+WnmtDIAalByaM8lGDlYroZNYQTsOeVE4JsS15kjQwEe+GYs+e0jWgdXpeg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-camera-api/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-canvas": { - "version": "2.0.8", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-2.0.8.tgz", - "integrity": "sha512-XyzFGq3xqIRxEnIIU310FyOyuNAuUKyh93plgkRkF2dOCpS3RAVQRRxD1vnG47NShwjfo3Pn0qiIKTSyxGXQZg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/g-plugin-canvas-path-generator": "2.0.6", - "@antv/g-plugin-canvas-picker": "2.0.7", - "@antv/g-plugin-canvas-renderer": "2.0.7", - "@antv/g-plugin-dom-interaction": "2.0.6", - "@antv/g-plugin-html-renderer": "2.0.7", - "@antv/g-plugin-image-loader": "2.0.6", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-canvas/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-dom-mutation-observer-api": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.6.tgz", - "integrity": "sha512-VIdXYxaIa82oqxLu2si+zaMq+UCU4CZS1sdtE4oROEe9uhA4vlZsynfnoOD+nw5RcTwKWx9nu1IxI/xsjFXUvw==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6" - } - }, - "node_modules/@antv/g-lite": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-lite/-/g-lite-2.0.6.tgz", - "integrity": "sha512-7lYAtxrNHqtQIsBYCub6HLrMNm0828dzBed9Kge1hZtLbTL0weCmZBq/te/0lpdNDVeP/XqwYmT6toIi3sc0Ew==", - "license": "MIT", - "dependencies": { - "@antv/g-math": "3.0.0", - "@antv/util": "^3.3.5", - "d3-color": "^3.1.0", - "eventemitter3": "^5.0.1", - "gl-matrix": "^3.4.3", - "rbush": "^3.0.1", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-lite/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/@antv/g-lite/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-math": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-3.0.0.tgz", - "integrity": "sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==", - "license": "MIT", - "dependencies": { - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-math/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-canvas-path-generator": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.0.6.tgz", - "integrity": "sha512-wMRUPowlyp1t7u3aalBZM0gQXCrOVNqNpodOOwFPqe+M0qBpHmh9gUF1AtXyg3m84i4HCUFgmupJ9YZVCnZ2lg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/g-math": "3.0.0", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-canvas-path-generator/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-canvas-picker": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.0.7.tgz", - "integrity": "sha512-c1igCBXG4ZBvzxrTQ9DNxhYdA1gkzNv6JbTmT2ZDIBMxkLi1sD9jjEF00vc1+d2OHS3bpqmfpLkIniZCtAN3kA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/g-math": "3.0.0", - "@antv/g-plugin-canvas-path-generator": "2.0.6", - "@antv/g-plugin-canvas-renderer": "2.0.7", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-canvas-picker/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-canvas-renderer": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.0.7.tgz", - "integrity": "sha512-GcfAyCXrsBCOUWPx8MnyMN3TJ/ocb9APg6gO1LeN5F8YN0fpkKqxuhfHTtc5D1dCG0+8VQWSyI3HdkbOOhA3vA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/g-math": "3.0.0", - "@antv/g-plugin-canvas-path-generator": "2.0.6", - "@antv/g-plugin-image-loader": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-canvas-renderer/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-dom-interaction": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.0.6.tgz", - "integrity": "sha512-tu9+PNPSc7JOO+rZ/Q7tTuPMbMXRsXg9AVVaB+PzwGuYYQmCfRuudtPa5+lVWzXaFc6wlThb4v9qeA2AerqeNw==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-dom-interaction/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-dragndrop": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.6.tgz", - "integrity": "sha512-qMrDbrGEnM66Qg/vwI+zNdhFNoN+pjzyZtO3MD+CjNQnEGpQqy1W9PNLpWcFE43BU5Z/JkoUtu6Oy5C/WKHBbQ==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-dragndrop/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-html-renderer": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.0.7.tgz", - "integrity": "sha512-j5zuVJ3cBm0VfJBTAtMa5GB159HSInBBXO3Nup4UVaKjl7JSL0Qkz5vZCvRX6rv6UD19+vH483v7JtQ+JXcgHA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-html-renderer/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-image-loader": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.0.6.tgz", - "integrity": "sha512-lyJ157fDqH0iFBYwFGUxZNUOxN0vRV5hF7e0iK9ElvSEc2ovqpLi0UVwjAbA67eJwpd5Y771Go1sRfx0XJo87Q==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-image-loader/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g-web-animations-api": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-web-animations-api/-/g-web-animations-api-2.0.7.tgz", - "integrity": "sha512-BpP86sTRAgNAWHDNajOhoM0YC2eL95iUFGcRftulrZ/8sqnTXF/M/I319vcznylwKNS37tzVmEppn76vS35UmQ==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-web-animations-api/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@antv/g2": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/@antv/g2/-/g2-5.2.1.tgz", - "integrity": "sha512-Kb3e1ohkLxGEd0+yjc/2ff2hAzIUzUoSR+PP0riI1Pp+c6CobLiK68ji6aoCmfndQMDknvLYAZHSOL8OXc7ChA==", - "license": "MIT", - "dependencies": { - "@antv/component": "^2.0.0", - "@antv/coord": "^0.4.6", - "@antv/event-emitter": "^0.1.3", - "@antv/g": "^6.0.0", - "@antv/g-canvas": "^2.0.0", - "@antv/g-plugin-dragndrop": "^2.0.0", - "@antv/path-util": "^3.0.1", - "@antv/scale": "^0.4.12", - "@antv/util": "^3.3.5", - "d3-array": "^3.2.4", - "d3-dsv": "^3.0.1", - "d3-force": "^3.0.0", - "d3-format": "^3.1.0", - "d3-geo": "^3.1.0", - "d3-hierarchy": "^3.1.2", - "d3-path": "^3.1.0", - "d3-scale-chromatic": "^3.0.0", - "d3-shape": "^3.2.0", - "d3-voronoi": "^1.1.4", - "flru": "^1.0.2", - "fmin": "^0.0.2", - "pdfast": "^0.2.0" - } - }, - "node_modules/@antv/path-util": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/@antv/path-util/-/path-util-3.0.1.tgz", - "integrity": "sha512-tpvAzMpF9Qm6ik2YSMqICNU5tco5POOW7S4XoxZAI/B0L26adU+Md/SmO0BBo2SpuywKvzPH3hPT3xmoyhr04Q==", - "license": "MIT", - "dependencies": { - "gl-matrix": "^3.1.0", - "lodash-es": "^4.17.21", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/scale": { - "version": "0.4.16", - "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.4.16.tgz", - "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", - "license": "MIT", - "dependencies": { - "@antv/util": "^3.3.7", - "color-string": "^1.5.5", - "fecha": "^4.2.1" - } - }, - "node_modules/@antv/util": { - "version": "3.3.7", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-3.3.7.tgz", - "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "gl-matrix": "^3.3.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@antv/util/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.9" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/standalone": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/standalone/-/standalone-7.18.13.tgz", - "integrity": "sha512-5hjvvFkaXyfQri+s4CAZtx6FTKclfTNd2QN2RwgzCVJhnYYgKh4YFBCnNJSxurzvpSKD2NmpCkoWAkMc+j9y+g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bytemd/plugin-gfm": { - "version": "1.17.2", - "resolved": "https://registry.npmmirror.com/@bytemd/plugin-gfm/-/plugin-gfm-1.17.2.tgz", - "integrity": "sha512-u3DBMdPTcRMIRvzc582ylZhvrFumnoGjWNnUO3aXQH0mJ98XyGXxdWYAh7jow+XevhApp966ks5bvDAbYjzRTQ==", - "dependencies": { - "@icon-park/svg": "^1.4.2", - "remark-gfm": "^3.0.1" - }, - "peerDependencies": { - "bytemd": "^1.5.0" - } - }, - "node_modules/@bytemd/plugin-highlight": { - "version": "1.20.2", - "resolved": "https://registry.npmmirror.com/@bytemd/plugin-highlight/-/plugin-highlight-1.20.2.tgz", - "integrity": "sha512-OBm0SkH4ecKyRC+h7CPUQhbp9dDus/WIpTlialhZ3ueKk/PRwRcstiuzQNXwYDBjgUQPBapmCukITN7oFliZBg==", - "dependencies": { - "highlight.js": "^11.7.0" - }, - "peerDependencies": { - "bytemd": "^1.5.0" - } - }, - "node_modules/@bytemd/plugin-highlight-ssr": { - "version": "1.21.0", - "resolved": "https://registry.npmmirror.com/@bytemd/plugin-highlight-ssr/-/plugin-highlight-ssr-1.21.0.tgz", - "integrity": "sha512-iUf94WgFRH4o6eUJ00Y7lIUUkPWu+uk422n5uMXmhTOmg60YlS9EpiEMjOL81Xe5xjSFwDnxZJTHzHq8eW4gkQ==", - "dependencies": { - "rehype-highlight": "^6.0.0" - }, - "peerDependencies": { - "bytemd": "^1.5.0" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.18.6", - "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.18.6.tgz", - "integrity": "sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.8.0", - "resolved": "https://registry.npmmirror.com/@codemirror/commands/-/commands-6.8.0.tgz", - "integrity": "sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-angular": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz", - "integrity": "sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.3" - } - }, - "node_modules/@codemirror/lang-cpp": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", - "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/cpp": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-css/-/lang-css-6.3.1.tgz", - "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.1.7" - } - }, - "node_modules/@codemirror/lang-go": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-go/-/lang-go-6.0.1.tgz", - "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/go": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.9", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-html/-/lang-html-6.4.9.tgz", - "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.0" - } - }, - "node_modules/@codemirror/lang-java": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz", - "integrity": "sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/java": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.2.3", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-javascript/-/lang-javascript-6.2.3.tgz", - "integrity": "sha512-8PR3vIWg7pSu7ur8A07pGiYHgy3hHj+mRYRCSG8q+mPIrl0F02rgpGv+DsQTHRTc30rydOsf5PZ7yjKFg2Ackw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-json": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz", - "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-less": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-less/-/lang-less-6.0.2.tgz", - "integrity": "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-liquid": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-liquid/-/lang-liquid-6.2.2.tgz", - "integrity": "sha512-7Dm841fk37+JQW6j2rI1/uGkJyESrjzyhiIkaLjbbR0U6aFFQvMrJn35WxQreRMADMhzkyVkZM4467OR7GR8nQ==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/lang-markdown": { - "version": "6.3.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-markdown/-/lang-markdown-6.3.2.tgz", - "integrity": "sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.7.1", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.3.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/markdown": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-php": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-php/-/lang-php-6.0.1.tgz", - "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/php": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-python": { - "version": "6.1.7", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.7.tgz", - "integrity": "sha512-mZnFTsL4lW5p9ch8uKNKeRU3xGGxr1QpESLilfON2E3fQzOa/OygEMkaDvERvXDJWJA9U9oN/D4w0ZuUzNO4+g==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "node_modules/@codemirror/lang-rust": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", - "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/rust": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-sass": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz", - "integrity": "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/sass": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-sql": { - "version": "6.8.0", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-sql/-/lang-sql-6.8.0.tgz", - "integrity": "sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-vue": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz", - "integrity": "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/lang-wast": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz", - "integrity": "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-xml": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", - "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/xml": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-yaml": { - "version": "6.1.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-yaml/-/lang-yaml-6.1.2.tgz", - "integrity": "sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.2.0", - "@lezer/lr": "^1.0.0", - "@lezer/yaml": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.10.8", - "resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.10.8.tgz", - "integrity": "sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/language-data": { - "version": "6.5.1", - "resolved": "https://registry.npmmirror.com/@codemirror/language-data/-/language-data-6.5.1.tgz", - "integrity": "sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-go": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.0", - "@codemirror/lang-markdown": "^6.0.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.0.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.0", - "@codemirror/lang-sql": "^6.0.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/lang-yaml": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.4.0" - } - }, - "node_modules/@codemirror/legacy-modes": { - "version": "6.4.3", - "resolved": "https://registry.npmmirror.com/@codemirror/legacy-modes/-/legacy-modes-6.4.3.tgz", - "integrity": "sha512-s1g+q4bil8Cs4O+ueIiKIhz9MQOGcRyxJglma8BYIWc/oEJLo13S3LYSWKaqhKwXGgt1GgZ66hCploHZD9Sstw==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.8.4", - "resolved": "https://registry.npmmirror.com/@codemirror/lint/-/lint-6.8.4.tgz", - "integrity": "sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.35.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.5.10", - "resolved": "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.10.tgz", - "integrity": "sha512-RMdPdmsrUf53pb2VwflKGHEe1XVM07hI7vV2ntgw1dmqhimpatSJKva4VA9h4TLUDOD4EIF02201oZurpnEFsg==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.5.2", - "resolved": "https://registry.npmmirror.com/@codemirror/state/-/state-6.5.2.tgz", - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", - "license": "MIT", - "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.36.4", - "resolved": "https://registry.npmmirror.com/@codemirror/view/-/view-6.36.4.tgz", - "integrity": "sha512-ZQ0V5ovw/miKEXTvjgzRyjnrk9TwriUB1k4R5p7uNnHR9Hus+D1SXHGdJshijEzPFjU25xea/7nhIeSqYFKdbA==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.5.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", - "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fast-csv/format": { - "version": "4.3.5", - "resolved": "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz", - "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "dependencies": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isboolean": "^3.0.3", - "lodash.isequal": "^4.5.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0" - } - }, - "node_modules/@fast-csv/format/node_modules/@types/node": { - "version": "14.18.48", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.48.tgz", - "integrity": "sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg==" - }, - "node_modules/@fast-csv/parse": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz", - "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "dependencies": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.groupby": "^4.6.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0", - "lodash.isundefined": "^3.0.1", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/@fast-csv/parse/node_modules/@types/node": { - "version": "14.18.48", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.48.tgz", - "integrity": "sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg==" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@icon-park/svg": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@icon-park/svg/-/svg-1.4.2.tgz", - "integrity": "sha512-1X0DA+1e0R0liYvw+Nb2BQmF1oEo/wS3o/JYkQYifPJXCGYij2vN9sJf/NNhbzDsJWTg4W2bbzZjJvC7Q4w4oQ==", - "engines": { - "node": ">= 8.0.0", - "npm": ">= 5.0.0" - } - }, - "node_modules/@intlify/core-base": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz", - "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", - "dependencies": { - "@intlify/devtools-if": "9.2.2", - "@intlify/message-compiler": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/devtools-if": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", - "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", - "dependencies": { - "@intlify/shared": "9.2.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/message-compiler": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", - "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", - "dependencies": { - "@intlify/shared": "9.2.2", - "source-map": "0.6.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/shared": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", - "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/vue-devtools": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", - "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", - "dependencies": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@lezer/common": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/@lezer/common/-/common-1.2.3.tgz", - "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", - "license": "MIT" - }, - "node_modules/@lezer/cpp": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@lezer/cpp/-/cpp-1.1.2.tgz", - "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/css": { - "version": "1.1.10", - "resolved": "https://registry.npmmirror.com/@lezer/css/-/css-1.1.10.tgz", - "integrity": "sha512-V5/89eDapjeAkWPBpWEfQjZ1Hag3aYUUJOL8213X0dFRuXJ4BXa5NKl9USzOnaLod4AOpmVCkduir2oKwZYZtg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/go": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@lezer/go/-/go-1.0.0.tgz", - "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.1.tgz", - "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.3.10", - "resolved": "https://registry.npmmirror.com/@lezer/html/-/html-1.3.10.tgz", - "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/java": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/@lezer/java/-/java-1.1.3.tgz", - "integrity": "sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.4.21", - "resolved": "https://registry.npmmirror.com/@lezer/javascript/-/javascript-1.4.21.tgz", - "integrity": "sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/json": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@lezer/json/-/json-1.0.3.tgz", - "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/markdown": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@lezer/markdown/-/markdown-1.4.2.tgz", - "integrity": "sha512-iYewCigG/517D0xJPQd7RGaCjZAFwROiH8T9h7OTtz0bRVtkxzFhGBFJ9JGKgBBs4uuo1cvxzyQ5iKhDLMcLUQ==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@lezer/php": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@lezer/php/-/php-1.0.2.tgz", - "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.1.0" - } - }, - "node_modules/@lezer/python": { - "version": "1.1.15", - "resolved": "https://registry.npmmirror.com/@lezer/python/-/python-1.1.15.tgz", - "integrity": "sha512-aVQ43m2zk4FZYedCqL0KHPEUsqZOrmAvRhkhHlVPnDD1HODDyyQv5BRIuod4DadkgBEZd53vQOtXTonNbEgjrQ==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/rust": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@lezer/rust/-/rust-1.0.2.tgz", - "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/sass": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/@lezer/sass/-/sass-1.0.7.tgz", - "integrity": "sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/xml": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/@lezer/xml/-/xml-1.0.6.tgz", - "integrity": "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/yaml": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@lezer/yaml/-/yaml-1.0.3.tgz", - "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.4.0" - } - }, - "node_modules/@ljharb/resumer": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/@ljharb/resumer/-/resumer-0.0.1.tgz", - "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", - "license": "MIT", - "dependencies": { - "@ljharb/through": "^2.3.9" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmmirror.com/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "license": "MIT" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" - }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@simonwep/pickr": { - "version": "1.8.2", - "resolved": "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz", - "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", - "dependencies": { - "core-js": "^3.15.1", - "nanopop": "^2.1.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "node_modules/@types/codemirror": { - "version": "5.60.5", - "resolved": "https://registry.npmmirror.com/@types/codemirror/-/codemirror-5.60.5.tgz", - "integrity": "sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==", - "dependencies": { - "@types/tern": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" - }, - "node_modules/@types/file-saver": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", - "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.14.184", - "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.184.tgz", - "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==" - }, - "node_modules/@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmmirror.com/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, - "node_modules/@types/markdown-it/node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "18.7.14", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.7.14.tgz", - "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", - "dev": true - }, - "node_modules/@types/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==", - "dev": true - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" - }, - "node_modules/@types/qrcode": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", - "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/sortablejs": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.13.0.tgz", - "integrity": "sha512-C3064MH72iEfeGCYEGCt7FCxXoAXaMPG0QPnstcxvPmbl54erpISu06d++FY37Smja64iWy5L8wOyHHBghWbJQ==", - "dev": true - }, - "node_modules/@types/tern": { - "version": "0.23.4", - "resolved": "https://registry.npmmirror.com/@types/tern/-/tern-0.23.4.tgz", - "integrity": "sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.1.tgz", - "integrity": "sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.36.1", - "@typescript-eslint/type-utils": "5.36.1", - "@typescript-eslint/utils": "5.36.1", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.36.1.tgz", - "integrity": "sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.36.1", - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/typescript-estree": "5.36.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.1.tgz", - "integrity": "sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/visitor-keys": "5.36.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.36.1.tgz", - "integrity": "sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.36.1", - "@typescript-eslint/utils": "5.36.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.36.1.tgz", - "integrity": "sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.1.tgz", - "integrity": "sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/visitor-keys": "5.36.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.36.1.tgz", - "integrity": "sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.36.1", - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/typescript-estree": "5.36.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.1.tgz", - "integrity": "sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.36.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@vavt/util": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/@vavt/util/-/util-2.1.0.tgz", - "integrity": "sha512-YIfAvArSFVXmWvoF+DEGD0FhkhVNcCtVWWkfYtj76eSrwHh/wuEEFhiEubg1XLNM3tChO8FH8xJCT/hnizjgFQ==", - "license": "MIT" - }, - "node_modules/@vitejs/plugin-legacy": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-2.0.1.tgz", - "integrity": "sha512-kKC56rfsXwebApzyuZqdQlGmqTyH1ugy0l0rY58gx5OXzq4/t5/DCqGUoz53Db51OqfjRqsHfqmvq9or6w9k/Q==", - "dev": true, - "dependencies": { - "@babel/standalone": "^7.18.12", - "core-js": "^3.24.1", - "magic-string": "^0.26.2", - "regenerator-runtime": "^0.13.9", - "systemjs": "^6.12.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "terser": "^5.4.0", - "vite": "^3.0.0" - } - }, - "node_modules/@vitejs/plugin-vue": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", - "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", - "dev": true, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^3.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/code-gen": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.40.5.tgz", - "integrity": "sha512-M3D/2pmvjyGYalmldcyvTqVXhUnDxMYA2HtThmdQ8pVsTW4BVVzqrjnJAvHKNfM/zU0XA+fzIh1tfJ4Cssoe5w==", - "dev": true, - "dependencies": { - "@volar/source-map": "0.40.5" - } - }, - "node_modules/@volar/source-map": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.40.5.tgz", - "integrity": "sha512-HNO+svbNHXmJtDs82muusI1ErWnMpmNPDpz0Hmex5XDEa+q3NlWFXPMAxCflg294fkCfdOizyCxXYqh3UKz3VA==", - "dev": true, - "dependencies": { - "@vue/reactivity": "3.2.37" - } - }, - "node_modules/@volar/source-map/node_modules/@vue/reactivity": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz", - "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", - "dev": true, - "dependencies": { - "@vue/shared": "3.2.37" - } - }, - "node_modules/@volar/source-map/node_modules/@vue/shared": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz", - "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", - "dev": true - }, - "node_modules/@volar/typescript-faster": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.40.5.tgz", - "integrity": "sha512-DfIVkQawbesz+8ghbYS1NnlIQjfMIDsSJY/bumIJk98M/tM/2Fykhiil3GDfTr6ju/fAqDpfF8VF8XpYDWPc7w==", - "dev": true, - "dependencies": { - "semver": "^7.3.7" - } - }, - "node_modules/@volar/vue-language-core": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-0.40.5.tgz", - "integrity": "sha512-4EpMQdLaORWg3EBZtgqzgkNRm1+qvyvCyLbnWHT2SPkUuHObPcbyA3giXbOEnPB0pnQpr2nVTv+tRLWvksXdyA==", - "dev": true, - "dependencies": { - "@volar/code-gen": "0.40.5", - "@volar/source-map": "0.40.5", - "@vue/compiler-core": "^3.2.37", - "@vue/compiler-dom": "^3.2.37", - "@vue/compiler-sfc": "^3.2.37", - "@vue/reactivity": "^3.2.37", - "@vue/shared": "^3.2.37" - } - }, - "node_modules/@volar/vue-typescript": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.40.5.tgz", - "integrity": "sha512-6OHJ87e8A3Z0xuWmBg72X5aYbW/EatogB168827j/OL371eiy3dExqa5y2+eJuWYjDiRJOmlHzhUElN+OEQRZQ==", - "dev": true, - "dependencies": { - "@volar/code-gen": "0.40.5", - "@volar/typescript-faster": "0.40.5", - "@volar/vue-language-core": "0.40.5" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.3.tgz", - "integrity": "sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.3", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz", - "integrity": "sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.3.tgz", - "integrity": "sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.3", - "@vue/compiler-dom": "3.5.3", - "@vue/compiler-ssr": "3.5.3", - "@vue/shared": "3.5.3", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.44", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.3.tgz", - "integrity": "sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz", - "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" - }, - "node_modules/@vue/reactivity": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.3.tgz", - "integrity": "sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==", - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.3" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.3.tgz", - "integrity": "sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.3.tgz", - "integrity": "sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.3", - "@vue/runtime-core": "3.5.3", - "@vue/shared": "3.5.3", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.3.tgz", - "integrity": "sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==", - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.3", - "@vue/shared": "3.5.3" - }, - "peerDependencies": { - "vue": "3.5.3" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.3.tgz", - "integrity": "sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==", - "license": "MIT" - }, - "node_modules/@wecom/jssdk": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/@wecom/jssdk/-/jssdk-1.3.2.tgz", - "integrity": "sha512-lfqMeLrINX2JaYqFuWfdfSJbz8VEqcaGqeodtphpI/Vk690pa2nEnBxtiJndxa+7pE4ZKucTMkYbN5ET8iksYg==" - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adler-32": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ali-oss": { - "version": "6.18.1", - "resolved": "https://registry.npmmirror.com/ali-oss/-/ali-oss-6.18.1.tgz", - "integrity": "sha512-VsptD0jX3JNc3AjiLs5a9oTP0ArfT9IYhBuY6G/SpuY6LMuiwfqywrAosY65BlHKODAdYy8VWL6kmt0mO7BUGA==", - "dependencies": { - "address": "^1.2.2", - "agentkeepalive": "^3.4.1", - "bowser": "^1.6.0", - "copy-to": "^2.0.1", - "dateformat": "^2.0.0", - "debug": "^4.3.4", - "destroy": "^1.0.4", - "end-or-error": "^1.0.1", - "get-ready": "^1.0.0", - "humanize-ms": "^1.2.0", - "is-type-of": "^1.4.0", - "js-base64": "^2.5.2", - "jstoxml": "^2.0.0", - "merge-descriptors": "^1.0.1", - "mime": "^2.4.5", - "platform": "^1.3.1", - "pump": "^3.0.0", - "sdk-base": "^2.0.1", - "stream-http": "2.8.2", - "stream-wormhole": "^1.0.4", - "urllib": "2.41.0", - "utility": "^1.18.0", - "xml2js": "^0.6.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ali-oss/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ant-design-vue": { - "version": "3.2.11", - "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-3.2.11.tgz", - "integrity": "sha512-QKCAcOY5EJF0PepiVGA4X5PzUetYUvG5qALmA+2TON40pc2+brOEiVTwr3kjF9N+f7q4MpyiLPu4pIErwoajOQ==", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-vue": "^6.1.0", - "@babel/runtime": "^7.10.5", - "@ctrl/tinycolor": "^3.4.0", - "@simonwep/pickr": "~1.8.0", - "array-tree-filter": "^2.1.0", - "async-validator": "^4.0.0", - "dayjs": "^1.10.5", - "dom-align": "^1.12.1", - "dom-scroll-into-view": "^2.0.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.15", - "resize-observer-polyfill": "^1.5.1", - "scroll-into-view-if-needed": "^2.2.25", - "shallow-equal": "^1.0.0", - "vue-types": "^3.0.0", - "warning": "^4.0.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "vue": ">=3.2.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/bowser": { - "version": "1.9.4", - "resolved": "https://registry.npmmirror.com/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.2", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.2.tgz", - "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001640", - "electron-to-chromium": "^1.4.820", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" - }, - "node_modules/bytemd": { - "version": "1.17.2", - "resolved": "https://registry.npmmirror.com/bytemd/-/bytemd-1.17.2.tgz", - "integrity": "sha512-t8TljTgRU1+OPPbxBPjvnvh8Nti9FAirmKQhgSDYMQnXs9SGw6tTRJy3f8ZZoD+rnYt8hyf035ADDfU1/bTJhQ==", - "dependencies": { - "@icon-park/svg": "^1.4.2", - "@popperjs/core": "^2.11.5", - "@types/codemirror": "^5.60.5", - "@types/hast": "^2.3.4", - "@types/lodash-es": "^4.17.6", - "@types/mdast": "^3.0.10", - "codemirror-ssr": "^0.65.0", - "hast-util-sanitize": "^4.0.0", - "lodash-es": "^4.17.21", - "rehype-raw": "^6.1.1", - "rehype-sanitize": "^5.0.1", - "rehype-stringify": "^9.0.3", - "remark-parse": "^10.0.1", - "remark-rehype": "^10.1.0", - "select-files": "^1.0.1", - "tippy.js": "^6.3.7", - "unified": "^10.1.2", - "unist-util-visit": "^4.1.0", - "vfile": "^5.3.4", - "word-count": "^0.2.2" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001702", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz", - "integrity": "sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" - }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", - "license": "MIT", - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cfb": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz", - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", - "dependencies": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", - "license": "ISC", - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "node_modules/codemirror-ssr": { - "version": "0.65.0", - "resolved": "https://registry.npmmirror.com/codemirror-ssr/-/codemirror-ssr-0.65.0.tgz", - "integrity": "sha512-ofTAfPkQV56SYFfymNMYJ1ELo3+Jnkw3mOLgnIiQjhonwNmNzX1OFvnihAnYRXL0PWl2kT7s0gKrLc2ExshK4g==", - "peerDependencies": { - "@types/codemirror": "^5.0.0" - } - }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", - "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/contour_plot": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/contour_plot/-/contour_plot-0.0.1.tgz", - "integrity": "sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==", - "license": "MIT" - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "dependencies": { - "is-what": "^3.14.1" - } - }, - "node_modules/copy-to": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz", - "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "license": "MIT", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/core-js": { - "version": "3.25.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.25.0.tgz", - "integrity": "sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA==", - "hasInstallScript": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/countup.js": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/countup.js/-/countup.js-2.3.2.tgz", - "integrity": "sha512-dQ7F/CmKGjaO6cDfhtEXwsKVlXIpJ89dFs8PvkaZH9jBVJ2Z8GU4iwG/qP7MgY8qwr+1skbwR6qecWWQLUzB8Q==" - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "license": "MIT" - }, - "node_modules/cropperjs": { - "version": "1.5.12", - "resolved": "https://registry.npmmirror.com/cropperjs/-/cropperjs-1.5.12.tgz", - "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==", - "license": "BSD-3-Clause" - }, - "node_modules/danmu.js": { - "version": "0.5.10", - "resolved": "https://registry.npmmirror.com/danmu.js/-/danmu.js-0.5.10.tgz", - "integrity": "sha512-zLpSd5Yi+fxVVd0GHjrf5lZA45KKpbvc4Q8BbSVO3OdmCBkoB2vlDCGnVn18cnKpTNqi8Soy7AnzUw1YcqtzUA==", - "dependencies": { - "event-emitter": "^0.3.5" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==", - "engines": { - "node": "*" - } - }, - "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - } - }, - "node_modules/deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", - "license": "MIT", - "dependencies": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/default-user-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/default-user-agent/-/default-user-agent-1.0.0.tgz", - "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==", - "dependencies": { - "os-name": "~1.0.3" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/digest-header": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/digest-header/-/digest-header-1.1.0.tgz", - "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==", - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", - "license": "MIT" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/docx": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/docx/-/docx-9.5.0.tgz", - "integrity": "sha512-WZggg9vVujFcTyyzfIVBBIxlCk51QvhLWl87wtI2zuBdz8C8C0mpRhEVwA2DZd7dXyY0AVejcEVDT9vn7Xm9FA==", - "license": "MIT", - "dependencies": { - "@types/node": "^22.7.5", - "hash.js": "^1.1.7", - "jszip": "^3.10.1", - "nanoid": "^5.1.3", - "xml": "^1.0.1", - "xml-js": "^1.6.8" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/docx/node_modules/@types/node": { - "version": "22.15.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", - "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/docx/node_modules/nanoid": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", - "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^18 || >=20" - } - }, - "node_modules/dom-align": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.3.tgz", - "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" - }, - "node_modules/dom-scroll-into-view": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", - "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" - }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, - "node_modules/downloadjs": { - "version": "1.4.7", - "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz", - "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" - }, - "node_modules/draggabilly": { - "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/draggabilly/-/draggabilly-2.4.1.tgz", - "integrity": "sha512-HHHLPEPZqRXIDQDFRFdK7RONZausNlJ4WkA73ST7Z6O2HPWttxFHVwHo8nccuDLzXWwiVKRVuc6fTkW+CQA++A==", - "dependencies": { - "get-size": "^2.0.2", - "unidragger": "^2.4.0" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/echarts": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz", - "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==", - "dependencies": { - "tslib": "2.3.0", - "zrender": "5.3.2" - } - }, - "node_modules/echarts-wordcloud": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/echarts-wordcloud/-/echarts-wordcloud-2.0.0.tgz", - "integrity": "sha512-K7l6pTklqdW7ZWzT/1CS0KhBSINr/cd7c5N1fVMzZMwLQHEwT7x+nivK7g5hkVh7WNcAv4Dn6/ZS5zMKRozC1g==", - "peerDependencies": { - "echarts": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/ele-admin-pro": { - "version": "1.10.1", - "resolved": "https://registry.npmmirror.com/ele-admin-pro/-/ele-admin-pro-1.10.1.tgz", - "integrity": "sha512-EiNJcfGGA/4F20cuHlz7bxr2UJ1RdQGM3+MA7dsiNOp7DxLpP3dOo8wgg+MKyMUZUM2dcpp+Dmz94Q5VDpr44Q==", - "peerDependencies": { - "ant-design-vue": ">=3.1.0", - "vue": ">=3.1.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.828", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.828.tgz", - "integrity": "sha512-QOIJiWpQJDHAVO4P58pwb133Cwee0nbvy/MV1CwzZVGpkH1RX33N3vsaWRCpR6bF63AAq366neZrRTu7Qlsbbw==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/end-or-error": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/end-or-error/-/end-or-error-1.0.1.tgz", - "integrity": "sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==", - "engines": { - "node": ">= 0.11.14" - } - }, - "node_modules/engine.io-client": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.1.tgz", - "integrity": "sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.1.0", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.1.0.tgz", - "integrity": "sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", - "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", - "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", - "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", - "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", - "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", - "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", - "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", - "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", - "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", - "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", - "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", - "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", - "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", - "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", - "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", - "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", - "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", - "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", - "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-define-config": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/eslint-define-config/-/eslint-define-config-1.7.0.tgz", - "integrity": "sha512-13zk8z8eKO4tpPMvAGV0sa6ok0XuMeu7Zhcizu2bLwcLy1fbNt7/h8PU1wbp9IoIgQETggZJozU0nPXUXOao2g==", - "dev": true, - "engines": { - "node": ">= 14.6.0", - "npm": ">= 6.0.0", - "pnpm": ">= 7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-vue": { - "version": "9.4.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz", - "integrity": "sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.0.1", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmmirror.com/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/esprima/-/esprima-1.2.5.tgz", - "integrity": "sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ev-emitter": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ev-emitter/-/ev-emitter-1.1.1.tgz", - "integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==" - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/exceljs": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.3.0.tgz", - "integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==", - "dependencies": { - "archiver": "^5.0.0", - "dayjs": "^1.8.34", - "fast-csv": "^4.3.1", - "jszip": "^3.5.0", - "readable-stream": "^3.6.0", - "saxes": "^5.0.1", - "tmp": "^0.2.0", - "unzipper": "^0.10.11", - "uuid": "^8.3.0" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-csv": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz", - "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "dependencies": { - "@fast-csv/format": "4.3.5", - "@fast-csv/parse": "4.3.6" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "dependencies": { - "format": "^0.2.0" - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", - "license": "MIT" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/flru": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/flru/-/flru-1.0.2.tgz", - "integrity": "sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fmin": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/fmin/-/fmin-0.0.2.tgz", - "integrity": "sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A==", - "license": "BSD-3-Clause", - "dependencies": { - "contour_plot": "^0.0.1", - "json2module": "^0.0.3", - "rollup": "^0.25.8", - "tape": "^4.5.1", - "uglify-js": "^2.6.2" - } - }, - "node_modules/fmin/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fmin/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fmin/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fmin/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fmin/node_modules/rollup": { - "version": "0.25.8", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-0.25.8.tgz", - "integrity": "sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA==", - "license": "MIT", - "dependencies": { - "chalk": "^1.1.1", - "minimist": "^1.2.0", - "source-map-support": "^0.3.2" - }, - "bin": { - "rollup": "bin/rollup" - } - }, - "node_modules/fmin/node_modules/source-map": { - "version": "0.1.32", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz", - "integrity": "sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==", - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fmin/node_modules/source-map-support": { - "version": "0.3.3", - "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.3.3.tgz", - "integrity": "sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==", - "license": "MIT", - "dependencies": { - "source-map": "0.1.32" - } - }, - "node_modules/fmin/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fmin/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/formstream": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/formstream/-/formstream-1.3.1.tgz", - "integrity": "sha512-FkW++ub+VbE5dpwukJVDizNWhSgp8FhmhI65pF7BZSVStBqe6Wgxe2Z9/Vhsn7l7nXCPwP+G1cyYlX8VwWOf0g==", - "dependencies": { - "destroy": "^1.0.4", - "mime": "^2.5.2", - "pause-stream": "~0.0.11" - } - }, - "node_modules/formstream/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/frac": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generate-source-map": { - "version": "0.0.5", - "resolved": "https://registry.npmmirror.com/generate-source-map/-/generate-source-map-0.0.5.tgz", - "integrity": "sha512-jqiE7f3FEaeMcjnMSEYLjMa39bdx+RrrdfhxdJpMm9S/8IugHF4vLQLZ9sxHylWyxpsBILukC/l/7B0/O0zhNg==", - "dependencies": { - "esprima": "~1.2.2", - "source-map": "~0.1.34" - } - }, - "node_modules/generate-source-map/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-ready": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/get-ready/-/get-ready-1.0.0.tgz", - "integrity": "sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==" - }, - "node_modules/get-size": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/get-size/-/get-size-2.0.3.tgz", - "integrity": "sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==" - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/github-markdown-css": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/github-markdown-css/-/github-markdown-css-5.1.0.tgz", - "integrity": "sha512-QLtORwHHtUHhPMHu7i4GKfP6Vx5CWZn+NKQXe+cBhslY1HEt0CTEkP4d/vSROKV0iIJSpl4UtlQ16AD8C6lMug==" - }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", - "license": "MIT" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-to-hyperscript": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/hast-to-hyperscript/-/hast-to-hyperscript-10.0.1.tgz", - "integrity": "sha512-dhIVGoKCQVewFi+vz3Vt567E4ejMppS1haBRL6TEmeLeJVB1i/FJIIg/e6s1Bwn0g5qtYojHEKvyGA+OZuyifw==", - "dependencies": { - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^5.0.0", - "web-namespaces": "^2.0.0" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz", - "integrity": "sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "@types/unist": "^2.0.0", - "hastscript": "^7.0.0", - "property-information": "^6.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", - "web-namespaces": "^2.0.0" - } - }, - "node_modules/hast-util-is-element": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", - "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz", - "integrity": "sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==", - "dependencies": { - "@types/hast": "^2.0.0" - } - }, - "node_modules/hast-util-raw": { - "version": "7.2.2", - "resolved": "https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.2.tgz", - "integrity": "sha512-0x3BhhdlBcqRIKyc095lBSDvmQNMY3Eulj2PLsT5XCyKYrxssI5yr3P4Kv/PBo1s/DMkZy2voGkMXECnFCZRLQ==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-util-from-parse5": "^7.0.0", - "hast-util-to-parse5": "^7.0.0", - "html-void-elements": "^2.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - } - }, - "node_modules/hast-util-sanitize": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/hast-util-sanitize/-/hast-util-sanitize-4.0.0.tgz", - "integrity": "sha512-pw56+69jq+QSr/coADNvWTmBPDy+XsmwaF5KnUys4/wM1jt/fZdl7GPxhXXXYdXnz3Gj3qMkbUCH2uKjvX0MgQ==", - "dependencies": { - "@types/hast": "^2.0.0" - } - }, - "node_modules/hast-util-to-html": { - "version": "8.0.3", - "resolved": "https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz", - "integrity": "sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==", - "dependencies": { - "@types/hast": "^2.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "html-void-elements": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.2", - "unist-util-is": "^5.0.0" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.0.0.tgz", - "integrity": "sha512-YHiS6aTaZ3N0Q3nxaY/Tj98D6kM8QX5Q8xqgg8G45zR7PvWnPGPP0vcKCgb/moIydEJ/QWczVrX0JODCVeoV7A==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-to-hyperscript": "^10.0.0", - "property-information": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - } - }, - "node_modules/hast-util-to-text": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", - "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "unist-util-find-after": "^4.0.0" - } - }, - "node_modules/hast-util-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", - "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" - }, - "node_modules/hastscript": { - "version": "7.0.2", - "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-7.0.2.tgz", - "integrity": "sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^3.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - } - }, - "node_modules/highlight.js": { - "version": "11.8.0", - "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.8.0.tgz", - "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-class-hotfix": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz", - "integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==" - }, - "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "license": "MIT", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-type-of": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/is-type-of/-/is-type-of-1.4.0.tgz", - "integrity": "sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==", - "dependencies": { - "core-util-is": "^1.0.2", - "is-class-hotfix": "~0.0.6", - "isstream": "~0.1.2" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - }, - "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", - "engines": { - "node": ">=14" - } - }, - "node_modules/js-md5": { - "version": "0.7.3", - "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz", - "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbarcode": { - "version": "3.11.5", - "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.5.tgz", - "integrity": "sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA==", - "bin": { - "auto.js": "bin/barcodes/CODE128/auto.js", - "Barcode.js": "bin/barcodes/Barcode.js", - "barcodes": "bin/barcodes", - "canvas.js": "bin/renderers/canvas.js", - "checksums.js": "bin/barcodes/MSI/checksums.js", - "codabar": "bin/barcodes/codabar", - "CODE128": "bin/barcodes/CODE128", - "CODE128_AUTO.js": "bin/barcodes/CODE128/CODE128_AUTO.js", - "CODE128.js": "bin/barcodes/CODE128/CODE128.js", - "CODE128A.js": "bin/barcodes/CODE128/CODE128A.js", - "CODE128B.js": "bin/barcodes/CODE128/CODE128B.js", - "CODE128C.js": "bin/barcodes/CODE128/CODE128C.js", - "CODE39": "bin/barcodes/CODE39", - "constants.js": "bin/barcodes/ITF/constants.js", - "defaults.js": "bin/options/defaults.js", - "EAN_UPC": "bin/barcodes/EAN_UPC", - "EAN.js": "bin/barcodes/EAN_UPC/EAN.js", - "EAN13.js": "bin/barcodes/EAN_UPC/EAN13.js", - "EAN2.js": "bin/barcodes/EAN_UPC/EAN2.js", - "EAN5.js": "bin/barcodes/EAN_UPC/EAN5.js", - "EAN8.js": "bin/barcodes/EAN_UPC/EAN8.js", - "encoder.js": "bin/barcodes/EAN_UPC/encoder.js", - "ErrorHandler.js": "bin/exceptions/ErrorHandler.js", - "exceptions": "bin/exceptions", - "exceptions.js": "bin/exceptions/exceptions.js", - "fixOptions.js": "bin/help/fixOptions.js", - "GenericBarcode": "bin/barcodes/GenericBarcode", - "getOptionsFromElement.js": "bin/help/getOptionsFromElement.js", - "getRenderProperties.js": "bin/help/getRenderProperties.js", - "help": "bin/help", - "index.js": "bin/renderers/index.js", - "index.tmp.js": "bin/barcodes/index.tmp.js", - "ITF": "bin/barcodes/ITF", - "ITF.js": "bin/barcodes/ITF/ITF.js", - "ITF14.js": "bin/barcodes/ITF/ITF14.js", - "JsBarcode.js": "bin/JsBarcode.js", - "linearizeEncodings.js": "bin/help/linearizeEncodings.js", - "merge.js": "bin/help/merge.js", - "MSI": "bin/barcodes/MSI", - "MSI.js": "bin/barcodes/MSI/MSI.js", - "MSI10.js": "bin/barcodes/MSI/MSI10.js", - "MSI1010.js": "bin/barcodes/MSI/MSI1010.js", - "MSI11.js": "bin/barcodes/MSI/MSI11.js", - "MSI1110.js": "bin/barcodes/MSI/MSI1110.js", - "object.js": "bin/renderers/object.js", - "options": "bin/options", - "optionsFromStrings.js": "bin/help/optionsFromStrings.js", - "pharmacode": "bin/barcodes/pharmacode", - "renderers": "bin/renderers", - "shared.js": "bin/renderers/shared.js", - "svg.js": "bin/renderers/svg.js", - "UPC.js": "bin/barcodes/EAN_UPC/UPC.js", - "UPCE.js": "bin/barcodes/EAN_UPC/UPCE.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json2module": { - "version": "0.0.3", - "resolved": "https://registry.npmmirror.com/json2module/-/json2module-0.0.3.tgz", - "integrity": "sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA==", - "license": "BSD-3-Clause", - "dependencies": { - "rw": "^1.3.2" - }, - "bin": { - "json2module": "bin/json2module" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jstoxml": { - "version": "2.2.9", - "resolved": "https://registry.npmmirror.com/jstoxml/-/jstoxml-2.2.9.tgz", - "integrity": "sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==" - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kind-of/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "license": "MIT" - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/less": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/less/-/less-4.1.3.tgz", - "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", - "dev": true, - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" - }, - "node_modules/local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" - }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "node_modules/lodash.groupby": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" - }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" - }, - "node_modules/lodash.isnil": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz", - "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz", - "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/longest-streak": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.0.1.tgz", - "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowlight": { - "version": "2.9.0", - "resolved": "https://registry.npmmirror.com/lowlight/-/lowlight-2.9.0.tgz", - "integrity": "sha512-OpcaUTCLmHuVuBcyNckKfH5B0oA4JUavb/M/8n9iAvanJYNQkrVm4pvyX0SUaqkBG4dnWHKt7p50B3ngAG2Rfw==", - "dependencies": { - "@types/hast": "^2.0.0", - "fault": "^2.0.0", - "highlight.js": "~11.8.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lucide-vue-next": { - "version": "0.453.0", - "resolved": "https://registry.npmmirror.com/lucide-vue-next/-/lucide-vue-next-0.453.0.tgz", - "integrity": "sha512-5zmv83vxAs9SVoe22veDBi8Dw0Fh2F+oTngWgKnKOkrZVbZjceXLQ3tescV2boB0zlaf9R2Sd9RuUP2766xvsQ==", - "license": "ISC", - "peerDependencies": { - "vue": ">=3.0.1" - } - }, - "node_modules/magic-string": { - "version": "0.26.3", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.3.tgz", - "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-it-image-figures": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz", - "integrity": "sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "markdown-it": "*" - } - }, - "node_modules/markdown-it-sub": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz", - "integrity": "sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==", - "license": "MIT" - }, - "node_modules/markdown-it-sup": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz", - "integrity": "sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==", - "license": "MIT" - }, - "node_modules/markdown-it/node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/markdown-table": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.2.tgz", - "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==" - }, - "node_modules/md-editor-v3": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/md-editor-v3/-/md-editor-v3-5.3.2.tgz", - "integrity": "sha512-O3gV4X3+x8QZava2pzJfVb06dqO1Y1UrmUpHS0E7htblqq0MQ67yrLLkTkVYIxF04Tj8Ub67pc8fypR3uT8FUA==", - "license": "MIT", - "dependencies": { - "@codemirror/lang-markdown": "^6.3.0", - "@codemirror/language-data": "^6.5.1", - "@types/markdown-it": "^14.0.1", - "@vavt/util": "^2.1.0", - "codemirror": "^6.0.1", - "copy-to-clipboard": "^3.3.3", - "lru-cache": "^11.0.1", - "lucide-vue-next": "^0.453.0", - "markdown-it": "^14.0.0", - "markdown-it-image-figures": "^2.1.1", - "markdown-it-sub": "^2.0.0", - "markdown-it-sup": "^2.0.0", - "medium-zoom": "^1.1.0", - "xss": "^1.0.15" - }, - "peerDependencies": { - "vue": "^3.5.3" - } - }, - "node_modules/md-editor-v3/node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/mdast-util-definitions": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", - "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", - "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", - "dependencies": { - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mdast-util-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", - "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", - "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz", - "integrity": "sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.4.tgz", - "integrity": "sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==", - "dependencies": { - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", - "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "12.2.1", - "resolved": "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz", - "integrity": "sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "trim-lines": "^3.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", - "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - } - }, - "node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "node_modules/medium-zoom": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/medium-zoom/-/medium-zoom-1.1.0.tgz", - "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==", - "license": "MIT" - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/micromark/-/micromark-3.0.10.tgz", - "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", - "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", - "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", - "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", - "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", - "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", - "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==" - }, - "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mock-property": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/mock-property/-/mock-property-1.0.3.tgz", - "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.1", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "hasown": "^2.0.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mock-property/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanopop": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/nanopop/-/nanopop-2.1.0.tgz", - "integrity": "sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/needle": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/needle/-/needle-3.1.0.tgz", - "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/node-releases": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.17.tgz", - "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-name": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/os-name/-/os-name-1.0.3.tgz", - "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==", - "dependencies": { - "osx-release": "^1.0.0", - "win-release": "^1.0.0" - }, - "bin": { - "os-name": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osx-release": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/osx-release/-/osx-release-1.1.0.tgz", - "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==", - "dependencies": { - "minimist": "^1.1.0" - }, - "bin": { - "osx-release": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmmirror.com/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/pdfast": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/pdfast/-/pdfast-0.2.0.tgz", - "integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinia": { - "version": "2.0.21", - "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.21.tgz", - "integrity": "sha512-6ol04PtL29O0Z6JHI47O3JUSoyOJ7Og0rstXrHVMZSP4zAldsQBXJCNF0i/H7m8vp/Hjd/CSmuPl7C5QAwpeWQ==", - "dependencies": { - "@vue/devtools-api": "^6.2.1", - "vue-demi": "*" - }, - "peerDependencies": { - "@vue/composition-api": "^1.4.0", - "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.2.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/pinia/node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/platform": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" - }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/property-information": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/property-information/-/property-information-6.1.1.tgz", - "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==" - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "optional": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qrcode": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", - "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", - "license": "MIT", - "dependencies": { - "dijkstrajs": "^1.0.1", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/qrcode/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/qrcode/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/qrcode/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/qrcode/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "license": "ISC" - }, - "node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "license": "MIT", - "dependencies": { - "quickselect": "^2.0.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rehype-highlight": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/rehype-highlight/-/rehype-highlight-6.0.0.tgz", - "integrity": "sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-to-text": "^3.0.0", - "lowlight": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "node_modules/rehype-raw": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/rehype-raw/-/rehype-raw-6.1.1.tgz", - "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-raw": "^7.2.0", - "unified": "^10.0.0" - } - }, - "node_modules/rehype-sanitize": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/rehype-sanitize/-/rehype-sanitize-5.0.1.tgz", - "integrity": "sha512-da/jIOjq8eYt/1r9GN6GwxIR3gde7OZ+WV8pheu1tL8K0D9KxM2AyMh+UEfke+FfdM3PvGHeYJU0Td5OWa7L5A==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-sanitize": "^4.0.0", - "unified": "^10.0.0" - } - }, - "node_modules/rehype-stringify": { - "version": "9.0.3", - "resolved": "https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz", - "integrity": "sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-to-html": "^8.0.0", - "unified": "^10.0.0" - } - }, - "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - } - }, - "node_modules/remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "license": "ISC" - }, - "node_modules/resize-detector": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz", - "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", - "license": "MIT", - "dependencies": { - "align-text": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rollup": { - "version": "2.77.3", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz", - "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-visualizer": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.14.0.tgz", - "integrity": "sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==", - "dev": true, - "license": "MIT", - "dependencies": { - "open": "^8.4.0", - "picomatch": "^4.0.2", - "source-map": "^0.7.4", - "yargs": "^17.5.1" - }, - "bin": { - "rollup-plugin-visualizer": "dist/bin/cli.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "rolldown": "1.x", - "rollup": "2.x || 3.x || 4.x" - }, - "peerDependenciesMeta": { - "rolldown": { - "optional": true - }, - "rollup": { - "optional": true - } - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.29", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", - "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", - "dependencies": { - "compute-scroll-into-view": "^1.0.17" - } - }, - "node_modules/sdk-base": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/sdk-base/-/sdk-base-2.0.1.tgz", - "integrity": "sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==", - "dependencies": { - "get-ready": "~1.0.0" - } - }, - "node_modules/select-files": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/select-files/-/select-files-1.0.1.tgz", - "integrity": "sha512-8h4DSpjfFa0hyMP3z3ye4SxyhdaE5RgaXeScRpH7xl4YblnZSHwexmLdLNdSKwTO8H9ccDKj7Votz0io+18+BQ==" - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/shallow-equal": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/socket.io-client": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.1.tgz", - "integrity": "sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.1", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/space-separated-tokens": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", - "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==" - }, - "node_modules/ssf": { - "version": "0.11.2", - "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", - "dependencies": { - "frac": "~1.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-http": { - "version": "2.8.2", - "resolved": "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.2.tgz", - "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-http/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/stream-http/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/stream-wormhole": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/stream-wormhole/-/stream-wormhole-1.1.0.tgz", - "integrity": "sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", - "license": "MIT" - }, - "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/svg-path-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/svg-path-parser/-/svg-path-parser-1.1.0.tgz", - "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==", - "license": "MIT" - }, - "node_modules/systemjs": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.6.tgz", - "integrity": "sha512-SawLiWya8/uNR4p12OggSYZ35tP4U4QTpfV57DdZEOPr6+J6zlLSeeEpMmzYTEoBAsMhctdEE+SWJUDYX4EaKw==", - "dev": true - }, - "node_modules/tailwindcss": { - "version": "3.4.6", - "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.6.tgz", - "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tape": { - "version": "4.17.0", - "resolved": "https://registry.npmmirror.com/tape/-/tape-4.17.0.tgz", - "integrity": "sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==", - "license": "MIT", - "dependencies": { - "@ljharb/resumer": "~0.0.1", - "@ljharb/through": "~2.3.9", - "call-bind": "~1.0.2", - "deep-equal": "~1.1.1", - "defined": "~1.0.1", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "glob": "~7.2.3", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.1.4", - "minimist": "~1.2.8", - "mock-property": "~1.0.0", - "object-inspect": "~1.12.3", - "resolve": "~1.22.6", - "string.prototype.trim": "~1.2.8" - }, - "bin": { - "tape": "bin/tape" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tape/node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/tinymce": { - "version": "5.10.5", - "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.5.tgz", - "integrity": "sha512-nFKtLhmoRtExBxUfv06JlkbQWux5D+d115vxSRAqUmccZdrtpFvOIYwZmikvulLdM9pfEpvO0B+RQ2qFV/+R7w==" - }, - "node_modules/tippy.js": { - "version": "6.3.7", - "resolved": "https://registry.npmmirror.com/tippy.js/-/tippy.js-6.3.7.tgz", - "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", - "dependencies": { - "@popperjs/core": "^2.9.0" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", - "license": "MIT" - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "engines": { - "node": "*" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" - }, - "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "license": "MIT" - }, - "node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", - "license": "BSD-2-Clause", - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", - "license": "MIT", - "optional": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" - }, - "node_modules/unescape": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/unescape/-/unescape-1.0.1.tgz", - "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", - "dependencies": { - "extend-shallow": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unidragger": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/unidragger/-/unidragger-2.4.0.tgz", - "integrity": "sha512-MueZK2oXuGE6OAlGKIrSXK2zCq+8yb1QUZgqyTDCSJzvwYL0g2Llrad+TtoQTYxtFnNyxxSw0IMnKNIgEMia1w==", - "dependencies": { - "unipointer": "^2.4.0" - } - }, - "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "node_modules/unipointer": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/unipointer/-/unipointer-2.4.0.tgz", - "integrity": "sha512-VjzDLPjGK7aYpQKH7bnDZS8X4axF5AFU/LQi+NQe1oyEHfaz6lWKhaQ7n4o7vJ1iJ4i2T0quCIfrQM139p05Sw==", - "dependencies": { - "ev-emitter": "^1.0.1" - } - }, - "node_modules/unist-builder": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/unist-builder/-/unist-builder-3.0.0.tgz", - "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "dependencies": { - "@types/unist": "^2.0.0" - } - }, - "node_modules/unist-util-find-after": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", - "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "node_modules/unist-util-generated": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" - }, - "node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "node_modules/unist-util-position": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.3.tgz", - "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "dependencies": { - "@types/unist": "^2.0.0" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - } - }, - "node_modules/unist-util-visit": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz", - "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", - "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unplugin": { - "version": "0.9.5", - "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-0.9.5.tgz", - "integrity": "sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.4.4" - }, - "peerDependencies": { - "esbuild": ">=0.13", - "rollup": "^2.50.0", - "vite": "^2.3.0 || ^3.0.0-0", - "webpack": "4 || 5" - }, - "peerDependenciesMeta": { - "esbuild": { - "optional": true - }, - "rollup": { - "optional": true - }, - "vite": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/unplugin-vue-components": { - "version": "0.22.4", - "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.22.4.tgz", - "integrity": "sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==", - "dev": true, - "dependencies": { - "@antfu/utils": "^0.5.2", - "@rollup/pluginutils": "^4.2.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "fast-glob": "^3.2.11", - "local-pkg": "^0.4.2", - "magic-string": "^0.26.2", - "minimatch": "^5.1.0", - "resolve": "^1.22.1", - "unplugin": "^0.9.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@babel/parser": "^7.15.8", - "vue": "2 || 3" - }, - "peerDependenciesMeta": { - "@babel/parser": { - "optional": true - } - } - }, - "node_modules/unplugin-vue-components/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/unplugin-vue-components/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urllib": { - "version": "2.41.0", - "resolved": "https://registry.npmmirror.com/urllib/-/urllib-2.41.0.tgz", - "integrity": "sha512-pNXdxEv52L67jahLT+/7QE+Fup1y2Gc6EdmrAhQ6OpQIC2rl14oWwv9hvk1GXOZqEnJNwRXHABuwgPOs1CtL7g==", - "dependencies": { - "any-promise": "^1.3.0", - "content-type": "^1.0.2", - "debug": "^2.6.9", - "default-user-agent": "^1.0.0", - "digest-header": "^1.0.0", - "ee-first": "~1.1.1", - "formstream": "^1.1.0", - "humanize-ms": "^1.2.0", - "iconv-lite": "^0.4.15", - "ip": "^1.1.5", - "pump": "^3.0.0", - "qs": "^6.4.0", - "statuses": "^1.3.1", - "utility": "^1.16.1" - }, - "engines": { - "node": ">= 0.10.0" - }, - "peerDependencies": { - "proxy-agent": "^5.0.0" - }, - "peerDependenciesMeta": { - "proxy-agent": { - "optional": true - } - } - }, - "node_modules/urllib/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/urllib/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/urllib/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utility": { - "version": "1.18.0", - "resolved": "https://registry.npmmirror.com/utility/-/utility-1.18.0.tgz", - "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==", - "dependencies": { - "copy-to": "^2.0.1", - "escape-html": "^1.0.3", - "mkdirp": "^0.5.1", - "mz": "^2.7.0", - "unescape": "^1.0.1" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "node_modules/vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "node_modules/vite": { - "version": "3.0.9", - "resolved": "https://registry.npmmirror.com/vite/-/vite-3.0.9.tgz", - "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", - "dev": true, - "dependencies": { - "esbuild": "^0.14.47", - "postcss": "^8.4.16", - "resolve": "^1.22.1", - "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "less": "*", - "sass": "*", - "stylus": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-compression": { - "version": "0.5.1", - "resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", - "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2", - "debug": "^4.3.3", - "fs-extra": "^10.0.0" - }, - "peerDependencies": { - "vite": ">=2.0.0" - } - }, - "node_modules/vue": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.3.tgz", - "integrity": "sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.3", - "@vue/compiler-sfc": "3.5.3", - "@vue/runtime-dom": "3.5.3", - "@vue/server-renderer": "3.5.3", - "@vue/shared": "3.5.3" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-echarts": { - "version": "6.2.3", - "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.2.3.tgz", - "integrity": "sha512-xHzUvgsgk/asJTcNa8iVVwoovZU3iEUHvmBa3bzbiP3Y6OMxM1YXsoWOKVmVVaUusGs4ob4pSwjwNy2FemAz9w==", - "hasInstallScript": true, - "dependencies": { - "resize-detector": "^0.3.0", - "vue-demi": "^0.13.2" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.5", - "echarts": "^5.1.2", - "vue": "^2.6.12 || ^3.1.1" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-echarts/node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-eslint-parser": { - "version": "9.0.3", - "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", - "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vue-i18n": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz", - "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", - "dependencies": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2", - "@vue/devtools-api": "^6.2.1" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-router": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.5.tgz", - "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==", - "dependencies": { - "@vue/devtools-api": "^6.1.4" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.40.5.tgz", - "integrity": "sha512-rQPyyqrQiDzc8a3YpAYUb27VQbU+NDewOJ7GJBiEIEcaSugMjDc6dtJijTHK32t8IgGPl6ybsJ9LIU9sZvixLA==", - "dev": true, - "dependencies": { - "@volar/vue-language-core": "0.40.5", - "@volar/vue-typescript": "0.40.5" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/vue-types": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz", - "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", - "dependencies": { - "is-plain-object": "3.0.1" - }, - "engines": { - "node": ">=10.15.0" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vuedraggable": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz", - "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", - "dependencies": { - "sortablejs": "1.14.0" - }, - "peerDependencies": { - "vue": "^3.0.1" - } - }, - "node_modules/vuedraggable/node_modules/sortablejs": { - "version": "1.14.0", - "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz", - "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.4.4", - "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz", - "integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "license": "ISC" - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/win-release": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz", - "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==", - "dependencies": { - "semver": "^5.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/win-release/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/wmf": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz", - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word-count": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/word-count/-/word-count-0.2.2.tgz", - "integrity": "sha512-tPRTbQ+nTCPY3F0z1f/y0PX22ScE6l/4/8j9KqA3h77JhlZ/w6cbVS8LIO5Pq/aV96SWBOoiE2IEgzxF0Cn+kA==" - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", - "license": "MIT/X11", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xgplayer": { - "version": "2.31.7", - "resolved": "https://registry.npmmirror.com/xgplayer/-/xgplayer-2.31.7.tgz", - "integrity": "sha512-Wksoj/+BQgsDD7hVsd0d8jICHWWL7SGV6c6V01kH3LfLS6JgwVKyNnr4rRHZFFztlr/kOgBnqPqlV3Fiefmviw==", - "dependencies": { - "chalk": "^2.3.2", - "commander": "^2.15.1", - "danmu.js": "^0.5.9", - "downloadjs": "1.4.7", - "draggabilly": "^2.2.0", - "event-emitter": "^0.3.5", - "fs-extra": "^5.0.0", - "xgplayer-subtitles": "^1.0.19" - }, - "bin": { - "xgplayer": "bin/xgplayer.js" - } - }, - "node_modules/xgplayer-subtitles": { - "version": "1.0.22", - "resolved": "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-1.0.22.tgz", - "integrity": "sha512-+m1fo+FFynL+2ymO4UQBUSnJAz3WuIthpJFCrKBjd+ukcLRoy3vTcsylXEOo5AZN1xT28fpHmxvZQKEIEYA+6w==", - "dependencies": { - "eventemitter3": "^4.0.7", - "generate-source-map": "0.0.5" - } - }, - "node_modules/xgplayer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/xgplayer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/xgplayer/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/xgplayer/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/xgplayer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/xgplayer/node_modules/fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/xgplayer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/xgplayer/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/xgplayer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/xgplayer/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/xlsx": { - "version": "0.18.5", - "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz", - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", - "dependencies": { - "adler-32": "~1.3.0", - "cfb": "~1.2.1", - "codepage": "~1.15.0", - "crc-32": "~1.2.1", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, - "bin": { - "xlsx": "bin/xlsx.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "license": "MIT" - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "license": "MIT", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xss": { - "version": "1.0.15", - "resolved": "https://registry.npmmirror.com/xss/-/xss-1.0.15.tgz", - "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", - "license": "MIT", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", - "license": "MIT", - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zrender": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz", - "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==", - "dependencies": { - "tslib": "2.3.0" - } - }, - "node_modules/zwitch": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/zwitch/-/zwitch-2.0.2.tgz", - "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==" - } - }, - "dependencies": { - "@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true - }, - "@amap/amap-jsapi-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz", - "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==" - }, - "@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", - "requires": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" - }, - "@ant-design/icons-vue": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz", - "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1" - } - }, - "@antfu/utils": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz", - "integrity": "sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==", - "dev": true - }, - "@antv/component": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/@antv/component/-/component-2.0.1.tgz", - "integrity": "sha512-VldsSv2O/JNjZYenFIzmtLeC+KD2RcpNARsCLKpi04Iz26joQ3uMtnwxM5W4bd/SCJYKp+eeQeMHMAbwaNR1pw==", - "requires": { - "@antv/g": "^6.0.5", - "@antv/scale": "^0.4.3", - "@antv/util": "^3.3.5", - "svg-path-parser": "^1.1.0" - } - }, - "@antv/coord": { - "version": "0.4.7", - "resolved": "https://registry.npmmirror.com/@antv/coord/-/coord-0.4.7.tgz", - "integrity": "sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA==", - "requires": { - "@antv/scale": "^0.4.12", - "@antv/util": "^2.0.13", - "gl-matrix": "^3.4.3" - }, - "dependencies": { - "@antv/util": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", - "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", - "requires": { - "csstype": "^3.0.8", - "tslib": "^2.0.3" - } - } - } - }, - "@antv/event-emitter": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", - "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" - }, - "@antv/g": { - "version": "6.0.10", - "resolved": "https://registry.npmmirror.com/@antv/g/-/g-6.0.10.tgz", - "integrity": "sha512-VH45ddgHQhEzWZ4aDpHHcu6f77vIVKhfEMgHZzUL9bnMTmJ2P4qf0DtarhP6BKvxcHlFFpJcSyYSxTurNHvW5w==", - "requires": { - "@antv/g-camera-api": "2.0.9", - "@antv/g-dom-mutation-observer-api": "2.0.6", - "@antv/g-lite": "2.0.6", - "@antv/g-web-animations-api": "2.0.7" - } - }, - "@antv/g-camera-api": { - "version": "2.0.9", - "resolved": "https://registry.npmmirror.com/@antv/g-camera-api/-/g-camera-api-2.0.9.tgz", - "integrity": "sha512-ixeF5lypyNqZ6Btua6FC7w3YvGi+WnmtDIAalByaM8lGDlYroZNYQTsOeVE4JsS15kjQwEe+GYs+e0jWgdXpeg==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-canvas": { - "version": "2.0.8", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-2.0.8.tgz", - "integrity": "sha512-XyzFGq3xqIRxEnIIU310FyOyuNAuUKyh93plgkRkF2dOCpS3RAVQRRxD1vnG47NShwjfo3Pn0qiIKTSyxGXQZg==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/g-plugin-canvas-path-generator": "2.0.6", - "@antv/g-plugin-canvas-picker": "2.0.7", - "@antv/g-plugin-canvas-renderer": "2.0.7", - "@antv/g-plugin-dom-interaction": "2.0.6", - "@antv/g-plugin-html-renderer": "2.0.7", - "@antv/g-plugin-image-loader": "2.0.6", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-dom-mutation-observer-api": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.6.tgz", - "integrity": "sha512-VIdXYxaIa82oqxLu2si+zaMq+UCU4CZS1sdtE4oROEe9uhA4vlZsynfnoOD+nw5RcTwKWx9nu1IxI/xsjFXUvw==", - "requires": { - "@antv/g-lite": "2.0.6" - } - }, - "@antv/g-lite": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-lite/-/g-lite-2.0.6.tgz", - "integrity": "sha512-7lYAtxrNHqtQIsBYCub6HLrMNm0828dzBed9Kge1hZtLbTL0weCmZBq/te/0lpdNDVeP/XqwYmT6toIi3sc0Ew==", - "requires": { - "@antv/g-math": "3.0.0", - "@antv/util": "^3.3.5", - "d3-color": "^3.1.0", - "eventemitter3": "^5.0.1", - "gl-matrix": "^3.4.3", - "rbush": "^3.0.1", - "tslib": "^2.5.3" - }, - "dependencies": { - "eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" - }, - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-math": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-3.0.0.tgz", - "integrity": "sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==", - "requires": { - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-canvas-path-generator": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.0.6.tgz", - "integrity": "sha512-wMRUPowlyp1t7u3aalBZM0gQXCrOVNqNpodOOwFPqe+M0qBpHmh9gUF1AtXyg3m84i4HCUFgmupJ9YZVCnZ2lg==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/g-math": "3.0.0", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-canvas-picker": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.0.7.tgz", - "integrity": "sha512-c1igCBXG4ZBvzxrTQ9DNxhYdA1gkzNv6JbTmT2ZDIBMxkLi1sD9jjEF00vc1+d2OHS3bpqmfpLkIniZCtAN3kA==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/g-math": "3.0.0", - "@antv/g-plugin-canvas-path-generator": "2.0.6", - "@antv/g-plugin-canvas-renderer": "2.0.7", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-canvas-renderer": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.0.7.tgz", - "integrity": "sha512-GcfAyCXrsBCOUWPx8MnyMN3TJ/ocb9APg6gO1LeN5F8YN0fpkKqxuhfHTtc5D1dCG0+8VQWSyI3HdkbOOhA3vA==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/g-math": "3.0.0", - "@antv/g-plugin-canvas-path-generator": "2.0.6", - "@antv/g-plugin-image-loader": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-dom-interaction": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.0.6.tgz", - "integrity": "sha512-tu9+PNPSc7JOO+rZ/Q7tTuPMbMXRsXg9AVVaB+PzwGuYYQmCfRuudtPa5+lVWzXaFc6wlThb4v9qeA2AerqeNw==", - "requires": { - "@antv/g-lite": "2.0.6", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-dragndrop": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.6.tgz", - "integrity": "sha512-qMrDbrGEnM66Qg/vwI+zNdhFNoN+pjzyZtO3MD+CjNQnEGpQqy1W9PNLpWcFE43BU5Z/JkoUtu6Oy5C/WKHBbQ==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-html-renderer": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.0.7.tgz", - "integrity": "sha512-j5zuVJ3cBm0VfJBTAtMa5GB159HSInBBXO3Nup4UVaKjl7JSL0Qkz5vZCvRX6rv6UD19+vH483v7JtQ+JXcgHA==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-plugin-image-loader": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.0.6.tgz", - "integrity": "sha512-lyJ157fDqH0iFBYwFGUxZNUOxN0vRV5hF7e0iK9ElvSEc2ovqpLi0UVwjAbA67eJwpd5Y771Go1sRfx0XJo87Q==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g-web-animations-api": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/g-web-animations-api/-/g-web-animations-api-2.0.7.tgz", - "integrity": "sha512-BpP86sTRAgNAWHDNajOhoM0YC2eL95iUFGcRftulrZ/8sqnTXF/M/I319vcznylwKNS37tzVmEppn76vS35UmQ==", - "requires": { - "@antv/g-lite": "2.0.6", - "@antv/util": "^3.3.5", - "tslib": "^2.5.3" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@antv/g2": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/@antv/g2/-/g2-5.2.1.tgz", - "integrity": "sha512-Kb3e1ohkLxGEd0+yjc/2ff2hAzIUzUoSR+PP0riI1Pp+c6CobLiK68ji6aoCmfndQMDknvLYAZHSOL8OXc7ChA==", - "requires": { - "@antv/component": "^2.0.0", - "@antv/coord": "^0.4.6", - "@antv/event-emitter": "^0.1.3", - "@antv/g": "^6.0.0", - "@antv/g-canvas": "^2.0.0", - "@antv/g-plugin-dragndrop": "^2.0.0", - "@antv/path-util": "^3.0.1", - "@antv/scale": "^0.4.12", - "@antv/util": "^3.3.5", - "d3-array": "^3.2.4", - "d3-dsv": "^3.0.1", - "d3-force": "^3.0.0", - "d3-format": "^3.1.0", - "d3-geo": "^3.1.0", - "d3-hierarchy": "^3.1.2", - "d3-path": "^3.1.0", - "d3-scale-chromatic": "^3.0.0", - "d3-shape": "^3.2.0", - "d3-voronoi": "^1.1.4", - "flru": "^1.0.2", - "fmin": "^0.0.2", - "pdfast": "^0.2.0" - } - }, - "@antv/path-util": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/@antv/path-util/-/path-util-3.0.1.tgz", - "integrity": "sha512-tpvAzMpF9Qm6ik2YSMqICNU5tco5POOW7S4XoxZAI/B0L26adU+Md/SmO0BBo2SpuywKvzPH3hPT3xmoyhr04Q==", - "requires": { - "gl-matrix": "^3.1.0", - "lodash-es": "^4.17.21", - "tslib": "^2.0.3" - } - }, - "@antv/scale": { - "version": "0.4.16", - "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.4.16.tgz", - "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", - "requires": { - "@antv/util": "^3.3.7", - "color-string": "^1.5.5", - "fecha": "^4.2.1" - } - }, - "@antv/util": { - "version": "3.3.7", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-3.3.7.tgz", - "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==", - "requires": { - "fast-deep-equal": "^3.1.3", - "gl-matrix": "^3.3.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" - }, - "@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "requires": { - "@babel/types": "^7.26.9" - } - }, - "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/standalone": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/standalone/-/standalone-7.18.13.tgz", - "integrity": "sha512-5hjvvFkaXyfQri+s4CAZtx6FTKclfTNd2QN2RwgzCVJhnYYgKh4YFBCnNJSxurzvpSKD2NmpCkoWAkMc+j9y+g==", - "dev": true - }, - "@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "requires": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - } - }, - "@bytemd/plugin-gfm": { - "version": "1.17.2", - "resolved": "https://registry.npmmirror.com/@bytemd/plugin-gfm/-/plugin-gfm-1.17.2.tgz", - "integrity": "sha512-u3DBMdPTcRMIRvzc582ylZhvrFumnoGjWNnUO3aXQH0mJ98XyGXxdWYAh7jow+XevhApp966ks5bvDAbYjzRTQ==", - "requires": { - "@icon-park/svg": "^1.4.2", - "remark-gfm": "^3.0.1" - } - }, - "@bytemd/plugin-highlight": { - "version": "1.20.2", - "resolved": "https://registry.npmmirror.com/@bytemd/plugin-highlight/-/plugin-highlight-1.20.2.tgz", - "integrity": "sha512-OBm0SkH4ecKyRC+h7CPUQhbp9dDus/WIpTlialhZ3ueKk/PRwRcstiuzQNXwYDBjgUQPBapmCukITN7oFliZBg==", - "requires": { - "highlight.js": "^11.7.0" - } - }, - "@bytemd/plugin-highlight-ssr": { - "version": "1.21.0", - "resolved": "https://registry.npmmirror.com/@bytemd/plugin-highlight-ssr/-/plugin-highlight-ssr-1.21.0.tgz", - "integrity": "sha512-iUf94WgFRH4o6eUJ00Y7lIUUkPWu+uk422n5uMXmhTOmg60YlS9EpiEMjOL81Xe5xjSFwDnxZJTHzHq8eW4gkQ==", - "requires": { - "rehype-highlight": "^6.0.0" - } - }, - "@codemirror/autocomplete": { - "version": "6.18.6", - "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.18.6.tgz", - "integrity": "sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "@codemirror/commands": { - "version": "6.8.0", - "resolved": "https://registry.npmmirror.com/@codemirror/commands/-/commands-6.8.0.tgz", - "integrity": "sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "@codemirror/lang-angular": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz", - "integrity": "sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==", - "requires": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.3" - } - }, - "@codemirror/lang-cpp": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", - "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/cpp": "^1.0.0" - } - }, - "@codemirror/lang-css": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-css/-/lang-css-6.3.1.tgz", - "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.1.7" - } - }, - "@codemirror/lang-go": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-go/-/lang-go-6.0.1.tgz", - "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/go": "^1.0.0" - } - }, - "@codemirror/lang-html": { - "version": "6.4.9", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-html/-/lang-html-6.4.9.tgz", - "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.0" - } - }, - "@codemirror/lang-java": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz", - "integrity": "sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/java": "^1.0.0" - } - }, - "@codemirror/lang-javascript": { - "version": "6.2.3", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-javascript/-/lang-javascript-6.2.3.tgz", - "integrity": "sha512-8PR3vIWg7pSu7ur8A07pGiYHgy3hHj+mRYRCSG8q+mPIrl0F02rgpGv+DsQTHRTc30rydOsf5PZ7yjKFg2Ackw==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "@codemirror/lang-json": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz", - "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "@codemirror/lang-less": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-less/-/lang-less-6.0.2.tgz", - "integrity": "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==", - "requires": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@codemirror/lang-liquid": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-liquid/-/lang-liquid-6.2.2.tgz", - "integrity": "sha512-7Dm841fk37+JQW6j2rI1/uGkJyESrjzyhiIkaLjbbR0U6aFFQvMrJn35WxQreRMADMhzkyVkZM4467OR7GR8nQ==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "@codemirror/lang-markdown": { - "version": "6.3.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-markdown/-/lang-markdown-6.3.2.tgz", - "integrity": "sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==", - "requires": { - "@codemirror/autocomplete": "^6.7.1", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.3.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/markdown": "^1.0.0" - } - }, - "@codemirror/lang-php": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-php/-/lang-php-6.0.1.tgz", - "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", - "requires": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/php": "^1.0.0" - } - }, - "@codemirror/lang-python": { - "version": "6.1.7", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.7.tgz", - "integrity": "sha512-mZnFTsL4lW5p9ch8uKNKeRU3xGGxr1QpESLilfON2E3fQzOa/OygEMkaDvERvXDJWJA9U9oN/D4w0ZuUzNO4+g==", - "requires": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "@codemirror/lang-rust": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", - "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/rust": "^1.0.0" - } - }, - "@codemirror/lang-sass": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz", - "integrity": "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==", - "requires": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/sass": "^1.0.0" - } - }, - "@codemirror/lang-sql": { - "version": "6.8.0", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-sql/-/lang-sql-6.8.0.tgz", - "integrity": "sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@codemirror/lang-vue": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz", - "integrity": "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==", - "requires": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "@codemirror/lang-wast": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz", - "integrity": "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@codemirror/lang-xml": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", - "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/xml": "^1.0.0" - } - }, - "@codemirror/lang-yaml": { - "version": "6.1.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-yaml/-/lang-yaml-6.1.2.tgz", - "integrity": "sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.2.0", - "@lezer/lr": "^1.0.0", - "@lezer/yaml": "^1.0.0" - } - }, - "@codemirror/language": { - "version": "6.10.8", - "resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.10.8.tgz", - "integrity": "sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "@codemirror/language-data": { - "version": "6.5.1", - "resolved": "https://registry.npmmirror.com/@codemirror/language-data/-/language-data-6.5.1.tgz", - "integrity": "sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==", - "requires": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-go": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.0", - "@codemirror/lang-markdown": "^6.0.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.0.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.0", - "@codemirror/lang-sql": "^6.0.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/lang-yaml": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.4.0" - } - }, - "@codemirror/legacy-modes": { - "version": "6.4.3", - "resolved": "https://registry.npmmirror.com/@codemirror/legacy-modes/-/legacy-modes-6.4.3.tgz", - "integrity": "sha512-s1g+q4bil8Cs4O+ueIiKIhz9MQOGcRyxJglma8BYIWc/oEJLo13S3LYSWKaqhKwXGgt1GgZ66hCploHZD9Sstw==", - "requires": { - "@codemirror/language": "^6.0.0" - } - }, - "@codemirror/lint": { - "version": "6.8.4", - "resolved": "https://registry.npmmirror.com/@codemirror/lint/-/lint-6.8.4.tgz", - "integrity": "sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.35.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/search": { - "version": "6.5.10", - "resolved": "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.10.tgz", - "integrity": "sha512-RMdPdmsrUf53pb2VwflKGHEe1XVM07hI7vV2ntgw1dmqhimpatSJKva4VA9h4TLUDOD4EIF02201oZurpnEFsg==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/state": { - "version": "6.5.2", - "resolved": "https://registry.npmmirror.com/@codemirror/state/-/state-6.5.2.tgz", - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", - "requires": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "@codemirror/view": { - "version": "6.36.4", - "resolved": "https://registry.npmmirror.com/@codemirror/view/-/view-6.36.4.tgz", - "integrity": "sha512-ZQ0V5ovw/miKEXTvjgzRyjnrk9TwriUB1k4R5p7uNnHR9Hus+D1SXHGdJshijEzPFjU25xea/7nhIeSqYFKdbA==", - "requires": { - "@codemirror/state": "^6.5.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "@ctrl/tinycolor": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" - }, - "@esbuild/linux-loong64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", - "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", - "dev": true, - "optional": true - }, - "@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@fast-csv/format": { - "version": "4.3.5", - "resolved": "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz", - "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "requires": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isboolean": "^3.0.3", - "lodash.isequal": "^4.5.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "14.18.48", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.48.tgz", - "integrity": "sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg==" - } - } - }, - "@fast-csv/parse": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz", - "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "requires": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.groupby": "^4.6.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0", - "lodash.isundefined": "^3.0.1", - "lodash.uniq": "^4.5.0" - }, - "dependencies": { - "@types/node": { - "version": "14.18.48", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.48.tgz", - "integrity": "sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg==" - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@icon-park/svg": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@icon-park/svg/-/svg-1.4.2.tgz", - "integrity": "sha512-1X0DA+1e0R0liYvw+Nb2BQmF1oEo/wS3o/JYkQYifPJXCGYij2vN9sJf/NNhbzDsJWTg4W2bbzZjJvC7Q4w4oQ==" - }, - "@intlify/core-base": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz", - "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", - "requires": { - "@intlify/devtools-if": "9.2.2", - "@intlify/message-compiler": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2" - } - }, - "@intlify/devtools-if": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", - "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", - "requires": { - "@intlify/shared": "9.2.2" - } - }, - "@intlify/message-compiler": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", - "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", - "requires": { - "@intlify/shared": "9.2.2", - "source-map": "0.6.1" - } - }, - "@intlify/shared": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", - "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" - }, - "@intlify/vue-devtools": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", - "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", - "requires": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2" - } - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@lezer/common": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/@lezer/common/-/common-1.2.3.tgz", - "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==" - }, - "@lezer/cpp": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@lezer/cpp/-/cpp-1.1.2.tgz", - "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/css": { - "version": "1.1.10", - "resolved": "https://registry.npmmirror.com/@lezer/css/-/css-1.1.10.tgz", - "integrity": "sha512-V5/89eDapjeAkWPBpWEfQjZ1Hag3aYUUJOL8213X0dFRuXJ4BXa5NKl9USzOnaLod4AOpmVCkduir2oKwZYZtg==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/go": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@lezer/go/-/go-1.0.0.tgz", - "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/highlight": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.1.tgz", - "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@lezer/html": { - "version": "1.3.10", - "resolved": "https://registry.npmmirror.com/@lezer/html/-/html-1.3.10.tgz", - "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/java": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/@lezer/java/-/java-1.1.3.tgz", - "integrity": "sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/javascript": { - "version": "1.4.21", - "resolved": "https://registry.npmmirror.com/@lezer/javascript/-/javascript-1.4.21.tgz", - "integrity": "sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "@lezer/json": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@lezer/json/-/json-1.0.3.tgz", - "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@lezer/markdown": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@lezer/markdown/-/markdown-1.4.2.tgz", - "integrity": "sha512-iYewCigG/517D0xJPQd7RGaCjZAFwROiH8T9h7OTtz0bRVtkxzFhGBFJ9JGKgBBs4uuo1cvxzyQ5iKhDLMcLUQ==", - "requires": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "@lezer/php": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@lezer/php/-/php-1.0.2.tgz", - "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.1.0" - } - }, - "@lezer/python": { - "version": "1.1.15", - "resolved": "https://registry.npmmirror.com/@lezer/python/-/python-1.1.15.tgz", - "integrity": "sha512-aVQ43m2zk4FZYedCqL0KHPEUsqZOrmAvRhkhHlVPnDD1HODDyyQv5BRIuod4DadkgBEZd53vQOtXTonNbEgjrQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/rust": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@lezer/rust/-/rust-1.0.2.tgz", - "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/sass": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/@lezer/sass/-/sass-1.0.7.tgz", - "integrity": "sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/xml": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/@lezer/xml/-/xml-1.0.6.tgz", - "integrity": "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/yaml": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@lezer/yaml/-/yaml-1.0.3.tgz", - "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.4.0" - } - }, - "@ljharb/resumer": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/@ljharb/resumer/-/resumer-0.0.1.tgz", - "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", - "requires": { - "@ljharb/through": "^2.3.9" - } - }, - "@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmmirror.com/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", - "requires": { - "call-bind": "^1.0.7" - } - }, - "@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" - }, - "@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, - "@simonwep/pickr": { - "version": "1.8.2", - "resolved": "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz", - "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", - "requires": { - "core-js": "^3.15.1", - "nanopop": "^2.1.0" - } - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "@types/codemirror": { - "version": "5.60.5", - "resolved": "https://registry.npmmirror.com/@types/codemirror/-/codemirror-5.60.5.tgz", - "integrity": "sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==", - "requires": { - "@types/tern": "*" - } - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "requires": { - "@types/ms": "*" - } - }, - "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" - }, - "@types/file-saver": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", - "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", - "dev": true - }, - "@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "requires": { - "@types/unist": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==" - }, - "@types/lodash": { - "version": "4.14.184", - "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.184.tgz", - "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==" - }, - "@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", - "requires": { - "@types/lodash": "*" - } - }, - "@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmmirror.com/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "requires": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - }, - "dependencies": { - "@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==" - } - } - }, - "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "requires": { - "@types/unist": "*" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/node": { - "version": "18.7.14", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.7.14.tgz", - "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", - "dev": true - }, - "@types/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==", - "dev": true - }, - "@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" - }, - "@types/qrcode": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", - "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/sortablejs": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.13.0.tgz", - "integrity": "sha512-C3064MH72iEfeGCYEGCt7FCxXoAXaMPG0QPnstcxvPmbl54erpISu06d++FY37Smja64iWy5L8wOyHHBghWbJQ==", - "dev": true - }, - "@types/tern": { - "version": "0.23.4", - "resolved": "https://registry.npmmirror.com/@types/tern/-/tern-0.23.4.tgz", - "integrity": "sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==", - "requires": { - "@types/estree": "*" - } - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.1.tgz", - "integrity": "sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.36.1", - "@typescript-eslint/type-utils": "5.36.1", - "@typescript-eslint/utils": "5.36.1", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.36.1.tgz", - "integrity": "sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.36.1", - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/typescript-estree": "5.36.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.1.tgz", - "integrity": "sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/visitor-keys": "5.36.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.36.1.tgz", - "integrity": "sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.36.1", - "@typescript-eslint/utils": "5.36.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.36.1.tgz", - "integrity": "sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.1.tgz", - "integrity": "sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/visitor-keys": "5.36.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.36.1.tgz", - "integrity": "sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.36.1", - "@typescript-eslint/types": "5.36.1", - "@typescript-eslint/typescript-estree": "5.36.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.36.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.1.tgz", - "integrity": "sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.36.1", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@vavt/util": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/@vavt/util/-/util-2.1.0.tgz", - "integrity": "sha512-YIfAvArSFVXmWvoF+DEGD0FhkhVNcCtVWWkfYtj76eSrwHh/wuEEFhiEubg1XLNM3tChO8FH8xJCT/hnizjgFQ==" - }, - "@vitejs/plugin-legacy": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-2.0.1.tgz", - "integrity": "sha512-kKC56rfsXwebApzyuZqdQlGmqTyH1ugy0l0rY58gx5OXzq4/t5/DCqGUoz53Db51OqfjRqsHfqmvq9or6w9k/Q==", - "dev": true, - "requires": { - "@babel/standalone": "^7.18.12", - "core-js": "^3.24.1", - "magic-string": "^0.26.2", - "regenerator-runtime": "^0.13.9", - "systemjs": "^6.12.1" - } - }, - "@vitejs/plugin-vue": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", - "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", - "dev": true, - "requires": {} - }, - "@volar/code-gen": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.40.5.tgz", - "integrity": "sha512-M3D/2pmvjyGYalmldcyvTqVXhUnDxMYA2HtThmdQ8pVsTW4BVVzqrjnJAvHKNfM/zU0XA+fzIh1tfJ4Cssoe5w==", - "dev": true, - "requires": { - "@volar/source-map": "0.40.5" - } - }, - "@volar/source-map": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.40.5.tgz", - "integrity": "sha512-HNO+svbNHXmJtDs82muusI1ErWnMpmNPDpz0Hmex5XDEa+q3NlWFXPMAxCflg294fkCfdOizyCxXYqh3UKz3VA==", - "dev": true, - "requires": { - "@vue/reactivity": "3.2.37" - }, - "dependencies": { - "@vue/reactivity": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz", - "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", - "dev": true, - "requires": { - "@vue/shared": "3.2.37" - } - }, - "@vue/shared": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz", - "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", - "dev": true - } - } - }, - "@volar/typescript-faster": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.40.5.tgz", - "integrity": "sha512-DfIVkQawbesz+8ghbYS1NnlIQjfMIDsSJY/bumIJk98M/tM/2Fykhiil3GDfTr6ju/fAqDpfF8VF8XpYDWPc7w==", - "dev": true, - "requires": { - "semver": "^7.3.7" - } - }, - "@volar/vue-language-core": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-0.40.5.tgz", - "integrity": "sha512-4EpMQdLaORWg3EBZtgqzgkNRm1+qvyvCyLbnWHT2SPkUuHObPcbyA3giXbOEnPB0pnQpr2nVTv+tRLWvksXdyA==", - "dev": true, - "requires": { - "@volar/code-gen": "0.40.5", - "@volar/source-map": "0.40.5", - "@vue/compiler-core": "^3.2.37", - "@vue/compiler-dom": "^3.2.37", - "@vue/compiler-sfc": "^3.2.37", - "@vue/reactivity": "^3.2.37", - "@vue/shared": "^3.2.37" - } - }, - "@volar/vue-typescript": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.40.5.tgz", - "integrity": "sha512-6OHJ87e8A3Z0xuWmBg72X5aYbW/EatogB168827j/OL371eiy3dExqa5y2+eJuWYjDiRJOmlHzhUElN+OEQRZQ==", - "dev": true, - "requires": { - "@volar/code-gen": "0.40.5", - "@volar/typescript-faster": "0.40.5", - "@volar/vue-language-core": "0.40.5" - } - }, - "@vue/compiler-core": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.3.tgz", - "integrity": "sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==", - "requires": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.3", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "@vue/compiler-dom": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz", - "integrity": "sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==", - "requires": { - "@vue/compiler-core": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "@vue/compiler-sfc": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.3.tgz", - "integrity": "sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==", - "requires": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.3", - "@vue/compiler-dom": "3.5.3", - "@vue/compiler-ssr": "3.5.3", - "@vue/shared": "3.5.3", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.44", - "source-map-js": "^1.2.0" - }, - "dependencies": { - "magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - } - } - }, - "@vue/compiler-ssr": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.3.tgz", - "integrity": "sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==", - "requires": { - "@vue/compiler-dom": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "@vue/devtools-api": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz", - "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" - }, - "@vue/reactivity": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.3.tgz", - "integrity": "sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==", - "requires": { - "@vue/shared": "3.5.3" - } - }, - "@vue/runtime-core": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.3.tgz", - "integrity": "sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==", - "requires": { - "@vue/reactivity": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "@vue/runtime-dom": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.3.tgz", - "integrity": "sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==", - "requires": { - "@vue/reactivity": "3.5.3", - "@vue/runtime-core": "3.5.3", - "@vue/shared": "3.5.3", - "csstype": "^3.1.3" - } - }, - "@vue/server-renderer": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.3.tgz", - "integrity": "sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==", - "requires": { - "@vue/compiler-ssr": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "@vue/shared": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.3.tgz", - "integrity": "sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==" - }, - "@wecom/jssdk": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/@wecom/jssdk/-/jssdk-1.3.2.tgz", - "integrity": "sha512-lfqMeLrINX2JaYqFuWfdfSJbz8VEqcaGqeodtphpI/Vk690pa2nEnBxtiJndxa+7pE4ZKucTMkYbN5ET8iksYg==" - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "address": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==" - }, - "adler-32": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ali-oss": { - "version": "6.18.1", - "resolved": "https://registry.npmmirror.com/ali-oss/-/ali-oss-6.18.1.tgz", - "integrity": "sha512-VsptD0jX3JNc3AjiLs5a9oTP0ArfT9IYhBuY6G/SpuY6LMuiwfqywrAosY65BlHKODAdYy8VWL6kmt0mO7BUGA==", - "requires": { - "address": "^1.2.2", - "agentkeepalive": "^3.4.1", - "bowser": "^1.6.0", - "copy-to": "^2.0.1", - "dateformat": "^2.0.0", - "debug": "^4.3.4", - "destroy": "^1.0.4", - "end-or-error": "^1.0.1", - "get-ready": "^1.0.0", - "humanize-ms": "^1.2.0", - "is-type-of": "^1.4.0", - "js-base64": "^2.5.2", - "jstoxml": "^2.0.0", - "merge-descriptors": "^1.0.1", - "mime": "^2.4.5", - "platform": "^1.3.1", - "pump": "^3.0.0", - "sdk-base": "^2.0.1", - "stream-http": "2.8.2", - "stream-wormhole": "^1.0.4", - "urllib": "2.41.0", - "utility": "^1.18.0", - "xml2js": "^0.6.2" - }, - "dependencies": { - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - } - } - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "ant-design-vue": { - "version": "3.2.11", - "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-3.2.11.tgz", - "integrity": "sha512-QKCAcOY5EJF0PepiVGA4X5PzUetYUvG5qALmA+2TON40pc2+brOEiVTwr3kjF9N+f7q4MpyiLPu4pIErwoajOQ==", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-vue": "^6.1.0", - "@babel/runtime": "^7.10.5", - "@ctrl/tinycolor": "^3.4.0", - "@simonwep/pickr": "~1.8.0", - "array-tree-filter": "^2.1.0", - "async-validator": "^4.0.0", - "dayjs": "^1.10.5", - "dom-align": "^1.12.1", - "dom-scroll-into-view": "^2.0.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.15", - "resize-observer-polyfill": "^1.5.1", - "scroll-into-view-if-needed": "^2.2.25", - "shallow-equal": "^1.0.0", - "vue-types": "^3.0.0", - "warning": "^4.0.0" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "requires": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - } - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "bowser": { - "version": "1.9.4", - "resolved": "https://registry.npmmirror.com/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.23.2", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.2.tgz", - "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001640", - "electron-to-chromium": "^1.4.820", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.1.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" - }, - "bytemd": { - "version": "1.17.2", - "resolved": "https://registry.npmmirror.com/bytemd/-/bytemd-1.17.2.tgz", - "integrity": "sha512-t8TljTgRU1+OPPbxBPjvnvh8Nti9FAirmKQhgSDYMQnXs9SGw6tTRJy3f8ZZoD+rnYt8hyf035ADDfU1/bTJhQ==", - "requires": { - "@icon-park/svg": "^1.4.2", - "@popperjs/core": "^2.11.5", - "@types/codemirror": "^5.60.5", - "@types/hast": "^2.3.4", - "@types/lodash-es": "^4.17.6", - "@types/mdast": "^3.0.10", - "codemirror-ssr": "^0.65.0", - "hast-util-sanitize": "^4.0.0", - "lodash-es": "^4.17.21", - "rehype-raw": "^6.1.1", - "rehype-sanitize": "^5.0.1", - "rehype-stringify": "^9.0.3", - "remark-parse": "^10.0.1", - "remark-rehype": "^10.1.0", - "select-files": "^1.0.1", - "tippy.js": "^6.3.7", - "unified": "^10.1.2", - "unist-util-visit": "^4.1.0", - "vfile": "^5.3.4", - "word-count": "^0.2.2" - } - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001702", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz", - "integrity": "sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==", - "dev": true - }, - "ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "cfb": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz", - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", - "requires": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0" - } - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" - }, - "character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" - }, - "character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "codemirror-ssr": { - "version": "0.65.0", - "resolved": "https://registry.npmmirror.com/codemirror-ssr/-/codemirror-ssr-0.65.0.tgz", - "integrity": "sha512-ofTAfPkQV56SYFfymNMYJ1ELo3+Jnkw3mOLgnIiQjhonwNmNzX1OFvnihAnYRXL0PWl2kT7s0gKrLc2ExshK4g==", - "requires": {} - }, - "codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "comma-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", - "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==" - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" - }, - "contour_plot": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/contour_plot/-/contour_plot-0.0.1.tgz", - "integrity": "sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==" - }, - "copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "requires": { - "is-what": "^3.14.1" - } - }, - "copy-to": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz", - "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" - }, - "copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "core-js": { - "version": "3.25.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.25.0.tgz", - "integrity": "sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "countup.js": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/countup.js/-/countup.js-2.3.2.tgz", - "integrity": "sha512-dQ7F/CmKGjaO6cDfhtEXwsKVlXIpJ89dFs8PvkaZH9jBVJ2Z8GU4iwG/qP7MgY8qwr+1skbwR6qecWWQLUzB8Q==" - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" - }, - "crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, - "cropperjs": { - "version": "1.5.12", - "resolved": "https://registry.npmmirror.com/cropperjs/-/cropperjs-1.5.12.tgz", - "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "requires": { - "internmap": "1 - 2" - } - }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, - "d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" - }, - "d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "requires": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - } - } - }, - "d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" - }, - "d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "requires": { - "d3-array": "2.5.0 - 3" - } - }, - "d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" - }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, - "d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==" - }, - "d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" - }, - "d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "requires": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - } - }, - "d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "requires": { - "d3-path": "^3.1.0" - } - }, - "d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "danmu.js": { - "version": "0.5.10", - "resolved": "https://registry.npmmirror.com/danmu.js/-/danmu.js-0.5.10.tgz", - "integrity": "sha512-zLpSd5Yi+fxVVd0GHjrf5lZA45KKpbvc4Q8BbSVO3OdmCBkoB2vlDCGnVn18cnKpTNqi8Soy7AnzUw1YcqtzUA==", - "requires": { - "event-emitter": "^0.3.5" - } - }, - "data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==" - }, - "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" - }, - "decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "requires": { - "character-entities": "^2.0.0" - } - }, - "deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", - "requires": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "default-user-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/default-user-agent/-/default-user-agent-1.0.0.tgz", - "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==", - "requires": { - "os-name": "~1.0.3" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" - }, - "digest-header": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/digest-header/-/digest-header-1.1.0.tgz", - "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==" - }, - "dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "docx": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/docx/-/docx-9.5.0.tgz", - "integrity": "sha512-WZggg9vVujFcTyyzfIVBBIxlCk51QvhLWl87wtI2zuBdz8C8C0mpRhEVwA2DZd7dXyY0AVejcEVDT9vn7Xm9FA==", - "requires": { - "@types/node": "^22.7.5", - "hash.js": "^1.1.7", - "jszip": "^3.10.1", - "nanoid": "^5.1.3", - "xml": "^1.0.1", - "xml-js": "^1.6.8" - }, - "dependencies": { - "@types/node": { - "version": "22.15.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", - "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", - "requires": { - "undici-types": "~6.21.0" - } - }, - "nanoid": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", - "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==" - } - } - }, - "dom-align": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.3.tgz", - "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" - }, - "dom-scroll-into-view": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", - "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" - }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "downloadjs": { - "version": "1.4.7", - "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz", - "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" - }, - "draggabilly": { - "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/draggabilly/-/draggabilly-2.4.1.tgz", - "integrity": "sha512-HHHLPEPZqRXIDQDFRFdK7RONZausNlJ4WkA73ST7Z6O2HPWttxFHVwHo8nccuDLzXWwiVKRVuc6fTkW+CQA++A==", - "requires": { - "get-size": "^2.0.2", - "unidragger": "^2.4.0" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "requires": { - "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "echarts": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz", - "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==", - "requires": { - "tslib": "2.3.0", - "zrender": "5.3.2" - } - }, - "echarts-wordcloud": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/echarts-wordcloud/-/echarts-wordcloud-2.0.0.tgz", - "integrity": "sha512-K7l6pTklqdW7ZWzT/1CS0KhBSINr/cd7c5N1fVMzZMwLQHEwT7x+nivK7g5hkVh7WNcAv4Dn6/ZS5zMKRozC1g==", - "requires": {} - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "ele-admin-pro": { - "version": "1.10.1", - "resolved": "https://registry.npmmirror.com/ele-admin-pro/-/ele-admin-pro-1.10.1.tgz", - "integrity": "sha512-EiNJcfGGA/4F20cuHlz7bxr2UJ1RdQGM3+MA7dsiNOp7DxLpP3dOo8wgg+MKyMUZUM2dcpp+Dmz94Q5VDpr44Q==", - "requires": {} - }, - "electron-to-chromium": { - "version": "1.4.828", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.828.tgz", - "integrity": "sha512-QOIJiWpQJDHAVO4P58pwb133Cwee0nbvy/MV1CwzZVGpkH1RX33N3vsaWRCpR6bF63AAq366neZrRTu7Qlsbbw==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "end-or-error": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/end-or-error/-/end-or-error-1.0.1.tgz", - "integrity": "sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==" - }, - "engine.io-client": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.1.tgz", - "integrity": "sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.1.0", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "engine.io-parser": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.1.0.tgz", - "integrity": "sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==" - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - } - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "requires": { - "es-errors": "^1.3.0" - } - }, - "es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "esbuild-android-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", - "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", - "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", - "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", - "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", - "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", - "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", - "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", - "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", - "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", - "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", - "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", - "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", - "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", - "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", - "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", - "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", - "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", - "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", - "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", - "dev": true, - "optional": true - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} - }, - "eslint-define-config": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/eslint-define-config/-/eslint-define-config-1.7.0.tgz", - "integrity": "sha512-13zk8z8eKO4tpPMvAGV0sa6ok0XuMeu7Zhcizu2bLwcLy1fbNt7/h8PU1wbp9IoIgQETggZJozU0nPXUXOao2g==", - "dev": true - }, - "eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-plugin-vue": { - "version": "9.4.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz", - "integrity": "sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.0.1", - "xml-name-validator": "^4.0.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmmirror.com/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/esprima/-/esprima-1.2.5.tgz", - "integrity": "sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "ev-emitter": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ev-emitter/-/ev-emitter-1.1.1.tgz", - "integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "exceljs": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.3.0.tgz", - "integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==", - "requires": { - "archiver": "^5.0.0", - "dayjs": "^1.8.34", - "fast-csv": "^4.3.1", - "jszip": "^3.5.0", - "readable-stream": "^3.6.0", - "saxes": "^5.0.1", - "tmp": "^0.2.0", - "unzipper": "^0.10.11", - "uuid": "^8.3.0" - } - }, - "ext": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fast-csv": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz", - "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "requires": { - "@fast-csv/format": "4.3.5", - "@fast-csv/parse": "4.3.6" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fault": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "requires": { - "format": "^0.2.0" - } - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "flru": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/flru/-/flru-1.0.2.tgz", - "integrity": "sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==" - }, - "fmin": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/fmin/-/fmin-0.0.2.tgz", - "integrity": "sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A==", - "requires": { - "contour_plot": "^0.0.1", - "json2module": "^0.0.3", - "rollup": "^0.25.8", - "tape": "^4.5.1", - "uglify-js": "^2.6.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "rollup": { - "version": "0.25.8", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-0.25.8.tgz", - "integrity": "sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA==", - "requires": { - "chalk": "^1.1.1", - "minimist": "^1.2.0", - "source-map-support": "^0.3.2" - } - }, - "source-map": { - "version": "0.1.32", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz", - "integrity": "sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==", - "requires": { - "amdefine": ">=0.0.4" - } - }, - "source-map-support": { - "version": "0.3.3", - "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.3.3.tgz", - "integrity": "sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==", - "requires": { - "source-map": "0.1.32" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" - } - } - }, - "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "format": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==" - }, - "formstream": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/formstream/-/formstream-1.3.1.tgz", - "integrity": "sha512-FkW++ub+VbE5dpwukJVDizNWhSgp8FhmhI65pF7BZSVStBqe6Wgxe2Z9/Vhsn7l7nXCPwP+G1cyYlX8VwWOf0g==", - "requires": { - "destroy": "^1.0.4", - "mime": "^2.5.2", - "pause-stream": "~0.0.11" - }, - "dependencies": { - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - } - } - }, - "frac": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" - }, - "fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "generate-source-map": { - "version": "0.0.5", - "resolved": "https://registry.npmmirror.com/generate-source-map/-/generate-source-map-0.0.5.tgz", - "integrity": "sha512-jqiE7f3FEaeMcjnMSEYLjMa39bdx+RrrdfhxdJpMm9S/8IugHF4vLQLZ9sxHylWyxpsBILukC/l/7B0/O0zhNg==", - "requires": { - "esprima": "~1.2.2", - "source-map": "~0.1.34" - }, - "dependencies": { - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-ready": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/get-ready/-/get-ready-1.0.0.tgz", - "integrity": "sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==" - }, - "get-size": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/get-size/-/get-size-2.0.3.tgz", - "integrity": "sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==" - }, - "get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - } - }, - "github-markdown-css": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/github-markdown-css/-/github-markdown-css-5.1.0.tgz", - "integrity": "sha512-QLtORwHHtUHhPMHu7i4GKfP6Vx5CWZn+NKQXe+cBhslY1HEt0CTEkP4d/vSROKV0iIJSpl4UtlQ16AD8C6lMug==" - }, - "gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "requires": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" - } - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "requires": { - "has-symbols": "^1.0.3" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "hast-to-hyperscript": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/hast-to-hyperscript/-/hast-to-hyperscript-10.0.1.tgz", - "integrity": "sha512-dhIVGoKCQVewFi+vz3Vt567E4ejMppS1haBRL6TEmeLeJVB1i/FJIIg/e6s1Bwn0g5qtYojHEKvyGA+OZuyifw==", - "requires": { - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^5.0.0", - "web-namespaces": "^2.0.0" - } - }, - "hast-util-from-parse5": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz", - "integrity": "sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==", - "requires": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "@types/unist": "^2.0.0", - "hastscript": "^7.0.0", - "property-information": "^6.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", - "web-namespaces": "^2.0.0" - } - }, - "hast-util-is-element": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", - "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", - "requires": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0" - } - }, - "hast-util-parse-selector": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz", - "integrity": "sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==", - "requires": { - "@types/hast": "^2.0.0" - } - }, - "hast-util-raw": { - "version": "7.2.2", - "resolved": "https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.2.tgz", - "integrity": "sha512-0x3BhhdlBcqRIKyc095lBSDvmQNMY3Eulj2PLsT5XCyKYrxssI5yr3P4Kv/PBo1s/DMkZy2voGkMXECnFCZRLQ==", - "requires": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-util-from-parse5": "^7.0.0", - "hast-util-to-parse5": "^7.0.0", - "html-void-elements": "^2.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - } - }, - "hast-util-sanitize": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/hast-util-sanitize/-/hast-util-sanitize-4.0.0.tgz", - "integrity": "sha512-pw56+69jq+QSr/coADNvWTmBPDy+XsmwaF5KnUys4/wM1jt/fZdl7GPxhXXXYdXnz3Gj3qMkbUCH2uKjvX0MgQ==", - "requires": { - "@types/hast": "^2.0.0" - } - }, - "hast-util-to-html": { - "version": "8.0.3", - "resolved": "https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz", - "integrity": "sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==", - "requires": { - "@types/hast": "^2.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "html-void-elements": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.2", - "unist-util-is": "^5.0.0" - } - }, - "hast-util-to-parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.0.0.tgz", - "integrity": "sha512-YHiS6aTaZ3N0Q3nxaY/Tj98D6kM8QX5Q8xqgg8G45zR7PvWnPGPP0vcKCgb/moIydEJ/QWczVrX0JODCVeoV7A==", - "requires": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-to-hyperscript": "^10.0.0", - "property-information": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - } - }, - "hast-util-to-text": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", - "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", - "requires": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "unist-util-find-after": "^4.0.0" - } - }, - "hast-util-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", - "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" - }, - "hastscript": { - "version": "7.0.2", - "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-7.0.2.tgz", - "integrity": "sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^3.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - } - }, - "highlight.js": { - "version": "11.8.0", - "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.8.0.tgz", - "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==" - }, - "html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-class-hotfix": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz", - "integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==" - }, - "is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", - "requires": { - "hasown": "^2.0.2" - } - }, - "is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "requires": { - "is-typed-array": "^1.1.13" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-type-of": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/is-type-of/-/is-type-of-1.4.0.tgz", - "integrity": "sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==", - "requires": { - "core-util-is": "^1.0.2", - "is-class-hotfix": "~0.0.6", - "isstream": "~0.1.2" - } - }, - "is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "requires": { - "which-typed-array": "^1.1.14" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true - }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - }, - "js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" - }, - "js-md5": { - "version": "0.7.3", - "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz", - "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbarcode": { - "version": "3.11.5", - "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.5.tgz", - "integrity": "sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json2module": { - "version": "0.0.3", - "resolved": "https://registry.npmmirror.com/json2module/-/json2module-0.0.3.tgz", - "integrity": "sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA==", - "requires": { - "rw": "^1.3.2" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jstoxml": { - "version": "2.2.9", - "resolved": "https://registry.npmmirror.com/jstoxml/-/jstoxml-2.2.9.tgz", - "integrity": "sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==" - }, - "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "requires": { - "is-buffer": "^1.1.5" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - } - } - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==" - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "less": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/less/-/less-4.1.3.tgz", - "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", - "dev": true, - "requires": { - "copy-anything": "^2.0.1", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "parse-node-version": "^1.0.1", - "source-map": "~0.6.0", - "tslib": "^2.3.0" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, - "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "requires": { - "uc.micro": "^2.0.0" - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" - }, - "local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" - }, - "lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "lodash.groupby": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" - }, - "lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" - }, - "lodash.isnil": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz", - "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz", - "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==" - }, - "longest-streak": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.0.1.tgz", - "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowlight": { - "version": "2.9.0", - "resolved": "https://registry.npmmirror.com/lowlight/-/lowlight-2.9.0.tgz", - "integrity": "sha512-OpcaUTCLmHuVuBcyNckKfH5B0oA4JUavb/M/8n9iAvanJYNQkrVm4pvyX0SUaqkBG4dnWHKt7p50B3ngAG2Rfw==", - "requires": { - "@types/hast": "^2.0.0", - "fault": "^2.0.0", - "highlight.js": "~11.8.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "lucide-vue-next": { - "version": "0.453.0", - "resolved": "https://registry.npmmirror.com/lucide-vue-next/-/lucide-vue-next-0.453.0.tgz", - "integrity": "sha512-5zmv83vxAs9SVoe22veDBi8Dw0Fh2F+oTngWgKnKOkrZVbZjceXLQ3tescV2boB0zlaf9R2Sd9RuUP2766xvsQ==", - "requires": {} - }, - "magic-string": { - "version": "0.26.3", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.3.tgz", - "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true - } - } - }, - "markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "requires": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "dependencies": { - "mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" - } - } - }, - "markdown-it-image-figures": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz", - "integrity": "sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==", - "requires": {} - }, - "markdown-it-sub": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz", - "integrity": "sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==" - }, - "markdown-it-sup": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz", - "integrity": "sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==" - }, - "markdown-table": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.2.tgz", - "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==" - }, - "md-editor-v3": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/md-editor-v3/-/md-editor-v3-5.3.2.tgz", - "integrity": "sha512-O3gV4X3+x8QZava2pzJfVb06dqO1Y1UrmUpHS0E7htblqq0MQ67yrLLkTkVYIxF04Tj8Ub67pc8fypR3uT8FUA==", - "requires": { - "@codemirror/lang-markdown": "^6.3.0", - "@codemirror/language-data": "^6.5.1", - "@types/markdown-it": "^14.0.1", - "@vavt/util": "^2.1.0", - "codemirror": "^6.0.1", - "copy-to-clipboard": "^3.3.3", - "lru-cache": "^11.0.1", - "lucide-vue-next": "^0.453.0", - "markdown-it": "^14.0.0", - "markdown-it-image-figures": "^2.1.1", - "markdown-it-sub": "^2.0.0", - "markdown-it-sup": "^2.0.0", - "medium-zoom": "^1.1.0", - "xss": "^1.0.15" - }, - "dependencies": { - "lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==" - } - } - }, - "mdast-util-definitions": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", - "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "mdast-util-find-and-replace": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", - "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", - "requires": { - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - } - } - }, - "mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - } - }, - "mdast-util-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", - "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", - "requires": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - } - }, - "mdast-util-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", - "requires": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - } - }, - "mdast-util-gfm-footnote": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", - "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - } - }, - "mdast-util-gfm-strikethrough": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz", - "integrity": "sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-gfm-table": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.4.tgz", - "integrity": "sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==", - "requires": { - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-gfm-task-list-item": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", - "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-to-hast": { - "version": "12.2.1", - "resolved": "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz", - "integrity": "sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA==", - "requires": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "trim-lines": "^3.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "mdast-util-to-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", - "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "medium-zoom": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/medium-zoom/-/medium-zoom-1.1.0.tgz", - "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==" - }, - "merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromark": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/micromark/-/micromark-3.0.10.tgz", - "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", - "requires": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", - "requires": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-footnote": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", - "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", - "requires": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-strikethrough": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", - "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-tagfilter": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", - "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-task-list-item": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", - "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "requires": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" - }, - "micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==" - }, - "micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-sanitize-uri": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", - "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==" - }, - "micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - }, - "mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "mock-property": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/mock-property/-/mock-property-1.0.3.tgz", - "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", - "requires": { - "define-data-property": "^1.1.1", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "hasown": "^2.0.0", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" - }, - "nanopop": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/nanopop/-/nanopop-2.1.0.tgz", - "integrity": "sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "needle": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/needle/-/needle-3.1.0.tgz", - "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node-releases": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.17.tgz", - "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "os-name": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/os-name/-/os-name-1.0.3.tgz", - "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==", - "requires": { - "osx-release": "^1.0.0", - "win-release": "^1.0.0" - } - }, - "osx-release": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/osx-release/-/osx-release-1.1.0.tgz", - "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==", - "requires": { - "minimist": "^1.1.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - } - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmmirror.com/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "requires": { - "through": "~2.3" - } - }, - "pdfast": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/pdfast/-/pdfast-0.2.0.tgz", - "integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==" - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true - }, - "pinia": { - "version": "2.0.21", - "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.21.tgz", - "integrity": "sha512-6ol04PtL29O0Z6JHI47O3JUSoyOJ7Og0rstXrHVMZSP4zAldsQBXJCNF0i/H7m8vp/Hjd/CSmuPl7C5QAwpeWQ==", - "requires": { - "@vue/devtools-api": "^6.2.1", - "vue-demi": "*" - }, - "dependencies": { - "vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "requires": {} - } - } - }, - "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true - }, - "platform": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" - }, - "pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" - }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" - }, - "postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "requires": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - } - }, - "postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "requires": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "dependencies": { - "lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true - } - } - }, - "postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.11" - } - }, - "postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "property-information": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/property-information/-/property-information-6.1.1.tgz", - "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==" - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "optional": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==" - }, - "qrcode": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", - "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", - "requires": { - "dijkstrajs": "^1.0.1", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - } - } - }, - "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "requires": { - "quickselect": "^2.0.0" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "rehype-highlight": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/rehype-highlight/-/rehype-highlight-6.0.0.tgz", - "integrity": "sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw==", - "requires": { - "@types/hast": "^2.0.0", - "hast-util-to-text": "^3.0.0", - "lowlight": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "rehype-raw": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/rehype-raw/-/rehype-raw-6.1.1.tgz", - "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", - "requires": { - "@types/hast": "^2.0.0", - "hast-util-raw": "^7.2.0", - "unified": "^10.0.0" - } - }, - "rehype-sanitize": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/rehype-sanitize/-/rehype-sanitize-5.0.1.tgz", - "integrity": "sha512-da/jIOjq8eYt/1r9GN6GwxIR3gde7OZ+WV8pheu1tL8K0D9KxM2AyMh+UEfke+FfdM3PvGHeYJU0Td5OWa7L5A==", - "requires": { - "@types/hast": "^2.0.0", - "hast-util-sanitize": "^4.0.0", - "unified": "^10.0.0" - } - }, - "rehype-stringify": { - "version": "9.0.3", - "resolved": "https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz", - "integrity": "sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==", - "requires": { - "@types/hast": "^2.0.0", - "hast-util-to-html": "^8.0.0", - "unified": "^10.0.0" - } - }, - "remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - } - }, - "remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "requires": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resize-detector": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz", - "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.77.3", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz", - "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-visualizer": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.14.0.tgz", - "integrity": "sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==", - "dev": true, - "requires": { - "open": "^8.4.0", - "picomatch": "^4.0.2", - "source-map": "^0.7.4", - "yargs": "^17.5.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true - }, - "source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "requires": { - "mri": "^1.1.0" - } - }, - "safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scroll-into-view-if-needed": { - "version": "2.2.29", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", - "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", - "requires": { - "compute-scroll-into-view": "^1.0.17" - } - }, - "sdk-base": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/sdk-base/-/sdk-base-2.0.1.tgz", - "integrity": "sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==", - "requires": { - "get-ready": "~1.0.0" - } - }, - "select-files": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/select-files/-/select-files-1.0.1.tgz", - "integrity": "sha512-8h4DSpjfFa0hyMP3z3ye4SxyhdaE5RgaXeScRpH7xl4YblnZSHwexmLdLNdSKwTO8H9ccDKj7Votz0io+18+BQ==" - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "shallow-equal": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "socket.io-client": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.1.tgz", - "integrity": "sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.1", - "socket.io-parser": "~4.2.4" - } - }, - "socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "space-separated-tokens": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", - "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==" - }, - "ssf": { - "version": "0.11.2", - "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", - "requires": { - "frac": "~1.1.2" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" - }, - "stream-http": { - "version": "2.8.2", - "resolved": "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.2.tgz", - "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-wormhole": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/stream-wormhole/-/stream-wormhole-1.1.0.tgz", - "integrity": "sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } - } - }, - "string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "requires": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-path-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/svg-path-parser/-/svg-path-parser-1.1.0.tgz", - "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==" - }, - "systemjs": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.6.tgz", - "integrity": "sha512-SawLiWya8/uNR4p12OggSYZ35tP4U4QTpfV57DdZEOPr6+J6zlLSeeEpMmzYTEoBAsMhctdEE+SWJUDYX4EaKw==", - "dev": true - }, - "tailwindcss": { - "version": "3.4.6", - "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.6.tgz", - "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", - "dev": true, - "requires": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - } - }, - "tape": { - "version": "4.17.0", - "resolved": "https://registry.npmmirror.com/tape/-/tape-4.17.0.tgz", - "integrity": "sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==", - "requires": { - "@ljharb/resumer": "~0.0.1", - "@ljharb/through": "~2.3.9", - "call-bind": "~1.0.2", - "deep-equal": "~1.1.1", - "defined": "~1.0.1", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "glob": "~7.2.3", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.1.4", - "minimist": "~1.2.8", - "mock-property": "~1.0.0", - "object-inspect": "~1.12.3", - "resolve": "~1.22.6", - "string.prototype.trim": "~1.2.8" - }, - "dependencies": { - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "terser": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "tinymce": { - "version": "5.10.5", - "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.5.tgz", - "integrity": "sha512-nFKtLhmoRtExBxUfv06JlkbQWux5D+d115vxSRAqUmccZdrtpFvOIYwZmikvulLdM9pfEpvO0B+RQ2qFV/+R7w==" - }, - "tippy.js": { - "version": "6.3.7", - "resolved": "https://registry.npmmirror.com/tippy.js/-/tippy.js-6.3.7.tgz", - "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", - "requires": { - "@popperjs/core": "^2.9.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" - }, - "trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" - }, - "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" - }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - } - }, - "typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", - "devOptional": true - }, - "uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" - }, - "unescape": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/unescape/-/unescape-1.0.1.tgz", - "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", - "requires": { - "extend-shallow": "^2.0.1" - } - }, - "unidragger": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/unidragger/-/unidragger-2.4.0.tgz", - "integrity": "sha512-MueZK2oXuGE6OAlGKIrSXK2zCq+8yb1QUZgqyTDCSJzvwYL0g2Llrad+TtoQTYxtFnNyxxSw0IMnKNIgEMia1w==", - "requires": { - "unipointer": "^2.4.0" - } - }, - "unified": { - "version": "10.1.2", - "resolved": "https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unipointer": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/unipointer/-/unipointer-2.4.0.tgz", - "integrity": "sha512-VjzDLPjGK7aYpQKH7bnDZS8X4axF5AFU/LQi+NQe1oyEHfaz6lWKhaQ7n4o7vJ1iJ4i2T0quCIfrQM139p05Sw==", - "requires": { - "ev-emitter": "^1.0.1" - } - }, - "unist-builder": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/unist-builder/-/unist-builder-3.0.0.tgz", - "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-find-after": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", - "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "unist-util-generated": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" - }, - "unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "unist-util-position": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.3.tgz", - "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz", - "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - } - }, - "unist-util-visit-parents": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", - "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unplugin": { - "version": "0.9.5", - "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-0.9.5.tgz", - "integrity": "sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.4.4" - } - }, - "unplugin-vue-components": { - "version": "0.22.4", - "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.22.4.tgz", - "integrity": "sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==", - "dev": true, - "requires": { - "@antfu/utils": "^0.5.2", - "@rollup/pluginutils": "^4.2.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "fast-glob": "^3.2.11", - "local-pkg": "^0.4.2", - "magic-string": "^0.26.2", - "minimatch": "^5.1.0", - "resolve": "^1.22.1", - "unplugin": "^0.9.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", - "dev": true, - "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urllib": { - "version": "2.41.0", - "resolved": "https://registry.npmmirror.com/urllib/-/urllib-2.41.0.tgz", - "integrity": "sha512-pNXdxEv52L67jahLT+/7QE+Fup1y2Gc6EdmrAhQ6OpQIC2rl14oWwv9hvk1GXOZqEnJNwRXHABuwgPOs1CtL7g==", - "requires": { - "any-promise": "^1.3.0", - "content-type": "^1.0.2", - "debug": "^2.6.9", - "default-user-agent": "^1.0.0", - "digest-header": "^1.0.0", - "ee-first": "~1.1.1", - "formstream": "^1.1.0", - "humanize-ms": "^1.2.0", - "iconv-lite": "^0.4.15", - "ip": "^1.1.5", - "pump": "^3.0.0", - "qs": "^6.4.0", - "statuses": "^1.3.1", - "utility": "^1.16.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utility": { - "version": "1.18.0", - "resolved": "https://registry.npmmirror.com/utility/-/utility-1.18.0.tgz", - "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==", - "requires": { - "copy-to": "^2.0.1", - "escape-html": "^1.0.3", - "mkdirp": "^0.5.1", - "mz": "^2.7.0", - "unescape": "^1.0.1" - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "requires": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - } - }, - "vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "requires": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "vite": { - "version": "3.0.9", - "resolved": "https://registry.npmmirror.com/vite/-/vite-3.0.9.tgz", - "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", - "dev": true, - "requires": { - "esbuild": "^0.14.47", - "fsevents": "~2.3.2", - "postcss": "^8.4.16", - "resolve": "^1.22.1", - "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" - } - }, - "vite-plugin-compression": { - "version": "0.5.1", - "resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", - "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "debug": "^4.3.3", - "fs-extra": "^10.0.0" - } - }, - "vue": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.3.tgz", - "integrity": "sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==", - "requires": { - "@vue/compiler-dom": "3.5.3", - "@vue/compiler-sfc": "3.5.3", - "@vue/runtime-dom": "3.5.3", - "@vue/server-renderer": "3.5.3", - "@vue/shared": "3.5.3" - } - }, - "vue-echarts": { - "version": "6.2.3", - "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.2.3.tgz", - "integrity": "sha512-xHzUvgsgk/asJTcNa8iVVwoovZU3iEUHvmBa3bzbiP3Y6OMxM1YXsoWOKVmVVaUusGs4ob4pSwjwNy2FemAz9w==", - "requires": { - "resize-detector": "^0.3.0", - "vue-demi": "^0.13.2" - }, - "dependencies": { - "vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "requires": {} - } - } - }, - "vue-eslint-parser": { - "version": "9.0.3", - "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", - "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "vue-i18n": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz", - "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", - "requires": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2", - "@vue/devtools-api": "^6.2.1" - } - }, - "vue-router": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.5.tgz", - "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==", - "requires": { - "@vue/devtools-api": "^6.1.4" - } - }, - "vue-tsc": { - "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.40.5.tgz", - "integrity": "sha512-rQPyyqrQiDzc8a3YpAYUb27VQbU+NDewOJ7GJBiEIEcaSugMjDc6dtJijTHK32t8IgGPl6ybsJ9LIU9sZvixLA==", - "dev": true, - "requires": { - "@volar/vue-language-core": "0.40.5", - "@volar/vue-typescript": "0.40.5" - } - }, - "vue-types": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz", - "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", - "requires": { - "is-plain-object": "3.0.1" - } - }, - "vuedraggable": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz", - "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", - "requires": { - "sortablejs": "1.14.0" - }, - "dependencies": { - "sortablejs": { - "version": "1.14.0", - "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz", - "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" - } - } - }, - "w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "webpack-virtual-modules": { - "version": "0.4.4", - "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz", - "integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, - "which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - } - }, - "win-release": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz", - "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==", - "requires": { - "semver": "^5.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" - } - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==" - }, - "wmf": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" - }, - "word": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz", - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" - }, - "word-count": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/word-count/-/word-count-0.2.2.tgz", - "integrity": "sha512-tPRTbQ+nTCPY3F0z1f/y0PX22ScE6l/4/8j9KqA3h77JhlZ/w6cbVS8LIO5Pq/aV96SWBOoiE2IEgzxF0Cn+kA==" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==" - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "requires": {} - }, - "xgplayer": { - "version": "2.31.7", - "resolved": "https://registry.npmmirror.com/xgplayer/-/xgplayer-2.31.7.tgz", - "integrity": "sha512-Wksoj/+BQgsDD7hVsd0d8jICHWWL7SGV6c6V01kH3LfLS6JgwVKyNnr4rRHZFFztlr/kOgBnqPqlV3Fiefmviw==", - "requires": { - "chalk": "^2.3.2", - "commander": "^2.15.1", - "danmu.js": "^0.5.9", - "downloadjs": "1.4.7", - "draggabilly": "^2.2.0", - "event-emitter": "^0.3.5", - "fs-extra": "^5.0.0", - "xgplayer-subtitles": "^1.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "xgplayer-subtitles": { - "version": "1.0.22", - "resolved": "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-1.0.22.tgz", - "integrity": "sha512-+m1fo+FFynL+2ymO4UQBUSnJAz3WuIthpJFCrKBjd+ukcLRoy3vTcsylXEOo5AZN1xT28fpHmxvZQKEIEYA+6w==", - "requires": { - "eventemitter3": "^4.0.7", - "generate-source-map": "0.0.5" - } - }, - "xlsx": { - "version": "0.18.5", - "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz", - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", - "requires": { - "adler-32": "~1.3.0", - "cfb": "~1.2.1", - "codepage": "~1.15.0", - "crc-32": "~1.2.1", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" - }, - "xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "requires": { - "sax": "^1.2.4" - } - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" - }, - "xss": { - "version": "1.0.15", - "resolved": "https://registry.npmmirror.com/xss/-/xss-1.0.15.tgz", - "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", - "requires": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } - }, - "zrender": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz", - "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==", - "requires": { - "tslib": "2.3.0" - } - }, - "zwitch": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/zwitch/-/zwitch-2.0.2.tgz", - "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==" - } - } -} diff --git a/dict/admin/package.json b/dict/admin/package.json deleted file mode 100644 index 6f04eed..0000000 --- a/dict/admin/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "mp-vue-template", - "version": "1.10.1", - "private": true, - "scripts": { - "dev": "vite", - "serve": "vite build && vite preview", - "build": "vite build", - "lint:eslint": "eslint --cache --max-warnings 0 \"src/**/*.{vue,ts}\" --fix", - "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite/", - "clean:lib": "rimraf node_modules", - "build-css": "tailwindcss -o ./dist/tailwind.css --minify" - }, - "dependencies": { - "@amap/amap-jsapi-loader": "^1.0.1", - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-vue": "^6.1.0", - "@antv/g2": "^5.1.22", - "@bytemd/plugin-gfm": "^1.17.2", - "@bytemd/plugin-highlight": "^1.17.4", - "@bytemd/plugin-highlight-ssr": "^1.20.2", - "@wecom/jssdk": "^1.3.1", - "ali-oss": "^6.18.0", - "ant-design-vue": "^3.2.11", - "axios": "^0.27.2", - "bytemd": "^1.17.2", - "countup.js": "^2.3.2", - "cropperjs": "^1.5.12", - "crypto-js": "^4.2.0", - "dayjs": "^1.11.5", - "docx": "^9.5.0", - "echarts": "^5.3.3", - "echarts-wordcloud": "^2.0.0", - "ele-admin-pro": "^1.10.1", - "exceljs": "^4.3.0", - "file-saver": "^2.0.5", - "github-markdown-css": "^5.1.0", - "js-cookie": "^3.0.5", - "js-md5": "^0.7.3", - "jsbarcode": "^3.11.5", - "lodash-es": "^4.17.21", - "md-editor-v3": "^5.2.3", - "mitt": "^3.0.1", - "nprogress": "^0.2.0", - "pinia": "^2.0.21", - "qrcode": "^1.5.4", - "socket.io-client": "^4.7.1", - "sortablejs": "^1.15.0", - "tinymce": "^5.10.5", - "vue": "3.5.3", - "vue-echarts": "^6.2.3", - "vue-i18n": "^9.2.2", - "vue-router": "^4.1.5", - "vuedraggable": "^4.1.0", - "xgplayer": "^2.31.7", - "xlsx": "^0.18.5" - }, - "devDependencies": { - "@types/file-saver": "^2.0.7", - "@types/lodash-es": "^4.17.6", - "@types/node": "^18.7.14", - "@types/nprogress": "^0.2.0", - "@types/qrcode": "^1.5.5", - "@types/sortablejs": "^1.13.0", - "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/parser": "^5.36.1", - "@vitejs/plugin-legacy": "^2.0.1", - "@vitejs/plugin-vue": "^3.0.3", - "@vue/compiler-sfc": "^3.2.38", - "autoprefixer": "^10.4.19", - "eslint": "^8.23.0", - "eslint-config-prettier": "^8.5.0", - "eslint-define-config": "^1.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-vue": "^9.4.0", - "less": "^4.1.3", - "postcss": "^8.4.39", - "prettier": "^2.7.1", - "rimraf": "^3.0.2", - "rollup-plugin-visualizer": "^5.9.2", - "tailwindcss": "^3.4.6", - "terser": "^5.15.0", - "typescript": "^4.8.2", - "unplugin-vue-components": "^0.22.4", - "vite": "^3.0.9", - "vite-plugin-compression": "^0.5.1", - "vue-eslint-parser": "^9.0.3", - "vue-tsc": "^0.40.5" - } -} diff --git a/dict/admin/postcss.config.js b/dict/admin/postcss.config.js deleted file mode 100644 index 5cbc2c7..0000000 --- a/dict/admin/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {} - } -}; diff --git a/dict/admin/prettier.config.js b/dict/admin/prettier.config.js deleted file mode 100644 index 33ad45b..0000000 --- a/dict/admin/prettier.config.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - printWidth: 80, - tabWidth: 2, - useTabs: false, - semi: true, - singleQuote: true, - quoteProps: 'as-needed', - jsxSingleQuote: false, - trailingComma: 'none', - bracketSpacing: true, - bracketSameLine: false, - arrowParens: 'always', - requirePragma: false, - insertPragma: false, - proseWrap: 'never', - htmlWhitespaceSensitivity: 'strict', - vueIndentScriptAndStyle: true, - endOfLine: 'lf' -}; diff --git a/dict/admin/public/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg b/dict/admin/public/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg deleted file mode 100644 index a7b3b75..0000000 --- a/dict/admin/public/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dict/admin/public/assets/bg-2.jpeg b/dict/admin/public/assets/bg-2.jpeg deleted file mode 100644 index 5ea2d426e7e226a0ac35c4a54a70f87f66158387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406999 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

w#*On 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

2l^TfcEqK>*Km|XpGxMXA4vS0-) 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�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�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 diff --git a/dict/admin/public/assets/logo.svg b/dict/admin/public/assets/logo.svg deleted file mode 100644 index fb8e867..0000000 --- a/dict/admin/public/assets/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - background - - - - - - - Layer 1 - - - \ No newline at end of file diff --git a/dict/admin/public/favicon.ico b/dict/admin/public/favicon.ico deleted file mode 100644 index f205f8a2a608e3ce1c82eb2b0b69ab26a94ee6db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 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 diff --git a/dict/admin/public/logo.svg b/dict/admin/public/logo.svg deleted file mode 100644 index 42ce183..0000000 --- a/dict/admin/public/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dict/admin/public/tinymce/langs/zh_CN.js b/dict/admin/public/tinymce/langs/zh_CN.js deleted file mode 100644 index 2a784f5..0000000 --- a/dict/admin/public/tinymce/langs/zh_CN.js +++ /dev/null @@ -1,462 +0,0 @@ -tinymce.addI18n('zh_CN',{ -"Redo": "\u91cd\u505a", -"Undo": "\u64a4\u9500", -"Cut": "\u526a\u5207", -"Copy": "\u590d\u5236", -"Paste": "\u7c98\u8d34", -"Select all": "\u5168\u9009", -"New document": "\u65b0\u6587\u4ef6", -"Ok": "\u786e\u5b9a", -"Cancel": "\u53d6\u6d88", -"Visual aids": "\u7f51\u683c\u7ebf", -"Bold": "\u7c97\u4f53", -"Italic": "\u659c\u4f53", -"Underline": "\u4e0b\u5212\u7ebf", -"Strikethrough": "\u5220\u9664\u7ebf", -"Superscript": "\u4e0a\u6807", -"Subscript": "\u4e0b\u6807", -"Clear formatting": "\u6e05\u9664\u683c\u5f0f", -"Align left": "\u5de6\u8fb9\u5bf9\u9f50", -"Align center": "\u4e2d\u95f4\u5bf9\u9f50", -"Align right": "\u53f3\u8fb9\u5bf9\u9f50", -"Justify": "\u4e24\u7aef\u5bf9\u9f50", -"Bullet list": "\u9879\u76ee\u7b26\u53f7", -"Numbered list": "\u7f16\u53f7\u5217\u8868", -"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", -"Increase indent": "\u589e\u52a0\u7f29\u8fdb", -"Close": "\u5173\u95ed", -"Formats": "\u683c\u5f0f", -"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", -"Headers": "\u6807\u9898", -"Header 1": "\u6807\u98981", -"Header 2": "\u6807\u98982", -"Header 3": "\u6807\u98983", -"Header 4": "\u6807\u98984", -"Header 5": "\u6807\u98985", -"Header 6": "\u6807\u98986", -"Headings": "\u6807\u9898", -"Heading 1": "\u6807\u98981", -"Heading 2": "\u6807\u98982", -"Heading 3": "\u6807\u98983", -"Heading 4": "\u6807\u98984", -"Heading 5": "\u6807\u98985", -"Heading 6": "\u6807\u98986", -"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", -"Div": "Div", -"Pre": "Pre", -"Code": "\u4ee3\u7801", -"Paragraph": "\u6bb5\u843d", -"Blockquote": "\u5f15\u6587\u533a\u5757", -"Inline": "\u6587\u672c", -"Blocks": "\u57fa\u5757", -"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", -"Fonts": "\u5b57\u4f53", -"Font Sizes": "\u5b57\u53f7", -"Class": "\u7c7b\u578b", -"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", -"OR": "\u6216", -"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", -"Upload": "\u4e0a\u4f20", -"Block": "\u5757", -"Align": "\u5bf9\u9f50", -"Default": "\u9ed8\u8ba4", -"Circle": "\u7a7a\u5fc3\u5706", -"Disc": "\u5b9e\u5fc3\u5706", -"Square": "\u65b9\u5757", -"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", -"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", -"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", -"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", -"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", -"Anchor...": "\u951a\u70b9...", -"Name": "\u540d\u79f0", -"Id": "\u6807\u8bc6\u7b26", -"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", -"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", -"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", -"Special character...": "\u7279\u6b8a\u5b57\u7b26...", -"Source code": "\u6e90\u4ee3\u7801", -"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", -"Language": "\u8bed\u8a00", -"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", -"Color Picker": "\u9009\u8272\u5668", -"R": "R", -"G": "G", -"B": "B", -"Left to right": "\u4ece\u5de6\u5230\u53f3", -"Right to left": "\u4ece\u53f3\u5230\u5de6", -"Emoticons": "\u8868\u60c5", -"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", -"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", -"Title": "\u6807\u9898", -"Keywords": "\u5173\u952e\u8bcd", -"Description": "\u63cf\u8ff0", -"Robots": "\u673a\u5668\u4eba", -"Author": "\u4f5c\u8005", -"Encoding": "\u7f16\u7801", -"Fullscreen": "\u5168\u5c4f", -"Action": "\u64cd\u4f5c", -"Shortcut": "\u5feb\u6377\u952e", -"Help": "\u5e2e\u52a9", -"Address": "\u5730\u5740", -"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", -"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", -"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", -"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", -"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", -"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", -"Learn more...": "\u4e86\u89e3\u66f4\u591a...", -"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", -"Plugins": "\u63d2\u4ef6", -"Handy Shortcuts": "\u5feb\u6377\u952e", -"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", -"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", -"Alternative description": "\u66ff\u4ee3\u63cf\u8ff0", -"Accessibility": "\u8f85\u52a9\u529f\u80fd", -"Image is decorative": "\u56fe\u50cf\u662f\u88c5\u9970\u6027\u7684", -"Source": "\u5730\u5740", -"Dimensions": "\u5927\u5c0f", -"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", -"General": "\u666e\u901a", -"Advanced": "\u9ad8\u7ea7", -"Style": "\u6837\u5f0f", -"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", -"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", -"Border": "\u8fb9\u6846", -"Insert image": "\u63d2\u5165\u56fe\u7247", -"Image...": "\u56fe\u7247...", -"Image list": "\u56fe\u7247\u5217\u8868", -"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", -"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", -"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", -"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", -"Edit image": "\u7f16\u8f91\u56fe\u7247", -"Image options": "\u56fe\u7247\u9009\u9879", -"Zoom in": "\u653e\u5927", -"Zoom out": "\u7f29\u5c0f", -"Crop": "\u88c1\u526a", -"Resize": "\u8c03\u6574\u5927\u5c0f", -"Orientation": "\u65b9\u5411", -"Brightness": "\u4eae\u5ea6", -"Sharpen": "\u9510\u5316", -"Contrast": "\u5bf9\u6bd4\u5ea6", -"Color levels": "\u989c\u8272\u5c42\u6b21", -"Gamma": "\u4f3d\u9a6c\u503c", -"Invert": "\u53cd\u8f6c", -"Apply": "\u5e94\u7528", -"Back": "\u540e\u9000", -"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", -"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", -"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", -"Text to display": "\u663e\u793a\u6587\u5b57", -"Url": "\u5730\u5740", -"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", -"Current window": "\u5f53\u524d\u7a97\u53e3", -"None": "\u65e0", -"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", -"Open link": "\u6253\u5f00\u94fe\u63a5", -"Remove link": "\u5220\u9664\u94fe\u63a5", -"Anchors": "\u951a\u70b9", -"Link...": "\u94fe\u63a5...", -"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", -"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", -"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", -"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u60a8\u8f93\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u4e2a\u5916\u90e8\u94fe\u63a5\u3002\u60a8\u60f3\u6dfb\u52a0\u6240\u9700\u7684 https:\/\/ \u524d\u7f00\u5417\uff1f", -"Link list": "\u94fe\u63a5\u5217\u8868", -"Insert video": "\u63d2\u5165\u89c6\u9891", -"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", -"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", -"Alternative source": "\u955c\u50cf", -"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", -"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", -"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", -"Embed": "\u5185\u5d4c", -"Media...": "\u591a\u5a92\u4f53...", -"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", -"Page break": "\u5206\u9875\u7b26", -"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", -"Preview": "\u9884\u89c8", -"Print...": "\u6253\u5370...", -"Save": "\u4fdd\u5b58", -"Find": "\u67e5\u627e", -"Replace with": "\u66ff\u6362\u4e3a", -"Replace": "\u66ff\u6362", -"Replace all": "\u5168\u90e8\u66ff\u6362", -"Previous": "\u4e0a\u4e00\u4e2a", -"Next": "\u4e0b\u4e00\u4e2a", -"Find and Replace": "\u67e5\u627e\u548c\u66ff\u6362", -"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", -"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", -"Match case": "\u533a\u5206\u5927\u5c0f\u5199", -"Find whole words only": "\u5168\u5b57\u5339\u914d", -"Find in selection": "\u5728\u9009\u533a\u4e2d\u67e5\u627e", -"Spellcheck": "\u62fc\u5199\u68c0\u67e5", -"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00", -"No misspellings found.": "\u6ca1\u6709\u53d1\u73b0\u62fc\u5199\u9519\u8bef", -"Ignore": "\u5ffd\u7565", -"Ignore all": "\u5168\u90e8\u5ffd\u7565", -"Finish": "\u5b8c\u6210", -"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", -"Insert table": "\u63d2\u5165\u8868\u683c", -"Table properties": "\u8868\u683c\u5c5e\u6027", -"Delete table": "\u5220\u9664\u8868\u683c", -"Cell": "\u5355\u5143\u683c", -"Row": "\u884c", -"Column": "\u5217", -"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", -"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", -"Split cell": "\u62c6\u5206\u5355\u5143\u683c", -"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", -"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", -"Delete row": "\u5220\u9664\u884c", -"Row properties": "\u884c\u5c5e\u6027", -"Cut row": "\u526a\u5207\u884c", -"Copy row": "\u590d\u5236\u884c", -"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", -"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", -"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", -"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", -"Delete column": "\u5220\u9664\u5217", -"Cols": "\u5217", -"Rows": "\u884c", -"Width": "\u5bbd", -"Height": "\u9ad8", -"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", -"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", -"Caption": "\u6807\u9898", -"Show caption": "\u663e\u793a\u6807\u9898", -"Left": "\u5de6\u5bf9\u9f50", -"Center": "\u5c45\u4e2d", -"Right": "\u53f3\u5bf9\u9f50", -"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", -"Scope": "\u8303\u56f4", -"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", -"H Align": "\u6c34\u5e73\u5bf9\u9f50", -"V Align": "\u5782\u76f4\u5bf9\u9f50", -"Top": "\u9876\u90e8\u5bf9\u9f50", -"Middle": "\u5782\u76f4\u5c45\u4e2d", -"Bottom": "\u5e95\u90e8\u5bf9\u9f50", -"Header cell": "\u8868\u5934\u5355\u5143\u683c", -"Row group": "\u884c\u7ec4", -"Column group": "\u5217\u7ec4", -"Row type": "\u884c\u7c7b\u578b", -"Header": "\u8868\u5934", -"Body": "\u8868\u4f53", -"Footer": "\u8868\u5c3e", -"Border color": "\u8fb9\u6846\u989c\u8272", -"Insert template...": "\u63d2\u5165\u6a21\u677f...", -"Templates": "\u6a21\u677f", -"Template": "\u6a21\u677f", -"Text color": "\u6587\u5b57\u989c\u8272", -"Background color": "\u80cc\u666f\u8272", -"Custom...": "\u81ea\u5b9a\u4e49...", -"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", -"No color": "\u65e0", -"Remove color": "\u79fb\u9664\u989c\u8272", -"Table of Contents": "\u5185\u5bb9\u5217\u8868", -"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", -"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", -"Word count": "\u5b57\u6570", -"Count": "\u8ba1\u6570", -"Document": "\u6587\u6863", -"Selection": "\u9009\u62e9", -"Words": "\u5355\u8bcd", -"Words: {0}": "\u5b57\u6570\uff1a{0}", -"{0} words": "{0} \u5b57", -"File": "\u6587\u4ef6", -"Edit": "\u7f16\u8f91", -"Insert": "\u63d2\u5165", -"View": "\u89c6\u56fe", -"Format": "\u683c\u5f0f", -"Table": "\u8868\u683c", -"Tools": "\u5de5\u5177", -"Powered by {0}": "\u7531{0}\u9a71\u52a8", -"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", -"Image title": "\u56fe\u7247\u6807\u9898", -"Border width": "\u8fb9\u6846\u5bbd\u5ea6", -"Border style": "\u8fb9\u6846\u6837\u5f0f", -"Error": "\u9519\u8bef", -"Warn": "\u8b66\u544a", -"Valid": "\u6709\u6548", -"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", -"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", -"System Font": "\u7cfb\u7edf\u5b57\u4f53", -"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", -"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", -"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", -"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", -"example": "\u793a\u4f8b", -"Search": "\u641c\u7d22", -"All": "\u5168\u90e8", -"Currency": "\u8d27\u5e01", -"Text": "\u6587\u5b57", -"Quotations": "\u5f15\u7528", -"Mathematical": "\u6570\u5b66", -"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", -"Symbols": "\u7b26\u53f7", -"Arrows": "\u7bad\u5934", -"User Defined": "\u81ea\u5b9a\u4e49", -"dollar sign": "\u7f8e\u5143\u7b26\u53f7", -"currency sign": "\u8d27\u5e01\u7b26\u53f7", -"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", -"colon sign": "\u5192\u53f7", -"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", -"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", -"lira sign": "\u91cc\u62c9\u7b26\u53f7", -"mill sign": "\u5bc6\u5c14\u7b26\u53f7", -"naira sign": "\u5948\u62c9\u7b26\u53f7", -"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", -"rupee sign": "\u5362\u6bd4\u7b26\u53f7", -"won sign": "\u97e9\u5143\u7b26\u53f7", -"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", -"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", -"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", -"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", -"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", -"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", -"peso sign": "\u6bd4\u7d22\u7b26\u53f7", -"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", -"austral sign": "\u6fb3\u5143\u7b26\u53f7", -"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", -"cedi sign": "\u585e\u5730\u7b26\u53f7", -"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", -"spesmilo sign": "spesmilo\u7b26\u53f7", -"tenge sign": "\u575a\u6208\u7b26\u53f7", -"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", -"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", -"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", -"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", -"ruble sign": "\u5362\u5e03\u7b26\u53f7", -"yen character": "\u65e5\u5143\u5b57\u6837", -"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", -"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", -"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", -"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", -"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", -"People": "\u4eba\u7c7b", -"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", -"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", -"Activity": "\u6d3b\u52a8", -"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", -"Objects": "\u7269\u4ef6", -"Flags": "\u65d7\u5e1c", -"Characters": "\u5b57\u7b26", -"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", -"{0} characters": "{0} \u4e2a\u5b57\u7b26", -"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", -"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", -"Update": "\u66f4\u65b0", -"Color swatch": "\u989c\u8272\u6837\u672c", -"Turquoise": "\u9752\u7eff\u8272", -"Green": "\u7eff\u8272", -"Blue": "\u84dd\u8272", -"Purple": "\u7d2b\u8272", -"Navy Blue": "\u6d77\u519b\u84dd", -"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", -"Dark Green": "\u6df1\u7eff\u8272", -"Medium Blue": "\u4e2d\u84dd\u8272", -"Medium Purple": "\u4e2d\u7d2b\u8272", -"Midnight Blue": "\u6df1\u84dd\u8272", -"Yellow": "\u9ec4\u8272", -"Orange": "\u6a59\u8272", -"Red": "\u7ea2\u8272", -"Light Gray": "\u6d45\u7070\u8272", -"Gray": "\u7070\u8272", -"Dark Yellow": "\u6697\u9ec4\u8272", -"Dark Orange": "\u6df1\u6a59\u8272", -"Dark Red": "\u6df1\u7ea2\u8272", -"Medium Gray": "\u4e2d\u7070\u8272", -"Dark Gray": "\u6df1\u7070\u8272", -"Light Green": "\u6d45\u7eff\u8272", -"Light Yellow": "\u6d45\u9ec4\u8272", -"Light Red": "\u6d45\u7ea2\u8272", -"Light Purple": "\u6d45\u7d2b\u8272", -"Light Blue": "\u6d45\u84dd\u8272", -"Dark Purple": "\u6df1\u7d2b\u8272", -"Dark Blue": "\u6df1\u84dd\u8272", -"Black": "\u9ed1\u8272", -"White": "\u767d\u8272", -"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", -"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", -"history": "\u5386\u53f2", -"styles": "\u6837\u5f0f", -"formatting": "\u683c\u5f0f\u5316", -"alignment": "\u5bf9\u9f50", -"indentation": "\u7f29\u8fdb", -"Font": "\u5b57\u4f53", -"Size": "\u5b57\u53f7", -"More...": "\u66f4\u591a...", -"Select...": "\u9009\u62e9...", -"Preferences": "\u9996\u9009\u9879", -"Yes": "\u662f", -"No": "\u5426", -"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15", -"Version": "\u7248\u672c", -"Code view": "\u4ee3\u7801\u89c6\u56fe", -"Open popup menu for split buttons": "\u6253\u5f00\u5f39\u51fa\u5f0f\u83dc\u5355\uff0c\u7528\u4e8e\u62c6\u5206\u6309\u94ae", -"List Properties": "\u5217\u8868\u5c5e\u6027", -"List properties...": "\u6807\u9898\u5b57\u4f53\u5c5e\u6027", -"Start list at number": "\u4ee5\u6570\u5b57\u5f00\u59cb\u5217\u8868", -"Line height": "\u884c\u9ad8", -"comments": "\u5907\u6ce8", -"Format Painter": "\u683c\u5f0f\u5237", -"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6", -"Capitalization": "\u5927\u5199", -"lowercase": "\u5c0f\u5199", -"UPPERCASE": "\u5927\u5199", -"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199", -"permanent pen": "\u8bb0\u53f7\u7b14", -"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027", -"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...", -"case change": "\u6848\u4f8b\u66f4\u6539", -"page embed": "\u9875\u9762\u5d4c\u5165", -"Advanced sort...": "\u9ad8\u7ea7\u6392\u5e8f...", -"Advanced Sort": "\u9ad8\u7ea7\u6392\u5e8f", -"Sort table by column ascending": "\u6309\u5217\u5347\u5e8f\u8868", -"Sort table by column descending": "\u6309\u5217\u964d\u5e8f\u8868", -"Sort": "\u6392\u5e8f", -"Order": "\u6392\u5e8f", -"Sort by": "\u6392\u5e8f\u65b9\u5f0f", -"Ascending": "\u5347\u5e8f", -"Descending": "\u964d\u5e8f", -"Column {0}": "\u5217{0}", -"Row {0}": "\u884c{0}", -"Spellcheck...": "\u62fc\u5199\u68c0\u67e5...", -"Misspelled word": "\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd", -"Suggestions": "\u5efa\u8bae", -"Change": "\u66f4\u6539", -"Finding word suggestions": "\u67e5\u627e\u5355\u8bcd\u5efa\u8bae", -"Success": "\u6210\u529f", -"Repair": "\u4fee\u590d", -"Issue {0} of {1}": "\u5171\u8ba1{1}\u95ee\u9898{0}", -"Images must be marked as decorative or have an alternative text description": "\u56fe\u50cf\u5fc5\u987b\u6807\u8bb0\u4e3a\u88c5\u9970\u6027\u6216\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0", -"Images must have an alternative text description. Decorative images are not allowed.": "\u56fe\u50cf\u5fc5\u987b\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0\u3002\u4e0d\u5141\u8bb8\u4f7f\u7528\u88c5\u9970\u56fe\u50cf\u3002", -"Or provide alternative text:": "\u6216\u63d0\u4f9b\u5907\u9009\u6587\u672c\uff1a", -"Make image decorative:": "\u4f7f\u56fe\u50cf\u88c5\u9970\uff1a", -"ID attribute must be unique": "ID \u5c5e\u6027\u5fc5\u987b\u662f\u552f\u4e00\u7684", -"Make ID unique": "\u4f7f ID \u72ec\u4e00\u65e0\u4e8c", -"Keep this ID and remove all others": "\u4fdd\u7559\u6b64 ID \u5e76\u5220\u9664\u6240\u6709\u5176\u4ed6", -"Remove this ID": "\u5220\u9664\u6b64 ID", -"Remove all IDs": "\u6e05\u9664\u5168\u90e8IDs", -"Checklist": "\u6e05\u5355", -"Anchor": "\u951a\u70b9", -"Special character": "\u7279\u6b8a\u7b26\u53f7", -"Code sample": "\u4ee3\u7801\u793a\u4f8b", -"Color": "\u989c\u8272", -"Document properties": "\u6587\u6863\u5c5e\u6027", -"Image description": "\u56fe\u7247\u63cf\u8ff0", -"Image": "\u56fe\u7247", -"Insert link": "\u63d2\u5165\u94fe\u63a5", -"Target": "\u6253\u5f00\u65b9\u5f0f", -"Link": "\u94fe\u63a5", -"Poster": "\u5c01\u9762", -"Media": "\u5a92\u4f53", -"Print": "\u6253\u5370", -"Prev": "\u4e0a\u4e00\u4e2a", -"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", -"Whole words": "\u5168\u5b57\u5339\u914d", -"Insert template": "\u63d2\u5165\u6a21\u677f" -}); \ No newline at end of file diff --git a/dict/admin/public/tinymce/langs/zh_TW.js b/dict/admin/public/tinymce/langs/zh_TW.js deleted file mode 100644 index 1987486..0000000 --- a/dict/admin/public/tinymce/langs/zh_TW.js +++ /dev/null @@ -1,419 +0,0 @@ -tinymce.addI18n('zh_TW',{ -"Redo": "\u91cd\u505a", -"Undo": "\u64a4\u92b7", -"Cut": "\u526a\u4e0b", -"Copy": "\u8907\u88fd", -"Paste": "\u8cbc\u4e0a", -"Select all": "\u5168\u9078", -"New document": "\u65b0\u6587\u4ef6", -"Ok": "\u78ba\u5b9a", -"Cancel": "\u53d6\u6d88", -"Visual aids": "\u5c0f\u5e6b\u624b", -"Bold": "\u7c97\u9ad4", -"Italic": "\u659c\u9ad4", -"Underline": "\u4e0b\u5283\u7dda", -"Strikethrough": "\u522a\u9664\u7dda", -"Superscript": "\u4e0a\u6a19", -"Subscript": "\u4e0b\u6a19", -"Clear formatting": "\u6e05\u9664\u683c\u5f0f", -"Align left": "\u5de6\u908a\u5c0d\u9f4a", -"Align center": "\u4e2d\u9593\u5c0d\u9f4a", -"Align right": "\u53f3\u908a\u5c0d\u9f4a", -"Justify": "\u5de6\u53f3\u5c0d\u9f4a", -"Bullet list": "\u9805\u76ee\u6e05\u55ae", -"Numbered list": "\u6578\u5b57\u6e05\u55ae", -"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392", -"Increase indent": "\u589e\u52a0\u7e2e\u6392", -"Close": "\u95dc\u9589", -"Formats": "\u683c\u5f0f", -"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u60a8\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5feb\u901f\u9375 Ctrl + X\/C\/V \u4ee3\u66ff\u526a\u4e0b\u3001\u8907\u88fd\u8207\u8cbc\u4e0a\u3002", -"Headers": "\u6a19\u984c", -"Header 1": "\u6a19\u984c 1", -"Header 2": "\u6a19\u984c 2", -"Header 3": "\u6a19\u984c 3", -"Header 4": "\u6a19\u984c 4", -"Header 5": "\u6a19\u984c 5", -"Header 6": "\u6a19\u984c 6", -"Headings": "\u6a19\u984c", -"Heading 1": "\u6a19\u984c1", -"Heading 2": "\u6a19\u984c2", -"Heading 3": "\u6a19\u984c3", -"Heading 4": "\u6a19\u984c4", -"Heading 5": "\u6a19\u984c5", -"Heading 6": "\u6a19\u984c6", -"Preformatted": "\u9810\u5148\u683c\u5f0f\u5316\u7684", -"Div": "Div", -"Pre": "Pre", -"Code": "\u4ee3\u78bc", -"Paragraph": "\u6bb5\u843d", -"Blockquote": "\u5f15\u6587\u5340\u584a", -"Inline": "\u5167\u806f", -"Blocks": "\u57fa\u584a", -"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u76ee\u524d\u5c07\u4ee5\u7d14\u6587\u5b57\u7684\u6a21\u5f0f\u8cbc\u4e0a\uff0c\u60a8\u53ef\u4ee5\u518d\u9ede\u9078\u4e00\u6b21\u53d6\u6d88\u3002", -"Fonts": "\u5b57\u578b", -"Font Sizes": "\u5b57\u578b\u5927\u5c0f", -"Class": "\u985e\u578b", -"Browse for an image": "\u5f9e\u5716\u7247\u4e2d\u700f\u89bd", -"OR": "\u6216", -"Drop an image here": "\u62d6\u66f3\u5716\u7247\u81f3\u6b64", -"Upload": "\u4e0a\u50b3", -"Block": "\u5340\u584a", -"Align": "\u5c0d\u9f4a", -"Default": "\u9810\u8a2d", -"Circle": "\u7a7a\u5fc3\u5713", -"Disc": "\u5be6\u5fc3\u5713", -"Square": "\u6b63\u65b9\u5f62", -"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd", -"Lower Greek": "\u5e0c\u81d8\u5b57\u6bcd", -"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57", -"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd", -"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57", -"Anchor...": "\u9328\u9ede...", -"Name": "\u540d\u7a31", -"Id": "Id", -"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id\u61c9\u4ee5\u5b57\u6bcd\u958b\u982d\uff0c\u5f8c\u9762\u63a5\u8457\u5b57\u6bcd\uff0c\u6578\u5b57\uff0c\u7834\u6298\u865f\uff0c\u9ede\u6578\uff0c\u5192\u865f\u6216\u4e0b\u5283\u7dda\u3002", -"You have unsaved changes are you sure you want to navigate away?": "\u7de8\u8f2f\u5c1a\u672a\u88ab\u5132\u5b58\uff0c\u4f60\u78ba\u5b9a\u8981\u96e2\u958b\uff1f", -"Restore last draft": "\u8f09\u5165\u4e0a\u4e00\u6b21\u7de8\u8f2f\u7684\u8349\u7a3f", -"Special character...": "\u7279\u6b8a\u5b57\u5143......", -"Source code": "\u539f\u59cb\u78bc", -"Insert\/Edit code sample": "\u63d2\u5165\/\u7de8\u8f2f \u7a0b\u5f0f\u78bc\u7bc4\u4f8b", -"Language": "\u8a9e\u8a00", -"Code sample...": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b...", -"Color Picker": "\u9078\u8272\u5668", -"R": "\u7d05", -"G": "\u7da0", -"B": "\u85cd", -"Left to right": "\u5f9e\u5de6\u5230\u53f3", -"Right to left": "\u5f9e\u53f3\u5230\u5de6", -"Emoticons...": "\u8868\u60c5\u7b26\u865f\u2026", -"Metadata and Document Properties": "\u5f8c\u8a2d\u8cc7\u6599\u8207\u6587\u4ef6\u5c6c\u6027", -"Title": "\u6a19\u984c", -"Keywords": "\u95dc\u9375\u5b57", -"Description": "\u63cf\u8ff0", -"Robots": "\u6a5f\u5668\u4eba", -"Author": "\u4f5c\u8005", -"Encoding": "\u7de8\u78bc", -"Fullscreen": "\u5168\u87a2\u5e55", -"Action": "\u52d5\u4f5c", -"Shortcut": "\u5feb\u901f\u9375", -"Help": "\u5e6b\u52a9", -"Address": "\u5730\u5740", -"Focus to menubar": "\u8df3\u81f3\u9078\u55ae\u5217", -"Focus to toolbar": "\u8df3\u81f3\u5de5\u5177\u5217", -"Focus to element path": "\u8df3\u81f3HTML\u5143\u7d20\u5217", -"Focus to contextual toolbar": "\u8df3\u81f3\u5feb\u6377\u9078\u55ae", -"Insert link (if link plugin activated)": "\u65b0\u589e\u6377\u5f91 (\u6377\u5f91\u5916\u639b\u555f\u7528\u6642)", -"Save (if save plugin activated)": "\u5132\u5b58 (\u5132\u5b58\u5916\u639b\u555f\u7528\u6642)", -"Find (if searchreplace plugin activated)": "\u5c0b\u627e (\u5c0b\u627e\u53d6\u4ee3\u5916\u639b\u555f\u7528\u6642)", -"Plugins installed ({0}):": "({0}) \u500b\u5916\u639b\u5df2\u5b89\u88dd\uff1a", -"Premium plugins:": "\u52a0\u503c\u5916\u639b\uff1a", -"Learn more...": "\u4e86\u89e3\u66f4\u591a...", -"You are using {0}": "\u60a8\u6b63\u5728\u4f7f\u7528 {0}", -"Plugins": "\u5916\u639b", -"Handy Shortcuts": "\u5feb\u901f\u9375", -"Horizontal line": "\u6c34\u5e73\u7dda", -"Insert\/edit image": "\u63d2\u5165\/\u7de8\u8f2f \u5716\u7247", -"Image description": "\u5716\u7247\u63cf\u8ff0", -"Source": "\u5716\u7247\u7db2\u5740", -"Dimensions": "\u5c3a\u5bf8", -"Constrain proportions": "\u7b49\u6bd4\u4f8b\u7e2e\u653e", -"General": "\u4e00\u822c", -"Advanced": "\u9032\u968e", -"Style": "\u6a23\u5f0f", -"Vertical space": "\u9ad8\u5ea6", -"Horizontal space": "\u5bec\u5ea6", -"Border": "\u908a\u6846", -"Insert image": "\u63d2\u5165\u5716\u7247", -"Image...": "\u5716\u7247......", -"Image list": "\u5716\u7247\u6e05\u55ae", -"Rotate counterclockwise": "\u9006\u6642\u91dd\u65cb\u8f49", -"Rotate clockwise": "\u9806\u6642\u91dd\u65cb\u8f49", -"Flip vertically": "\u5782\u76f4\u7ffb\u8f49", -"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f49", -"Edit image": "\u7de8\u8f2f\u5716\u7247", -"Image options": "\u5716\u7247\u9078\u9805", -"Zoom in": "\u653e\u5927", -"Zoom out": "\u7e2e\u5c0f", -"Crop": "\u88c1\u526a", -"Resize": "\u8abf\u6574\u5927\u5c0f", -"Orientation": "\u65b9\u5411", -"Brightness": "\u4eae\u5ea6", -"Sharpen": "\u92b3\u5316", -"Contrast": "\u5c0d\u6bd4", -"Color levels": "\u984f\u8272\u5c64\u6b21", -"Gamma": "\u4f3d\u99ac\u503c", -"Invert": "\u53cd\u8f49", -"Apply": "\u61c9\u7528", -"Back": "\u5f8c\u9000", -"Insert date\/time": "\u63d2\u5165 \u65e5\u671f\/\u6642\u9593", -"Date\/time": "\u65e5\u671f\/\u6642\u9593", -"Insert\/Edit Link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50", -"Insert\/edit link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50", -"Text to display": "\u986f\u793a\u6587\u5b57", -"Url": "\u7db2\u5740", -"Open link in...": "\u958b\u555f\u9023\u7d50\u65bc...", -"Current window": "\u76ee\u524d\u8996\u7a97", -"None": "\u7121", -"New window": "\u53e6\u958b\u8996\u7a97", -"Remove link": "\u79fb\u9664\u9023\u7d50", -"Anchors": "\u52a0\u5165\u9328\u9ede", -"Link...": "\u9023\u7d50...", -"Paste or type a link": "\u8cbc\u4e0a\u6216\u8f38\u5165\u9023\u7d50", -"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u70ba\u96fb\u5b50\u90f5\u4ef6\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7db4\u55ce\uff1f", -"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u5c6c\u65bc\u5916\u90e8\u93c8\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7db4\u55ce\uff1f", -"Link list": "\u9023\u7d50\u6e05\u55ae", -"Insert video": "\u63d2\u5165\u5f71\u97f3", -"Insert\/edit video": "\u63d2\u4ef6\/\u7de8\u8f2f \u5f71\u97f3", -"Insert\/edit media": "\u63d2\u5165\/\u7de8\u8f2f \u5a92\u9ad4", -"Alternative source": "\u66ff\u4ee3\u5f71\u97f3", -"Alternative source URL": "\u66ff\u4ee3\u4f86\u6e90URL", -"Media poster (Image URL)": "\u5a92\u9ad4\u6d77\u5831\uff08\u5f71\u50cfImage URL\uff09", -"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u9762:", -"Embed": "\u5d4c\u5165\u78bc", -"Media...": "\u5a92\u9ad4...", -"Nonbreaking space": "\u4e0d\u5206\u884c\u7684\u7a7a\u683c", -"Page break": "\u5206\u9801", -"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a", -"Preview": "\u9810\u89bd", -"Print...": "\u5217\u5370...", -"Save": "\u5132\u5b58", -"Find": "\u641c\u5c0b", -"Replace with": "\u66f4\u63db", -"Replace": "\u66ff\u63db", -"Replace all": "\u66ff\u63db\u5168\u90e8", -"Previous": "\u4e0a\u4e00\u500b", -"Next": "\u4e0b\u4e00\u500b", -"Find and replace...": "\u5c0b\u627e\u53ca\u53d6\u4ee3...", -"Could not find the specified string.": "\u7121\u6cd5\u67e5\u8a62\u5230\u6b64\u7279\u5b9a\u5b57\u4e32", -"Match case": "\u76f8\u5339\u914d\u6848\u4ef6", -"Find whole words only": "\u50c5\u627e\u51fa\u5b8c\u6574\u5b57\u532f", -"Spell check": "\u62fc\u5beb\u6aa2\u67e5", -"Ignore": "\u5ffd\u7565", -"Ignore all": "\u5ffd\u7565\u6240\u6709", -"Finish": "\u5b8c\u6210", -"Add to Dictionary": "\u52a0\u5165\u5b57\u5178\u4e2d", -"Insert table": "\u63d2\u5165\u8868\u683c", -"Table properties": "\u8868\u683c\u5c6c\u6027", -"Delete table": "\u522a\u9664\u8868\u683c", -"Cell": "\u5132\u5b58\u683c", -"Row": "\u5217", -"Column": "\u884c", -"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027", -"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c", -"Split cell": "\u5206\u5272\u5132\u5b58\u683c", -"Insert row before": "\u63d2\u5165\u5217\u5728...\u4e4b\u524d", -"Insert row after": "\u63d2\u5165\u5217\u5728...\u4e4b\u5f8c", -"Delete row": "\u522a\u9664\u5217", -"Row properties": "\u5217\u5c6c\u6027", -"Cut row": "\u526a\u4e0b\u5217", -"Copy row": "\u8907\u88fd\u5217", -"Paste row before": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u524d", -"Paste row after": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u5f8c", -"Insert column before": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u524d", -"Insert column after": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u5f8c", -"Delete column": "\u522a\u9664\u884c", -"Cols": "\u6b04\u4f4d\u6bb5", -"Rows": "\u5217", -"Width": "\u5bec\u5ea6", -"Height": "\u9ad8\u5ea6", -"Cell spacing": "\u5132\u5b58\u683c\u5f97\u9593\u8ddd", -"Cell padding": "\u5132\u5b58\u683c\u7684\u908a\u8ddd", -"Show caption": "\u986f\u793a\u6a19\u984c", -"Left": "\u5de6\u908a", -"Center": "\u4e2d\u9593", -"Right": "\u53f3\u908a", -"Cell type": "\u5132\u5b58\u683c\u7684\u985e\u578b", -"Scope": "\u7bc4\u570d", -"Alignment": "\u5c0d\u9f4a", -"H Align": "\u6c34\u5e73\u4f4d\u7f6e", -"V Align": "\u5782\u76f4\u4f4d\u7f6e", -"Top": "\u7f6e\u9802", -"Middle": "\u7f6e\u4e2d", -"Bottom": "\u7f6e\u5e95", -"Header cell": "\u6a19\u982d\u5132\u5b58\u683c", -"Row group": "\u5217\u7fa4\u7d44", -"Column group": "\u6b04\u4f4d\u7fa4\u7d44", -"Row type": "\u884c\u7684\u985e\u578b", -"Header": "\u6a19\u982d", -"Body": "\u4e3b\u9ad4", -"Footer": "\u9801\u5c3e", -"Border color": "\u908a\u6846\u984f\u8272", -"Insert template...": "\u63d2\u5165\u6a23\u7248...", -"Templates": "\u6a23\u7248", -"Template": "\u6a23\u677f", -"Text color": "\u6587\u5b57\u984f\u8272", -"Background color": "\u80cc\u666f\u984f\u8272", -"Custom...": "\u81ea\u8a02", -"Custom color": "\u81ea\u8a02\u984f\u8272", -"No color": "No color", -"Remove color": "\u79fb\u9664\u984f\u8272", -"Table of Contents": "\u76ee\u9304", -"Show blocks": "\u986f\u793a\u5340\u584a\u8cc7\u8a0a", -"Show invisible characters": "\u986f\u793a\u96b1\u85cf\u5b57\u5143", -"Word count": "\u8a08\u7b97\u5b57\u6578", -"Count": "\u8a08\u7b97", -"Document": "\u6587\u4ef6", -"Selection": "\u9078\u9805", -"Words": "\u5b57\u6578", -"Words: {0}": "\u5b57\u6578\uff1a{0}", -"{0} words": "{0} \u5b57\u5143", -"File": "\u6a94\u6848", -"Edit": "\u7de8\u8f2f", -"Insert": "\u63d2\u5165", -"View": "\u6aa2\u8996", -"Format": "\u683c\u5f0f", -"Table": "\u8868\u683c", -"Tools": "\u5de5\u5177", -"Powered by {0}": "\u7531 {0} \u63d0\u4f9b", -"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u8c50\u5bcc\u7684\u6587\u672c\u5340\u57df\u3002\u6309ALT-F9\u524d\u5f80\u4e3b\u9078\u55ae\u3002\u6309ALT-F10\u547c\u53eb\u5de5\u5177\u6b04\u3002\u6309ALT-0\u5c0b\u6c42\u5e6b\u52a9", -"Image title": "\u5716\u7247\u6a19\u984c", -"Border width": "\u6846\u7dda\u5bec\u5ea6", -"Border style": "\u6846\u7dda\u6a23\u5f0f", -"Error": "\u932f\u8aa4", -"Warn": "\u8b66\u544a", -"Valid": "\u6709\u6548", -"To open the popup, press Shift+Enter": "\u8981\u958b\u555f\u5f48\u51fa\u8996\u7a97\uff0c\u8acb\u6309Shift+Enter", -"Rich Text Area. Press ALT-0 for help.": "\u5bcc\u6587\u672c\u5340\u57df\u3002\u8acb\u6309ALT-0\u5c0b\u6c42\u5354\u52a9\u3002", -"System Font": "\u7cfb\u7d71\u5b57\u578b", -"Failed to upload image: {0}": "\u7121\u6cd5\u4e0a\u50b3\u5f71\u50cf\uff1a{0}", -"Failed to load plugin: {0} from url {1}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}\u81eaurl{1}", -"Failed to load plugin url: {0}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}", -"Failed to initialize plugin: {0}": "\u7121\u6cd5\u555f\u52d5\u63d2\u4ef6\uff1a{0}", -"example": "\u7bc4\u4f8b", -"Search": "\u641c\u7d22", -"All": "\u5168\u90e8", -"Currency": "\u8ca8\u5e63", -"Text": "\u6587\u672c", -"Quotations": "\u5f15\u7528", -"Mathematical": "\u6578\u5b78", -"Extended Latin": "\u62c9\u4e01\u5b57\u6bcd\u64f4\u5145", -"Symbols": "\u7b26\u865f", -"Arrows": "\u7bad\u982d", -"User Defined": "\u4f7f\u7528\u8005\u5df2\u5b9a\u7fa9", -"dollar sign": "\u7f8e\u5143\u7b26\u865f", -"currency sign": "\u8ca8\u5e63\u7b26\u865f", -"euro-currency sign": "\u6b50\u5143\u7b26\u865f", -"colon sign": "\u79d1\u6717\u7b26\u865f", -"cruzeiro sign": "\u514b\u9b6f\u8cfd\u7f85\u7b26\u865f", -"french franc sign": "\u6cd5\u6717\u7b26\u865f", -"lira sign": "\u91cc\u62c9\u7b26\u865f", -"mill sign": "\u6587\u7b26\u865f", -"naira sign": "\u5948\u62c9\u7b26\u865f", -"peseta sign": "\u6bd4\u585e\u5854\u7b26\u865f", -"rupee sign": "\u76e7\u6bd4\u7b26\u865f", -"won sign": "\u97d3\u571c\u7b26\u865f", -"new sheqel sign": "\u65b0\u8b1d\u514b\u723e\u7b26\u865f", -"dong sign": "\u8d8a\u5357\u76fe\u7b26\u865f", -"kip sign": "\u8001\u64be\u5e63\u7b26\u865f", -"tugrik sign": "\u8499\u53e4\u5e63\u7b26\u865f", -"drachma sign": "\u5fb7\u514b\u62c9\u99ac\u7b26\u865f", -"german penny symbol": "\u5fb7\u570b\u5206\u7b26\u865f", -"peso sign": "\u62ab\u7d22\u7b26\u865f", -"guarani sign": "\u5df4\u62c9\u572d\u5e63\u7b26\u865f", -"austral sign": "\u963f\u6839\u5ef7\u5e63\u7b26\u865f", -"hryvnia sign": "\u70cf\u514b\u862d\u5e63\u7b26\u865f", -"cedi sign": "\u8fe6\u7d0d\u5e63\u7b26\u865f", -"livre tournois sign": "\u91cc\u5f17\u723e\u7b26\u865f", -"spesmilo sign": "\u570b\u969b\u5e63\u7b26\u865f", -"tenge sign": "\u54c8\u85a9\u514b\u5e63\u7b26\u865f", -"indian rupee sign": "\u5370\u5ea6\u76e7\u6bd4\u7b26\u865f", -"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9\u7b26\u865f", -"nordic mark sign": "\u5317\u6b50\u99ac\u514b\u7b26\u865f", -"manat sign": "\u4e9e\u585e\u62dc\u7136\u5e63\u7b26\u865f", -"ruble sign": "\u76e7\u5e03\u7b26\u865f", -"yen character": "\u65e5\u5713\u7b26\u865f", -"yuan character": "\u4eba\u6c11\u5e63\u7b26\u865f", -"yuan character, in hong kong and taiwan": "\u6e2f\u5143\u8207\u53f0\u5e63\u7b26\u865f", -"yen\/yuan character variant one": "\u65e5\u5713\/\u4eba\u6c11\u5e63\u7b26\u865f\u8b8a\u5316\u578b", -"Loading emoticons...": "\u8f09\u5165\u8868\u60c5\u7b26\u865f\u2026", -"Could not load emoticons": "\u7121\u6cd5\u8f09\u5165\u8868\u60c5\u7b26\u865f", -"People": "\u4eba", -"Animals and Nature": "\u52d5\u7269\u8207\u81ea\u7136", -"Food and Drink": "\u98f2\u98df", -"Activity": "\u6d3b\u52d5", -"Travel and Places": "\u65c5\u884c\u8207\u5730\u9ede", -"Objects": "\u7269\u4ef6", -"Flags": "\u65d7\u6a19", -"Characters": "\u5b57\u5143", -"Characters (no spaces)": "\u5b57\u5143\uff08\u7121\u7a7a\u683c\uff09", -"{0} characters": "{0}\u5b57\u5143", -"Error: Form submit field collision.": "\u932f\u8aa4\uff1a\u8868\u683c\u905e\u4ea4\u6b04\u4f4d\u885d\u7a81\u3002", -"Error: No form element found.": "\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u8868\u683c\u5143\u7d20\u3002", -"Update": "\u66f4\u65b0", -"Color swatch": "\u8272\u5f69\u6a23\u672c", -"Turquoise": "\u571f\u8033\u5176\u85cd", -"Green": "\u7da0\u8272", -"Blue": "\u85cd\u8272", -"Purple": "\u7d2b\u8272", -"Navy Blue": "\u6df1\u85cd\u8272", -"Dark Turquoise": "\u6df1\u571f\u8033\u5176\u85cd", -"Dark Green": "\u6df1\u7da0\u8272", -"Medium Blue": "\u4e2d\u85cd\u8272", -"Medium Purple": "\u4e2d\u7d2b\u8272", -"Midnight Blue": "\u9ed1\u85cd\u8272", -"Yellow": "\u9ec3\u8272", -"Orange": "\u6a59\u8272", -"Red": "\u7d05\u8272", -"Light Gray": "\u6dfa\u7070\u8272", -"Gray": "\u7070\u8272", -"Dark Yellow": "\u6df1\u9ec3\u8272", -"Dark Orange": "\u6df1\u6a59\u8272", -"Dark Red": "\u6697\u7d05\u8272", -"Medium Gray": "\u4e2d\u7070\u8272", -"Dark Gray": "\u6df1\u7070\u8272", -"Light Green": "\u6de1\u7da0\u8272", -"Light Yellow": "\u6dfa\u9ec3\u8272", -"Light Red": "\u6dfa\u7d05\u8272", -"Light Purple": "\u6dfa\u7d2b\u8272", -"Light Blue": "\u6dfa\u85cd\u8272", -"Dark Purple": "\u6df1\u7d2b\u8272", -"Dark Blue": "\u6df1\u85cd\u8272", -"Black": "\u9ed1\u8272", -"White": "\u767d\u8272", -"Switch to or from fullscreen mode": "\u8f49\u63db\u81ea\/\u81f3\u5168\u87a2\u5e55\u6a21\u5f0f", -"Open help dialog": "\u958b\u555f\u5354\u52a9\u5c0d\u8a71", -"history": "\u6b77\u53f2", -"styles": "\u6a23\u5f0f", -"formatting": "\u683c\u5f0f", -"alignment": "\u5c0d\u9f4a", -"indentation": "\u7e2e\u6392", -"permanent pen": "\u6c38\u4e45\u6027\u7b46", -"comments": "\u8a3b\u89e3", -"Format Painter": "\u8907\u88fd\u683c\u5f0f", -"Insert\/edit iframe": "\u63d2\u5165\/\u7de8\u8f2fiframe", -"Capitalization": "\u5927\u5beb", -"lowercase": "\u5c0f\u5beb", -"UPPERCASE": "\u5927\u5beb", -"Title Case": "\u5b57\u9996\u5927\u5beb", -"Permanent Pen Properties": "\u6c38\u4e45\u6a19\u8a18\u5c6c\u6027", -"Permanent pen properties...": "\u6c38\u4e45\u6a19\u8a18\u5c6c\u6027......", -"Font": "\u5b57\u578b", -"Size": "\u5b57\u5f62\u5927\u5c0f", -"More...": "\u66f4\u591a\u8cc7\u8a0a......", -"Spellcheck Language": "\u62fc\u5beb\u8a9e\u8a00", -"Select...": "\u9078\u64c7......", -"Preferences": "\u9996\u9078\u9805", -"Yes": "\u662f", -"No": "\u5426", -"Keyboard Navigation": "\u9375\u76e4\u5c0e\u822a", -"Version": "\u7248\u672c", -"Anchor": "\u52a0\u5165\u9328\u9ede", -"Special character": "\u7279\u6b8a\u5b57\u5143", -"Code sample": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b", -"Color": "\u984f\u8272", -"Emoticons": "\u8868\u60c5", -"Document properties": "\u6587\u4ef6\u7684\u5c6c\u6027", -"Image": "\u5716\u7247", -"Insert link": "\u63d2\u5165\u9023\u7d50", -"Target": "\u958b\u555f\u65b9\u5f0f", -"Link": "\u9023\u7d50", -"Poster": "\u9810\u89bd\u5716\u7247", -"Media": "\u5a92\u9ad4", -"Print": "\u5217\u5370", -"Prev": "\u4e0a\u4e00\u500b", -"Find and replace": "\u5c0b\u627e\u53ca\u53d6\u4ee3", -"Whole words": "\u6574\u500b\u55ae\u5b57", -"Spellcheck": "\u62fc\u5b57\u6aa2\u67e5", -"Caption": "\u8868\u683c\u6a19\u984c", -"Insert template": "\u63d2\u5165\u6a23\u7248" -}); \ No newline at end of file diff --git a/dict/admin/public/tinymce/skins/content/dark/content.css b/dict/admin/public/tinymce/skins/content/dark/content.css deleted file mode 100644 index bae7923..0000000 --- a/dict/admin/public/tinymce/skins/content/dark/content.css +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body { - background-color: #2f3742; - color: #dfe0e4; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - line-height: 1.4; - margin: 1rem; -} -a { - color: #4099ff; -} -table { - border-collapse: collapse; -} -/* Apply a default padding if legacy cellpadding attribute is missing */ -table:not([cellpadding]) th, -table:not([cellpadding]) td { - padding: 0.4rem; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-width"]) th, -table[border]:not([border="0"]):not([style*="border-width"]) td { - border-width: 1px; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-style"]) th, -table[border]:not([border="0"]):not([style*="border-style"]) td { - border-style: solid; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-color"]) th, -table[border]:not([border="0"]):not([style*="border-color"]) td { - border-color: #6d737b; -} -figure { - display: table; - margin: 1rem auto; -} -figure figcaption { - color: #8a8f97; - display: block; - margin-top: 0.25rem; - text-align: center; -} -hr { - border-color: #6d737b; - border-style: solid; - border-width: 1px 0 0 0; -} -code { - background-color: #6d737b; - border-radius: 3px; - padding: 0.1rem 0.2rem; -} -.mce-content-body:not([dir=rtl]) blockquote { - border-left: 2px solid #6d737b; - margin-left: 1.5rem; - padding-left: 1rem; -} -.mce-content-body[dir=rtl] blockquote { - border-right: 2px solid #6d737b; - margin-right: 1.5rem; - padding-right: 1rem; -} diff --git a/dict/admin/public/tinymce/skins/content/dark/content.min.css b/dict/admin/public/tinymce/skins/content/dark/content.min.css deleted file mode 100644 index 07d40c2..0000000 --- a/dict/admin/public/tinymce/skins/content/dark/content.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem} diff --git a/dict/admin/public/tinymce/skins/content/default/content.css b/dict/admin/public/tinymce/skins/content/default/content.css deleted file mode 100644 index 40dca50..0000000 --- a/dict/admin/public/tinymce/skins/content/default/content.css +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - line-height: 1.4; -} -table { - border-collapse: collapse; -} -/* Apply a default padding if legacy cellpadding attribute is missing */ -table:not([cellpadding]) th, -table:not([cellpadding]) td { - padding: 0.4rem; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-width"]) th, -table[border]:not([border="0"]):not([style*="border-width"]) td { - border-width: 1px; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-style"]) th, -table[border]:not([border="0"]):not([style*="border-style"]) td { - border-style: solid; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-color"]) th, -table[border]:not([border="0"]):not([style*="border-color"]) td { - border-color: #ccc; -} -figure { - display: table; - margin: 1rem auto; -} -figure figcaption { - color: #999; - display: block; - margin-top: 0.25rem; - text-align: center; -} -hr { - border-color: #ccc; - border-style: solid; - border-width: 1px 0 0 0; -} -code { - background-color: #e8e8e8; - border-radius: 3px; - padding: 0.1rem 0.2rem; -} -.mce-content-body:not([dir=rtl]) blockquote { - border-left: 2px solid #ccc; - margin-left: 1.5rem; - padding-left: 1rem; -} -.mce-content-body[dir=rtl] blockquote { - border-right: 2px solid #ccc; - margin-right: 1.5rem; - padding-right: 1rem; -} diff --git a/dict/admin/public/tinymce/skins/content/default/content.min.css b/dict/admin/public/tinymce/skins/content/default/content.min.css deleted file mode 100644 index a462f67..0000000 --- a/dict/admin/public/tinymce/skins/content/default/content.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/dict/admin/public/tinymce/skins/content/document/content.css b/dict/admin/public/tinymce/skins/content/document/content.css deleted file mode 100644 index 75f637a..0000000 --- a/dict/admin/public/tinymce/skins/content/document/content.css +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -@media screen { - html { - background: #f4f4f4; - min-height: 100%; - } -} -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; -} -@media screen { - body { - background-color: #fff; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.15); - box-sizing: border-box; - margin: 1rem auto 0; - max-width: 820px; - min-height: calc(100vh - 1rem); - padding: 4rem 6rem 6rem 6rem; - } -} -table { - border-collapse: collapse; -} -/* Apply a default padding if legacy cellpadding attribute is missing */ -table:not([cellpadding]) th, -table:not([cellpadding]) td { - padding: 0.4rem; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-width"]) th, -table[border]:not([border="0"]):not([style*="border-width"]) td { - border-width: 1px; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-style"]) th, -table[border]:not([border="0"]):not([style*="border-style"]) td { - border-style: solid; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-color"]) th, -table[border]:not([border="0"]):not([style*="border-color"]) td { - border-color: #ccc; -} -figure figcaption { - color: #999; - margin-top: 0.25rem; - text-align: center; -} -hr { - border-color: #ccc; - border-style: solid; - border-width: 1px 0 0 0; -} -.mce-content-body:not([dir=rtl]) blockquote { - border-left: 2px solid #ccc; - margin-left: 1.5rem; - padding-left: 1rem; -} -.mce-content-body[dir=rtl] blockquote { - border-right: 2px solid #ccc; - margin-right: 1.5rem; - padding-right: 1rem; -} diff --git a/dict/admin/public/tinymce/skins/content/document/content.min.css b/dict/admin/public/tinymce/skins/content/document/content.min.css deleted file mode 100644 index a1feef4..0000000 --- a/dict/admin/public/tinymce/skins/content/document/content.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/dict/admin/public/tinymce/skins/content/writer/content.css b/dict/admin/public/tinymce/skins/content/writer/content.css deleted file mode 100644 index ceee359..0000000 --- a/dict/admin/public/tinymce/skins/content/writer/content.css +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - line-height: 1.4; - margin: 1rem auto; - max-width: 900px; -} -table { - border-collapse: collapse; -} -/* Apply a default padding if legacy cellpadding attribute is missing */ -table:not([cellpadding]) th, -table:not([cellpadding]) td { - padding: 0.4rem; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-width"]) th, -table[border]:not([border="0"]):not([style*="border-width"]) td { - border-width: 1px; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-style"]) th, -table[border]:not([border="0"]):not([style*="border-style"]) td { - border-style: solid; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-color"]) th, -table[border]:not([border="0"]):not([style*="border-color"]) td { - border-color: #ccc; -} -figure { - display: table; - margin: 1rem auto; -} -figure figcaption { - color: #999; - display: block; - margin-top: 0.25rem; - text-align: center; -} -hr { - border-color: #ccc; - border-style: solid; - border-width: 1px 0 0 0; -} -code { - background-color: #e8e8e8; - border-radius: 3px; - padding: 0.1rem 0.2rem; -} -.mce-content-body:not([dir=rtl]) blockquote { - border-left: 2px solid #ccc; - margin-left: 1.5rem; - padding-left: 1rem; -} -.mce-content-body[dir=rtl] blockquote { - border-right: 2px solid #ccc; - margin-right: 1.5rem; - padding-right: 1rem; -} diff --git a/dict/admin/public/tinymce/skins/content/writer/content.min.css b/dict/admin/public/tinymce/skins/content/writer/content.min.css deleted file mode 100644 index 0d8f5d3..0000000 --- a/dict/admin/public/tinymce/skins/content/writer/content.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/content.css deleted file mode 100644 index 9c0e3a8..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.css +++ /dev/null @@ -1,714 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - cursor: default; - display: inline-block; - height: 12px !important; - padding: 0 2px; - -webkit-user-modify: read-only; - -moz-user-modify: read-only; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: all; - user-select: all; - width: 8px !important; -} -.mce-content-body .mce-item-anchor[data-mce-selected] { - outline-offset: 1px; -} -.tox-comments-visible .tox-comment { - background-color: #fff0b7; -} -.tox-comments-visible .tox-comment--active { - background-color: #ffe168; -} -.tox-checklist > li:not(.tox-checklist--hidden) { - list-style: none; - margin: 0.25em 0; -} -.tox-checklist > li:not(.tox-checklist--hidden)::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); - cursor: pointer; - height: 1em; - margin-left: -1.5em; - margin-top: 0.125em; - position: absolute; - width: 1em; -} -.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); -} -[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { - margin-left: 0; - margin-right: -1.5em; -} -/* stylelint-disable */ -/* http://prismjs.com/ */ -/** - * Dracula Theme originally by Zeno Rocha [@zenorocha] - * https://draculatheme.com/ - * - * Ported for PrismJS by Albert Vallverdu [@byverdu] - */ -code[class*="language-"], -pre[class*="language-"] { - color: #f8f8f2; - background: none; - text-shadow: 0 1px rgba(0, 0, 0, 0.3); - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - -moz-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; - border-radius: 0.3em; -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #282a36; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #6272a4; -} -.token.punctuation { - color: #f8f8f2; -} -.namespace { - opacity: 0.7; -} -.token.property, -.token.tag, -.token.constant, -.token.symbol, -.token.deleted { - color: #ff79c6; -} -.token.boolean, -.token.number { - color: #bd93f9; -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #50fa7b; -} -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string, -.token.variable { - color: #f8f8f2; -} -.token.atrule, -.token.attr-value, -.token.function, -.token.class-name { - color: #f1fa8c; -} -.token.keyword { - color: #8be9fd; -} -.token.regex, -.token.important { - color: #ffb86c; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* stylelint-enable */ -.mce-content-body { - overflow-wrap: break-word; - word-wrap: break-word; -} -.mce-content-body .mce-visual-caret { - background-color: black; - background-color: currentColor; - position: absolute; -} -.mce-content-body .mce-visual-caret-hidden { - display: none; -} -.mce-content-body *[data-mce-caret] { - left: -1000px; - margin: 0; - padding: 0; - position: absolute; - right: auto; - top: 0; -} -.mce-content-body .mce-offscreen-selection { - left: -2000000px; - max-width: 1000000px; - position: absolute; -} -.mce-content-body *[contentEditable=false] { - cursor: default; -} -.mce-content-body *[contentEditable=true] { - cursor: text; -} -.tox-cursor-format-painter { - cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; -} -.mce-content-body figure.align-left { - float: left; -} -.mce-content-body figure.align-right { - float: right; -} -.mce-content-body figure.image.align-center { - display: table; - margin-left: auto; - margin-right: auto; -} -.mce-preview-object { - border: 1px solid gray; - display: inline-block; - line-height: 0; - margin: 0 2px 0 2px; - position: relative; -} -.mce-preview-object .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-preview-object[data-mce-selected="2"] .mce-shim { - display: none; -} -.mce-object { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - border: 1px dashed #aaa; -} -.mce-pagebreak { - border: 1px dashed #aaa; - cursor: default; - display: block; - height: 5px; - margin-top: 15px; - page-break-before: always; - width: 100%; -} -@media print { - .mce-pagebreak { - border: 0; - } -} -.tiny-pageembed .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tiny-pageembed[data-mce-selected="2"] .mce-shim { - display: none; -} -.tiny-pageembed { - display: inline-block; - position: relative; -} -.tiny-pageembed--21by9, -.tiny-pageembed--16by9, -.tiny-pageembed--4by3, -.tiny-pageembed--1by1 { - display: block; - overflow: hidden; - padding: 0; - position: relative; - width: 100%; -} -.tiny-pageembed--21by9 { - padding-top: 42.857143%; -} -.tiny-pageembed--16by9 { - padding-top: 56.25%; -} -.tiny-pageembed--4by3 { - padding-top: 75%; -} -.tiny-pageembed--1by1 { - padding-top: 100%; -} -.tiny-pageembed--21by9 iframe, -.tiny-pageembed--16by9 iframe, -.tiny-pageembed--4by3 iframe, -.tiny-pageembed--1by1 iframe { - border: 0; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-content-body[data-mce-placeholder] { - position: relative; -} -.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { - color: rgba(34, 47, 62, 0.7); - content: attr(data-mce-placeholder); - position: absolute; -} -.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { - left: 1px; -} -.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { - right: 1px; -} -.mce-content-body div.mce-resizehandle { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - height: 10px; - position: absolute; - width: 10px; - z-index: 1298; -} -.mce-content-body div.mce-resizehandle:hover { - background-color: #4099ff; -} -.mce-content-body div.mce-resizehandle:nth-of-type(1) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(2) { - cursor: nesw-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(3) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(4) { - cursor: nesw-resize; -} -.mce-content-body .mce-resize-backdrop { - z-index: 10000; -} -.mce-content-body .mce-clonedresizable { - cursor: default; - opacity: 0.5; - outline: 1px dashed black; - position: absolute; - z-index: 10001; -} -.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, -.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { - border: 0; -} -.mce-content-body .mce-resize-helper { - background: #555; - background: rgba(0, 0, 0, 0.75); - border: 1px; - border-radius: 3px; - color: white; - display: none; - font-family: sans-serif; - font-size: 12px; - line-height: 14px; - margin: 5px 10px; - padding: 5px; - position: absolute; - white-space: nowrap; - z-index: 10002; -} -.tox-rtc-user-selection { - position: relative; -} -.tox-rtc-user-cursor { - bottom: 0; - cursor: default; - position: absolute; - top: 0; - width: 2px; -} -.tox-rtc-user-cursor::before { - background-color: inherit; - border-radius: 50%; - content: ''; - display: block; - height: 8px; - position: absolute; - right: -3px; - top: -3px; - width: 8px; -} -.tox-rtc-user-cursor:hover::after { - background-color: inherit; - border-radius: 100px; - box-sizing: border-box; - color: #fff; - content: attr(data-user); - display: block; - font-size: 12px; - font-weight: bold; - left: -5px; - min-height: 8px; - min-width: 8px; - padding: 0 12px; - position: absolute; - top: -11px; - white-space: nowrap; - z-index: 1000; -} -.tox-rtc-user-selection--1 .tox-rtc-user-cursor { - background-color: #2dc26b; -} -.tox-rtc-user-selection--2 .tox-rtc-user-cursor { - background-color: #e03e2d; -} -.tox-rtc-user-selection--3 .tox-rtc-user-cursor { - background-color: #f1c40f; -} -.tox-rtc-user-selection--4 .tox-rtc-user-cursor { - background-color: #3598db; -} -.tox-rtc-user-selection--5 .tox-rtc-user-cursor { - background-color: #b96ad9; -} -.tox-rtc-user-selection--6 .tox-rtc-user-cursor { - background-color: #e67e23; -} -.tox-rtc-user-selection--7 .tox-rtc-user-cursor { - background-color: #aaa69d; -} -.tox-rtc-user-selection--8 .tox-rtc-user-cursor { - background-color: #f368e0; -} -.tox-rtc-remote-image { - background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; - border: 1px solid #ccc; - min-height: 240px; - min-width: 320px; -} -.mce-match-marker { - background: #aaa; - color: #fff; -} -.mce-match-marker-selected { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::-moz-selection { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::selection { - background: #39f; - color: #fff; -} -.mce-content-body img[data-mce-selected], -.mce-content-body video[data-mce-selected], -.mce-content-body audio[data-mce-selected], -.mce-content-body object[data-mce-selected], -.mce-content-body embed[data-mce-selected], -.mce-content-body table[data-mce-selected] { - outline: 3px solid #4099ff; -} -.mce-content-body hr[data-mce-selected] { - outline: 3px solid #4099ff; - outline-offset: 1px; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { - outline: 3px solid #4099ff; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { - outline: 3px solid #4099ff; -} -.mce-content-body *[contentEditable=false][data-mce-selected] { - cursor: not-allowed; - outline: 3px solid #4099ff; -} -.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, -.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { - outline: none; -} -.mce-content-body *[data-mce-selected="inline-boundary"] { - background-color: #4099ff; -} -.mce-content-body .mce-edit-focus { - outline: 3px solid #4099ff; -} -.mce-content-body td[data-mce-selected], -.mce-content-body th[data-mce-selected] { - position: relative; -} -.mce-content-body td[data-mce-selected]::-moz-selection, -.mce-content-body th[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body td[data-mce-selected]::selection, -.mce-content-body th[data-mce-selected]::selection { - background: none; -} -.mce-content-body td[data-mce-selected] *, -.mce-content-body th[data-mce-selected] * { - outline: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mce-content-body td[data-mce-selected]::after, -.mce-content-body th[data-mce-selected]::after { - background-color: rgba(180, 215, 255, 0.7); - border: 1px solid transparent; - bottom: -1px; - content: ''; - left: -1px; - mix-blend-mode: lighten; - position: absolute; - right: -1px; - top: -1px; -} -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .mce-content-body td[data-mce-selected]::after, - .mce-content-body th[data-mce-selected]::after { - border-color: rgba(0, 84, 180, 0.7); - } -} -.mce-content-body img::-moz-selection { - background: none; -} -.mce-content-body img::selection { - background: none; -} -.ephox-snooker-resizer-bar { - background-color: #4099ff; - opacity: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.ephox-snooker-resizer-cols { - cursor: col-resize; -} -.ephox-snooker-resizer-rows { - cursor: row-resize; -} -.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { - opacity: 1; -} -.mce-spellchecker-word { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; - height: 2rem; -} -.mce-spellchecker-grammar { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; -} -.mce-toc { - border: 1px solid gray; -} -.mce-toc h2 { - margin: 4px; -} -.mce-toc li { - list-style-type: none; -} -table[style*="border-width: 0px"], -.mce-item-table:not([border]), -.mce-item-table[border="0"], -table[style*="border-width: 0px"] td, -.mce-item-table:not([border]) td, -.mce-item-table[border="0"] td, -table[style*="border-width: 0px"] th, -.mce-item-table:not([border]) th, -.mce-item-table[border="0"] th, -table[style*="border-width: 0px"] caption, -.mce-item-table:not([border]) caption, -.mce-item-table[border="0"] caption { - border: 1px dashed #bbb; -} -.mce-visualblocks p, -.mce-visualblocks h1, -.mce-visualblocks h2, -.mce-visualblocks h3, -.mce-visualblocks h4, -.mce-visualblocks h5, -.mce-visualblocks h6, -.mce-visualblocks div:not([data-mce-bogus]), -.mce-visualblocks section, -.mce-visualblocks article, -.mce-visualblocks blockquote, -.mce-visualblocks address, -.mce-visualblocks pre, -.mce-visualblocks figure, -.mce-visualblocks figcaption, -.mce-visualblocks hgroup, -.mce-visualblocks aside, -.mce-visualblocks ul, -.mce-visualblocks ol, -.mce-visualblocks dl { - background-repeat: no-repeat; - border: 1px dashed #bbb; - margin-left: 3px; - padding-top: 10px; -} -.mce-visualblocks p { - background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} -.mce-visualblocks h1 { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} -.mce-visualblocks h2 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} -.mce-visualblocks h3 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} -.mce-visualblocks h4 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} -.mce-visualblocks h5 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} -.mce-visualblocks h6 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} -.mce-visualblocks div:not([data-mce-bogus]) { - background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} -.mce-visualblocks section { - background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} -.mce-visualblocks article { - background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} -.mce-visualblocks blockquote { - background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} -.mce-visualblocks address { - background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} -.mce-visualblocks pre { - background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} -.mce-visualblocks figure { - background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} -.mce-visualblocks figcaption { - border: 1px dashed #bbb; -} -.mce-visualblocks hgroup { - background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} -.mce-visualblocks aside { - background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} -.mce-visualblocks ul { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); -} -.mce-visualblocks ol { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} -.mce-visualblocks dl { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); -} -.mce-visualblocks:not([dir=rtl]) p, -.mce-visualblocks:not([dir=rtl]) h1, -.mce-visualblocks:not([dir=rtl]) h2, -.mce-visualblocks:not([dir=rtl]) h3, -.mce-visualblocks:not([dir=rtl]) h4, -.mce-visualblocks:not([dir=rtl]) h5, -.mce-visualblocks:not([dir=rtl]) h6, -.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), -.mce-visualblocks:not([dir=rtl]) section, -.mce-visualblocks:not([dir=rtl]) article, -.mce-visualblocks:not([dir=rtl]) blockquote, -.mce-visualblocks:not([dir=rtl]) address, -.mce-visualblocks:not([dir=rtl]) pre, -.mce-visualblocks:not([dir=rtl]) figure, -.mce-visualblocks:not([dir=rtl]) figcaption, -.mce-visualblocks:not([dir=rtl]) hgroup, -.mce-visualblocks:not([dir=rtl]) aside, -.mce-visualblocks:not([dir=rtl]) ul, -.mce-visualblocks:not([dir=rtl]) ol, -.mce-visualblocks:not([dir=rtl]) dl { - margin-left: 3px; -} -.mce-visualblocks[dir=rtl] p, -.mce-visualblocks[dir=rtl] h1, -.mce-visualblocks[dir=rtl] h2, -.mce-visualblocks[dir=rtl] h3, -.mce-visualblocks[dir=rtl] h4, -.mce-visualblocks[dir=rtl] h5, -.mce-visualblocks[dir=rtl] h6, -.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), -.mce-visualblocks[dir=rtl] section, -.mce-visualblocks[dir=rtl] article, -.mce-visualblocks[dir=rtl] blockquote, -.mce-visualblocks[dir=rtl] address, -.mce-visualblocks[dir=rtl] pre, -.mce-visualblocks[dir=rtl] figure, -.mce-visualblocks[dir=rtl] figcaption, -.mce-visualblocks[dir=rtl] hgroup, -.mce-visualblocks[dir=rtl] aside, -.mce-visualblocks[dir=rtl] ul, -.mce-visualblocks[dir=rtl] ol, -.mce-visualblocks[dir=rtl] dl { - background-position-x: right; - margin-right: 3px; -} -.mce-nbsp, -.mce-shy { - background: #aaa; -} -.mce-shy::after { - content: '-'; -} -body { - font-family: sans-serif; -} -table { - border-collapse: collapse; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.css deleted file mode 100644 index 8e7521d..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.css +++ /dev/null @@ -1,726 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - cursor: default; - display: inline-block; - height: 12px !important; - padding: 0 2px; - -webkit-user-modify: read-only; - -moz-user-modify: read-only; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: all; - user-select: all; - width: 8px !important; -} -.mce-content-body .mce-item-anchor[data-mce-selected] { - outline-offset: 1px; -} -.tox-comments-visible .tox-comment { - background-color: #fff0b7; -} -.tox-comments-visible .tox-comment--active { - background-color: #ffe168; -} -.tox-checklist > li:not(.tox-checklist--hidden) { - list-style: none; - margin: 0.25em 0; -} -.tox-checklist > li:not(.tox-checklist--hidden)::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); - cursor: pointer; - height: 1em; - margin-left: -1.5em; - margin-top: 0.125em; - position: absolute; - width: 1em; -} -.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); -} -[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { - margin-left: 0; - margin-right: -1.5em; -} -/* stylelint-disable */ -/* http://prismjs.com/ */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ -code[class*="language-"], -pre[class*="language-"] { - color: black; - background: none; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: 1em; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - -moz-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} -pre[class*="language-"]::-moz-selection, -pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} -pre[class*="language-"]::selection, -pre[class*="language-"] ::selection, -code[class*="language-"]::selection, -code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} -.token.punctuation { - color: #999; -} -.namespace { - opacity: 0.7; -} -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #9a6e3a; - background: hsla(0, 0%, 100%, 0.5); -} -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} -.token.function, -.token.class-name { - color: #DD4A68; -} -.token.regex, -.token.important, -.token.variable { - color: #e90; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* stylelint-enable */ -.mce-content-body { - overflow-wrap: break-word; - word-wrap: break-word; -} -.mce-content-body .mce-visual-caret { - background-color: black; - background-color: currentColor; - position: absolute; -} -.mce-content-body .mce-visual-caret-hidden { - display: none; -} -.mce-content-body *[data-mce-caret] { - left: -1000px; - margin: 0; - padding: 0; - position: absolute; - right: auto; - top: 0; -} -.mce-content-body .mce-offscreen-selection { - left: -2000000px; - max-width: 1000000px; - position: absolute; -} -.mce-content-body *[contentEditable=false] { - cursor: default; -} -.mce-content-body *[contentEditable=true] { - cursor: text; -} -.tox-cursor-format-painter { - cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; -} -.mce-content-body figure.align-left { - float: left; -} -.mce-content-body figure.align-right { - float: right; -} -.mce-content-body figure.image.align-center { - display: table; - margin-left: auto; - margin-right: auto; -} -.mce-preview-object { - border: 1px solid gray; - display: inline-block; - line-height: 0; - margin: 0 2px 0 2px; - position: relative; -} -.mce-preview-object .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-preview-object[data-mce-selected="2"] .mce-shim { - display: none; -} -.mce-object { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - border: 1px dashed #aaa; -} -.mce-pagebreak { - border: 1px dashed #aaa; - cursor: default; - display: block; - height: 5px; - margin-top: 15px; - page-break-before: always; - width: 100%; -} -@media print { - .mce-pagebreak { - border: 0; - } -} -.tiny-pageembed .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tiny-pageembed[data-mce-selected="2"] .mce-shim { - display: none; -} -.tiny-pageembed { - display: inline-block; - position: relative; -} -.tiny-pageembed--21by9, -.tiny-pageembed--16by9, -.tiny-pageembed--4by3, -.tiny-pageembed--1by1 { - display: block; - overflow: hidden; - padding: 0; - position: relative; - width: 100%; -} -.tiny-pageembed--21by9 { - padding-top: 42.857143%; -} -.tiny-pageembed--16by9 { - padding-top: 56.25%; -} -.tiny-pageembed--4by3 { - padding-top: 75%; -} -.tiny-pageembed--1by1 { - padding-top: 100%; -} -.tiny-pageembed--21by9 iframe, -.tiny-pageembed--16by9 iframe, -.tiny-pageembed--4by3 iframe, -.tiny-pageembed--1by1 iframe { - border: 0; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-content-body[data-mce-placeholder] { - position: relative; -} -.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { - color: rgba(34, 47, 62, 0.7); - content: attr(data-mce-placeholder); - position: absolute; -} -.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { - left: 1px; -} -.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { - right: 1px; -} -.mce-content-body div.mce-resizehandle { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - height: 10px; - position: absolute; - width: 10px; - z-index: 1298; -} -.mce-content-body div.mce-resizehandle:hover { - background-color: #4099ff; -} -.mce-content-body div.mce-resizehandle:nth-of-type(1) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(2) { - cursor: nesw-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(3) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(4) { - cursor: nesw-resize; -} -.mce-content-body .mce-resize-backdrop { - z-index: 10000; -} -.mce-content-body .mce-clonedresizable { - cursor: default; - opacity: 0.5; - outline: 1px dashed black; - position: absolute; - z-index: 10001; -} -.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, -.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { - border: 0; -} -.mce-content-body .mce-resize-helper { - background: #555; - background: rgba(0, 0, 0, 0.75); - border: 1px; - border-radius: 3px; - color: white; - display: none; - font-family: sans-serif; - font-size: 12px; - line-height: 14px; - margin: 5px 10px; - padding: 5px; - position: absolute; - white-space: nowrap; - z-index: 10002; -} -.tox-rtc-user-selection { - position: relative; -} -.tox-rtc-user-cursor { - bottom: 0; - cursor: default; - position: absolute; - top: 0; - width: 2px; -} -.tox-rtc-user-cursor::before { - background-color: inherit; - border-radius: 50%; - content: ''; - display: block; - height: 8px; - position: absolute; - right: -3px; - top: -3px; - width: 8px; -} -.tox-rtc-user-cursor:hover::after { - background-color: inherit; - border-radius: 100px; - box-sizing: border-box; - color: #fff; - content: attr(data-user); - display: block; - font-size: 12px; - font-weight: bold; - left: -5px; - min-height: 8px; - min-width: 8px; - padding: 0 12px; - position: absolute; - top: -11px; - white-space: nowrap; - z-index: 1000; -} -.tox-rtc-user-selection--1 .tox-rtc-user-cursor { - background-color: #2dc26b; -} -.tox-rtc-user-selection--2 .tox-rtc-user-cursor { - background-color: #e03e2d; -} -.tox-rtc-user-selection--3 .tox-rtc-user-cursor { - background-color: #f1c40f; -} -.tox-rtc-user-selection--4 .tox-rtc-user-cursor { - background-color: #3598db; -} -.tox-rtc-user-selection--5 .tox-rtc-user-cursor { - background-color: #b96ad9; -} -.tox-rtc-user-selection--6 .tox-rtc-user-cursor { - background-color: #e67e23; -} -.tox-rtc-user-selection--7 .tox-rtc-user-cursor { - background-color: #aaa69d; -} -.tox-rtc-user-selection--8 .tox-rtc-user-cursor { - background-color: #f368e0; -} -.tox-rtc-remote-image { - background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; - border: 1px solid #ccc; - min-height: 240px; - min-width: 320px; -} -.mce-match-marker { - background: #aaa; - color: #fff; -} -.mce-match-marker-selected { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::-moz-selection { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::selection { - background: #39f; - color: #fff; -} -.mce-content-body img[data-mce-selected], -.mce-content-body video[data-mce-selected], -.mce-content-body audio[data-mce-selected], -.mce-content-body object[data-mce-selected], -.mce-content-body embed[data-mce-selected], -.mce-content-body table[data-mce-selected] { - outline: 3px solid #b4d7ff; -} -.mce-content-body hr[data-mce-selected] { - outline: 3px solid #b4d7ff; - outline-offset: 1px; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false][data-mce-selected] { - cursor: not-allowed; - outline: 3px solid #b4d7ff; -} -.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, -.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { - outline: none; -} -.mce-content-body *[data-mce-selected="inline-boundary"] { - background-color: #b4d7ff; -} -.mce-content-body .mce-edit-focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body td[data-mce-selected], -.mce-content-body th[data-mce-selected] { - position: relative; -} -.mce-content-body td[data-mce-selected]::-moz-selection, -.mce-content-body th[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body td[data-mce-selected]::selection, -.mce-content-body th[data-mce-selected]::selection { - background: none; -} -.mce-content-body td[data-mce-selected] *, -.mce-content-body th[data-mce-selected] * { - outline: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mce-content-body td[data-mce-selected]::after, -.mce-content-body th[data-mce-selected]::after { - background-color: rgba(180, 215, 255, 0.7); - border: 1px solid rgba(180, 215, 255, 0.7); - bottom: -1px; - content: ''; - left: -1px; - mix-blend-mode: multiply; - position: absolute; - right: -1px; - top: -1px; -} -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .mce-content-body td[data-mce-selected]::after, - .mce-content-body th[data-mce-selected]::after { - border-color: rgba(0, 84, 180, 0.7); - } -} -.mce-content-body img::-moz-selection { - background: none; -} -.mce-content-body img::selection { - background: none; -} -.ephox-snooker-resizer-bar { - background-color: #b4d7ff; - opacity: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.ephox-snooker-resizer-cols { - cursor: col-resize; -} -.ephox-snooker-resizer-rows { - cursor: row-resize; -} -.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { - opacity: 1; -} -.mce-spellchecker-word { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; - height: 2rem; -} -.mce-spellchecker-grammar { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; -} -.mce-toc { - border: 1px solid gray; -} -.mce-toc h2 { - margin: 4px; -} -.mce-toc li { - list-style-type: none; -} -table[style*="border-width: 0px"], -.mce-item-table:not([border]), -.mce-item-table[border="0"], -table[style*="border-width: 0px"] td, -.mce-item-table:not([border]) td, -.mce-item-table[border="0"] td, -table[style*="border-width: 0px"] th, -.mce-item-table:not([border]) th, -.mce-item-table[border="0"] th, -table[style*="border-width: 0px"] caption, -.mce-item-table:not([border]) caption, -.mce-item-table[border="0"] caption { - border: 1px dashed #bbb; -} -.mce-visualblocks p, -.mce-visualblocks h1, -.mce-visualblocks h2, -.mce-visualblocks h3, -.mce-visualblocks h4, -.mce-visualblocks h5, -.mce-visualblocks h6, -.mce-visualblocks div:not([data-mce-bogus]), -.mce-visualblocks section, -.mce-visualblocks article, -.mce-visualblocks blockquote, -.mce-visualblocks address, -.mce-visualblocks pre, -.mce-visualblocks figure, -.mce-visualblocks figcaption, -.mce-visualblocks hgroup, -.mce-visualblocks aside, -.mce-visualblocks ul, -.mce-visualblocks ol, -.mce-visualblocks dl { - background-repeat: no-repeat; - border: 1px dashed #bbb; - margin-left: 3px; - padding-top: 10px; -} -.mce-visualblocks p { - background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} -.mce-visualblocks h1 { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} -.mce-visualblocks h2 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} -.mce-visualblocks h3 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} -.mce-visualblocks h4 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} -.mce-visualblocks h5 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} -.mce-visualblocks h6 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} -.mce-visualblocks div:not([data-mce-bogus]) { - background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} -.mce-visualblocks section { - background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} -.mce-visualblocks article { - background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} -.mce-visualblocks blockquote { - background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} -.mce-visualblocks address { - background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} -.mce-visualblocks pre { - background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} -.mce-visualblocks figure { - background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} -.mce-visualblocks figcaption { - border: 1px dashed #bbb; -} -.mce-visualblocks hgroup { - background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} -.mce-visualblocks aside { - background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} -.mce-visualblocks ul { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); -} -.mce-visualblocks ol { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} -.mce-visualblocks dl { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); -} -.mce-visualblocks:not([dir=rtl]) p, -.mce-visualblocks:not([dir=rtl]) h1, -.mce-visualblocks:not([dir=rtl]) h2, -.mce-visualblocks:not([dir=rtl]) h3, -.mce-visualblocks:not([dir=rtl]) h4, -.mce-visualblocks:not([dir=rtl]) h5, -.mce-visualblocks:not([dir=rtl]) h6, -.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), -.mce-visualblocks:not([dir=rtl]) section, -.mce-visualblocks:not([dir=rtl]) article, -.mce-visualblocks:not([dir=rtl]) blockquote, -.mce-visualblocks:not([dir=rtl]) address, -.mce-visualblocks:not([dir=rtl]) pre, -.mce-visualblocks:not([dir=rtl]) figure, -.mce-visualblocks:not([dir=rtl]) figcaption, -.mce-visualblocks:not([dir=rtl]) hgroup, -.mce-visualblocks:not([dir=rtl]) aside, -.mce-visualblocks:not([dir=rtl]) ul, -.mce-visualblocks:not([dir=rtl]) ol, -.mce-visualblocks:not([dir=rtl]) dl { - margin-left: 3px; -} -.mce-visualblocks[dir=rtl] p, -.mce-visualblocks[dir=rtl] h1, -.mce-visualblocks[dir=rtl] h2, -.mce-visualblocks[dir=rtl] h3, -.mce-visualblocks[dir=rtl] h4, -.mce-visualblocks[dir=rtl] h5, -.mce-visualblocks[dir=rtl] h6, -.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), -.mce-visualblocks[dir=rtl] section, -.mce-visualblocks[dir=rtl] article, -.mce-visualblocks[dir=rtl] blockquote, -.mce-visualblocks[dir=rtl] address, -.mce-visualblocks[dir=rtl] pre, -.mce-visualblocks[dir=rtl] figure, -.mce-visualblocks[dir=rtl] figcaption, -.mce-visualblocks[dir=rtl] hgroup, -.mce-visualblocks[dir=rtl] aside, -.mce-visualblocks[dir=rtl] ul, -.mce-visualblocks[dir=rtl] ol, -.mce-visualblocks[dir=rtl] dl { - background-position-x: right; - margin-right: 3px; -} -.mce-nbsp, -.mce-shy { - background: #aaa; -} -.mce-shy::after { - content: '-'; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.min.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.min.css deleted file mode 100644 index b4ab9a3..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.min.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/content.min.css deleted file mode 100644 index e27b8a0..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6272a4}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#50fa7b}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#f1fa8c}.token.keyword{color:#8be9fd}.token.important,.token.regex{color:#ffb86c}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #4099ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #4099ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #4099ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #4099ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #4099ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#4099ff}.mce-content-body .mce-edit-focus{outline:3px solid #4099ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid transparent;bottom:-1px;content:'';left:-1px;mix-blend-mode:lighten;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#4099ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.css deleted file mode 100644 index 4bdb8ba..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.css +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { - /* Note: this file is used inside the content, so isn't part of theming */ - background-color: green; - display: inline-block; - opacity: 0.5; - position: absolute; -} -body { - -webkit-text-size-adjust: none; -} -body img { - /* this is related to the content margin */ - max-width: 96vw; -} -body table img { - max-width: 95%; -} -body { - font-family: sans-serif; -} -table { - border-collapse: collapse; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css deleted file mode 100644 index 35f7dc0..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff b/dict/admin/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff deleted file mode 100644 index 1e3be038a607cb7c2544ed8ae3d6621f77bf4c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4624 zcmb7IeQaFC5#QN&AGUL{efE7g{=BM1W-|RaVdWQe^e?BC`eGz4^i8S3PQw?Hhd_eQHxTkckXZB zdzU((wCVGko!Qyh+1c6InRotvZ%+>+hNrBQtrFOI4t*}DZ$7=>Sr=uD3c$ZlKuKBQ z8~ervCczs9SOk2!>AAqrz+v$CC}f1JfYPDSqx->|V$6{ekbe8M#Bh3Gkg?)-Fdi3B zeB$}UFqn*$pv&q7*net~hsUOlfG7Ho2zaowY%JPRytMvu{&xRPm(h_~w##F>vqE&a5-ssH##mlfAk}44^ zXRJKd!Ifw&ce{$Y9BAg5c>e>p_Z;t!=P{izddGWie?aHLdKL3Cn9rG=d2vt;esWqH zoD}uAoi3Z~4+LABvADt+so4~t%VlyIJ{O3tm$NC+(!yenQD%NVr*btG$T3+_WX=LH z#1M2ZNEtrO+-x;l2i>M^5o%GQ@s?N+gw*19H@G~vl3Q5Zf*t6jjW0GOTmAmlWYgSS zJeiEo%~LA-FW|YAd_Em$OE#@dw)y*#@p!UtnWa);V1HY3ZBw!>(3gY{iFFa_c6iW9 zIQ@xck^{xu9_o;UyQH#ba@y?L$xW?8J35?$p1z46ZjIctZ8QCKCa29bMC1-t@pT>S zTUT1WMjQz-75d)5zJxv~@Yd)bY)ejQBx_XQiaMJ z>$5`NO3?L*ND{UQeF8%xl)$_>w9tmQpfEebzedazFeh#~d}suN+vzsqLiW~@TLhoe zk1%xEcxP2ZL)FuoXeYzb-J5goljDxPL2@@#RW)d&X#&6QO5U=04_628@ONSvtgpha zDqqmoVep`A4<+PK$V>K+T}}{8Rj+Q|UAzCtl!Fh)uXJg{x$}HMJH7LcBLzj-r{h;< zzote8Id%pcAyE;87D<8glyaFeq#k)OEDB%yA ze%CeZ!?4TEs#pj+%14DBZHn8jxaF2as6}p3+!6p-&@I>5lbP3&N$svcIF-`0R5(o2 zh7la++|;-euckH44a4BAwB++#-cZ z)kFyC=eUS-4D0t}H8LdZY!JD^sW@F85io)%=8HU)ouhEeo-K_dJ3BV+8fo0JXIjlP zZt0H`0=Yv~I|PpRZ)r5_iAYmY9V=wT@BsoN9<3vftB|}TOH;|yNk_e7(2-?y{&cSK zG=E5Nz^Ko4>KxcbY!Q13!=HBS$lM96_+0y3M1yWTAt2u5C;6MWMXbRN?RI{$eHnAx z&t=-PSjZ>Qe2V2-YGs1YWemAq zVHdG{9V$QvsY~Cgq-L*PZqMPGv|px$)K~3<%+fBtG{oIRPL_7ye$-(`C=tS)^xC}% zue73qiF&{nXJ*>-@668G!`IrAeB;ad09shzt{O?7omLE_X@H|#ozGt&64 zb-&_lLkZI8TzigPZvUr=4g2-8M6M8b9EQLgoPswYg)d)j&%gZHJO!2>(?;I*8d>aG z#oS295Kcq{uD4R2@VEG($}WWiF-6YK)kjqks%o_U{CIAVX2;tX7o|unkew5?Gn3(| zOePS^{$(;Xi4ph;`KO#;k+vaLt8n5@doi+OEvH&?*+3(WgqkT9-$b0fTHm;)r=NmR zJnJ9o>UvNR(JMoIdRBf{%kd}jmZ)b)#4>dnDfq0G(?~S%d zv50QeMR$Kzd*S$AEXdp5Fhqe0Pz zZ!oS2e!i-tWEJ2^YoVo}V7S0tV7CujimbVJtVNb#yB&<-f&xpSb@m2=wBZ|qU-_^; z?C{lk+;tlxk&Sh3Pwh(D7~kNh`O=~TMWuRUu^0=9)`CYEVwhvGWUt4Wd3`6*H)Zs>LLYQcC#*~B78EfTt7RQ*l)b{v zqntLNsC`h&zZCY{x*}gfPU4at;nfileU3>zeyLdO7;;lFIft~ zsm6#wb5Jjtv;_VxleU0<%cQON-O*ywHt`@C4fn-Y83}=|hJPOpN>1H%C#7)9etg_yG)$ div { - padding-bottom: 4px; -} -.tox .accessibility-issue__description > div > div { - align-items: center; - display: flex; - margin-bottom: 4px; -} -.tox .accessibility-issue__description > *:last-child:not(:only-child) { - border-color: #000000; - border-style: solid; -} -.tox .accessibility-issue__repair { - margin-top: 16px; -} -.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { - background-color: rgba(32, 122, 183, 0.5); - border-color: #207ab7; - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { - border-color: #207ab7; -} -.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { - fill: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { - background-color: rgba(255, 165, 0, 0.5); - border-color: rgba(255, 165, 0, 0.8); - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { - border-color: rgba(255, 165, 0, 0.8); -} -.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { - fill: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { - background-color: rgba(204, 0, 0, 0.5); - border-color: rgba(204, 0, 0, 0.8); - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { - border-color: rgba(204, 0, 0, 0.8); -} -.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { - fill: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { - background-color: rgba(120, 171, 70, 0.5); - border-color: rgba(120, 171, 70, 0.8); - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { - border-color: rgba(120, 171, 70, 0.8); -} -.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { - fill: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue__header h1, -.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { - margin-top: 0; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { - margin-left: auto; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { - padding: 4px 4px 4px 8px; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { - border-left-width: 1px; - padding-left: 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { - margin-right: 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { - margin-right: auto; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { - padding: 4px 8px 4px 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { - border-right-width: 1px; - padding-right: 4px; -} -.tox .tox-anchorbar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-bar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-button { - background-color: #207ab7; - background-image: none; - background-position: 0 0; - background-repeat: repeat; - border-color: #207ab7; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #fff; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 14px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - line-height: 24px; - margin: 0; - outline: none; - padding: 4px 16px; - text-align: center; - text-decoration: none; - text-transform: none; - white-space: nowrap; -} -.tox .tox-button[disabled] { - background-color: #207ab7; - background-image: none; - border-color: #207ab7; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-button:focus:not(:disabled) { - background-color: #1c6ca1; - background-image: none; - border-color: #1c6ca1; - box-shadow: none; - color: #fff; -} -.tox .tox-button:hover:not(:disabled) { - background-color: #1c6ca1; - background-image: none; - border-color: #1c6ca1; - box-shadow: none; - color: #fff; -} -.tox .tox-button:active:not(:disabled) { - background-color: #185d8c; - background-image: none; - border-color: #185d8c; - box-shadow: none; - color: #fff; -} -.tox .tox-button--secondary { - background-color: #3d546f; - background-image: none; - background-position: 0 0; - background-repeat: repeat; - border-color: #3d546f; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - color: #fff; - font-size: 14px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - outline: none; - padding: 4px 16px; - text-decoration: none; - text-transform: none; -} -.tox .tox-button--secondary[disabled] { - background-color: #3d546f; - background-image: none; - border-color: #3d546f; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); -} -.tox .tox-button--secondary:focus:not(:disabled) { - background-color: #34485f; - background-image: none; - border-color: #34485f; - box-shadow: none; - color: #fff; -} -.tox .tox-button--secondary:hover:not(:disabled) { - background-color: #34485f; - background-image: none; - border-color: #34485f; - box-shadow: none; - color: #fff; -} -.tox .tox-button--secondary:active:not(:disabled) { - background-color: #2b3b4e; - background-image: none; - border-color: #2b3b4e; - box-shadow: none; - color: #fff; -} -.tox .tox-button--icon, -.tox .tox-button.tox-button--icon, -.tox .tox-button.tox-button--secondary.tox-button--icon { - padding: 4px; -} -.tox .tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { - display: block; - fill: currentColor; -} -.tox .tox-button-link { - background: 0; - border: none; - box-sizing: border-box; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - font-weight: normal; - line-height: 1.3; - margin: 0; - padding: 0; - white-space: nowrap; -} -.tox .tox-button-link--sm { - font-size: 14px; -} -.tox .tox-button--naked { - background-color: transparent; - border-color: transparent; - box-shadow: unset; - color: #fff; -} -.tox .tox-button--naked[disabled] { - background-color: #3d546f; - border-color: #3d546f; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); -} -.tox .tox-button--naked:hover:not(:disabled) { - background-color: #34485f; - border-color: #34485f; - box-shadow: none; - color: #fff; -} -.tox .tox-button--naked:focus:not(:disabled) { - background-color: #34485f; - border-color: #34485f; - box-shadow: none; - color: #fff; -} -.tox .tox-button--naked:active:not(:disabled) { - background-color: #2b3b4e; - border-color: #2b3b4e; - box-shadow: none; - color: #fff; -} -.tox .tox-button--naked .tox-icon svg { - fill: currentColor; -} -.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { - color: #fff; -} -.tox .tox-checkbox { - align-items: center; - border-radius: 3px; - cursor: pointer; - display: flex; - height: 36px; - min-width: 36px; -} -.tox .tox-checkbox__input { - /* Hide from view but visible to screen readers */ - height: 1px; - overflow: hidden; - position: absolute; - top: auto; - width: 1px; -} -.tox .tox-checkbox__icons { - align-items: center; - border-radius: 3px; - box-shadow: 0 0 0 2px transparent; - box-sizing: content-box; - display: flex; - height: 24px; - justify-content: center; - padding: calc(4px - 1px); - width: 24px; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: block; - fill: rgba(255, 255, 255, 0.2); -} -.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: none; - fill: #207ab7; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: none; - fill: #207ab7; -} -.tox .tox-checkbox--disabled { - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: block; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: block; -} -.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { - border-radius: 3px; - box-shadow: inset 0 0 0 1px #207ab7; - padding: calc(4px - 1px); -} -.tox:not([dir=rtl]) .tox-checkbox__label { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-checkbox__input { - left: -10000px; -} -.tox:not([dir=rtl]) .tox-bar .tox-checkbox { - margin-left: 4px; -} -.tox[dir=rtl] .tox-checkbox__label { - margin-right: 4px; -} -.tox[dir=rtl] .tox-checkbox__input { - right: -10000px; -} -.tox[dir=rtl] .tox-bar .tox-checkbox { - margin-right: 4px; -} -.tox { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox .tox-collection--toolbar .tox-collection__group { - display: flex; - padding: 0; -} -.tox .tox-collection--grid .tox-collection__group { - display: flex; - flex-wrap: wrap; - max-height: 208px; - overflow-x: hidden; - overflow-y: auto; - padding: 0; -} -.tox .tox-collection--list .tox-collection__group { - border-bottom-width: 0; - border-color: #1a1a1a; - border-left-width: 0; - border-right-width: 0; - border-style: solid; - border-top-width: 1px; - padding: 4px 0; -} -.tox .tox-collection--list .tox-collection__group:first-child { - border-top-width: 0; -} -.tox .tox-collection__group-heading { - background-color: #333333; - color: #fff; - cursor: default; - font-size: 12px; - font-style: normal; - font-weight: normal; - margin-bottom: 4px; - margin-top: -4px; - padding: 4px 8px; - text-transform: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tox .tox-collection__item { - align-items: center; - color: #fff; - cursor: pointer; - display: flex; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tox .tox-collection--list .tox-collection__item { - padding: 4px 8px; -} -.tox .tox-collection--toolbar .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--grid .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--list .tox-collection__item--enabled { - background-color: #2b3b4e; - color: #fff; -} -.tox .tox-collection--list .tox-collection__item--active { - background-color: #4a5562; -} -.tox .tox-collection--toolbar .tox-collection__item--enabled { - background-color: #757d87; - color: #fff; -} -.tox .tox-collection--toolbar .tox-collection__item--active { - background-color: #4a5562; -} -.tox .tox-collection--grid .tox-collection__item--enabled { - background-color: #757d87; - color: #fff; -} -.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - background-color: #4a5562; - color: #fff; -} -.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - color: #fff; -} -.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - color: #fff; -} -.tox .tox-collection__item-icon, -.tox .tox-collection__item-checkmark { - align-items: center; - display: flex; - height: 24px; - justify-content: center; - width: 24px; -} -.tox .tox-collection__item-icon svg, -.tox .tox-collection__item-checkmark svg { - fill: currentColor; -} -.tox .tox-collection--toolbar-lg .tox-collection__item-icon { - height: 48px; - width: 48px; -} -.tox .tox-collection__item-label { - color: currentColor; - display: inline-block; - flex: 1; - -ms-flex-preferred-size: auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 24px; - text-transform: none; - word-break: break-all; -} -.tox .tox-collection__item-accessory { - color: rgba(255, 255, 255, 0.5); - display: inline-block; - font-size: 14px; - height: 24px; - line-height: 24px; - text-transform: none; -} -.tox .tox-collection__item-caret { - align-items: center; - display: flex; - min-height: 24px; -} -.tox .tox-collection__item-caret::after { - content: ''; - font-size: 0; - min-height: inherit; -} -.tox .tox-collection__item-caret svg { - fill: #fff; -} -.tox .tox-collection__item--state-disabled { - background-color: transparent; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { - display: none; -} -.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { - display: none; -} -.tox .tox-collection--horizontal { - background-color: #2b3b4e; - border: 1px solid #1a1a1a; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: nowrap; - margin-bottom: 0; - overflow-x: auto; - padding: 0; -} -.tox .tox-collection--horizontal .tox-collection__group { - align-items: center; - display: flex; - flex-wrap: nowrap; - margin: 0; - padding: 0 4px; -} -.tox .tox-collection--horizontal .tox-collection__item { - height: 34px; - margin: 2px 0 3px 0; - padding: 0 4px; -} -.tox .tox-collection--horizontal .tox-collection__item-label { - white-space: nowrap; -} -.tox .tox-collection--horizontal .tox-collection__item-caret { - margin-left: 4px; -} -.tox .tox-collection__item-container { - display: flex; -} -.tox .tox-collection__item-container--row { - align-items: center; - flex: 1 1 auto; - flex-direction: row; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { - margin-right: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { - justify-content: flex-end; - margin-left: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { - align-items: flex-start; - margin-bottom: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { - align-items: center; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { - align-items: flex-end; - margin-top: auto; -} -.tox .tox-collection__item-container--column { - -ms-grid-row-align: center; - align-self: center; - flex: 1 1 auto; - flex-direction: column; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { - align-items: flex-start; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { - align-items: flex-end; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { - align-self: flex-start; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { - -ms-grid-row-align: center; - align-self: center; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { - align-self: flex-end; -} -.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { - border-right: 1px solid #000000; -} -.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-collection__item-accessory { - margin-left: 16px; - text-align: right; -} -.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { - margin-left: 16px; -} -.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { - border-left: 1px solid #000000; -} -.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-right: 8px; -} -.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { - margin-right: 4px; -} -.tox[dir=rtl] .tox-collection__item-accessory { - margin-right: 16px; - text-align: left; -} -.tox[dir=rtl] .tox-collection .tox-collection__item-caret { - margin-right: 16px; - transform: rotateY(180deg); -} -.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { - margin-right: 4px; -} -.tox .tox-color-picker-container { - display: flex; - flex-direction: row; - height: 225px; - margin: 0; -} -.tox .tox-sv-palette { - box-sizing: border-box; - display: flex; - height: 100%; -} -.tox .tox-sv-palette-spectrum { - height: 100%; -} -.tox .tox-sv-palette, -.tox .tox-sv-palette-spectrum { - width: 225px; -} -.tox .tox-sv-palette-thumb { - background: none; - border: 1px solid black; - border-radius: 50%; - box-sizing: content-box; - height: 12px; - position: absolute; - width: 12px; -} -.tox .tox-sv-palette-inner-thumb { - border: 1px solid white; - border-radius: 50%; - height: 10px; - position: absolute; - width: 10px; -} -.tox .tox-hue-slider { - box-sizing: border-box; - height: 100%; - width: 25px; -} -.tox .tox-hue-slider-spectrum { - background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); - height: 100%; - width: 100%; -} -.tox .tox-hue-slider, -.tox .tox-hue-slider-spectrum { - width: 20px; -} -.tox .tox-hue-slider-thumb { - background: white; - border: 1px solid black; - box-sizing: content-box; - height: 4px; - width: 100%; -} -.tox .tox-rgb-form { - display: flex; - flex-direction: column; - justify-content: space-between; -} -.tox .tox-rgb-form div { - align-items: center; - display: flex; - justify-content: space-between; - margin-bottom: 5px; - width: inherit; -} -.tox .tox-rgb-form input { - width: 6em; -} -.tox .tox-rgb-form input.tox-invalid { - /* Need !important to override Chrome's focus styling unfortunately */ - border: 1px solid red !important; -} -.tox .tox-rgb-form .tox-rgba-preview { - border: 1px solid black; - flex-grow: 2; - margin-bottom: 0; -} -.tox:not([dir=rtl]) .tox-sv-palette { - margin-right: 15px; -} -.tox:not([dir=rtl]) .tox-hue-slider { - margin-right: 15px; -} -.tox:not([dir=rtl]) .tox-hue-slider-thumb { - margin-left: -1px; -} -.tox:not([dir=rtl]) .tox-rgb-form label { - margin-right: 0.5em; -} -.tox[dir=rtl] .tox-sv-palette { - margin-left: 15px; -} -.tox[dir=rtl] .tox-hue-slider { - margin-left: 15px; -} -.tox[dir=rtl] .tox-hue-slider-thumb { - margin-right: -1px; -} -.tox[dir=rtl] .tox-rgb-form label { - margin-left: 0.5em; -} -.tox .tox-toolbar .tox-swatches, -.tox .tox-toolbar__primary .tox-swatches, -.tox .tox-toolbar__overflow .tox-swatches { - margin: 2px 0 3px 4px; -} -.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { - border: 0; - margin: -4px 0; -} -.tox .tox-swatches__row { - display: flex; -} -.tox .tox-swatch { - height: 30px; - transition: transform 0.15s, box-shadow 0.15s; - width: 30px; -} -.tox .tox-swatch:hover, -.tox .tox-swatch:focus { - box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; - transform: scale(0.8); -} -.tox .tox-swatch--remove { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-swatch--remove svg path { - stroke: #e74c3c; -} -.tox .tox-swatches__picker-btn { - align-items: center; - background-color: transparent; - border: 0; - cursor: pointer; - display: flex; - height: 30px; - justify-content: center; - outline: none; - padding: 0; - width: 30px; -} -.tox .tox-swatches__picker-btn svg { - height: 24px; - width: 24px; -} -.tox .tox-swatches__picker-btn:hover { - background: #4a5562; -} -.tox:not([dir=rtl]) .tox-swatches__picker-btn { - margin-left: auto; -} -.tox[dir=rtl] .tox-swatches__picker-btn { - margin-right: auto; -} -.tox .tox-comment-thread { - background: #2b3b4e; - position: relative; -} -.tox .tox-comment-thread > *:not(:first-child) { - margin-top: 8px; -} -.tox .tox-comment { - background: #2b3b4e; - border: 1px solid #000000; - border-radius: 3px; - box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); - padding: 8px 8px 16px 8px; - position: relative; -} -.tox .tox-comment__header { - align-items: center; - color: #fff; - display: flex; - justify-content: space-between; -} -.tox .tox-comment__date { - color: rgba(255, 255, 255, 0.5); - font-size: 12px; -} -.tox .tox-comment__body { - color: #fff; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin-top: 8px; - position: relative; - text-transform: initial; -} -.tox .tox-comment__body textarea { - resize: none; - white-space: normal; - width: 100%; -} -.tox .tox-comment__expander { - padding-top: 8px; -} -.tox .tox-comment__expander p { - color: rgba(255, 255, 255, 0.5); - font-size: 14px; - font-style: normal; -} -.tox .tox-comment__body p { - margin: 0; -} -.tox .tox-comment__buttonspacing { - padding-top: 16px; - text-align: center; -} -.tox .tox-comment-thread__overlay::after { - background: #2b3b4e; - bottom: 0; - content: ""; - display: flex; - left: 0; - opacity: 0.9; - position: absolute; - right: 0; - top: 0; - z-index: 5; -} -.tox .tox-comment__reply { - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 8px; -} -.tox .tox-comment__reply > *:first-child { - margin-bottom: 8px; - width: 100%; -} -.tox .tox-comment__edit { - display: flex; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 16px; -} -.tox .tox-comment__gradient::after { - background: linear-gradient(rgba(43, 59, 78, 0), #2b3b4e); - bottom: 0; - content: ""; - display: block; - height: 5em; - margin-top: -40px; - position: absolute; - width: 100%; -} -.tox .tox-comment__overlay { - background: #2b3b4e; - bottom: 0; - display: flex; - flex-direction: column; - flex-grow: 1; - left: 0; - opacity: 0.9; - position: absolute; - right: 0; - text-align: center; - top: 0; - z-index: 5; -} -.tox .tox-comment__loading-text { - align-items: center; - color: #fff; - display: flex; - flex-direction: column; - position: relative; -} -.tox .tox-comment__loading-text > div { - padding-bottom: 16px; -} -.tox .tox-comment__overlaytext { - bottom: 0; - flex-direction: column; - font-size: 14px; - left: 0; - padding: 1em; - position: absolute; - right: 0; - top: 0; - z-index: 10; -} -.tox .tox-comment__overlaytext p { - background-color: #2b3b4e; - box-shadow: 0 0 8px 8px #2b3b4e; - color: #fff; - text-align: center; -} -.tox .tox-comment__overlaytext div:nth-of-type(2) { - font-size: 0.8em; -} -.tox .tox-comment__busy-spinner { - align-items: center; - background-color: #2b3b4e; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 20; -} -.tox .tox-comment__scroll { - display: flex; - flex-direction: column; - flex-shrink: 1; - overflow: auto; -} -.tox .tox-conversations { - margin: 8px; -} -.tox:not([dir=rtl]) .tox-comment__edit { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, -.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, -.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { - margin-left: 8px; -} -.tox[dir=rtl] .tox-comment__edit { - margin-right: 8px; -} -.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, -.tox[dir=rtl] .tox-comment__edit > *:last-child, -.tox[dir=rtl] .tox-comment__reply > *:last-child { - margin-right: 8px; -} -.tox .tox-user { - align-items: center; - display: flex; -} -.tox .tox-user__avatar svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-user__name { - color: rgba(255, 255, 255, 0.5); - font-size: 12px; - font-style: normal; - font-weight: bold; - text-transform: uppercase; -} -.tox:not([dir=rtl]) .tox-user__avatar svg { - margin-right: 8px; -} -.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { - margin-left: 8px; -} -.tox[dir=rtl] .tox-user__avatar svg { - margin-left: 8px; -} -.tox[dir=rtl] .tox-user__avatar + .tox-user__name { - margin-right: 8px; -} -.tox .tox-dialog-wrap { - align-items: center; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: fixed; - right: 0; - top: 0; - z-index: 1100; -} -.tox .tox-dialog-wrap__backdrop { - background-color: rgba(34, 47, 62, 0.75); - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1; -} -.tox .tox-dialog-wrap__backdrop--opaque { - background-color: #222f3e; -} -.tox .tox-dialog { - background-color: #2b3b4e; - border-color: #000000; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: 0 16px 16px -10px rgba(42, 55, 70, 0.15), 0 0 40px 1px rgba(42, 55, 70, 0.15); - display: flex; - flex-direction: column; - max-height: 100%; - max-width: 480px; - overflow: hidden; - position: relative; - width: 95vw; - z-index: 2; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox .tox-dialog { - align-self: flex-start; - margin: 8px auto; - width: calc(100vw - 16px); - } -} -.tox .tox-dialog-inline { - z-index: 1100; -} -.tox .tox-dialog__header { - align-items: center; - background-color: #2b3b4e; - border-bottom: none; - color: #fff; - display: flex; - font-size: 16px; - justify-content: space-between; - padding: 8px 16px 0 16px; - position: relative; -} -.tox .tox-dialog__header .tox-button { - z-index: 1; -} -.tox .tox-dialog__draghandle { - cursor: grab; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tox .tox-dialog__draghandle:active { - cursor: grabbing; -} -.tox .tox-dialog__dismiss { - margin-left: auto; -} -.tox .tox-dialog__title { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 20px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin: 0; - text-transform: none; -} -.tox .tox-dialog__body { - color: #fff; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - font-size: 16px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - min-width: 0; - text-align: left; - text-transform: none; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox .tox-dialog__body { - flex-direction: column; - } -} -.tox .tox-dialog__body-nav { - align-items: flex-start; - display: flex; - flex-direction: column; - padding: 16px 16px; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { - flex-direction: row; - -webkit-overflow-scrolling: touch; - overflow-x: auto; - padding-bottom: 0; - } -} -.tox .tox-dialog__body-nav-item { - border-bottom: 2px solid transparent; - color: rgba(255, 255, 255, 0.5); - display: inline-block; - font-size: 14px; - line-height: 1.3; - margin-bottom: 8px; - text-decoration: none; - white-space: nowrap; -} -.tox .tox-dialog__body-nav-item:focus { - background-color: rgba(32, 122, 183, 0.1); -} -.tox .tox-dialog__body-nav-item--active { - border-bottom: 2px solid #207ab7; - color: #207ab7; -} -.tox .tox-dialog__body-content { - box-sizing: border-box; - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; - max-height: 650px; - overflow: auto; - -webkit-overflow-scrolling: touch; - padding: 16px 16px; -} -.tox .tox-dialog__body-content > * { - margin-bottom: 0; - margin-top: 16px; -} -.tox .tox-dialog__body-content > *:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content > *:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content > *:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog__body-content a { - color: #207ab7; - cursor: pointer; - text-decoration: none; -} -.tox .tox-dialog__body-content a:hover, -.tox .tox-dialog__body-content a:focus { - color: #185d8c; - text-decoration: none; -} -.tox .tox-dialog__body-content a:active { - color: #185d8c; - text-decoration: none; -} -.tox .tox-dialog__body-content svg { - fill: #fff; -} -.tox .tox-dialog__body-content ul { - display: block; - list-style-type: disc; - margin-bottom: 16px; - -webkit-margin-end: 0; - margin-inline-end: 0; - -webkit-margin-start: 0; - margin-inline-start: 0; - -webkit-padding-start: 2.5rem; - padding-inline-start: 2.5rem; -} -.tox .tox-dialog__body-content .tox-form__group h1 { - color: #fff; - font-size: 20px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - margin-bottom: 16px; - margin-top: 2rem; - text-transform: none; -} -.tox .tox-dialog__body-content .tox-form__group h2 { - color: #fff; - font-size: 16px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - margin-bottom: 16px; - margin-top: 2rem; - text-transform: none; -} -.tox .tox-dialog__body-content .tox-form__group p { - margin-bottom: 16px; -} -.tox .tox-dialog__body-content .tox-form__group h1:first-child, -.tox .tox-dialog__body-content .tox-form__group h2:first-child, -.tox .tox-dialog__body-content .tox-form__group p:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1:last-child, -.tox .tox-dialog__body-content .tox-form__group h2:last-child, -.tox .tox-dialog__body-content .tox-form__group p:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1:only-child, -.tox .tox-dialog__body-content .tox-form__group h2:only-child, -.tox .tox-dialog__body-content .tox-form__group p:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog--width-lg { - height: 650px; - max-width: 1200px; -} -.tox .tox-dialog--width-md { - max-width: 800px; -} -.tox .tox-dialog--width-md .tox-dialog__body-content { - overflow: auto; -} -.tox .tox-dialog__body-content--centered { - text-align: center; -} -.tox .tox-dialog__footer { - align-items: center; - background-color: #2b3b4e; - border-top: 1px solid #000000; - display: flex; - justify-content: space-between; - padding: 8px 16px; -} -.tox .tox-dialog__footer-start, -.tox .tox-dialog__footer-end { - display: flex; -} -.tox .tox-dialog__busy-spinner { - align-items: center; - background-color: rgba(34, 47, 62, 0.75); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 3; -} -.tox .tox-dialog__table { - border-collapse: collapse; - width: 100%; -} -.tox .tox-dialog__table thead th { - font-weight: bold; - padding-bottom: 8px; -} -.tox .tox-dialog__table tbody tr { - border-bottom: 1px solid #000000; -} -.tox .tox-dialog__table tbody tr:last-child { - border-bottom: none; -} -.tox .tox-dialog__table td { - padding-bottom: 8px; - padding-top: 8px; -} -.tox .tox-dialog__popups { - position: absolute; - width: 100%; - z-index: 1100; -} -.tox .tox-dialog__body-iframe { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-iframe .tox-navobj { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; -} -.tox .tox-dialog-dock-fadeout { - opacity: 0; - visibility: hidden; -} -.tox .tox-dialog-dock-fadein { - opacity: 1; - visibility: visible; -} -.tox .tox-dialog-dock-transition { - transition: visibility 0s linear 0.3s, opacity 0.3s ease; -} -.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { - transition-delay: 0s; -} -.tox.tox-platform-ie { - /* IE11 CSS styles go here */ -} -.tox.tox-platform-ie .tox-dialog-wrap { - position: -ms-device-fixed; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { - margin-right: 0; - } -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { - margin-left: 8px; - } -} -.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, -.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { - margin-left: 8px; -} -.tox[dir=rtl] .tox-dialog__body { - text-align: right; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { - margin-left: 0; - } -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { - margin-right: 8px; - } -} -.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, -.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { - margin-right: 8px; -} -body.tox-dialog__disable-scroll { - overflow: hidden; -} -.tox .tox-dropzone-container { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dropzone { - align-items: center; - background: #fff; - border: 2px dashed #000000; - box-sizing: border-box; - display: flex; - flex-direction: column; - flex-grow: 1; - justify-content: center; - min-height: 100px; - padding: 10px; -} -.tox .tox-dropzone p { - color: rgba(255, 255, 255, 0.5); - margin: 0 0 16px 0; -} -.tox .tox-edit-area { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - overflow: hidden; - position: relative; -} -.tox .tox-edit-area__iframe { - background-color: #fff; - border: 0; - box-sizing: border-box; - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; - position: absolute; - width: 100%; -} -.tox.tox-inline-edit-area { - border: 1px dotted #000000; -} -.tox .tox-editor-container { - display: flex; - flex: 1 1 auto; - flex-direction: column; - overflow: hidden; -} -.tox .tox-editor-header { - z-index: 1; -} -.tox:not(.tox-tinymce-inline) .tox-editor-header { - box-shadow: none; - transition: box-shadow 0.5s; -} -.tox.tox-tinymce--toolbar-bottom .tox-editor-header, -.tox.tox-tinymce-inline .tox-editor-header { - margin-bottom: -1px; -} -.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { - background-color: transparent; - box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); -} -.tox-editor-dock-fadeout { - opacity: 0; - visibility: hidden; -} -.tox-editor-dock-fadein { - opacity: 1; - visibility: visible; -} -.tox-editor-dock-transition { - transition: visibility 0s linear 0.25s, opacity 0.25s ease; -} -.tox-editor-dock-transition.tox-editor-dock-fadein { - transition-delay: 0s; -} -.tox .tox-control-wrap { - flex: 1; - position: relative; -} -.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, -.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, -.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { - display: none; -} -.tox .tox-control-wrap svg { - display: block; -} -.tox .tox-control-wrap__status-icon-wrap { - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-control-wrap__status-icon-invalid svg { - fill: #c00; -} -.tox .tox-control-wrap__status-icon-unknown svg { - fill: orange; -} -.tox .tox-control-wrap__status-icon-valid svg { - fill: green; -} -.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, -.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, -.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { - padding-right: 32px; -} -.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { - right: 4px; -} -.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, -.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, -.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { - padding-left: 32px; -} -.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { - left: 4px; -} -.tox .tox-autocompleter { - max-width: 25em; -} -.tox .tox-autocompleter .tox-menu { - max-width: 25em; -} -.tox .tox-autocompleter .tox-autocompleter-highlight { - font-weight: bold; -} -.tox .tox-color-input { - display: flex; - position: relative; - z-index: 1; -} -.tox .tox-color-input .tox-textfield { - z-index: -1; -} -.tox .tox-color-input span { - border-color: rgba(42, 55, 70, 0.2); - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - height: 24px; - position: absolute; - top: 6px; - width: 24px; -} -.tox .tox-color-input span:hover:not([aria-disabled=true]), -.tox .tox-color-input span:focus:not([aria-disabled=true]) { - border-color: #207ab7; - cursor: pointer; -} -.tox .tox-color-input span::before { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%); - background-position: 0 0, 0 6px, 6px -6px, -6px 0; - background-size: 12px 12px; - border: 1px solid #2b3b4e; - border-radius: 3px; - box-sizing: border-box; - content: ''; - height: 24px; - left: -1px; - position: absolute; - top: -1px; - width: 24px; - z-index: -1; -} -.tox .tox-color-input span[aria-disabled=true] { - cursor: not-allowed; -} -.tox:not([dir=rtl]) .tox-color-input { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox:not([dir=rtl]) .tox-color-input .tox-textfield { - padding-left: 36px; -} -.tox:not([dir=rtl]) .tox-color-input span { - left: 6px; -} -.tox[dir="rtl"] .tox-color-input { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox[dir="rtl"] .tox-color-input .tox-textfield { - padding-right: 36px; -} -.tox[dir="rtl"] .tox-color-input span { - right: 6px; -} -.tox .tox-label, -.tox .tox-toolbar-label { - color: rgba(255, 255, 255, 0.5); - display: block; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - padding: 0 8px 0 0; - text-transform: none; - white-space: nowrap; -} -.tox .tox-toolbar-label { - padding: 0 8px; -} -.tox[dir=rtl] .tox-label { - padding: 0 0 0 8px; -} -.tox .tox-form { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group { - box-sizing: border-box; - margin-bottom: 4px; -} -.tox .tox-form-group--maximize { - flex: 1; -} -.tox .tox-form__group--error { - color: #c00; -} -.tox .tox-form__group--collection { - display: flex; -} -.tox .tox-form__grid { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; -} -.tox .tox-form__grid--2col > .tox-form__group { - width: calc(50% - (8px / 2)); -} -.tox .tox-form__grid--3col > .tox-form__group { - width: calc(100% / 3 - (8px / 2)); -} -.tox .tox-form__grid--4col > .tox-form__group { - width: calc(25% - (8px / 2)); -} -.tox .tox-form__controls-h-stack { - align-items: center; - display: flex; -} -.tox .tox-form__group--inline { - align-items: center; - display: flex; -} -.tox .tox-form__group--stretched { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-textarea { - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-navobj { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; -} -.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { - margin-left: 4px; -} -.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { - margin-right: 4px; -} -.tox .tox-lock.tox-locked .tox-lock-icon__unlock, -.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { - display: none; -} -.tox .tox-textfield, -.tox .tox-toolbar-textfield, -.tox .tox-listboxfield .tox-listbox--select, -.tox .tox-textarea { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #2b3b4e; - border-color: #000000; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #fff; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - min-height: 34px; - outline: none; - padding: 5px 4.75px; - resize: none; - width: 100%; -} -.tox .tox-textfield[disabled], -.tox .tox-textarea[disabled] { - background-color: #222f3e; - color: rgba(255, 255, 255, 0.85); - cursor: not-allowed; -} -.tox .tox-textfield:focus, -.tox .tox-listboxfield .tox-listbox--select:focus, -.tox .tox-textarea:focus { - background-color: #2b3b4e; - border-color: #207ab7; - box-shadow: none; - outline: none; -} -.tox .tox-toolbar-textfield { - border-width: 0; - margin-bottom: 3px; - margin-top: 2px; - max-width: 250px; -} -.tox .tox-naked-btn { - background-color: transparent; - border: 0; - border-color: transparent; - box-shadow: unset; - color: #207ab7; - cursor: pointer; - display: block; - margin: 0; - padding: 0; -} -.tox .tox-naked-btn svg { - display: block; - fill: #fff; -} -.tox:not([dir=rtl]) .tox-toolbar-textfield + * { - margin-left: 4px; -} -.tox[dir=rtl] .tox-toolbar-textfield + * { - margin-right: 4px; -} -.tox .tox-listboxfield { - cursor: pointer; - position: relative; -} -.tox .tox-listboxfield .tox-listbox--select[disabled] { - background-color: #19232e; - color: rgba(255, 255, 255, 0.85); - cursor: not-allowed; -} -.tox .tox-listbox__select-label { - cursor: default; - flex: 1; - margin: 0 4px; -} -.tox .tox-listbox__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-listbox__select-chevron svg { - fill: #fff; -} -.tox .tox-listboxfield .tox-listbox--select { - align-items: center; - display: flex; -} -.tox:not([dir=rtl]) .tox-listboxfield svg { - right: 8px; -} -.tox[dir=rtl] .tox-listboxfield svg { - left: 8px; -} -.tox .tox-selectfield { - cursor: pointer; - position: relative; -} -.tox .tox-selectfield select { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #2b3b4e; - border-color: #000000; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #fff; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - min-height: 34px; - outline: none; - padding: 5px 4.75px; - resize: none; - width: 100%; -} -.tox .tox-selectfield select[disabled] { - background-color: #19232e; - color: rgba(255, 255, 255, 0.85); - cursor: not-allowed; -} -.tox .tox-selectfield select::-ms-expand { - display: none; -} -.tox .tox-selectfield select:focus { - background-color: #2b3b4e; - border-color: #207ab7; - box-shadow: none; - outline: none; -} -.tox .tox-selectfield svg { - pointer-events: none; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox:not([dir=rtl]) .tox-selectfield select[size="0"], -.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { - padding-right: 24px; -} -.tox:not([dir=rtl]) .tox-selectfield svg { - right: 8px; -} -.tox[dir=rtl] .tox-selectfield select[size="0"], -.tox[dir=rtl] .tox-selectfield select[size="1"] { - padding-left: 24px; -} -.tox[dir=rtl] .tox-selectfield svg { - left: 8px; -} -.tox .tox-textarea { - -webkit-appearance: textarea; - -moz-appearance: textarea; - appearance: textarea; - white-space: pre-wrap; -} -.tox-fullscreen { - border: 0; - height: 100%; - margin: 0; - overflow: hidden; - -ms-scroll-chaining: none; - overscroll-behavior: none; - padding: 0; - touch-action: pinch-zoom; - width: 100%; -} -.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { - display: none; -} -.tox.tox-tinymce.tox-fullscreen, -.tox-shadowhost.tox-fullscreen { - left: 0; - position: fixed; - top: 0; - z-index: 1200; -} -.tox.tox-tinymce.tox-fullscreen { - background-color: transparent; -} -.tox-fullscreen .tox.tox-tinymce-aux, -.tox-fullscreen ~ .tox.tox-tinymce-aux { - z-index: 1201; -} -.tox .tox-help__more-link { - list-style: none; - margin-top: 1em; -} -.tox .tox-image-tools { - width: 100%; -} -.tox .tox-image-tools__toolbar { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-image-tools__image { - background-color: #666; - height: 380px; - overflow: auto; - position: relative; - width: 100%; -} -.tox .tox-image-tools__image, -.tox .tox-image-tools__image + .tox-image-tools__toolbar { - margin-top: 8px; -} -.tox .tox-image-tools__image-bg { - background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); -} -.tox .tox-image-tools__toolbar > .tox-spacer { - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-croprect-block { - background: black; - filter: alpha(opacity=50); - opacity: 0.5; - position: absolute; - zoom: 1; -} -.tox .tox-croprect-handle { - border: 2px solid white; - height: 20px; - left: 0; - position: absolute; - top: 0; - width: 20px; -} -.tox .tox-croprect-handle-move { - border: 0; - cursor: move; - position: absolute; -} -.tox .tox-croprect-handle-nw { - border-width: 2px 0 0 2px; - cursor: nw-resize; - left: 100px; - margin: -2px 0 0 -2px; - top: 100px; -} -.tox .tox-croprect-handle-ne { - border-width: 2px 2px 0 0; - cursor: ne-resize; - left: 200px; - margin: -2px 0 0 -20px; - top: 100px; -} -.tox .tox-croprect-handle-sw { - border-width: 0 0 2px 2px; - cursor: sw-resize; - left: 100px; - margin: -20px 2px 0 -2px; - top: 200px; -} -.tox .tox-croprect-handle-se { - border-width: 0 2px 2px 0; - cursor: se-resize; - left: 200px; - margin: -20px 0 0 -20px; - top: 200px; -} -.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { - margin-left: 32px; -} -.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { - margin-left: 32px; -} -.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { - margin-right: 8px; -} -.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { - margin-right: 32px; -} -.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { - margin-right: 32px; -} -.tox .tox-insert-table-picker { - display: flex; - flex-wrap: wrap; - width: 170px; -} -.tox .tox-insert-table-picker > div { - border-color: #000000; - border-style: solid; - border-width: 0 1px 1px 0; - box-sizing: border-box; - height: 17px; - width: 17px; -} -.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { - margin: -4px 0; -} -.tox .tox-insert-table-picker .tox-insert-table-picker__selected { - background-color: rgba(32, 122, 183, 0.5); - border-color: rgba(32, 122, 183, 0.5); -} -.tox .tox-insert-table-picker__label { - color: #fff; - display: block; - font-size: 14px; - padding: 4px; - text-align: center; - width: 100%; -} -.tox:not([dir=rtl]) { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { - border-right: 0; -} -.tox[dir=rtl] { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { - border-right: 0; -} -.tox { - /* stylelint-disable */ - /* stylelint-enable */ -} -.tox .tox-menu { - background-color: #2b3b4e; - border: 1px solid #000000; - border-radius: 3px; - box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); - display: inline-block; - overflow: hidden; - vertical-align: top; - z-index: 1150; -} -.tox .tox-menu.tox-collection.tox-collection--list { - padding: 0; -} -.tox .tox-menu.tox-collection.tox-collection--toolbar { - padding: 4px; -} -.tox .tox-menu.tox-collection.tox-collection--grid { - padding: 4px; -} -.tox .tox-menu__label h1, -.tox .tox-menu__label h2, -.tox .tox-menu__label h3, -.tox .tox-menu__label h4, -.tox .tox-menu__label h5, -.tox .tox-menu__label h6, -.tox .tox-menu__label p, -.tox .tox-menu__label blockquote, -.tox .tox-menu__label code { - margin: 0; -} -.tox .tox-menubar { - background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; - background-color: #222f3e; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - padding: 0 4px 0 4px; -} -.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { - border-top: 1px solid #000000; -} -/* Deprecated. Remove in next major release */ -.tox .tox-mbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #fff; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 34px; - justify-content: center; - margin: 2px 0 3px 0; - outline: none; - overflow: hidden; - padding: 0 4px; - text-transform: none; - width: auto; -} -.tox .tox-mbtn[disabled] { - background-color: transparent; - border: 0; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-mbtn:focus:not(:disabled) { - background: #4a5562; - border: 0; - box-shadow: none; - color: #fff; -} -.tox .tox-mbtn--active { - background: #757d87; - border: 0; - box-shadow: none; - color: #fff; -} -.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { - background: #4a5562; - border: 0; - box-shadow: none; - color: #fff; -} -.tox .tox-mbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-mbtn[disabled] .tox-mbtn__select-label { - cursor: not-allowed; -} -.tox .tox-mbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; - display: none; -} -.tox .tox-notification { - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - display: -ms-grid; - display: grid; - font-size: 14px; - font-weight: normal; - -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - margin-top: 4px; - opacity: 0; - padding: 4px; - transition: transform 100ms ease-in, opacity 150ms ease-in; -} -.tox .tox-notification p { - font-size: 14px; - font-weight: normal; -} -.tox .tox-notification a { - cursor: pointer; - text-decoration: underline; -} -.tox .tox-notification--in { - opacity: 1; -} -.tox .tox-notification--success { - background-color: #e4eeda; - border-color: #d7e6c8; - color: #fff; -} -.tox .tox-notification--success p { - color: #fff; -} -.tox .tox-notification--success a { - color: #547831; -} -.tox .tox-notification--success svg { - fill: #fff; -} -.tox .tox-notification--error { - background-color: #f8dede; - border-color: #f2bfbf; - color: #fff; -} -.tox .tox-notification--error p { - color: #fff; -} -.tox .tox-notification--error a { - color: #c00; -} -.tox .tox-notification--error svg { - fill: #fff; -} -.tox .tox-notification--warn, -.tox .tox-notification--warning { - background-color: #fffaea; - border-color: #ffe89d; - color: #fff; -} -.tox .tox-notification--warn p, -.tox .tox-notification--warning p { - color: #fff; -} -.tox .tox-notification--warn a, -.tox .tox-notification--warning a { - color: #fff; -} -.tox .tox-notification--warn svg, -.tox .tox-notification--warning svg { - fill: #fff; -} -.tox .tox-notification--info { - background-color: #d9edf7; - border-color: #779ecb; - color: #fff; -} -.tox .tox-notification--info p { - color: #fff; -} -.tox .tox-notification--info a { - color: #fff; -} -.tox .tox-notification--info svg { - fill: #fff; -} -.tox .tox-notification__body { - -ms-grid-row-align: center; - align-self: center; - color: #fff; - font-size: 14px; - -ms-grid-column-span: 1; - grid-column-end: 3; - -ms-grid-column: 2; - grid-column-start: 2; - -ms-grid-row-span: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - text-align: center; - white-space: normal; - word-break: break-all; - word-break: break-word; -} -.tox .tox-notification__body > * { - margin: 0; -} -.tox .tox-notification__body > * + * { - margin-top: 1rem; -} -.tox .tox-notification__icon { - -ms-grid-row-align: center; - align-self: center; - -ms-grid-column-span: 1; - grid-column-end: 2; - -ms-grid-column: 1; - grid-column-start: 1; - -ms-grid-row-span: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - -ms-grid-column-align: end; - justify-self: end; -} -.tox .tox-notification__icon svg { - display: block; -} -.tox .tox-notification__dismiss { - -ms-grid-row-align: start; - align-self: start; - -ms-grid-column-span: 1; - grid-column-end: 4; - -ms-grid-column: 3; - grid-column-start: 3; - -ms-grid-row-span: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - -ms-grid-column-align: end; - justify-self: end; -} -.tox .tox-notification .tox-progress-bar { - -ms-grid-column-span: 3; - grid-column-end: 4; - -ms-grid-column: 1; - grid-column-start: 1; - -ms-grid-row-span: 1; - grid-row-end: 3; - -ms-grid-row: 2; - grid-row-start: 2; - -ms-grid-column-align: center; - justify-self: center; -} -.tox .tox-pop { - display: inline-block; - position: relative; -} -.tox .tox-pop--resizing { - transition: width 0.1s ease; -} -.tox .tox-pop--resizing .tox-toolbar, -.tox .tox-pop--resizing .tox-toolbar__group { - flex-wrap: nowrap; -} -.tox .tox-pop--transition { - transition: 0.15s ease; - transition-property: left, right, top, bottom; -} -.tox .tox-pop--transition::before, -.tox .tox-pop--transition::after { - transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; -} -.tox .tox-pop__dialog { - background-color: #222f3e; - border: 1px solid #000000; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); - min-width: 0; - overflow: hidden; -} -.tox .tox-pop__dialog > *:not(.tox-toolbar) { - margin: 4px 4px 4px 8px; -} -.tox .tox-pop__dialog .tox-toolbar { - background-color: transparent; - margin-bottom: -1px; -} -.tox .tox-pop::before, -.tox .tox-pop::after { - border-style: solid; - content: ''; - display: block; - height: 0; - opacity: 1; - position: absolute; - width: 0; -} -.tox .tox-pop.tox-pop--inset::before, -.tox .tox-pop.tox-pop--inset::after { - opacity: 0; - transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; -} -.tox .tox-pop.tox-pop--bottom::before, -.tox .tox-pop.tox-pop--bottom::after { - left: 50%; - top: 100%; -} -.tox .tox-pop.tox-pop--bottom::after { - border-color: #222f3e transparent transparent transparent; - border-width: 8px; - margin-left: -8px; - margin-top: -1px; -} -.tox .tox-pop.tox-pop--bottom::before { - border-color: #000000 transparent transparent transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--top::before, -.tox .tox-pop.tox-pop--top::after { - left: 50%; - top: 0; - transform: translateY(-100%); -} -.tox .tox-pop.tox-pop--top::after { - border-color: transparent transparent #222f3e transparent; - border-width: 8px; - margin-left: -8px; - margin-top: 1px; -} -.tox .tox-pop.tox-pop--top::before { - border-color: transparent transparent #000000 transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--left::before, -.tox .tox-pop.tox-pop--left::after { - left: 0; - top: calc(50% - 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--left::after { - border-color: transparent #222f3e transparent transparent; - border-width: 8px; - margin-left: -15px; -} -.tox .tox-pop.tox-pop--left::before { - border-color: transparent #000000 transparent transparent; - border-width: 10px; - margin-left: -19px; -} -.tox .tox-pop.tox-pop--right::before, -.tox .tox-pop.tox-pop--right::after { - left: 100%; - top: calc(50% + 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--right::after { - border-color: transparent transparent transparent #222f3e; - border-width: 8px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--right::before { - border-color: transparent transparent transparent #000000; - border-width: 10px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--align-left::before, -.tox .tox-pop.tox-pop--align-left::after { - left: 20px; -} -.tox .tox-pop.tox-pop--align-right::before, -.tox .tox-pop.tox-pop--align-right::after { - left: calc(100% - 20px); -} -.tox .tox-sidebar-wrap { - display: flex; - flex-direction: row; - flex-grow: 1; - -ms-flex-preferred-size: 0; - min-height: 0; -} -.tox .tox-sidebar { - background-color: #222f3e; - display: flex; - flex-direction: row; - justify-content: flex-end; -} -.tox .tox-sidebar__slider { - display: flex; - overflow: hidden; -} -.tox .tox-sidebar__pane-container { - display: flex; -} -.tox .tox-sidebar__pane { - display: flex; -} -.tox .tox-sidebar--sliding-closed { - opacity: 0; -} -.tox .tox-sidebar--sliding-open { - opacity: 1; -} -.tox .tox-sidebar--sliding-growing, -.tox .tox-sidebar--sliding-shrinking { - transition: width 0.5s ease, opacity 0.5s ease; -} -.tox .tox-selector { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - display: inline-block; - height: 10px; - position: absolute; - width: 10px; -} -.tox.tox-platform-touch .tox-selector { - height: 12px; - width: 12px; -} -.tox .tox-slider { - align-items: center; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - height: 24px; - justify-content: center; - position: relative; -} -.tox .tox-slider__rail { - background-color: transparent; - border: 1px solid #000000; - border-radius: 3px; - height: 10px; - min-width: 120px; - width: 100%; -} -.tox .tox-slider__handle { - background-color: #207ab7; - border: 2px solid #185d8c; - border-radius: 3px; - box-shadow: none; - height: 24px; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%); - width: 14px; -} -.tox .tox-source-code { - overflow: auto; -} -.tox .tox-spinner { - display: flex; -} -.tox .tox-spinner > div { - animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; - background-color: rgba(255, 255, 255, 0.5); - border-radius: 100%; - height: 8px; - width: 8px; -} -.tox .tox-spinner > div:nth-child(1) { - animation-delay: -0.32s; -} -.tox .tox-spinner > div:nth-child(2) { - animation-delay: -0.16s; -} -@keyframes tam-bouncing-dots { - 0%, - 80%, - 100% { - transform: scale(0); - } - 40% { - transform: scale(1); - } -} -.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { - margin-left: 4px; -} -.tox[dir=rtl] .tox-spinner > div:not(:first-child) { - margin-right: 4px; -} -.tox .tox-statusbar { - align-items: center; - background-color: #222f3e; - border-top: 1px solid #000000; - color: #fff; - display: flex; - flex: 0 0 auto; - font-size: 12px; - font-weight: normal; - height: 18px; - overflow: hidden; - padding: 0 8px; - position: relative; - text-transform: uppercase; -} -.tox .tox-statusbar__text-container { - display: flex; - flex: 1 1 auto; - justify-content: flex-end; - overflow: hidden; -} -.tox .tox-statusbar__path { - display: flex; - flex: 1 1 auto; - margin-right: auto; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.tox .tox-statusbar__path > * { - display: inline; - white-space: nowrap; -} -.tox .tox-statusbar__wordcount { - flex: 0 0 auto; - margin-left: 1ch; -} -.tox .tox-statusbar a, -.tox .tox-statusbar__path-item, -.tox .tox-statusbar__wordcount { - color: #fff; - text-decoration: none; -} -.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { - cursor: pointer; - text-decoration: underline; -} -.tox .tox-statusbar__resize-handle { - align-items: flex-end; - align-self: stretch; - cursor: nwse-resize; - display: flex; - flex: 0 0 auto; - justify-content: flex-end; - margin-left: auto; - margin-right: -8px; - padding-left: 1ch; -} -.tox .tox-statusbar__resize-handle svg { - display: block; - fill: #fff; -} -.tox .tox-statusbar__resize-handle:focus svg { - background-color: #4a5562; - border-radius: 1px; - box-shadow: 0 0 0 2px #4a5562; -} -.tox:not([dir=rtl]) .tox-statusbar__path > * { - margin-right: 4px; -} -.tox:not([dir=rtl]) .tox-statusbar__branding { - margin-left: 1ch; -} -.tox[dir=rtl] .tox-statusbar { - flex-direction: row-reverse; -} -.tox[dir=rtl] .tox-statusbar__path > * { - margin-left: 4px; -} -.tox .tox-throbber { - z-index: 1299; -} -.tox .tox-throbber__busy-spinner { - align-items: center; - background-color: rgba(34, 47, 62, 0.6); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; -} -.tox .tox-tbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #fff; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 34px; - justify-content: center; - margin: 2px 0 3px 0; - outline: none; - overflow: hidden; - padding: 0; - text-transform: none; - width: 34px; -} -.tox .tox-tbtn svg { - display: block; - fill: #fff; -} -.tox .tox-tbtn.tox-tbtn-more { - padding-left: 5px; - padding-right: 5px; - width: inherit; -} -.tox .tox-tbtn:focus { - background: #4a5562; - border: 0; - box-shadow: none; -} -.tox .tox-tbtn:hover { - background: #4a5562; - border: 0; - box-shadow: none; - color: #fff; -} -.tox .tox-tbtn:hover svg { - fill: #fff; -} -.tox .tox-tbtn:active { - background: #757d87; - border: 0; - box-shadow: none; - color: #fff; -} -.tox .tox-tbtn:active svg { - fill: #fff; -} -.tox .tox-tbtn--disabled, -.tox .tox-tbtn--disabled:hover, -.tox .tox-tbtn:disabled, -.tox .tox-tbtn:disabled:hover { - background: transparent; - border: 0; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-tbtn--disabled svg, -.tox .tox-tbtn--disabled:hover svg, -.tox .tox-tbtn:disabled svg, -.tox .tox-tbtn:disabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-tbtn--enabled, -.tox .tox-tbtn--enabled:hover { - background: #757d87; - border: 0; - box-shadow: none; - color: #fff; -} -.tox .tox-tbtn--enabled > *, -.tox .tox-tbtn--enabled:hover > * { - transform: none; -} -.tox .tox-tbtn--enabled svg, -.tox .tox-tbtn--enabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: #fff; -} -.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { - color: #fff; -} -.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { - fill: #fff; -} -.tox .tox-tbtn:active > * { - transform: none; -} -.tox .tox-tbtn--md { - height: 51px; - width: 51px; -} -.tox .tox-tbtn--lg { - flex-direction: column; - height: 68px; - width: 68px; -} -.tox .tox-tbtn--return { - -ms-grid-row-align: stretch; - align-self: stretch; - height: unset; - width: 16px; -} -.tox .tox-tbtn--labeled { - padding: 0 4px; - width: unset; -} -.tox .tox-tbtn__vlabel { - display: block; - font-size: 10px; - font-weight: normal; - letter-spacing: -0.025em; - margin-bottom: 4px; - white-space: nowrap; -} -.tox .tox-tbtn--select { - margin: 2px 0 3px 0; - padding: 0 4px; - width: auto; -} -.tox .tox-tbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-tbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-tbtn__select-chevron svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-tbtn--bespoke .tox-tbtn__select-label { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 7em; -} -.tox .tox-split-button { - border: 0; - border-radius: 3px; - box-sizing: border-box; - display: flex; - margin: 2px 0 3px 0; - overflow: hidden; -} -.tox .tox-split-button:hover { - box-shadow: 0 0 0 1px #4a5562 inset; -} -.tox .tox-split-button:focus { - background: #4a5562; - box-shadow: none; - color: #fff; -} -.tox .tox-split-button > * { - border-radius: 0; -} -.tox .tox-split-button__chevron { - width: 16px; -} -.tox .tox-split-button__chevron svg { - fill: rgba(255, 255, 255, 0.5); -} -.tox .tox-split-button .tox-tbtn { - margin: 0; -} -.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { - width: 30px; -} -.tox.tox-platform-touch .tox-split-button__chevron { - width: 20px; -} -.tox .tox-split-button.tox-tbtn--disabled:hover, -.tox .tox-split-button.tox-tbtn--disabled:focus, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { - background: transparent; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); -} -.tox .tox-toolbar-overlord { - background-color: #222f3e; -} -.tox .tox-toolbar, -.tox .tox-toolbar__primary, -.tox .tox-toolbar__overflow { - background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; - background-color: #222f3e; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - padding: 0 0; -} -.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { - height: 0; - opacity: 0; - padding-bottom: 0; - padding-top: 0; - visibility: hidden; -} -.tox .tox-toolbar__overflow--growing { - transition: height 0.3s ease, opacity 0.2s linear 0.1s; -} -.tox .tox-toolbar__overflow--shrinking { - transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; -} -.tox .tox-menubar + .tox-toolbar, -.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { - border-top: 1px solid #000000; - margin-top: -1px; -} -.tox .tox-toolbar--scrolling { - flex-wrap: nowrap; - overflow-x: auto; -} -.tox .tox-pop .tox-toolbar { - border-width: 0; -} -.tox .tox-toolbar--no-divider { - background-image: none; -} -.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, -.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { - border-top: 1px solid #000000; -} -.tox.tox-tinymce-aux .tox-toolbar__overflow { - background-color: #222f3e; - border: 1px solid #000000; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); -} -.tox .tox-toolbar__group { - align-items: center; - display: flex; - flex-wrap: wrap; - margin: 0 0; - padding: 0 4px 0 4px; -} -.tox .tox-toolbar__group--pull-right { - margin-left: auto; -} -.tox .tox-toolbar--scrolling .tox-toolbar__group { - flex-shrink: 0; - flex-wrap: nowrap; -} -.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { - border-right: 1px solid #000000; -} -.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { - border-left: 1px solid #000000; -} -.tox .tox-tooltip { - display: inline-block; - padding: 8px; - position: relative; -} -.tox .tox-tooltip__body { - background-color: #3d546f; - border-radius: 3px; - box-shadow: 0 2px 4px rgba(42, 55, 70, 0.3); - color: rgba(255, 255, 255, 0.75); - font-size: 14px; - font-style: normal; - font-weight: normal; - padding: 4px 8px; - text-transform: none; -} -.tox .tox-tooltip__arrow { - position: absolute; -} -.tox .tox-tooltip--down .tox-tooltip__arrow { - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-top: 8px solid #3d546f; - bottom: 0; - left: 50%; - position: absolute; - transform: translateX(-50%); -} -.tox .tox-tooltip--up .tox-tooltip__arrow { - border-bottom: 8px solid #3d546f; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - left: 50%; - position: absolute; - top: 0; - transform: translateX(-50%); -} -.tox .tox-tooltip--right .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-left: 8px solid #3d546f; - border-top: 8px solid transparent; - position: absolute; - right: 0; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-tooltip--left .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-right: 8px solid #3d546f; - border-top: 8px solid transparent; - left: 0; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-well { - border: 1px solid #000000; - border-radius: 3px; - padding: 8px; - width: 100%; -} -.tox .tox-well > *:first-child { - margin-top: 0; -} -.tox .tox-well > *:last-child { - margin-bottom: 0; -} -.tox .tox-well > *:only-child { - margin: 0; -} -.tox .tox-custom-editor { - border: 1px solid #000000; - border-radius: 3px; - display: flex; - flex: 1; - position: relative; -} -/* stylelint-disable */ -.tox { - /* stylelint-enable */ -} -.tox .tox-dialog-loading::before { - background-color: rgba(0, 0, 0, 0.5); - content: ""; - height: 100%; - position: absolute; - width: 100%; - z-index: 1000; -} -.tox .tox-tab { - cursor: pointer; -} -.tox .tox-dialog__content-js { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-content .tox-collection { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-image-tools-edit-panel { - height: 60px; -} -.tox .tox-image-tools__sidebar { - height: 60px; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.min.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.min.css deleted file mode 100644 index e71f6f0..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tox{box-shadow:none;box-sizing:content-box;color:#2a3746;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #000;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #000;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #000;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#000;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.5);border-color:#207ab7;color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.5);border-color:rgba(255,165,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.5);border-color:rgba(204,0,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.5);border-color:rgba(120,171,70,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.8)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#3d546f;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#3d546f;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#fff;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#3d546f;background-image:none;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:hover:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:active:not(:disabled){background-color:#2b3b4e;background-image:none;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#fff}.tox .tox-button--naked[disabled]{background-color:#3d546f;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:focus:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:active:not(:disabled){background-color:#2b3b4e;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#fff}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(255,255,255,.2)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(255,255,255,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#1a1a1a;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#333;color:#fff;cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#fff;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#2b3b4e;color:#fff}.tox .tox-collection--list .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#4a5562;color:#fff}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(255,255,255,.5);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#fff}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(255,255,255,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#2b3b4e;border:1px solid #1a1a1a;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #000}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #000}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#4a5562}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#2b3b4e;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#fff;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(255,255,255,.5);font-size:12px}.tox .tox-comment__body{color:#fff;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(255,255,255,.5);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#2b3b4e;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(43,59,78,0),#2b3b4e);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#2b3b4e;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#fff;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#2b3b4e;box-shadow:0 0 8px 8px #2b3b4e;color:#fff;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#2b3b4e;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(255,255,255,.5)}.tox .tox-user__name{color:rgba(255,255,255,.5);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(34,47,62,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#222f3e}.tox .tox-dialog{background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(42,55,70,.15),0 0 40px 1px rgba(42,55,70,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#2b3b4e;border-bottom:none;color:#fff;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#fff;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(255,255,255,.5);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#fff}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#fff;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#fff;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#2b3b4e;border-top:1px solid #000;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(34,47,62,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #000}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #000;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(255,255,255,.5);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #000}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(42,55,70,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #2b3b4e;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(255,255,255,.5);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#222f3e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#fff}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#fff}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#000;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:#fff;display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #000}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn--active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#fff}.tox .tox-notification--success p{color:#fff}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#fff}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#fff}.tox .tox-notification--error p{color:#fff}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#fff}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#fff}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#fff}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#fff}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#fff}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#fff}.tox .tox-notification--info p{color:#fff}.tox .tox-notification--info a{color:#fff}.tox .tox-notification--info svg{fill:#fff}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#fff;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#222f3e transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#000 transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #222f3e transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #000 transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #222f3e transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #000 transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #222f3e;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #000;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#222f3e;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #000;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(255,255,255,.5);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#222f3e;border-top:1px solid #000;color:#fff;display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:#fff;text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:#fff}.tox .tox-statusbar__resize-handle:focus svg{background-color:#4a5562;border-radius:1px;box-shadow:0 0 0 2px #4a5562}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(34,47,62,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#fff}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#4a5562;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:hover svg{fill:#fff}.tox .tox-tbtn:active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:active svg{fill:#fff}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#fff}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #4a5562 inset}.tox .tox-split-button:focus{background:#4a5562;box-shadow:none;color:#fff}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-toolbar-overlord{background-color:#222f3e}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #000;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #000}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #000}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #000}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#3d546f;border-radius:3px;box-shadow:0 2px 4px rgba(42,55,70,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #3d546f;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #3d546f;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #3d546f;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #3d546f;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #000;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #000;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.css deleted file mode 100644 index 875721a..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.css +++ /dev/null @@ -1,673 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -/* RESET all the things! */ -.tinymce-mobile-outer-container { - all: initial; - display: block; -} -.tinymce-mobile-outer-container * { - border: 0; - box-sizing: initial; - cursor: inherit; - float: none; - line-height: 1; - margin: 0; - outline: 0; - padding: 0; - -webkit-tap-highlight-color: transparent; - /* TBIO-3691, stop the gray flicker on touch. */ - text-shadow: none; - white-space: nowrap; -} -.tinymce-mobile-icon-arrow-back::before { - content: "\e5cd"; -} -.tinymce-mobile-icon-image::before { - content: "\e412"; -} -.tinymce-mobile-icon-cancel-circle::before { - content: "\e5c9"; -} -.tinymce-mobile-icon-full-dot::before { - content: "\e061"; -} -.tinymce-mobile-icon-align-center::before { - content: "\e234"; -} -.tinymce-mobile-icon-align-left::before { - content: "\e236"; -} -.tinymce-mobile-icon-align-right::before { - content: "\e237"; -} -.tinymce-mobile-icon-bold::before { - content: "\e238"; -} -.tinymce-mobile-icon-italic::before { - content: "\e23f"; -} -.tinymce-mobile-icon-unordered-list::before { - content: "\e241"; -} -.tinymce-mobile-icon-ordered-list::before { - content: "\e242"; -} -.tinymce-mobile-icon-font-size::before { - content: "\e245"; -} -.tinymce-mobile-icon-underline::before { - content: "\e249"; -} -.tinymce-mobile-icon-link::before { - content: "\e157"; -} -.tinymce-mobile-icon-unlink::before { - content: "\eca2"; -} -.tinymce-mobile-icon-color::before { - content: "\e891"; -} -.tinymce-mobile-icon-previous::before { - content: "\e314"; -} -.tinymce-mobile-icon-next::before { - content: "\e315"; -} -.tinymce-mobile-icon-large-font::before, -.tinymce-mobile-icon-style-formats::before { - content: "\e264"; -} -.tinymce-mobile-icon-undo::before { - content: "\e166"; -} -.tinymce-mobile-icon-redo::before { - content: "\e15a"; -} -.tinymce-mobile-icon-removeformat::before { - content: "\e239"; -} -.tinymce-mobile-icon-small-font::before { - content: "\e906"; -} -.tinymce-mobile-icon-readonly-back::before, -.tinymce-mobile-format-matches::after { - content: "\e5ca"; -} -.tinymce-mobile-icon-small-heading::before { - content: "small"; -} -.tinymce-mobile-icon-large-heading::before { - content: "large"; -} -.tinymce-mobile-icon-small-heading::before, -.tinymce-mobile-icon-large-heading::before { - font-family: sans-serif; - font-size: 80%; -} -.tinymce-mobile-mask-edit-icon::before { - content: "\e254"; -} -.tinymce-mobile-icon-back::before { - content: "\e5c4"; -} -.tinymce-mobile-icon-heading::before { - /* TODO: Translate */ - content: "Headings"; - font-family: sans-serif; - font-size: 80%; - font-weight: bold; -} -.tinymce-mobile-icon-h1::before { - content: "H1"; - font-weight: bold; -} -.tinymce-mobile-icon-h2::before { - content: "H2"; - font-weight: bold; -} -.tinymce-mobile-icon-h3::before { - content: "H3"; - font-weight: bold; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { - align-items: center; - display: flex; - justify-content: center; - background: rgba(51, 51, 51, 0.5); - height: 100%; - position: absolute; - top: 0; - width: 100%; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { - align-items: center; - border-radius: 50%; - display: flex; - flex-direction: column; - font-family: sans-serif; - font-size: 1em; - justify-content: space-between; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { - align-items: center; - display: flex; - justify-content: center; - border-radius: 50%; - height: 2.1em; - width: 2.1em; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { - align-items: center; - display: flex; - justify-content: center; - flex-direction: column; - font-size: 1em; -} -@media only screen and (min-device-width:700px) { - .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { - font-size: 1.2em; - } -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { - align-items: center; - display: flex; - justify-content: center; - border-radius: 50%; - height: 2.1em; - width: 2.1em; - background-color: white; - color: #207ab7; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { - content: "\e900"; - font-family: 'tinymce-mobile', sans-serif; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { - z-index: 2; -} -.tinymce-mobile-android-container.tinymce-mobile-android-maximized { - background: #ffffff; - border: none; - bottom: 0; - display: flex; - flex-direction: column; - left: 0; - position: fixed; - right: 0; - top: 0; -} -.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { - position: relative; -} -.tinymce-mobile-android-container .tinymce-mobile-editor-socket { - display: flex; - flex-grow: 1; -} -.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { - display: flex !important; - flex-grow: 1; - height: auto !important; -} -.tinymce-mobile-android-scroll-reload { - overflow: hidden; -} -:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { - margin-top: 23px; -} -.tinymce-mobile-toolstrip { - background: #fff; - display: flex; - flex: 0 0 auto; - z-index: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { - align-items: center; - background-color: #fff; - border-bottom: 1px solid #cccccc; - display: flex; - flex: 1; - height: 2.5em; - width: 100%; - /* Make it no larger than the toolstrip, so that it needs to scroll */ -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { - align-items: center; - display: flex; - height: 100%; - flex-shrink: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { - align-items: center; - display: flex; - height: 100%; - flex: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { - background: #f44336; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { - flex-grow: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { - padding-left: 0.5em; - padding-right: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { - align-items: center; - display: flex; - height: 80%; - margin-left: 2px; - margin-right: 2px; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { - background: #c8cbcf; - color: #cccccc; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { - background: #207ab7; - color: #eceff1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { - /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { - align-items: center; - display: flex; - height: 100%; - flex: 1; - padding-bottom: 0.4em; - padding-top: 0.4em; - /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ - /* For widgets like the colour picker, use the whole height */ -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { - display: flex; - min-height: 1.5em; - overflow: hidden; - padding-left: 0; - padding-right: 0; - position: relative; - width: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { - display: flex; - height: 100%; - transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; - width: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { - display: flex; - flex: 0 0 auto; - justify-content: space-between; - width: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { - font-family: Sans-serif; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { - display: flex; - flex-grow: 1; - position: relative; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { - -ms-grid-row-align: center; - align-self: center; - background: inherit; - border: none; - border-radius: 50%; - color: #888; - font-size: 0.6em; - font-weight: bold; - height: 100%; - padding-right: 2px; - position: absolute; - right: 0; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { - display: none; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { - align-items: center; - display: flex; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { - align-items: center; - display: flex; - font-weight: bold; - height: 100%; - padding-left: 0.5em; - padding-right: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { - visibility: hidden; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { - color: #cccccc; - font-size: 10px; - line-height: 10px; - margin: 0 2px; - padding-top: 3px; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { - color: #c8cbcf; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { - margin-left: 0.5em; - margin-right: 0.9em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { - margin-left: 0.9em; - margin-right: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { - display: flex; - flex: 1; - margin-left: 0; - margin-right: 0; - padding: 0.28em 0; - position: relative; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { - align-items: center; - display: flex; - flex-grow: 1; - height: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { - background: #cccccc; - display: flex; - flex: 1; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { - padding-left: 2em; - padding-right: 2em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { - align-items: center; - display: flex; - flex-grow: 1; - height: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { - background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); - display: flex; - flex: 1; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { - /* Not part of theming */ - background: black; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; - width: 1.2em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { - /* Not part of theming */ - background: white; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; - width: 1.2em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { - /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave - * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is - * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without - * this approach. - */ - align-items: center; - background-clip: padding-box; - background-color: #455a64; - border: 0.5em solid rgba(136, 136, 136, 0); - border-radius: 3em; - bottom: 0; - color: #fff; - display: flex; - height: 0.5em; - justify-content: center; - left: -10px; - margin: auto; - position: absolute; - top: 0; - transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); - width: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { - border: 0.5em solid rgba(136, 136, 136, 0.39); -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { - align-items: center; - display: flex; - height: 100%; - flex: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { - flex-direction: column; - justify-content: center; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { - align-items: center; - display: flex; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { - height: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { - display: flex; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { - background: #ffffff; - border: none; - border-radius: 0; - color: #455a64; - flex-grow: 1; - font-size: 0.85em; - padding-bottom: 0.1em; - padding-left: 5px; - padding-top: 0.1em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { - /* WebKit, Blink, Edge */ - color: #888; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { - /* WebKit, Blink, Edge */ - color: #888; -} -/* dropup */ -.tinymce-mobile-dropup { - background: white; - display: flex; - overflow: hidden; - width: 100%; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { - transition: height 0.3s ease-out; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { - transition: height 0.3s ease-in; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { - flex-grow: 0; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { - flex-grow: 1; -} -/* TODO min-height for device size and orientation */ -.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { - min-height: 200px; -} -@media only screen and (orientation: landscape) { - .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { - min-height: 200px; - } -} -@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { - .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { - min-height: 150px; - } -} -/* styles menu */ -.tinymce-mobile-styles-menu { - font-family: sans-serif; - outline: 4px solid black; - overflow: hidden; - position: relative; - width: 100%; -} -.tinymce-mobile-styles-menu [role="menu"] { - display: flex; - flex-direction: column; - height: 100%; - position: absolute; - width: 100%; -} -.tinymce-mobile-styles-menu [role="menu"].transitioning { - transition: transform 0.5s ease-in-out; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { - border-bottom: 1px solid #ddd; - color: #455a64; - cursor: pointer; - display: flex; - padding: 1em 1em; - position: relative; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { - color: #455a64; - content: "\e314"; - font-family: 'tinymce-mobile', sans-serif; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { - color: #455a64; - content: "\e315"; - font-family: 'tinymce-mobile', sans-serif; - padding-left: 1em; - padding-right: 1em; - position: absolute; - right: 0; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { - font-family: 'tinymce-mobile', sans-serif; - padding-left: 1em; - padding-right: 1em; - position: absolute; - right: 0; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, -.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { - align-items: center; - background: #fff; - border-top: #455a64; - color: #455a64; - display: flex; - min-height: 2.5em; - padding-left: 1em; - padding-right: 1em; -} -.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], -.tinymce-mobile-styles-menu [data-transitioning-state="before"] { - transform: translate(-100%); -} -.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], -.tinymce-mobile-styles-menu [data-transitioning-state="current"] { - transform: translate(0%); -} -.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], -.tinymce-mobile-styles-menu [data-transitioning-state="after"] { - transform: translate(100%); -} -@font-face { - font-family: 'tinymce-mobile'; - font-style: normal; - font-weight: normal; - src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); -} -@media (min-device-width: 700px) { - .tinymce-mobile-outer-container, - .tinymce-mobile-outer-container input { - font-size: 25px; - } -} -@media (max-device-width: 700px) { - .tinymce-mobile-outer-container, - .tinymce-mobile-outer-container input { - font-size: 18px; - } -} -.tinymce-mobile-icon { - font-family: 'tinymce-mobile', sans-serif; -} -.mixin-flex-and-centre { - align-items: center; - display: flex; - justify-content: center; -} -.mixin-flex-bar { - align-items: center; - display: flex; - height: 100%; -} -.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { - background-color: #fff; - width: 100%; -} -.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { - /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ - background-color: #207ab7; - border-radius: 50%; - bottom: 1em; - color: white; - font-size: 1em; - height: 2.1em; - position: fixed; - right: 2em; - width: 2.1em; - align-items: center; - display: flex; - justify-content: center; -} -@media only screen and (min-device-width:700px) { - .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { - font-size: 1.2em; - } -} -.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { - height: 300px; - overflow: hidden; -} -.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { - height: 100%; -} -.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { - display: none; -} -/* - Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets - increased and the whole body becomes scrollable. It's important! - */ -input[type="file"]::-webkit-file-upload-button { - display: none; -} -@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { - .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { - bottom: 50%; - } -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css deleted file mode 100644 index 3a45cac..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css deleted file mode 100644 index d2adc4d..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body.tox-dialog__disable-scroll { - overflow: hidden; -} -.tox-fullscreen { - border: 0; - height: 100%; - margin: 0; - overflow: hidden; - -ms-scroll-chaining: none; - overscroll-behavior: none; - padding: 0; - touch-action: pinch-zoom; - width: 100%; -} -.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { - display: none; -} -.tox.tox-tinymce.tox-fullscreen, -.tox-shadowhost.tox-fullscreen { - left: 0; - position: fixed; - top: 0; - z-index: 1200; -} -.tox.tox-tinymce.tox-fullscreen { - background-color: transparent; -} -.tox-fullscreen .tox.tox-tinymce-aux, -.tox-fullscreen ~ .tox.tox-tinymce-aux { - z-index: 1201; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css b/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css deleted file mode 100644 index a0893b9..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/content.css b/dict/admin/public/tinymce/skins/ui/oxide/content.css deleted file mode 100644 index 2ac0cca..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/content.css +++ /dev/null @@ -1,732 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - cursor: default; - display: inline-block; - height: 12px !important; - padding: 0 2px; - -webkit-user-modify: read-only; - -moz-user-modify: read-only; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: all; - user-select: all; - width: 8px !important; -} -.mce-content-body .mce-item-anchor[data-mce-selected] { - outline-offset: 1px; -} -.tox-comments-visible .tox-comment { - background-color: #fff0b7; -} -.tox-comments-visible .tox-comment--active { - background-color: #ffe168; -} -.tox-checklist > li:not(.tox-checklist--hidden) { - list-style: none; - margin: 0.25em 0; -} -.tox-checklist > li:not(.tox-checklist--hidden)::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); - cursor: pointer; - height: 1em; - margin-left: -1.5em; - margin-top: 0.125em; - position: absolute; - width: 1em; -} -.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); -} -[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { - margin-left: 0; - margin-right: -1.5em; -} -/* stylelint-disable */ -/* http://prismjs.com/ */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ -code[class*="language-"], -pre[class*="language-"] { - color: black; - background: none; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: 1em; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - -moz-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} -pre[class*="language-"]::-moz-selection, -pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} -pre[class*="language-"]::selection, -pre[class*="language-"] ::selection, -code[class*="language-"]::selection, -code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} -.token.punctuation { - color: #999; -} -.namespace { - opacity: 0.7; -} -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #9a6e3a; - background: hsla(0, 0%, 100%, 0.5); -} -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} -.token.function, -.token.class-name { - color: #DD4A68; -} -.token.regex, -.token.important, -.token.variable { - color: #e90; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* stylelint-enable */ -.mce-content-body { - overflow-wrap: break-word; - word-wrap: break-word; -} -.mce-content-body .mce-visual-caret { - background-color: black; - background-color: currentColor; - position: absolute; -} -.mce-content-body .mce-visual-caret-hidden { - display: none; -} -.mce-content-body *[data-mce-caret] { - left: -1000px; - margin: 0; - padding: 0; - position: absolute; - right: auto; - top: 0; -} -.mce-content-body .mce-offscreen-selection { - left: -2000000px; - max-width: 1000000px; - position: absolute; -} -.mce-content-body *[contentEditable=false] { - cursor: default; -} -.mce-content-body *[contentEditable=true] { - cursor: text; -} -.tox-cursor-format-painter { - cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; -} -.mce-content-body figure.align-left { - float: left; -} -.mce-content-body figure.align-right { - float: right; -} -.mce-content-body figure.image.align-center { - display: table; - margin-left: auto; - margin-right: auto; -} -.mce-preview-object { - border: 1px solid gray; - display: inline-block; - line-height: 0; - margin: 0 2px 0 2px; - position: relative; -} -.mce-preview-object .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-preview-object[data-mce-selected="2"] .mce-shim { - display: none; -} -.mce-object { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - border: 1px dashed #aaa; -} -.mce-pagebreak { - border: 1px dashed #aaa; - cursor: default; - display: block; - height: 5px; - margin-top: 15px; - page-break-before: always; - width: 100%; -} -@media print { - .mce-pagebreak { - border: 0; - } -} -.tiny-pageembed .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tiny-pageembed[data-mce-selected="2"] .mce-shim { - display: none; -} -.tiny-pageembed { - display: inline-block; - position: relative; -} -.tiny-pageembed--21by9, -.tiny-pageembed--16by9, -.tiny-pageembed--4by3, -.tiny-pageembed--1by1 { - display: block; - overflow: hidden; - padding: 0; - position: relative; - width: 100%; -} -.tiny-pageembed--21by9 { - padding-top: 42.857143%; -} -.tiny-pageembed--16by9 { - padding-top: 56.25%; -} -.tiny-pageembed--4by3 { - padding-top: 75%; -} -.tiny-pageembed--1by1 { - padding-top: 100%; -} -.tiny-pageembed--21by9 iframe, -.tiny-pageembed--16by9 iframe, -.tiny-pageembed--4by3 iframe, -.tiny-pageembed--1by1 iframe { - border: 0; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-content-body[data-mce-placeholder] { - position: relative; -} -.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { - color: rgba(34, 47, 62, 0.7); - content: attr(data-mce-placeholder); - position: absolute; -} -.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { - left: 1px; -} -.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { - right: 1px; -} -.mce-content-body div.mce-resizehandle { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - height: 10px; - position: absolute; - width: 10px; - z-index: 1298; -} -.mce-content-body div.mce-resizehandle:hover { - background-color: #4099ff; -} -.mce-content-body div.mce-resizehandle:nth-of-type(1) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(2) { - cursor: nesw-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(3) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(4) { - cursor: nesw-resize; -} -.mce-content-body .mce-resize-backdrop { - z-index: 10000; -} -.mce-content-body .mce-clonedresizable { - cursor: default; - opacity: 0.5; - outline: 1px dashed black; - position: absolute; - z-index: 10001; -} -.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, -.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { - border: 0; -} -.mce-content-body .mce-resize-helper { - background: #555; - background: rgba(0, 0, 0, 0.75); - border: 1px; - border-radius: 3px; - color: white; - display: none; - font-family: sans-serif; - font-size: 12px; - line-height: 14px; - margin: 5px 10px; - padding: 5px; - position: absolute; - white-space: nowrap; - z-index: 10002; -} -.tox-rtc-user-selection { - position: relative; -} -.tox-rtc-user-cursor { - bottom: 0; - cursor: default; - position: absolute; - top: 0; - width: 2px; -} -.tox-rtc-user-cursor::before { - background-color: inherit; - border-radius: 50%; - content: ''; - display: block; - height: 8px; - position: absolute; - right: -3px; - top: -3px; - width: 8px; -} -.tox-rtc-user-cursor:hover::after { - background-color: inherit; - border-radius: 100px; - box-sizing: border-box; - color: #fff; - content: attr(data-user); - display: block; - font-size: 12px; - font-weight: bold; - left: -5px; - min-height: 8px; - min-width: 8px; - padding: 0 12px; - position: absolute; - top: -11px; - white-space: nowrap; - z-index: 1000; -} -.tox-rtc-user-selection--1 .tox-rtc-user-cursor { - background-color: #2dc26b; -} -.tox-rtc-user-selection--2 .tox-rtc-user-cursor { - background-color: #e03e2d; -} -.tox-rtc-user-selection--3 .tox-rtc-user-cursor { - background-color: #f1c40f; -} -.tox-rtc-user-selection--4 .tox-rtc-user-cursor { - background-color: #3598db; -} -.tox-rtc-user-selection--5 .tox-rtc-user-cursor { - background-color: #b96ad9; -} -.tox-rtc-user-selection--6 .tox-rtc-user-cursor { - background-color: #e67e23; -} -.tox-rtc-user-selection--7 .tox-rtc-user-cursor { - background-color: #aaa69d; -} -.tox-rtc-user-selection--8 .tox-rtc-user-cursor { - background-color: #f368e0; -} -.tox-rtc-remote-image { - background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; - border: 1px solid #ccc; - min-height: 240px; - min-width: 320px; -} -.mce-match-marker { - background: #aaa; - color: #fff; -} -.mce-match-marker-selected { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::-moz-selection { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::selection { - background: #39f; - color: #fff; -} -.mce-content-body img[data-mce-selected], -.mce-content-body video[data-mce-selected], -.mce-content-body audio[data-mce-selected], -.mce-content-body object[data-mce-selected], -.mce-content-body embed[data-mce-selected], -.mce-content-body table[data-mce-selected] { - outline: 3px solid #b4d7ff; -} -.mce-content-body hr[data-mce-selected] { - outline: 3px solid #b4d7ff; - outline-offset: 1px; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false][data-mce-selected] { - cursor: not-allowed; - outline: 3px solid #b4d7ff; -} -.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, -.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { - outline: none; -} -.mce-content-body *[data-mce-selected="inline-boundary"] { - background-color: #b4d7ff; -} -.mce-content-body .mce-edit-focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body td[data-mce-selected], -.mce-content-body th[data-mce-selected] { - position: relative; -} -.mce-content-body td[data-mce-selected]::-moz-selection, -.mce-content-body th[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body td[data-mce-selected]::selection, -.mce-content-body th[data-mce-selected]::selection { - background: none; -} -.mce-content-body td[data-mce-selected] *, -.mce-content-body th[data-mce-selected] * { - outline: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mce-content-body td[data-mce-selected]::after, -.mce-content-body th[data-mce-selected]::after { - background-color: rgba(180, 215, 255, 0.7); - border: 1px solid rgba(180, 215, 255, 0.7); - bottom: -1px; - content: ''; - left: -1px; - mix-blend-mode: multiply; - position: absolute; - right: -1px; - top: -1px; -} -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .mce-content-body td[data-mce-selected]::after, - .mce-content-body th[data-mce-selected]::after { - border-color: rgba(0, 84, 180, 0.7); - } -} -.mce-content-body img::-moz-selection { - background: none; -} -.mce-content-body img::selection { - background: none; -} -.ephox-snooker-resizer-bar { - background-color: #b4d7ff; - opacity: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.ephox-snooker-resizer-cols { - cursor: col-resize; -} -.ephox-snooker-resizer-rows { - cursor: row-resize; -} -.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { - opacity: 1; -} -.mce-spellchecker-word { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; - height: 2rem; -} -.mce-spellchecker-grammar { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; -} -.mce-toc { - border: 1px solid gray; -} -.mce-toc h2 { - margin: 4px; -} -.mce-toc li { - list-style-type: none; -} -table[style*="border-width: 0px"], -.mce-item-table:not([border]), -.mce-item-table[border="0"], -table[style*="border-width: 0px"] td, -.mce-item-table:not([border]) td, -.mce-item-table[border="0"] td, -table[style*="border-width: 0px"] th, -.mce-item-table:not([border]) th, -.mce-item-table[border="0"] th, -table[style*="border-width: 0px"] caption, -.mce-item-table:not([border]) caption, -.mce-item-table[border="0"] caption { - border: 1px dashed #bbb; -} -.mce-visualblocks p, -.mce-visualblocks h1, -.mce-visualblocks h2, -.mce-visualblocks h3, -.mce-visualblocks h4, -.mce-visualblocks h5, -.mce-visualblocks h6, -.mce-visualblocks div:not([data-mce-bogus]), -.mce-visualblocks section, -.mce-visualblocks article, -.mce-visualblocks blockquote, -.mce-visualblocks address, -.mce-visualblocks pre, -.mce-visualblocks figure, -.mce-visualblocks figcaption, -.mce-visualblocks hgroup, -.mce-visualblocks aside, -.mce-visualblocks ul, -.mce-visualblocks ol, -.mce-visualblocks dl { - background-repeat: no-repeat; - border: 1px dashed #bbb; - margin-left: 3px; - padding-top: 10px; -} -.mce-visualblocks p { - background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} -.mce-visualblocks h1 { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} -.mce-visualblocks h2 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} -.mce-visualblocks h3 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} -.mce-visualblocks h4 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} -.mce-visualblocks h5 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} -.mce-visualblocks h6 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} -.mce-visualblocks div:not([data-mce-bogus]) { - background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} -.mce-visualblocks section { - background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} -.mce-visualblocks article { - background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} -.mce-visualblocks blockquote { - background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} -.mce-visualblocks address { - background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} -.mce-visualblocks pre { - background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} -.mce-visualblocks figure { - background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} -.mce-visualblocks figcaption { - border: 1px dashed #bbb; -} -.mce-visualblocks hgroup { - background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} -.mce-visualblocks aside { - background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} -.mce-visualblocks ul { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); -} -.mce-visualblocks ol { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} -.mce-visualblocks dl { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); -} -.mce-visualblocks:not([dir=rtl]) p, -.mce-visualblocks:not([dir=rtl]) h1, -.mce-visualblocks:not([dir=rtl]) h2, -.mce-visualblocks:not([dir=rtl]) h3, -.mce-visualblocks:not([dir=rtl]) h4, -.mce-visualblocks:not([dir=rtl]) h5, -.mce-visualblocks:not([dir=rtl]) h6, -.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), -.mce-visualblocks:not([dir=rtl]) section, -.mce-visualblocks:not([dir=rtl]) article, -.mce-visualblocks:not([dir=rtl]) blockquote, -.mce-visualblocks:not([dir=rtl]) address, -.mce-visualblocks:not([dir=rtl]) pre, -.mce-visualblocks:not([dir=rtl]) figure, -.mce-visualblocks:not([dir=rtl]) figcaption, -.mce-visualblocks:not([dir=rtl]) hgroup, -.mce-visualblocks:not([dir=rtl]) aside, -.mce-visualblocks:not([dir=rtl]) ul, -.mce-visualblocks:not([dir=rtl]) ol, -.mce-visualblocks:not([dir=rtl]) dl { - margin-left: 3px; -} -.mce-visualblocks[dir=rtl] p, -.mce-visualblocks[dir=rtl] h1, -.mce-visualblocks[dir=rtl] h2, -.mce-visualblocks[dir=rtl] h3, -.mce-visualblocks[dir=rtl] h4, -.mce-visualblocks[dir=rtl] h5, -.mce-visualblocks[dir=rtl] h6, -.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), -.mce-visualblocks[dir=rtl] section, -.mce-visualblocks[dir=rtl] article, -.mce-visualblocks[dir=rtl] blockquote, -.mce-visualblocks[dir=rtl] address, -.mce-visualblocks[dir=rtl] pre, -.mce-visualblocks[dir=rtl] figure, -.mce-visualblocks[dir=rtl] figcaption, -.mce-visualblocks[dir=rtl] hgroup, -.mce-visualblocks[dir=rtl] aside, -.mce-visualblocks[dir=rtl] ul, -.mce-visualblocks[dir=rtl] ol, -.mce-visualblocks[dir=rtl] dl { - background-position-x: right; - margin-right: 3px; -} -.mce-nbsp, -.mce-shy { - background: #aaa; -} -.mce-shy::after { - content: '-'; -} -body { - font-family: sans-serif; -} -table { - border-collapse: collapse; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/content.inline.css b/dict/admin/public/tinymce/skins/ui/oxide/content.inline.css deleted file mode 100644 index 8e7521d..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/content.inline.css +++ /dev/null @@ -1,726 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - cursor: default; - display: inline-block; - height: 12px !important; - padding: 0 2px; - -webkit-user-modify: read-only; - -moz-user-modify: read-only; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: all; - user-select: all; - width: 8px !important; -} -.mce-content-body .mce-item-anchor[data-mce-selected] { - outline-offset: 1px; -} -.tox-comments-visible .tox-comment { - background-color: #fff0b7; -} -.tox-comments-visible .tox-comment--active { - background-color: #ffe168; -} -.tox-checklist > li:not(.tox-checklist--hidden) { - list-style: none; - margin: 0.25em 0; -} -.tox-checklist > li:not(.tox-checklist--hidden)::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); - cursor: pointer; - height: 1em; - margin-left: -1.5em; - margin-top: 0.125em; - position: absolute; - width: 1em; -} -.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); -} -[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { - margin-left: 0; - margin-right: -1.5em; -} -/* stylelint-disable */ -/* http://prismjs.com/ */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ -code[class*="language-"], -pre[class*="language-"] { - color: black; - background: none; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: 1em; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - -moz-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} -pre[class*="language-"]::-moz-selection, -pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} -pre[class*="language-"]::selection, -pre[class*="language-"] ::selection, -code[class*="language-"]::selection, -code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} -.token.punctuation { - color: #999; -} -.namespace { - opacity: 0.7; -} -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #9a6e3a; - background: hsla(0, 0%, 100%, 0.5); -} -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} -.token.function, -.token.class-name { - color: #DD4A68; -} -.token.regex, -.token.important, -.token.variable { - color: #e90; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* stylelint-enable */ -.mce-content-body { - overflow-wrap: break-word; - word-wrap: break-word; -} -.mce-content-body .mce-visual-caret { - background-color: black; - background-color: currentColor; - position: absolute; -} -.mce-content-body .mce-visual-caret-hidden { - display: none; -} -.mce-content-body *[data-mce-caret] { - left: -1000px; - margin: 0; - padding: 0; - position: absolute; - right: auto; - top: 0; -} -.mce-content-body .mce-offscreen-selection { - left: -2000000px; - max-width: 1000000px; - position: absolute; -} -.mce-content-body *[contentEditable=false] { - cursor: default; -} -.mce-content-body *[contentEditable=true] { - cursor: text; -} -.tox-cursor-format-painter { - cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; -} -.mce-content-body figure.align-left { - float: left; -} -.mce-content-body figure.align-right { - float: right; -} -.mce-content-body figure.image.align-center { - display: table; - margin-left: auto; - margin-right: auto; -} -.mce-preview-object { - border: 1px solid gray; - display: inline-block; - line-height: 0; - margin: 0 2px 0 2px; - position: relative; -} -.mce-preview-object .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-preview-object[data-mce-selected="2"] .mce-shim { - display: none; -} -.mce-object { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - border: 1px dashed #aaa; -} -.mce-pagebreak { - border: 1px dashed #aaa; - cursor: default; - display: block; - height: 5px; - margin-top: 15px; - page-break-before: always; - width: 100%; -} -@media print { - .mce-pagebreak { - border: 0; - } -} -.tiny-pageembed .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tiny-pageembed[data-mce-selected="2"] .mce-shim { - display: none; -} -.tiny-pageembed { - display: inline-block; - position: relative; -} -.tiny-pageembed--21by9, -.tiny-pageembed--16by9, -.tiny-pageembed--4by3, -.tiny-pageembed--1by1 { - display: block; - overflow: hidden; - padding: 0; - position: relative; - width: 100%; -} -.tiny-pageembed--21by9 { - padding-top: 42.857143%; -} -.tiny-pageembed--16by9 { - padding-top: 56.25%; -} -.tiny-pageembed--4by3 { - padding-top: 75%; -} -.tiny-pageembed--1by1 { - padding-top: 100%; -} -.tiny-pageembed--21by9 iframe, -.tiny-pageembed--16by9 iframe, -.tiny-pageembed--4by3 iframe, -.tiny-pageembed--1by1 iframe { - border: 0; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-content-body[data-mce-placeholder] { - position: relative; -} -.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { - color: rgba(34, 47, 62, 0.7); - content: attr(data-mce-placeholder); - position: absolute; -} -.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { - left: 1px; -} -.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { - right: 1px; -} -.mce-content-body div.mce-resizehandle { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - height: 10px; - position: absolute; - width: 10px; - z-index: 1298; -} -.mce-content-body div.mce-resizehandle:hover { - background-color: #4099ff; -} -.mce-content-body div.mce-resizehandle:nth-of-type(1) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(2) { - cursor: nesw-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(3) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(4) { - cursor: nesw-resize; -} -.mce-content-body .mce-resize-backdrop { - z-index: 10000; -} -.mce-content-body .mce-clonedresizable { - cursor: default; - opacity: 0.5; - outline: 1px dashed black; - position: absolute; - z-index: 10001; -} -.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, -.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { - border: 0; -} -.mce-content-body .mce-resize-helper { - background: #555; - background: rgba(0, 0, 0, 0.75); - border: 1px; - border-radius: 3px; - color: white; - display: none; - font-family: sans-serif; - font-size: 12px; - line-height: 14px; - margin: 5px 10px; - padding: 5px; - position: absolute; - white-space: nowrap; - z-index: 10002; -} -.tox-rtc-user-selection { - position: relative; -} -.tox-rtc-user-cursor { - bottom: 0; - cursor: default; - position: absolute; - top: 0; - width: 2px; -} -.tox-rtc-user-cursor::before { - background-color: inherit; - border-radius: 50%; - content: ''; - display: block; - height: 8px; - position: absolute; - right: -3px; - top: -3px; - width: 8px; -} -.tox-rtc-user-cursor:hover::after { - background-color: inherit; - border-radius: 100px; - box-sizing: border-box; - color: #fff; - content: attr(data-user); - display: block; - font-size: 12px; - font-weight: bold; - left: -5px; - min-height: 8px; - min-width: 8px; - padding: 0 12px; - position: absolute; - top: -11px; - white-space: nowrap; - z-index: 1000; -} -.tox-rtc-user-selection--1 .tox-rtc-user-cursor { - background-color: #2dc26b; -} -.tox-rtc-user-selection--2 .tox-rtc-user-cursor { - background-color: #e03e2d; -} -.tox-rtc-user-selection--3 .tox-rtc-user-cursor { - background-color: #f1c40f; -} -.tox-rtc-user-selection--4 .tox-rtc-user-cursor { - background-color: #3598db; -} -.tox-rtc-user-selection--5 .tox-rtc-user-cursor { - background-color: #b96ad9; -} -.tox-rtc-user-selection--6 .tox-rtc-user-cursor { - background-color: #e67e23; -} -.tox-rtc-user-selection--7 .tox-rtc-user-cursor { - background-color: #aaa69d; -} -.tox-rtc-user-selection--8 .tox-rtc-user-cursor { - background-color: #f368e0; -} -.tox-rtc-remote-image { - background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; - border: 1px solid #ccc; - min-height: 240px; - min-width: 320px; -} -.mce-match-marker { - background: #aaa; - color: #fff; -} -.mce-match-marker-selected { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::-moz-selection { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::selection { - background: #39f; - color: #fff; -} -.mce-content-body img[data-mce-selected], -.mce-content-body video[data-mce-selected], -.mce-content-body audio[data-mce-selected], -.mce-content-body object[data-mce-selected], -.mce-content-body embed[data-mce-selected], -.mce-content-body table[data-mce-selected] { - outline: 3px solid #b4d7ff; -} -.mce-content-body hr[data-mce-selected] { - outline: 3px solid #b4d7ff; - outline-offset: 1px; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false][data-mce-selected] { - cursor: not-allowed; - outline: 3px solid #b4d7ff; -} -.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, -.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { - outline: none; -} -.mce-content-body *[data-mce-selected="inline-boundary"] { - background-color: #b4d7ff; -} -.mce-content-body .mce-edit-focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body td[data-mce-selected], -.mce-content-body th[data-mce-selected] { - position: relative; -} -.mce-content-body td[data-mce-selected]::-moz-selection, -.mce-content-body th[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body td[data-mce-selected]::selection, -.mce-content-body th[data-mce-selected]::selection { - background: none; -} -.mce-content-body td[data-mce-selected] *, -.mce-content-body th[data-mce-selected] * { - outline: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mce-content-body td[data-mce-selected]::after, -.mce-content-body th[data-mce-selected]::after { - background-color: rgba(180, 215, 255, 0.7); - border: 1px solid rgba(180, 215, 255, 0.7); - bottom: -1px; - content: ''; - left: -1px; - mix-blend-mode: multiply; - position: absolute; - right: -1px; - top: -1px; -} -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .mce-content-body td[data-mce-selected]::after, - .mce-content-body th[data-mce-selected]::after { - border-color: rgba(0, 84, 180, 0.7); - } -} -.mce-content-body img::-moz-selection { - background: none; -} -.mce-content-body img::selection { - background: none; -} -.ephox-snooker-resizer-bar { - background-color: #b4d7ff; - opacity: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.ephox-snooker-resizer-cols { - cursor: col-resize; -} -.ephox-snooker-resizer-rows { - cursor: row-resize; -} -.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { - opacity: 1; -} -.mce-spellchecker-word { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; - height: 2rem; -} -.mce-spellchecker-grammar { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; -} -.mce-toc { - border: 1px solid gray; -} -.mce-toc h2 { - margin: 4px; -} -.mce-toc li { - list-style-type: none; -} -table[style*="border-width: 0px"], -.mce-item-table:not([border]), -.mce-item-table[border="0"], -table[style*="border-width: 0px"] td, -.mce-item-table:not([border]) td, -.mce-item-table[border="0"] td, -table[style*="border-width: 0px"] th, -.mce-item-table:not([border]) th, -.mce-item-table[border="0"] th, -table[style*="border-width: 0px"] caption, -.mce-item-table:not([border]) caption, -.mce-item-table[border="0"] caption { - border: 1px dashed #bbb; -} -.mce-visualblocks p, -.mce-visualblocks h1, -.mce-visualblocks h2, -.mce-visualblocks h3, -.mce-visualblocks h4, -.mce-visualblocks h5, -.mce-visualblocks h6, -.mce-visualblocks div:not([data-mce-bogus]), -.mce-visualblocks section, -.mce-visualblocks article, -.mce-visualblocks blockquote, -.mce-visualblocks address, -.mce-visualblocks pre, -.mce-visualblocks figure, -.mce-visualblocks figcaption, -.mce-visualblocks hgroup, -.mce-visualblocks aside, -.mce-visualblocks ul, -.mce-visualblocks ol, -.mce-visualblocks dl { - background-repeat: no-repeat; - border: 1px dashed #bbb; - margin-left: 3px; - padding-top: 10px; -} -.mce-visualblocks p { - background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} -.mce-visualblocks h1 { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} -.mce-visualblocks h2 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} -.mce-visualblocks h3 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} -.mce-visualblocks h4 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} -.mce-visualblocks h5 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} -.mce-visualblocks h6 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} -.mce-visualblocks div:not([data-mce-bogus]) { - background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} -.mce-visualblocks section { - background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} -.mce-visualblocks article { - background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} -.mce-visualblocks blockquote { - background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} -.mce-visualblocks address { - background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} -.mce-visualblocks pre { - background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} -.mce-visualblocks figure { - background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} -.mce-visualblocks figcaption { - border: 1px dashed #bbb; -} -.mce-visualblocks hgroup { - background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} -.mce-visualblocks aside { - background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} -.mce-visualblocks ul { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); -} -.mce-visualblocks ol { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} -.mce-visualblocks dl { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); -} -.mce-visualblocks:not([dir=rtl]) p, -.mce-visualblocks:not([dir=rtl]) h1, -.mce-visualblocks:not([dir=rtl]) h2, -.mce-visualblocks:not([dir=rtl]) h3, -.mce-visualblocks:not([dir=rtl]) h4, -.mce-visualblocks:not([dir=rtl]) h5, -.mce-visualblocks:not([dir=rtl]) h6, -.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), -.mce-visualblocks:not([dir=rtl]) section, -.mce-visualblocks:not([dir=rtl]) article, -.mce-visualblocks:not([dir=rtl]) blockquote, -.mce-visualblocks:not([dir=rtl]) address, -.mce-visualblocks:not([dir=rtl]) pre, -.mce-visualblocks:not([dir=rtl]) figure, -.mce-visualblocks:not([dir=rtl]) figcaption, -.mce-visualblocks:not([dir=rtl]) hgroup, -.mce-visualblocks:not([dir=rtl]) aside, -.mce-visualblocks:not([dir=rtl]) ul, -.mce-visualblocks:not([dir=rtl]) ol, -.mce-visualblocks:not([dir=rtl]) dl { - margin-left: 3px; -} -.mce-visualblocks[dir=rtl] p, -.mce-visualblocks[dir=rtl] h1, -.mce-visualblocks[dir=rtl] h2, -.mce-visualblocks[dir=rtl] h3, -.mce-visualblocks[dir=rtl] h4, -.mce-visualblocks[dir=rtl] h5, -.mce-visualblocks[dir=rtl] h6, -.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), -.mce-visualblocks[dir=rtl] section, -.mce-visualblocks[dir=rtl] article, -.mce-visualblocks[dir=rtl] blockquote, -.mce-visualblocks[dir=rtl] address, -.mce-visualblocks[dir=rtl] pre, -.mce-visualblocks[dir=rtl] figure, -.mce-visualblocks[dir=rtl] figcaption, -.mce-visualblocks[dir=rtl] hgroup, -.mce-visualblocks[dir=rtl] aside, -.mce-visualblocks[dir=rtl] ul, -.mce-visualblocks[dir=rtl] ol, -.mce-visualblocks[dir=rtl] dl { - background-position-x: right; - margin-right: 3px; -} -.mce-nbsp, -.mce-shy { - background: #aaa; -} -.mce-shy::after { - content: '-'; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/content.inline.min.css b/dict/admin/public/tinymce/skins/ui/oxide/content.inline.min.css deleted file mode 100644 index b4ab9a3..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/content.inline.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/content.min.css b/dict/admin/public/tinymce/skins/ui/oxide/content.min.css deleted file mode 100644 index 844858d..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/content.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/content.mobile.css b/dict/admin/public/tinymce/skins/ui/oxide/content.mobile.css deleted file mode 100644 index 4bdb8ba..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/content.mobile.css +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { - /* Note: this file is used inside the content, so isn't part of theming */ - background-color: green; - display: inline-block; - opacity: 0.5; - position: absolute; -} -body { - -webkit-text-size-adjust: none; -} -body img { - /* this is related to the content margin */ - max-width: 96vw; -} -body table img { - max-width: 95%; -} -body { - font-family: sans-serif; -} -table { - border-collapse: collapse; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/content.mobile.min.css b/dict/admin/public/tinymce/skins/ui/oxide/content.mobile.min.css deleted file mode 100644 index 35f7dc0..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/content.mobile.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff b/dict/admin/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff deleted file mode 100644 index 1e3be038a607cb7c2544ed8ae3d6621f77bf4c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4624 zcmb7IeQaFC5#QN&AGUL{efE7g{=BM1W-|RaVdWQe^e?BC`eGz4^i8S3PQw?Hhd_eQHxTkckXZB zdzU((wCVGko!Qyh+1c6InRotvZ%+>+hNrBQtrFOI4t*}DZ$7=>Sr=uD3c$ZlKuKBQ z8~ervCczs9SOk2!>AAqrz+v$CC}f1JfYPDSqx->|V$6{ekbe8M#Bh3Gkg?)-Fdi3B zeB$}UFqn*$pv&q7*net~hsUOlfG7Ho2zaowY%JPRytMvu{&xRPm(h_~w##F>vqE&a5-ssH##mlfAk}44^ zXRJKd!Ifw&ce{$Y9BAg5c>e>p_Z;t!=P{izddGWie?aHLdKL3Cn9rG=d2vt;esWqH zoD}uAoi3Z~4+LABvADt+so4~t%VlyIJ{O3tm$NC+(!yenQD%NVr*btG$T3+_WX=LH z#1M2ZNEtrO+-x;l2i>M^5o%GQ@s?N+gw*19H@G~vl3Q5Zf*t6jjW0GOTmAmlWYgSS zJeiEo%~LA-FW|YAd_Em$OE#@dw)y*#@p!UtnWa);V1HY3ZBw!>(3gY{iFFa_c6iW9 zIQ@xck^{xu9_o;UyQH#ba@y?L$xW?8J35?$p1z46ZjIctZ8QCKCa29bMC1-t@pT>S zTUT1WMjQz-75d)5zJxv~@Yd)bY)ejQBx_XQiaMJ z>$5`NO3?L*ND{UQeF8%xl)$_>w9tmQpfEebzedazFeh#~d}suN+vzsqLiW~@TLhoe zk1%xEcxP2ZL)FuoXeYzb-J5goljDxPL2@@#RW)d&X#&6QO5U=04_628@ONSvtgpha zDqqmoVep`A4<+PK$V>K+T}}{8Rj+Q|UAzCtl!Fh)uXJg{x$}HMJH7LcBLzj-r{h;< zzote8Id%pcAyE;87D<8glyaFeq#k)OEDB%yA ze%CeZ!?4TEs#pj+%14DBZHn8jxaF2as6}p3+!6p-&@I>5lbP3&N$svcIF-`0R5(o2 zh7la++|;-euckH44a4BAwB++#-cZ z)kFyC=eUS-4D0t}H8LdZY!JD^sW@F85io)%=8HU)ouhEeo-K_dJ3BV+8fo0JXIjlP zZt0H`0=Yv~I|PpRZ)r5_iAYmY9V=wT@BsoN9<3vftB|}TOH;|yNk_e7(2-?y{&cSK zG=E5Nz^Ko4>KxcbY!Q13!=HBS$lM96_+0y3M1yWTAt2u5C;6MWMXbRN?RI{$eHnAx z&t=-PSjZ>Qe2V2-YGs1YWemAq zVHdG{9V$QvsY~Cgq-L*PZqMPGv|px$)K~3<%+fBtG{oIRPL_7ye$-(`C=tS)^xC}% zue73qiF&{nXJ*>-@668G!`IrAeB;ad09shzt{O?7omLE_X@H|#ozGt&64 zb-&_lLkZI8TzigPZvUr=4g2-8M6M8b9EQLgoPswYg)d)j&%gZHJO!2>(?;I*8d>aG z#oS295Kcq{uD4R2@VEG($}WWiF-6YK)kjqks%o_U{CIAVX2;tX7o|unkew5?Gn3(| zOePS^{$(;Xi4ph;`KO#;k+vaLt8n5@doi+OEvH&?*+3(WgqkT9-$b0fTHm;)r=NmR zJnJ9o>UvNR(JMoIdRBf{%kd}jmZ)b)#4>dnDfq0G(?~S%d zv50QeMR$Kzd*S$AEXdp5Fhqe0Pz zZ!oS2e!i-tWEJ2^YoVo}V7S0tV7CujimbVJtVNb#yB&<-f&xpSb@m2=wBZ|qU-_^; z?C{lk+;tlxk&Sh3Pwh(D7~kNh`O=~TMWuRUu^0=9)`CYEVwhvGWUt4Wd3`6*H)Zs>LLYQcC#*~B78EfTt7RQ*l)b{v zqntLNsC`h&zZCY{x*}gfPU4at;nfileU3>zeyLdO7;;lFIft~ zsm6#wb5Jjtv;_VxleU0<%cQON-O*ywHt`@C4fn-Y83}=|hJPOpN>1H%C#7)9etg_yG)$ div { - padding-bottom: 4px; -} -.tox .accessibility-issue__description > div > div { - align-items: center; - display: flex; - margin-bottom: 4px; -} -.tox .accessibility-issue__description > *:last-child:not(:only-child) { - border-color: #cccccc; - border-style: solid; -} -.tox .accessibility-issue__repair { - margin-top: 16px; -} -.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { - background-color: rgba(32, 122, 183, 0.1); - border-color: rgba(32, 122, 183, 0.4); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { - border-color: rgba(32, 122, 183, 0.4); -} -.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { - color: #207ab7; -} -.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { - fill: #207ab7; -} -.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { - color: #207ab7; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { - background-color: rgba(255, 165, 0, 0.1); - border-color: rgba(255, 165, 0, 0.5); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { - border-color: rgba(255, 165, 0, 0.5); -} -.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { - color: #cc8500; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { - fill: #cc8500; -} -.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { - color: #cc8500; -} -.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { - background-color: rgba(204, 0, 0, 0.1); - border-color: rgba(204, 0, 0, 0.4); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { - border-color: rgba(204, 0, 0, 0.4); -} -.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { - color: #c00; -} -.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { - fill: #c00; -} -.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { - color: #c00; -} -.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { - background-color: rgba(120, 171, 70, 0.1); - border-color: rgba(120, 171, 70, 0.4); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { - border-color: rgba(120, 171, 70, 0.4); -} -.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { - color: #78AB46; -} -.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { - fill: #78AB46; -} -.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { - color: #78AB46; -} -.tox .tox-dialog__body-content .accessibility-issue__header h1, -.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { - margin-top: 0; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { - margin-left: auto; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { - padding: 4px 4px 4px 8px; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { - border-left-width: 1px; - padding-left: 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { - margin-right: 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { - margin-right: auto; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { - padding: 4px 8px 4px 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { - border-right-width: 1px; - padding-right: 4px; -} -.tox .tox-anchorbar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-bar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-button { - background-color: #207ab7; - background-image: none; - background-position: 0 0; - background-repeat: repeat; - border-color: #207ab7; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #fff; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 14px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - line-height: 24px; - margin: 0; - outline: none; - padding: 4px 16px; - text-align: center; - text-decoration: none; - text-transform: none; - white-space: nowrap; -} -.tox .tox-button[disabled] { - background-color: #207ab7; - background-image: none; - border-color: #207ab7; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-button:focus:not(:disabled) { - background-color: #1c6ca1; - background-image: none; - border-color: #1c6ca1; - box-shadow: none; - color: #fff; -} -.tox .tox-button:hover:not(:disabled) { - background-color: #1c6ca1; - background-image: none; - border-color: #1c6ca1; - box-shadow: none; - color: #fff; -} -.tox .tox-button:active:not(:disabled) { - background-color: #185d8c; - background-image: none; - border-color: #185d8c; - box-shadow: none; - color: #fff; -} -.tox .tox-button--secondary { - background-color: #f0f0f0; - background-image: none; - background-position: 0 0; - background-repeat: repeat; - border-color: #f0f0f0; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - color: #222f3e; - font-size: 14px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - outline: none; - padding: 4px 16px; - text-decoration: none; - text-transform: none; -} -.tox .tox-button--secondary[disabled] { - background-color: #f0f0f0; - background-image: none; - border-color: #f0f0f0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-button--secondary:focus:not(:disabled) { - background-color: #e3e3e3; - background-image: none; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary:hover:not(:disabled) { - background-color: #e3e3e3; - background-image: none; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary:active:not(:disabled) { - background-color: #d6d6d6; - background-image: none; - border-color: #d6d6d6; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--icon, -.tox .tox-button.tox-button--icon, -.tox .tox-button.tox-button--secondary.tox-button--icon { - padding: 4px; -} -.tox .tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { - display: block; - fill: currentColor; -} -.tox .tox-button-link { - background: 0; - border: none; - box-sizing: border-box; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - font-weight: normal; - line-height: 1.3; - margin: 0; - padding: 0; - white-space: nowrap; -} -.tox .tox-button-link--sm { - font-size: 14px; -} -.tox .tox-button--naked { - background-color: transparent; - border-color: transparent; - box-shadow: unset; - color: #222f3e; -} -.tox .tox-button--naked[disabled] { - background-color: #f0f0f0; - border-color: #f0f0f0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-button--naked:hover:not(:disabled) { - background-color: #e3e3e3; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--naked:focus:not(:disabled) { - background-color: #e3e3e3; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--naked:active:not(:disabled) { - background-color: #d6d6d6; - border-color: #d6d6d6; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--naked .tox-icon svg { - fill: currentColor; -} -.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { - color: #222f3e; -} -.tox .tox-checkbox { - align-items: center; - border-radius: 3px; - cursor: pointer; - display: flex; - height: 36px; - min-width: 36px; -} -.tox .tox-checkbox__input { - /* Hide from view but visible to screen readers */ - height: 1px; - overflow: hidden; - position: absolute; - top: auto; - width: 1px; -} -.tox .tox-checkbox__icons { - align-items: center; - border-radius: 3px; - box-shadow: 0 0 0 2px transparent; - box-sizing: content-box; - display: flex; - height: 24px; - justify-content: center; - padding: calc(4px - 1px); - width: 24px; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: block; - fill: rgba(34, 47, 62, 0.3); -} -.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: none; - fill: #207ab7; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: none; - fill: #207ab7; -} -.tox .tox-checkbox--disabled { - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: block; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: block; -} -.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { - border-radius: 3px; - box-shadow: inset 0 0 0 1px #207ab7; - padding: calc(4px - 1px); -} -.tox:not([dir=rtl]) .tox-checkbox__label { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-checkbox__input { - left: -10000px; -} -.tox:not([dir=rtl]) .tox-bar .tox-checkbox { - margin-left: 4px; -} -.tox[dir=rtl] .tox-checkbox__label { - margin-right: 4px; -} -.tox[dir=rtl] .tox-checkbox__input { - right: -10000px; -} -.tox[dir=rtl] .tox-bar .tox-checkbox { - margin-right: 4px; -} -.tox { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox .tox-collection--toolbar .tox-collection__group { - display: flex; - padding: 0; -} -.tox .tox-collection--grid .tox-collection__group { - display: flex; - flex-wrap: wrap; - max-height: 208px; - overflow-x: hidden; - overflow-y: auto; - padding: 0; -} -.tox .tox-collection--list .tox-collection__group { - border-bottom-width: 0; - border-color: #cccccc; - border-left-width: 0; - border-right-width: 0; - border-style: solid; - border-top-width: 1px; - padding: 4px 0; -} -.tox .tox-collection--list .tox-collection__group:first-child { - border-top-width: 0; -} -.tox .tox-collection__group-heading { - background-color: #e6e6e6; - color: rgba(34, 47, 62, 0.7); - cursor: default; - font-size: 12px; - font-style: normal; - font-weight: normal; - margin-bottom: 4px; - margin-top: -4px; - padding: 4px 8px; - text-transform: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tox .tox-collection__item { - align-items: center; - color: #222f3e; - cursor: pointer; - display: flex; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tox .tox-collection--list .tox-collection__item { - padding: 4px 8px; -} -.tox .tox-collection--toolbar .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--grid .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--list .tox-collection__item--enabled { - background-color: #fff; - color: #222f3e; -} -.tox .tox-collection--list .tox-collection__item--active { - background-color: #dee0e2; -} -.tox .tox-collection--toolbar .tox-collection__item--enabled { - background-color: #c8cbcf; - color: #222f3e; -} -.tox .tox-collection--toolbar .tox-collection__item--active { - background-color: #dee0e2; -} -.tox .tox-collection--grid .tox-collection__item--enabled { - background-color: #c8cbcf; - color: #222f3e; -} -.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - background-color: #dee0e2; - color: #222f3e; -} -.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - color: #222f3e; -} -.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - color: #222f3e; -} -.tox .tox-collection__item-icon, -.tox .tox-collection__item-checkmark { - align-items: center; - display: flex; - height: 24px; - justify-content: center; - width: 24px; -} -.tox .tox-collection__item-icon svg, -.tox .tox-collection__item-checkmark svg { - fill: currentColor; -} -.tox .tox-collection--toolbar-lg .tox-collection__item-icon { - height: 48px; - width: 48px; -} -.tox .tox-collection__item-label { - color: currentColor; - display: inline-block; - flex: 1; - -ms-flex-preferred-size: auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 24px; - text-transform: none; - word-break: break-all; -} -.tox .tox-collection__item-accessory { - color: rgba(34, 47, 62, 0.7); - display: inline-block; - font-size: 14px; - height: 24px; - line-height: 24px; - text-transform: none; -} -.tox .tox-collection__item-caret { - align-items: center; - display: flex; - min-height: 24px; -} -.tox .tox-collection__item-caret::after { - content: ''; - font-size: 0; - min-height: inherit; -} -.tox .tox-collection__item-caret svg { - fill: #222f3e; -} -.tox .tox-collection__item--state-disabled { - background-color: transparent; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { - display: none; -} -.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { - display: none; -} -.tox .tox-collection--horizontal { - background-color: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: nowrap; - margin-bottom: 0; - overflow-x: auto; - padding: 0; -} -.tox .tox-collection--horizontal .tox-collection__group { - align-items: center; - display: flex; - flex-wrap: nowrap; - margin: 0; - padding: 0 4px; -} -.tox .tox-collection--horizontal .tox-collection__item { - height: 34px; - margin: 2px 0 3px 0; - padding: 0 4px; -} -.tox .tox-collection--horizontal .tox-collection__item-label { - white-space: nowrap; -} -.tox .tox-collection--horizontal .tox-collection__item-caret { - margin-left: 4px; -} -.tox .tox-collection__item-container { - display: flex; -} -.tox .tox-collection__item-container--row { - align-items: center; - flex: 1 1 auto; - flex-direction: row; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { - margin-right: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { - justify-content: flex-end; - margin-left: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { - align-items: flex-start; - margin-bottom: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { - align-items: center; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { - align-items: flex-end; - margin-top: auto; -} -.tox .tox-collection__item-container--column { - -ms-grid-row-align: center; - align-self: center; - flex: 1 1 auto; - flex-direction: column; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { - align-items: flex-start; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { - align-items: flex-end; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { - align-self: flex-start; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { - -ms-grid-row-align: center; - align-self: center; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { - align-self: flex-end; -} -.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { - border-right: 1px solid #cccccc; -} -.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-collection__item-accessory { - margin-left: 16px; - text-align: right; -} -.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { - margin-left: 16px; -} -.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { - border-left: 1px solid #cccccc; -} -.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-right: 8px; -} -.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { - margin-right: 4px; -} -.tox[dir=rtl] .tox-collection__item-accessory { - margin-right: 16px; - text-align: left; -} -.tox[dir=rtl] .tox-collection .tox-collection__item-caret { - margin-right: 16px; - transform: rotateY(180deg); -} -.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { - margin-right: 4px; -} -.tox .tox-color-picker-container { - display: flex; - flex-direction: row; - height: 225px; - margin: 0; -} -.tox .tox-sv-palette { - box-sizing: border-box; - display: flex; - height: 100%; -} -.tox .tox-sv-palette-spectrum { - height: 100%; -} -.tox .tox-sv-palette, -.tox .tox-sv-palette-spectrum { - width: 225px; -} -.tox .tox-sv-palette-thumb { - background: none; - border: 1px solid black; - border-radius: 50%; - box-sizing: content-box; - height: 12px; - position: absolute; - width: 12px; -} -.tox .tox-sv-palette-inner-thumb { - border: 1px solid white; - border-radius: 50%; - height: 10px; - position: absolute; - width: 10px; -} -.tox .tox-hue-slider { - box-sizing: border-box; - height: 100%; - width: 25px; -} -.tox .tox-hue-slider-spectrum { - background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); - height: 100%; - width: 100%; -} -.tox .tox-hue-slider, -.tox .tox-hue-slider-spectrum { - width: 20px; -} -.tox .tox-hue-slider-thumb { - background: white; - border: 1px solid black; - box-sizing: content-box; - height: 4px; - width: 100%; -} -.tox .tox-rgb-form { - display: flex; - flex-direction: column; - justify-content: space-between; -} -.tox .tox-rgb-form div { - align-items: center; - display: flex; - justify-content: space-between; - margin-bottom: 5px; - width: inherit; -} -.tox .tox-rgb-form input { - width: 6em; -} -.tox .tox-rgb-form input.tox-invalid { - /* Need !important to override Chrome's focus styling unfortunately */ - border: 1px solid red !important; -} -.tox .tox-rgb-form .tox-rgba-preview { - border: 1px solid black; - flex-grow: 2; - margin-bottom: 0; -} -.tox:not([dir=rtl]) .tox-sv-palette { - margin-right: 15px; -} -.tox:not([dir=rtl]) .tox-hue-slider { - margin-right: 15px; -} -.tox:not([dir=rtl]) .tox-hue-slider-thumb { - margin-left: -1px; -} -.tox:not([dir=rtl]) .tox-rgb-form label { - margin-right: 0.5em; -} -.tox[dir=rtl] .tox-sv-palette { - margin-left: 15px; -} -.tox[dir=rtl] .tox-hue-slider { - margin-left: 15px; -} -.tox[dir=rtl] .tox-hue-slider-thumb { - margin-right: -1px; -} -.tox[dir=rtl] .tox-rgb-form label { - margin-left: 0.5em; -} -.tox .tox-toolbar .tox-swatches, -.tox .tox-toolbar__primary .tox-swatches, -.tox .tox-toolbar__overflow .tox-swatches { - margin: 2px 0 3px 4px; -} -.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { - border: 0; - margin: -4px 0; -} -.tox .tox-swatches__row { - display: flex; -} -.tox .tox-swatch { - height: 30px; - transition: transform 0.15s, box-shadow 0.15s; - width: 30px; -} -.tox .tox-swatch:hover, -.tox .tox-swatch:focus { - box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; - transform: scale(0.8); -} -.tox .tox-swatch--remove { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-swatch--remove svg path { - stroke: #e74c3c; -} -.tox .tox-swatches__picker-btn { - align-items: center; - background-color: transparent; - border: 0; - cursor: pointer; - display: flex; - height: 30px; - justify-content: center; - outline: none; - padding: 0; - width: 30px; -} -.tox .tox-swatches__picker-btn svg { - height: 24px; - width: 24px; -} -.tox .tox-swatches__picker-btn:hover { - background: #dee0e2; -} -.tox:not([dir=rtl]) .tox-swatches__picker-btn { - margin-left: auto; -} -.tox[dir=rtl] .tox-swatches__picker-btn { - margin-right: auto; -} -.tox .tox-comment-thread { - background: #fff; - position: relative; -} -.tox .tox-comment-thread > *:not(:first-child) { - margin-top: 8px; -} -.tox .tox-comment { - background: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); - padding: 8px 8px 16px 8px; - position: relative; -} -.tox .tox-comment__header { - align-items: center; - color: #222f3e; - display: flex; - justify-content: space-between; -} -.tox .tox-comment__date { - color: rgba(34, 47, 62, 0.7); - font-size: 12px; -} -.tox .tox-comment__body { - color: #222f3e; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin-top: 8px; - position: relative; - text-transform: initial; -} -.tox .tox-comment__body textarea { - resize: none; - white-space: normal; - width: 100%; -} -.tox .tox-comment__expander { - padding-top: 8px; -} -.tox .tox-comment__expander p { - color: rgba(34, 47, 62, 0.7); - font-size: 14px; - font-style: normal; -} -.tox .tox-comment__body p { - margin: 0; -} -.tox .tox-comment__buttonspacing { - padding-top: 16px; - text-align: center; -} -.tox .tox-comment-thread__overlay::after { - background: #fff; - bottom: 0; - content: ""; - display: flex; - left: 0; - opacity: 0.9; - position: absolute; - right: 0; - top: 0; - z-index: 5; -} -.tox .tox-comment__reply { - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 8px; -} -.tox .tox-comment__reply > *:first-child { - margin-bottom: 8px; - width: 100%; -} -.tox .tox-comment__edit { - display: flex; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 16px; -} -.tox .tox-comment__gradient::after { - background: linear-gradient(rgba(255, 255, 255, 0), #fff); - bottom: 0; - content: ""; - display: block; - height: 5em; - margin-top: -40px; - position: absolute; - width: 100%; -} -.tox .tox-comment__overlay { - background: #fff; - bottom: 0; - display: flex; - flex-direction: column; - flex-grow: 1; - left: 0; - opacity: 0.9; - position: absolute; - right: 0; - text-align: center; - top: 0; - z-index: 5; -} -.tox .tox-comment__loading-text { - align-items: center; - color: #222f3e; - display: flex; - flex-direction: column; - position: relative; -} -.tox .tox-comment__loading-text > div { - padding-bottom: 16px; -} -.tox .tox-comment__overlaytext { - bottom: 0; - flex-direction: column; - font-size: 14px; - left: 0; - padding: 1em; - position: absolute; - right: 0; - top: 0; - z-index: 10; -} -.tox .tox-comment__overlaytext p { - background-color: #fff; - box-shadow: 0 0 8px 8px #fff; - color: #222f3e; - text-align: center; -} -.tox .tox-comment__overlaytext div:nth-of-type(2) { - font-size: 0.8em; -} -.tox .tox-comment__busy-spinner { - align-items: center; - background-color: #fff; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 20; -} -.tox .tox-comment__scroll { - display: flex; - flex-direction: column; - flex-shrink: 1; - overflow: auto; -} -.tox .tox-conversations { - margin: 8px; -} -.tox:not([dir=rtl]) .tox-comment__edit { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, -.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, -.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { - margin-left: 8px; -} -.tox[dir=rtl] .tox-comment__edit { - margin-right: 8px; -} -.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, -.tox[dir=rtl] .tox-comment__edit > *:last-child, -.tox[dir=rtl] .tox-comment__reply > *:last-child { - margin-right: 8px; -} -.tox .tox-user { - align-items: center; - display: flex; -} -.tox .tox-user__avatar svg { - fill: rgba(34, 47, 62, 0.7); -} -.tox .tox-user__name { - color: rgba(34, 47, 62, 0.7); - font-size: 12px; - font-style: normal; - font-weight: bold; - text-transform: uppercase; -} -.tox:not([dir=rtl]) .tox-user__avatar svg { - margin-right: 8px; -} -.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { - margin-left: 8px; -} -.tox[dir=rtl] .tox-user__avatar svg { - margin-left: 8px; -} -.tox[dir=rtl] .tox-user__avatar + .tox-user__name { - margin-right: 8px; -} -.tox .tox-dialog-wrap { - align-items: center; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: fixed; - right: 0; - top: 0; - z-index: 1100; -} -.tox .tox-dialog-wrap__backdrop { - background-color: rgba(255, 255, 255, 0.75); - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1; -} -.tox .tox-dialog-wrap__backdrop--opaque { - background-color: #fff; -} -.tox .tox-dialog { - background-color: #fff; - border-color: #cccccc; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); - display: flex; - flex-direction: column; - max-height: 100%; - max-width: 480px; - overflow: hidden; - position: relative; - width: 95vw; - z-index: 2; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox .tox-dialog { - align-self: flex-start; - margin: 8px auto; - width: calc(100vw - 16px); - } -} -.tox .tox-dialog-inline { - z-index: 1100; -} -.tox .tox-dialog__header { - align-items: center; - background-color: #fff; - border-bottom: none; - color: #222f3e; - display: flex; - font-size: 16px; - justify-content: space-between; - padding: 8px 16px 0 16px; - position: relative; -} -.tox .tox-dialog__header .tox-button { - z-index: 1; -} -.tox .tox-dialog__draghandle { - cursor: grab; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tox .tox-dialog__draghandle:active { - cursor: grabbing; -} -.tox .tox-dialog__dismiss { - margin-left: auto; -} -.tox .tox-dialog__title { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 20px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin: 0; - text-transform: none; -} -.tox .tox-dialog__body { - color: #222f3e; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - font-size: 16px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - min-width: 0; - text-align: left; - text-transform: none; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox .tox-dialog__body { - flex-direction: column; - } -} -.tox .tox-dialog__body-nav { - align-items: flex-start; - display: flex; - flex-direction: column; - padding: 16px 16px; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { - flex-direction: row; - -webkit-overflow-scrolling: touch; - overflow-x: auto; - padding-bottom: 0; - } -} -.tox .tox-dialog__body-nav-item { - border-bottom: 2px solid transparent; - color: rgba(34, 47, 62, 0.7); - display: inline-block; - font-size: 14px; - line-height: 1.3; - margin-bottom: 8px; - text-decoration: none; - white-space: nowrap; -} -.tox .tox-dialog__body-nav-item:focus { - background-color: rgba(32, 122, 183, 0.1); -} -.tox .tox-dialog__body-nav-item--active { - border-bottom: 2px solid #207ab7; - color: #207ab7; -} -.tox .tox-dialog__body-content { - box-sizing: border-box; - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; - max-height: 650px; - overflow: auto; - -webkit-overflow-scrolling: touch; - padding: 16px 16px; -} -.tox .tox-dialog__body-content > * { - margin-bottom: 0; - margin-top: 16px; -} -.tox .tox-dialog__body-content > *:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content > *:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content > *:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog__body-content a { - color: #207ab7; - cursor: pointer; - text-decoration: none; -} -.tox .tox-dialog__body-content a:hover, -.tox .tox-dialog__body-content a:focus { - color: #185d8c; - text-decoration: none; -} -.tox .tox-dialog__body-content a:active { - color: #185d8c; - text-decoration: none; -} -.tox .tox-dialog__body-content svg { - fill: #222f3e; -} -.tox .tox-dialog__body-content ul { - display: block; - list-style-type: disc; - margin-bottom: 16px; - -webkit-margin-end: 0; - margin-inline-end: 0; - -webkit-margin-start: 0; - margin-inline-start: 0; - -webkit-padding-start: 2.5rem; - padding-inline-start: 2.5rem; -} -.tox .tox-dialog__body-content .tox-form__group h1 { - color: #222f3e; - font-size: 20px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - margin-bottom: 16px; - margin-top: 2rem; - text-transform: none; -} -.tox .tox-dialog__body-content .tox-form__group h2 { - color: #222f3e; - font-size: 16px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - margin-bottom: 16px; - margin-top: 2rem; - text-transform: none; -} -.tox .tox-dialog__body-content .tox-form__group p { - margin-bottom: 16px; -} -.tox .tox-dialog__body-content .tox-form__group h1:first-child, -.tox .tox-dialog__body-content .tox-form__group h2:first-child, -.tox .tox-dialog__body-content .tox-form__group p:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1:last-child, -.tox .tox-dialog__body-content .tox-form__group h2:last-child, -.tox .tox-dialog__body-content .tox-form__group p:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1:only-child, -.tox .tox-dialog__body-content .tox-form__group h2:only-child, -.tox .tox-dialog__body-content .tox-form__group p:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog--width-lg { - height: 650px; - max-width: 1200px; -} -.tox .tox-dialog--width-md { - max-width: 800px; -} -.tox .tox-dialog--width-md .tox-dialog__body-content { - overflow: auto; -} -.tox .tox-dialog__body-content--centered { - text-align: center; -} -.tox .tox-dialog__footer { - align-items: center; - background-color: #fff; - border-top: 1px solid #cccccc; - display: flex; - justify-content: space-between; - padding: 8px 16px; -} -.tox .tox-dialog__footer-start, -.tox .tox-dialog__footer-end { - display: flex; -} -.tox .tox-dialog__busy-spinner { - align-items: center; - background-color: rgba(255, 255, 255, 0.75); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 3; -} -.tox .tox-dialog__table { - border-collapse: collapse; - width: 100%; -} -.tox .tox-dialog__table thead th { - font-weight: bold; - padding-bottom: 8px; -} -.tox .tox-dialog__table tbody tr { - border-bottom: 1px solid #cccccc; -} -.tox .tox-dialog__table tbody tr:last-child { - border-bottom: none; -} -.tox .tox-dialog__table td { - padding-bottom: 8px; - padding-top: 8px; -} -.tox .tox-dialog__popups { - position: absolute; - width: 100%; - z-index: 1100; -} -.tox .tox-dialog__body-iframe { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-iframe .tox-navobj { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; -} -.tox .tox-dialog-dock-fadeout { - opacity: 0; - visibility: hidden; -} -.tox .tox-dialog-dock-fadein { - opacity: 1; - visibility: visible; -} -.tox .tox-dialog-dock-transition { - transition: visibility 0s linear 0.3s, opacity 0.3s ease; -} -.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { - transition-delay: 0s; -} -.tox.tox-platform-ie { - /* IE11 CSS styles go here */ -} -.tox.tox-platform-ie .tox-dialog-wrap { - position: -ms-device-fixed; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { - margin-right: 0; - } -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { - margin-left: 8px; - } -} -.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, -.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { - margin-left: 8px; -} -.tox[dir=rtl] .tox-dialog__body { - text-align: right; -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { - margin-left: 0; - } -} -@media only screen and (max-width:767px) { - body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { - margin-right: 8px; - } -} -.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, -.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { - margin-right: 8px; -} -body.tox-dialog__disable-scroll { - overflow: hidden; -} -.tox .tox-dropzone-container { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dropzone { - align-items: center; - background: #fff; - border: 2px dashed #cccccc; - box-sizing: border-box; - display: flex; - flex-direction: column; - flex-grow: 1; - justify-content: center; - min-height: 100px; - padding: 10px; -} -.tox .tox-dropzone p { - color: rgba(34, 47, 62, 0.7); - margin: 0 0 16px 0; -} -.tox .tox-edit-area { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - overflow: hidden; - position: relative; -} -.tox .tox-edit-area__iframe { - background-color: #fff; - border: 0; - box-sizing: border-box; - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; - position: absolute; - width: 100%; -} -.tox.tox-inline-edit-area { - border: 1px dotted #cccccc; -} -.tox .tox-editor-container { - display: flex; - flex: 1 1 auto; - flex-direction: column; - overflow: hidden; -} -.tox .tox-editor-header { - z-index: 1; -} -.tox:not(.tox-tinymce-inline) .tox-editor-header { - box-shadow: none; - transition: box-shadow 0.5s; -} -.tox.tox-tinymce--toolbar-bottom .tox-editor-header, -.tox.tox-tinymce-inline .tox-editor-header { - margin-bottom: -1px; -} -.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { - background-color: transparent; - box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); -} -.tox-editor-dock-fadeout { - opacity: 0; - visibility: hidden; -} -.tox-editor-dock-fadein { - opacity: 1; - visibility: visible; -} -.tox-editor-dock-transition { - transition: visibility 0s linear 0.25s, opacity 0.25s ease; -} -.tox-editor-dock-transition.tox-editor-dock-fadein { - transition-delay: 0s; -} -.tox .tox-control-wrap { - flex: 1; - position: relative; -} -.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, -.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, -.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { - display: none; -} -.tox .tox-control-wrap svg { - display: block; -} -.tox .tox-control-wrap__status-icon-wrap { - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-control-wrap__status-icon-invalid svg { - fill: #c00; -} -.tox .tox-control-wrap__status-icon-unknown svg { - fill: orange; -} -.tox .tox-control-wrap__status-icon-valid svg { - fill: green; -} -.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, -.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, -.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { - padding-right: 32px; -} -.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { - right: 4px; -} -.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, -.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, -.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { - padding-left: 32px; -} -.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { - left: 4px; -} -.tox .tox-autocompleter { - max-width: 25em; -} -.tox .tox-autocompleter .tox-menu { - max-width: 25em; -} -.tox .tox-autocompleter .tox-autocompleter-highlight { - font-weight: bold; -} -.tox .tox-color-input { - display: flex; - position: relative; - z-index: 1; -} -.tox .tox-color-input .tox-textfield { - z-index: -1; -} -.tox .tox-color-input span { - border-color: rgba(34, 47, 62, 0.2); - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - height: 24px; - position: absolute; - top: 6px; - width: 24px; -} -.tox .tox-color-input span:hover:not([aria-disabled=true]), -.tox .tox-color-input span:focus:not([aria-disabled=true]) { - border-color: #207ab7; - cursor: pointer; -} -.tox .tox-color-input span::before { - background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%); - background-position: 0 0, 0 6px, 6px -6px, -6px 0; - background-size: 12px 12px; - border: 1px solid #fff; - border-radius: 3px; - box-sizing: border-box; - content: ''; - height: 24px; - left: -1px; - position: absolute; - top: -1px; - width: 24px; - z-index: -1; -} -.tox .tox-color-input span[aria-disabled=true] { - cursor: not-allowed; -} -.tox:not([dir=rtl]) .tox-color-input { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox:not([dir=rtl]) .tox-color-input .tox-textfield { - padding-left: 36px; -} -.tox:not([dir=rtl]) .tox-color-input span { - left: 6px; -} -.tox[dir="rtl"] .tox-color-input { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox[dir="rtl"] .tox-color-input .tox-textfield { - padding-right: 36px; -} -.tox[dir="rtl"] .tox-color-input span { - right: 6px; -} -.tox .tox-label, -.tox .tox-toolbar-label { - color: rgba(34, 47, 62, 0.7); - display: block; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - padding: 0 8px 0 0; - text-transform: none; - white-space: nowrap; -} -.tox .tox-toolbar-label { - padding: 0 8px; -} -.tox[dir=rtl] .tox-label { - padding: 0 0 0 8px; -} -.tox .tox-form { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group { - box-sizing: border-box; - margin-bottom: 4px; -} -.tox .tox-form-group--maximize { - flex: 1; -} -.tox .tox-form__group--error { - color: #c00; -} -.tox .tox-form__group--collection { - display: flex; -} -.tox .tox-form__grid { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; -} -.tox .tox-form__grid--2col > .tox-form__group { - width: calc(50% - (8px / 2)); -} -.tox .tox-form__grid--3col > .tox-form__group { - width: calc(100% / 3 - (8px / 2)); -} -.tox .tox-form__grid--4col > .tox-form__group { - width: calc(25% - (8px / 2)); -} -.tox .tox-form__controls-h-stack { - align-items: center; - display: flex; -} -.tox .tox-form__group--inline { - align-items: center; - display: flex; -} -.tox .tox-form__group--stretched { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-textarea { - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-navobj { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; -} -.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { - margin-left: 4px; -} -.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { - margin-right: 4px; -} -.tox .tox-lock.tox-locked .tox-lock-icon__unlock, -.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { - display: none; -} -.tox .tox-textfield, -.tox .tox-toolbar-textfield, -.tox .tox-listboxfield .tox-listbox--select, -.tox .tox-textarea { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #fff; - border-color: #cccccc; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #222f3e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - min-height: 34px; - outline: none; - padding: 5px 4.75px; - resize: none; - width: 100%; -} -.tox .tox-textfield[disabled], -.tox .tox-textarea[disabled] { - background-color: #f2f2f2; - color: rgba(34, 47, 62, 0.85); - cursor: not-allowed; -} -.tox .tox-textfield:focus, -.tox .tox-listboxfield .tox-listbox--select:focus, -.tox .tox-textarea:focus { - background-color: #fff; - border-color: #207ab7; - box-shadow: none; - outline: none; -} -.tox .tox-toolbar-textfield { - border-width: 0; - margin-bottom: 3px; - margin-top: 2px; - max-width: 250px; -} -.tox .tox-naked-btn { - background-color: transparent; - border: 0; - border-color: transparent; - box-shadow: unset; - color: #207ab7; - cursor: pointer; - display: block; - margin: 0; - padding: 0; -} -.tox .tox-naked-btn svg { - display: block; - fill: #222f3e; -} -.tox:not([dir=rtl]) .tox-toolbar-textfield + * { - margin-left: 4px; -} -.tox[dir=rtl] .tox-toolbar-textfield + * { - margin-right: 4px; -} -.tox .tox-listboxfield { - cursor: pointer; - position: relative; -} -.tox .tox-listboxfield .tox-listbox--select[disabled] { - background-color: #f2f2f2; - color: rgba(34, 47, 62, 0.85); - cursor: not-allowed; -} -.tox .tox-listbox__select-label { - cursor: default; - flex: 1; - margin: 0 4px; -} -.tox .tox-listbox__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-listbox__select-chevron svg { - fill: #222f3e; -} -.tox .tox-listboxfield .tox-listbox--select { - align-items: center; - display: flex; -} -.tox:not([dir=rtl]) .tox-listboxfield svg { - right: 8px; -} -.tox[dir=rtl] .tox-listboxfield svg { - left: 8px; -} -.tox .tox-selectfield { - cursor: pointer; - position: relative; -} -.tox .tox-selectfield select { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #fff; - border-color: #cccccc; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #222f3e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - min-height: 34px; - outline: none; - padding: 5px 4.75px; - resize: none; - width: 100%; -} -.tox .tox-selectfield select[disabled] { - background-color: #f2f2f2; - color: rgba(34, 47, 62, 0.85); - cursor: not-allowed; -} -.tox .tox-selectfield select::-ms-expand { - display: none; -} -.tox .tox-selectfield select:focus { - background-color: #fff; - border-color: #207ab7; - box-shadow: none; - outline: none; -} -.tox .tox-selectfield svg { - pointer-events: none; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox:not([dir=rtl]) .tox-selectfield select[size="0"], -.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { - padding-right: 24px; -} -.tox:not([dir=rtl]) .tox-selectfield svg { - right: 8px; -} -.tox[dir=rtl] .tox-selectfield select[size="0"], -.tox[dir=rtl] .tox-selectfield select[size="1"] { - padding-left: 24px; -} -.tox[dir=rtl] .tox-selectfield svg { - left: 8px; -} -.tox .tox-textarea { - -webkit-appearance: textarea; - -moz-appearance: textarea; - appearance: textarea; - white-space: pre-wrap; -} -.tox-fullscreen { - border: 0; - height: 100%; - margin: 0; - overflow: hidden; - -ms-scroll-chaining: none; - overscroll-behavior: none; - padding: 0; - touch-action: pinch-zoom; - width: 100%; -} -.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { - display: none; -} -.tox.tox-tinymce.tox-fullscreen, -.tox-shadowhost.tox-fullscreen { - left: 0; - position: fixed; - top: 0; - z-index: 1200; -} -.tox.tox-tinymce.tox-fullscreen { - background-color: transparent; -} -.tox-fullscreen .tox.tox-tinymce-aux, -.tox-fullscreen ~ .tox.tox-tinymce-aux { - z-index: 1201; -} -.tox .tox-help__more-link { - list-style: none; - margin-top: 1em; -} -.tox .tox-image-tools { - width: 100%; -} -.tox .tox-image-tools__toolbar { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-image-tools__image { - background-color: #666; - height: 380px; - overflow: auto; - position: relative; - width: 100%; -} -.tox .tox-image-tools__image, -.tox .tox-image-tools__image + .tox-image-tools__toolbar { - margin-top: 8px; -} -.tox .tox-image-tools__image-bg { - background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); -} -.tox .tox-image-tools__toolbar > .tox-spacer { - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-croprect-block { - background: black; - filter: alpha(opacity=50); - opacity: 0.5; - position: absolute; - zoom: 1; -} -.tox .tox-croprect-handle { - border: 2px solid white; - height: 20px; - left: 0; - position: absolute; - top: 0; - width: 20px; -} -.tox .tox-croprect-handle-move { - border: 0; - cursor: move; - position: absolute; -} -.tox .tox-croprect-handle-nw { - border-width: 2px 0 0 2px; - cursor: nw-resize; - left: 100px; - margin: -2px 0 0 -2px; - top: 100px; -} -.tox .tox-croprect-handle-ne { - border-width: 2px 2px 0 0; - cursor: ne-resize; - left: 200px; - margin: -2px 0 0 -20px; - top: 100px; -} -.tox .tox-croprect-handle-sw { - border-width: 0 0 2px 2px; - cursor: sw-resize; - left: 100px; - margin: -20px 2px 0 -2px; - top: 200px; -} -.tox .tox-croprect-handle-se { - border-width: 0 2px 2px 0; - cursor: se-resize; - left: 200px; - margin: -20px 0 0 -20px; - top: 200px; -} -.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { - margin-left: 32px; -} -.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { - margin-left: 32px; -} -.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { - margin-right: 8px; -} -.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { - margin-right: 32px; -} -.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { - margin-right: 32px; -} -.tox .tox-insert-table-picker { - display: flex; - flex-wrap: wrap; - width: 170px; -} -.tox .tox-insert-table-picker > div { - border-color: #cccccc; - border-style: solid; - border-width: 0 1px 1px 0; - box-sizing: border-box; - height: 17px; - width: 17px; -} -.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { - margin: -4px 0; -} -.tox .tox-insert-table-picker .tox-insert-table-picker__selected { - background-color: rgba(32, 122, 183, 0.5); - border-color: rgba(32, 122, 183, 0.5); -} -.tox .tox-insert-table-picker__label { - color: rgba(34, 47, 62, 0.7); - display: block; - font-size: 14px; - padding: 4px; - text-align: center; - width: 100%; -} -.tox:not([dir=rtl]) { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { - border-right: 0; -} -.tox[dir=rtl] { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { - border-right: 0; -} -.tox { - /* stylelint-disable */ - /* stylelint-enable */ -} -.tox .tox-menu { - background-color: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); - display: inline-block; - overflow: hidden; - vertical-align: top; - z-index: 1150; -} -.tox .tox-menu.tox-collection.tox-collection--list { - padding: 0; -} -.tox .tox-menu.tox-collection.tox-collection--toolbar { - padding: 4px; -} -.tox .tox-menu.tox-collection.tox-collection--grid { - padding: 4px; -} -.tox .tox-menu__label h1, -.tox .tox-menu__label h2, -.tox .tox-menu__label h3, -.tox .tox-menu__label h4, -.tox .tox-menu__label h5, -.tox .tox-menu__label h6, -.tox .tox-menu__label p, -.tox .tox-menu__label blockquote, -.tox .tox-menu__label code { - margin: 0; -} -.tox .tox-menubar { - background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; - background-color: #fff; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - padding: 0 4px 0 4px; -} -.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { - border-top: 1px solid #cccccc; -} -/* Deprecated. Remove in next major release */ -.tox .tox-mbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 34px; - justify-content: center; - margin: 2px 0 3px 0; - outline: none; - overflow: hidden; - padding: 0 4px; - text-transform: none; - width: auto; -} -.tox .tox-mbtn[disabled] { - background-color: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-mbtn:focus:not(:disabled) { - background: #dee0e2; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn--active { - background: #c8cbcf; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { - background: #dee0e2; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-mbtn[disabled] .tox-mbtn__select-label { - cursor: not-allowed; -} -.tox .tox-mbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; - display: none; -} -.tox .tox-notification { - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - display: -ms-grid; - display: grid; - font-size: 14px; - font-weight: normal; - -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - margin-top: 4px; - opacity: 0; - padding: 4px; - transition: transform 100ms ease-in, opacity 150ms ease-in; -} -.tox .tox-notification p { - font-size: 14px; - font-weight: normal; -} -.tox .tox-notification a { - cursor: pointer; - text-decoration: underline; -} -.tox .tox-notification--in { - opacity: 1; -} -.tox .tox-notification--success { - background-color: #e4eeda; - border-color: #d7e6c8; - color: #222f3e; -} -.tox .tox-notification--success p { - color: #222f3e; -} -.tox .tox-notification--success a { - color: #547831; -} -.tox .tox-notification--success svg { - fill: #222f3e; -} -.tox .tox-notification--error { - background-color: #f8dede; - border-color: #f2bfbf; - color: #222f3e; -} -.tox .tox-notification--error p { - color: #222f3e; -} -.tox .tox-notification--error a { - color: #c00; -} -.tox .tox-notification--error svg { - fill: #222f3e; -} -.tox .tox-notification--warn, -.tox .tox-notification--warning { - background-color: #fffaea; - border-color: #ffe89d; - color: #222f3e; -} -.tox .tox-notification--warn p, -.tox .tox-notification--warning p { - color: #222f3e; -} -.tox .tox-notification--warn a, -.tox .tox-notification--warning a { - color: #222f3e; -} -.tox .tox-notification--warn svg, -.tox .tox-notification--warning svg { - fill: #222f3e; -} -.tox .tox-notification--info { - background-color: #d9edf7; - border-color: #779ecb; - color: #222f3e; -} -.tox .tox-notification--info p { - color: #222f3e; -} -.tox .tox-notification--info a { - color: #222f3e; -} -.tox .tox-notification--info svg { - fill: #222f3e; -} -.tox .tox-notification__body { - -ms-grid-row-align: center; - align-self: center; - color: #222f3e; - font-size: 14px; - -ms-grid-column-span: 1; - grid-column-end: 3; - -ms-grid-column: 2; - grid-column-start: 2; - -ms-grid-row-span: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - text-align: center; - white-space: normal; - word-break: break-all; - word-break: break-word; -} -.tox .tox-notification__body > * { - margin: 0; -} -.tox .tox-notification__body > * + * { - margin-top: 1rem; -} -.tox .tox-notification__icon { - -ms-grid-row-align: center; - align-self: center; - -ms-grid-column-span: 1; - grid-column-end: 2; - -ms-grid-column: 1; - grid-column-start: 1; - -ms-grid-row-span: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - -ms-grid-column-align: end; - justify-self: end; -} -.tox .tox-notification__icon svg { - display: block; -} -.tox .tox-notification__dismiss { - -ms-grid-row-align: start; - align-self: start; - -ms-grid-column-span: 1; - grid-column-end: 4; - -ms-grid-column: 3; - grid-column-start: 3; - -ms-grid-row-span: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - -ms-grid-column-align: end; - justify-self: end; -} -.tox .tox-notification .tox-progress-bar { - -ms-grid-column-span: 3; - grid-column-end: 4; - -ms-grid-column: 1; - grid-column-start: 1; - -ms-grid-row-span: 1; - grid-row-end: 3; - -ms-grid-row: 2; - grid-row-start: 2; - -ms-grid-column-align: center; - justify-self: center; -} -.tox .tox-pop { - display: inline-block; - position: relative; -} -.tox .tox-pop--resizing { - transition: width 0.1s ease; -} -.tox .tox-pop--resizing .tox-toolbar, -.tox .tox-pop--resizing .tox-toolbar__group { - flex-wrap: nowrap; -} -.tox .tox-pop--transition { - transition: 0.15s ease; - transition-property: left, right, top, bottom; -} -.tox .tox-pop--transition::before, -.tox .tox-pop--transition::after { - transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; -} -.tox .tox-pop__dialog { - background-color: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); - min-width: 0; - overflow: hidden; -} -.tox .tox-pop__dialog > *:not(.tox-toolbar) { - margin: 4px 4px 4px 8px; -} -.tox .tox-pop__dialog .tox-toolbar { - background-color: transparent; - margin-bottom: -1px; -} -.tox .tox-pop::before, -.tox .tox-pop::after { - border-style: solid; - content: ''; - display: block; - height: 0; - opacity: 1; - position: absolute; - width: 0; -} -.tox .tox-pop.tox-pop--inset::before, -.tox .tox-pop.tox-pop--inset::after { - opacity: 0; - transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; -} -.tox .tox-pop.tox-pop--bottom::before, -.tox .tox-pop.tox-pop--bottom::after { - left: 50%; - top: 100%; -} -.tox .tox-pop.tox-pop--bottom::after { - border-color: #fff transparent transparent transparent; - border-width: 8px; - margin-left: -8px; - margin-top: -1px; -} -.tox .tox-pop.tox-pop--bottom::before { - border-color: #cccccc transparent transparent transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--top::before, -.tox .tox-pop.tox-pop--top::after { - left: 50%; - top: 0; - transform: translateY(-100%); -} -.tox .tox-pop.tox-pop--top::after { - border-color: transparent transparent #fff transparent; - border-width: 8px; - margin-left: -8px; - margin-top: 1px; -} -.tox .tox-pop.tox-pop--top::before { - border-color: transparent transparent #cccccc transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--left::before, -.tox .tox-pop.tox-pop--left::after { - left: 0; - top: calc(50% - 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--left::after { - border-color: transparent #fff transparent transparent; - border-width: 8px; - margin-left: -15px; -} -.tox .tox-pop.tox-pop--left::before { - border-color: transparent #cccccc transparent transparent; - border-width: 10px; - margin-left: -19px; -} -.tox .tox-pop.tox-pop--right::before, -.tox .tox-pop.tox-pop--right::after { - left: 100%; - top: calc(50% + 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--right::after { - border-color: transparent transparent transparent #fff; - border-width: 8px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--right::before { - border-color: transparent transparent transparent #cccccc; - border-width: 10px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--align-left::before, -.tox .tox-pop.tox-pop--align-left::after { - left: 20px; -} -.tox .tox-pop.tox-pop--align-right::before, -.tox .tox-pop.tox-pop--align-right::after { - left: calc(100% - 20px); -} -.tox .tox-sidebar-wrap { - display: flex; - flex-direction: row; - flex-grow: 1; - -ms-flex-preferred-size: 0; - min-height: 0; -} -.tox .tox-sidebar { - background-color: #fff; - display: flex; - flex-direction: row; - justify-content: flex-end; -} -.tox .tox-sidebar__slider { - display: flex; - overflow: hidden; -} -.tox .tox-sidebar__pane-container { - display: flex; -} -.tox .tox-sidebar__pane { - display: flex; -} -.tox .tox-sidebar--sliding-closed { - opacity: 0; -} -.tox .tox-sidebar--sliding-open { - opacity: 1; -} -.tox .tox-sidebar--sliding-growing, -.tox .tox-sidebar--sliding-shrinking { - transition: width 0.5s ease, opacity 0.5s ease; -} -.tox .tox-selector { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - display: inline-block; - height: 10px; - position: absolute; - width: 10px; -} -.tox.tox-platform-touch .tox-selector { - height: 12px; - width: 12px; -} -.tox .tox-slider { - align-items: center; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - height: 24px; - justify-content: center; - position: relative; -} -.tox .tox-slider__rail { - background-color: transparent; - border: 1px solid #cccccc; - border-radius: 3px; - height: 10px; - min-width: 120px; - width: 100%; -} -.tox .tox-slider__handle { - background-color: #207ab7; - border: 2px solid #185d8c; - border-radius: 3px; - box-shadow: none; - height: 24px; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%); - width: 14px; -} -.tox .tox-source-code { - overflow: auto; -} -.tox .tox-spinner { - display: flex; -} -.tox .tox-spinner > div { - animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; - background-color: rgba(34, 47, 62, 0.7); - border-radius: 100%; - height: 8px; - width: 8px; -} -.tox .tox-spinner > div:nth-child(1) { - animation-delay: -0.32s; -} -.tox .tox-spinner > div:nth-child(2) { - animation-delay: -0.16s; -} -@keyframes tam-bouncing-dots { - 0%, - 80%, - 100% { - transform: scale(0); - } - 40% { - transform: scale(1); - } -} -.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { - margin-left: 4px; -} -.tox[dir=rtl] .tox-spinner > div:not(:first-child) { - margin-right: 4px; -} -.tox .tox-statusbar { - align-items: center; - background-color: #fff; - border-top: 1px solid #cccccc; - color: rgba(34, 47, 62, 0.7); - display: flex; - flex: 0 0 auto; - font-size: 12px; - font-weight: normal; - height: 18px; - overflow: hidden; - padding: 0 8px; - position: relative; - text-transform: uppercase; -} -.tox .tox-statusbar__text-container { - display: flex; - flex: 1 1 auto; - justify-content: flex-end; - overflow: hidden; -} -.tox .tox-statusbar__path { - display: flex; - flex: 1 1 auto; - margin-right: auto; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.tox .tox-statusbar__path > * { - display: inline; - white-space: nowrap; -} -.tox .tox-statusbar__wordcount { - flex: 0 0 auto; - margin-left: 1ch; -} -.tox .tox-statusbar a, -.tox .tox-statusbar__path-item, -.tox .tox-statusbar__wordcount { - color: rgba(34, 47, 62, 0.7); - text-decoration: none; -} -.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { - cursor: pointer; - text-decoration: underline; -} -.tox .tox-statusbar__resize-handle { - align-items: flex-end; - align-self: stretch; - cursor: nwse-resize; - display: flex; - flex: 0 0 auto; - justify-content: flex-end; - margin-left: auto; - margin-right: -8px; - padding-left: 1ch; -} -.tox .tox-statusbar__resize-handle svg { - display: block; - fill: rgba(34, 47, 62, 0.7); -} -.tox .tox-statusbar__resize-handle:focus svg { - background-color: #dee0e2; - border-radius: 1px; - box-shadow: 0 0 0 2px #dee0e2; -} -.tox:not([dir=rtl]) .tox-statusbar__path > * { - margin-right: 4px; -} -.tox:not([dir=rtl]) .tox-statusbar__branding { - margin-left: 1ch; -} -.tox[dir=rtl] .tox-statusbar { - flex-direction: row-reverse; -} -.tox[dir=rtl] .tox-statusbar__path > * { - margin-left: 4px; -} -.tox .tox-throbber { - z-index: 1299; -} -.tox .tox-throbber__busy-spinner { - align-items: center; - background-color: rgba(255, 255, 255, 0.6); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; -} -.tox .tox-tbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 34px; - justify-content: center; - margin: 2px 0 3px 0; - outline: none; - overflow: hidden; - padding: 0; - text-transform: none; - width: 34px; -} -.tox .tox-tbtn svg { - display: block; - fill: #222f3e; -} -.tox .tox-tbtn.tox-tbtn-more { - padding-left: 5px; - padding-right: 5px; - width: inherit; -} -.tox .tox-tbtn:focus { - background: #dee0e2; - border: 0; - box-shadow: none; -} -.tox .tox-tbtn:hover { - background: #dee0e2; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:hover svg { - fill: #222f3e; -} -.tox .tox-tbtn:active { - background: #c8cbcf; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:active svg { - fill: #222f3e; -} -.tox .tox-tbtn--disabled, -.tox .tox-tbtn--disabled:hover, -.tox .tox-tbtn:disabled, -.tox .tox-tbtn:disabled:hover { - background: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-tbtn--disabled svg, -.tox .tox-tbtn--disabled:hover svg, -.tox .tox-tbtn:disabled svg, -.tox .tox-tbtn:disabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn--enabled, -.tox .tox-tbtn--enabled:hover { - background: #c8cbcf; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn--enabled > *, -.tox .tox-tbtn--enabled:hover > * { - transform: none; -} -.tox .tox-tbtn--enabled svg, -.tox .tox-tbtn--enabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: #222f3e; -} -.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { - color: #222f3e; -} -.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { - fill: #222f3e; -} -.tox .tox-tbtn:active > * { - transform: none; -} -.tox .tox-tbtn--md { - height: 51px; - width: 51px; -} -.tox .tox-tbtn--lg { - flex-direction: column; - height: 68px; - width: 68px; -} -.tox .tox-tbtn--return { - -ms-grid-row-align: stretch; - align-self: stretch; - height: unset; - width: 16px; -} -.tox .tox-tbtn--labeled { - padding: 0 4px; - width: unset; -} -.tox .tox-tbtn__vlabel { - display: block; - font-size: 10px; - font-weight: normal; - letter-spacing: -0.025em; - margin-bottom: 4px; - white-space: nowrap; -} -.tox .tox-tbtn--select { - margin: 2px 0 3px 0; - padding: 0 4px; - width: auto; -} -.tox .tox-tbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-tbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-tbtn__select-chevron svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn--bespoke .tox-tbtn__select-label { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 7em; -} -.tox .tox-split-button { - border: 0; - border-radius: 3px; - box-sizing: border-box; - display: flex; - margin: 2px 0 3px 0; - overflow: hidden; -} -.tox .tox-split-button:hover { - box-shadow: 0 0 0 1px #dee0e2 inset; -} -.tox .tox-split-button:focus { - background: #dee0e2; - box-shadow: none; - color: #222f3e; -} -.tox .tox-split-button > * { - border-radius: 0; -} -.tox .tox-split-button__chevron { - width: 16px; -} -.tox .tox-split-button__chevron svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-split-button .tox-tbtn { - margin: 0; -} -.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { - width: 30px; -} -.tox.tox-platform-touch .tox-split-button__chevron { - width: 20px; -} -.tox .tox-split-button.tox-tbtn--disabled:hover, -.tox .tox-split-button.tox-tbtn--disabled:focus, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { - background: transparent; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-toolbar-overlord { - background-color: #fff; -} -.tox .tox-toolbar, -.tox .tox-toolbar__primary, -.tox .tox-toolbar__overflow { - background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; - background-color: #fff; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - padding: 0 0; -} -.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { - height: 0; - opacity: 0; - padding-bottom: 0; - padding-top: 0; - visibility: hidden; -} -.tox .tox-toolbar__overflow--growing { - transition: height 0.3s ease, opacity 0.2s linear 0.1s; -} -.tox .tox-toolbar__overflow--shrinking { - transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; -} -.tox .tox-menubar + .tox-toolbar, -.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { - border-top: 1px solid #cccccc; - margin-top: -1px; -} -.tox .tox-toolbar--scrolling { - flex-wrap: nowrap; - overflow-x: auto; -} -.tox .tox-pop .tox-toolbar { - border-width: 0; -} -.tox .tox-toolbar--no-divider { - background-image: none; -} -.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, -.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { - border-top: 1px solid #cccccc; -} -.tox.tox-tinymce-aux .tox-toolbar__overflow { - background-color: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); -} -.tox .tox-toolbar__group { - align-items: center; - display: flex; - flex-wrap: wrap; - margin: 0 0; - padding: 0 4px 0 4px; -} -.tox .tox-toolbar__group--pull-right { - margin-left: auto; -} -.tox .tox-toolbar--scrolling .tox-toolbar__group { - flex-shrink: 0; - flex-wrap: nowrap; -} -.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { - border-right: 1px solid #cccccc; -} -.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { - border-left: 1px solid #cccccc; -} -.tox .tox-tooltip { - display: inline-block; - padding: 8px; - position: relative; -} -.tox .tox-tooltip__body { - background-color: #222f3e; - border-radius: 3px; - box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); - color: rgba(255, 255, 255, 0.75); - font-size: 14px; - font-style: normal; - font-weight: normal; - padding: 4px 8px; - text-transform: none; -} -.tox .tox-tooltip__arrow { - position: absolute; -} -.tox .tox-tooltip--down .tox-tooltip__arrow { - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-top: 8px solid #222f3e; - bottom: 0; - left: 50%; - position: absolute; - transform: translateX(-50%); -} -.tox .tox-tooltip--up .tox-tooltip__arrow { - border-bottom: 8px solid #222f3e; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - left: 50%; - position: absolute; - top: 0; - transform: translateX(-50%); -} -.tox .tox-tooltip--right .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-left: 8px solid #222f3e; - border-top: 8px solid transparent; - position: absolute; - right: 0; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-tooltip--left .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-right: 8px solid #222f3e; - border-top: 8px solid transparent; - left: 0; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-well { - border: 1px solid #cccccc; - border-radius: 3px; - padding: 8px; - width: 100%; -} -.tox .tox-well > *:first-child { - margin-top: 0; -} -.tox .tox-well > *:last-child { - margin-bottom: 0; -} -.tox .tox-well > *:only-child { - margin: 0; -} -.tox .tox-custom-editor { - border: 1px solid #cccccc; - border-radius: 3px; - display: flex; - flex: 1; - position: relative; -} -/* stylelint-disable */ -.tox { - /* stylelint-enable */ -} -.tox .tox-dialog-loading::before { - background-color: rgba(0, 0, 0, 0.5); - content: ""; - height: 100%; - position: absolute; - width: 100%; - z-index: 1000; -} -.tox .tox-tab { - cursor: pointer; -} -.tox .tox-dialog__content-js { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-content .tox-collection { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-image-tools-edit-panel { - height: 60px; -} -.tox .tox-image-tools__sidebar { - height: 60px; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/skin.min.css b/dict/admin/public/tinymce/skins/ui/oxide/skin.min.css deleted file mode 100644 index f570b8e..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/skin.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#dee0e2}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #ccc}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #ccc}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#222f3e}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #ccc}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.css b/dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.css deleted file mode 100644 index 875721a..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.css +++ /dev/null @@ -1,673 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -/* RESET all the things! */ -.tinymce-mobile-outer-container { - all: initial; - display: block; -} -.tinymce-mobile-outer-container * { - border: 0; - box-sizing: initial; - cursor: inherit; - float: none; - line-height: 1; - margin: 0; - outline: 0; - padding: 0; - -webkit-tap-highlight-color: transparent; - /* TBIO-3691, stop the gray flicker on touch. */ - text-shadow: none; - white-space: nowrap; -} -.tinymce-mobile-icon-arrow-back::before { - content: "\e5cd"; -} -.tinymce-mobile-icon-image::before { - content: "\e412"; -} -.tinymce-mobile-icon-cancel-circle::before { - content: "\e5c9"; -} -.tinymce-mobile-icon-full-dot::before { - content: "\e061"; -} -.tinymce-mobile-icon-align-center::before { - content: "\e234"; -} -.tinymce-mobile-icon-align-left::before { - content: "\e236"; -} -.tinymce-mobile-icon-align-right::before { - content: "\e237"; -} -.tinymce-mobile-icon-bold::before { - content: "\e238"; -} -.tinymce-mobile-icon-italic::before { - content: "\e23f"; -} -.tinymce-mobile-icon-unordered-list::before { - content: "\e241"; -} -.tinymce-mobile-icon-ordered-list::before { - content: "\e242"; -} -.tinymce-mobile-icon-font-size::before { - content: "\e245"; -} -.tinymce-mobile-icon-underline::before { - content: "\e249"; -} -.tinymce-mobile-icon-link::before { - content: "\e157"; -} -.tinymce-mobile-icon-unlink::before { - content: "\eca2"; -} -.tinymce-mobile-icon-color::before { - content: "\e891"; -} -.tinymce-mobile-icon-previous::before { - content: "\e314"; -} -.tinymce-mobile-icon-next::before { - content: "\e315"; -} -.tinymce-mobile-icon-large-font::before, -.tinymce-mobile-icon-style-formats::before { - content: "\e264"; -} -.tinymce-mobile-icon-undo::before { - content: "\e166"; -} -.tinymce-mobile-icon-redo::before { - content: "\e15a"; -} -.tinymce-mobile-icon-removeformat::before { - content: "\e239"; -} -.tinymce-mobile-icon-small-font::before { - content: "\e906"; -} -.tinymce-mobile-icon-readonly-back::before, -.tinymce-mobile-format-matches::after { - content: "\e5ca"; -} -.tinymce-mobile-icon-small-heading::before { - content: "small"; -} -.tinymce-mobile-icon-large-heading::before { - content: "large"; -} -.tinymce-mobile-icon-small-heading::before, -.tinymce-mobile-icon-large-heading::before { - font-family: sans-serif; - font-size: 80%; -} -.tinymce-mobile-mask-edit-icon::before { - content: "\e254"; -} -.tinymce-mobile-icon-back::before { - content: "\e5c4"; -} -.tinymce-mobile-icon-heading::before { - /* TODO: Translate */ - content: "Headings"; - font-family: sans-serif; - font-size: 80%; - font-weight: bold; -} -.tinymce-mobile-icon-h1::before { - content: "H1"; - font-weight: bold; -} -.tinymce-mobile-icon-h2::before { - content: "H2"; - font-weight: bold; -} -.tinymce-mobile-icon-h3::before { - content: "H3"; - font-weight: bold; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { - align-items: center; - display: flex; - justify-content: center; - background: rgba(51, 51, 51, 0.5); - height: 100%; - position: absolute; - top: 0; - width: 100%; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { - align-items: center; - border-radius: 50%; - display: flex; - flex-direction: column; - font-family: sans-serif; - font-size: 1em; - justify-content: space-between; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { - align-items: center; - display: flex; - justify-content: center; - border-radius: 50%; - height: 2.1em; - width: 2.1em; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { - align-items: center; - display: flex; - justify-content: center; - flex-direction: column; - font-size: 1em; -} -@media only screen and (min-device-width:700px) { - .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { - font-size: 1.2em; - } -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { - align-items: center; - display: flex; - justify-content: center; - border-radius: 50%; - height: 2.1em; - width: 2.1em; - background-color: white; - color: #207ab7; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { - content: "\e900"; - font-family: 'tinymce-mobile', sans-serif; -} -.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { - z-index: 2; -} -.tinymce-mobile-android-container.tinymce-mobile-android-maximized { - background: #ffffff; - border: none; - bottom: 0; - display: flex; - flex-direction: column; - left: 0; - position: fixed; - right: 0; - top: 0; -} -.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { - position: relative; -} -.tinymce-mobile-android-container .tinymce-mobile-editor-socket { - display: flex; - flex-grow: 1; -} -.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { - display: flex !important; - flex-grow: 1; - height: auto !important; -} -.tinymce-mobile-android-scroll-reload { - overflow: hidden; -} -:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { - margin-top: 23px; -} -.tinymce-mobile-toolstrip { - background: #fff; - display: flex; - flex: 0 0 auto; - z-index: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { - align-items: center; - background-color: #fff; - border-bottom: 1px solid #cccccc; - display: flex; - flex: 1; - height: 2.5em; - width: 100%; - /* Make it no larger than the toolstrip, so that it needs to scroll */ -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { - align-items: center; - display: flex; - height: 100%; - flex-shrink: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { - align-items: center; - display: flex; - height: 100%; - flex: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { - background: #f44336; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { - flex-grow: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { - padding-left: 0.5em; - padding-right: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { - align-items: center; - display: flex; - height: 80%; - margin-left: 2px; - margin-right: 2px; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { - background: #c8cbcf; - color: #cccccc; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { - background: #207ab7; - color: #eceff1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { - /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { - align-items: center; - display: flex; - height: 100%; - flex: 1; - padding-bottom: 0.4em; - padding-top: 0.4em; - /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ - /* For widgets like the colour picker, use the whole height */ -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { - display: flex; - min-height: 1.5em; - overflow: hidden; - padding-left: 0; - padding-right: 0; - position: relative; - width: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { - display: flex; - height: 100%; - transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; - width: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { - display: flex; - flex: 0 0 auto; - justify-content: space-between; - width: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { - font-family: Sans-serif; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { - display: flex; - flex-grow: 1; - position: relative; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { - -ms-grid-row-align: center; - align-self: center; - background: inherit; - border: none; - border-radius: 50%; - color: #888; - font-size: 0.6em; - font-weight: bold; - height: 100%; - padding-right: 2px; - position: absolute; - right: 0; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { - display: none; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { - align-items: center; - display: flex; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { - align-items: center; - display: flex; - font-weight: bold; - height: 100%; - padding-left: 0.5em; - padding-right: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { - visibility: hidden; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { - color: #cccccc; - font-size: 10px; - line-height: 10px; - margin: 0 2px; - padding-top: 3px; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { - color: #c8cbcf; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { - margin-left: 0.5em; - margin-right: 0.9em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { - margin-left: 0.9em; - margin-right: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { - display: flex; - flex: 1; - margin-left: 0; - margin-right: 0; - padding: 0.28em 0; - position: relative; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { - align-items: center; - display: flex; - flex-grow: 1; - height: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { - background: #cccccc; - display: flex; - flex: 1; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { - padding-left: 2em; - padding-right: 2em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { - align-items: center; - display: flex; - flex-grow: 1; - height: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { - background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); - display: flex; - flex: 1; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { - /* Not part of theming */ - background: black; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; - width: 1.2em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { - /* Not part of theming */ - background: white; - height: 0.2em; - margin-bottom: 0.3em; - margin-top: 0.3em; - width: 1.2em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { - /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave - * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is - * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without - * this approach. - */ - align-items: center; - background-clip: padding-box; - background-color: #455a64; - border: 0.5em solid rgba(136, 136, 136, 0); - border-radius: 3em; - bottom: 0; - color: #fff; - display: flex; - height: 0.5em; - justify-content: center; - left: -10px; - margin: auto; - position: absolute; - top: 0; - transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); - width: 0.5em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { - border: 0.5em solid rgba(136, 136, 136, 0.39); -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { - align-items: center; - display: flex; - height: 100%; - flex: 1; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { - flex-direction: column; - justify-content: center; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { - align-items: center; - display: flex; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { - height: 100%; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { - display: flex; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { - background: #ffffff; - border: none; - border-radius: 0; - color: #455a64; - flex-grow: 1; - font-size: 0.85em; - padding-bottom: 0.1em; - padding-left: 5px; - padding-top: 0.1em; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { - /* WebKit, Blink, Edge */ - color: #888; -} -.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { - /* WebKit, Blink, Edge */ - color: #888; -} -/* dropup */ -.tinymce-mobile-dropup { - background: white; - display: flex; - overflow: hidden; - width: 100%; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { - transition: height 0.3s ease-out; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { - transition: height 0.3s ease-in; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { - flex-grow: 0; -} -.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { - flex-grow: 1; -} -/* TODO min-height for device size and orientation */ -.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { - min-height: 200px; -} -@media only screen and (orientation: landscape) { - .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { - min-height: 200px; - } -} -@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { - .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { - min-height: 150px; - } -} -/* styles menu */ -.tinymce-mobile-styles-menu { - font-family: sans-serif; - outline: 4px solid black; - overflow: hidden; - position: relative; - width: 100%; -} -.tinymce-mobile-styles-menu [role="menu"] { - display: flex; - flex-direction: column; - height: 100%; - position: absolute; - width: 100%; -} -.tinymce-mobile-styles-menu [role="menu"].transitioning { - transition: transform 0.5s ease-in-out; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { - border-bottom: 1px solid #ddd; - color: #455a64; - cursor: pointer; - display: flex; - padding: 1em 1em; - position: relative; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { - color: #455a64; - content: "\e314"; - font-family: 'tinymce-mobile', sans-serif; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { - color: #455a64; - content: "\e315"; - font-family: 'tinymce-mobile', sans-serif; - padding-left: 1em; - padding-right: 1em; - position: absolute; - right: 0; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { - font-family: 'tinymce-mobile', sans-serif; - padding-left: 1em; - padding-right: 1em; - position: absolute; - right: 0; -} -.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, -.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { - align-items: center; - background: #fff; - border-top: #455a64; - color: #455a64; - display: flex; - min-height: 2.5em; - padding-left: 1em; - padding-right: 1em; -} -.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], -.tinymce-mobile-styles-menu [data-transitioning-state="before"] { - transform: translate(-100%); -} -.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], -.tinymce-mobile-styles-menu [data-transitioning-state="current"] { - transform: translate(0%); -} -.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], -.tinymce-mobile-styles-menu [data-transitioning-state="after"] { - transform: translate(100%); -} -@font-face { - font-family: 'tinymce-mobile'; - font-style: normal; - font-weight: normal; - src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); -} -@media (min-device-width: 700px) { - .tinymce-mobile-outer-container, - .tinymce-mobile-outer-container input { - font-size: 25px; - } -} -@media (max-device-width: 700px) { - .tinymce-mobile-outer-container, - .tinymce-mobile-outer-container input { - font-size: 18px; - } -} -.tinymce-mobile-icon { - font-family: 'tinymce-mobile', sans-serif; -} -.mixin-flex-and-centre { - align-items: center; - display: flex; - justify-content: center; -} -.mixin-flex-bar { - align-items: center; - display: flex; - height: 100%; -} -.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { - background-color: #fff; - width: 100%; -} -.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { - /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ - background-color: #207ab7; - border-radius: 50%; - bottom: 1em; - color: white; - font-size: 1em; - height: 2.1em; - position: fixed; - right: 2em; - width: 2.1em; - align-items: center; - display: flex; - justify-content: center; -} -@media only screen and (min-device-width:700px) { - .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { - font-size: 1.2em; - } -} -.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { - height: 300px; - overflow: hidden; -} -.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { - height: 100%; -} -.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { - display: none; -} -/* - Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets - increased and the whole body becomes scrollable. It's important! - */ -input[type="file"]::-webkit-file-upload-button { - display: none; -} -@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { - .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { - bottom: 50%; - } -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.min.css b/dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.min.css deleted file mode 100644 index 3a45cac..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/skin.mobile.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.css b/dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.css deleted file mode 100644 index d2adc4d..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.css +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body.tox-dialog__disable-scroll { - overflow: hidden; -} -.tox-fullscreen { - border: 0; - height: 100%; - margin: 0; - overflow: hidden; - -ms-scroll-chaining: none; - overscroll-behavior: none; - padding: 0; - touch-action: pinch-zoom; - width: 100%; -} -.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { - display: none; -} -.tox.tox-tinymce.tox-fullscreen, -.tox-shadowhost.tox-fullscreen { - left: 0; - position: fixed; - top: 0; - z-index: 1200; -} -.tox.tox-tinymce.tox-fullscreen { - background-color: transparent; -} -.tox-fullscreen .tox.tox-tinymce-aux, -.tox-fullscreen ~ .tox.tox-tinymce-aux { - z-index: 1201; -} diff --git a/dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css b/dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css deleted file mode 100644 index a0893b9..0000000 --- a/dict/admin/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/dict/admin/public/ws-logo.svg b/dict/admin/public/ws-logo.svg deleted file mode 100644 index fb8e867..0000000 --- a/dict/admin/public/ws-logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - background - - - - - - - Layer 1 - - - \ No newline at end of file diff --git a/dict/admin/public/xieyi/01.html b/dict/admin/public/xieyi/01.html deleted file mode 100644 index 444a9da..0000000 --- a/dict/admin/public/xieyi/01.html +++ /dev/null @@ -1,700 +0,0 @@ - - - - - 《隐私政策》 - - - -

-

《服务协议与隐私政策》

-
-
- -

  更新日期:2024年1月19日

- -

  生效日期:2021年11月19日

- -

  本政策适用于南宁市网宿信息科技有限公司旗下平台产品及相关服务。

- -

  您所使用的“软件应用平台”产品的运营者公司名称为南宁市网宿信息科技有限公司,注册地址为:广西南宁市五象大道401号五象航洋城1号楼1226室,个人信息保护相关负责人联系方式为:603684184@qq.com。 -

- -

  如您对本政策或相关事宜有疑问或建议等,您可以通过如下投诉渠道与我们取得联系:

- -

  举报邮箱:603684184@qq.com

- -

  本隐私政策将帮助您了解以下内容:

- -

  0、引言

- -

  1、我们如何收集和使用您的个人信息

- -

  2、我们如何使用Cookie、同类技术和SDK技术

- -

  3、我们如何共享、转让、公开披露您的个人信息

- -

  4、我们如何保护您的个人信息

- -

  5、您如何管理您的个人信息/您的权利

- -

  6、我们如何处理未成年人的个人信息

- -

  7、存储信息的地点和期限,您的个人信息如何在全球范围转移

- -

  8、本隐私政策如何更新

- -

  9、如何联系我们/用户申诉渠道和反馈机制

- -

  10、广告/我们向您发送的信息

- -

  11、适用范围

- -

  南宁市网宿信息科技有限公司(以下统称“我们”)深知个人信息对您的重要性,并会尽力保护您的个人信息安全可靠,我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则,目的明确原则,选择同意原则,最少够用原则,确保安全原则,主体参与原则,公开透明原则等等。同时熟的安全解决方案,采取相应的安全保护措施来保护您的个人信息。 -

- -

  我们承诺,我们将按业界成请在使用我们的产品、服务前,仔细阅读并了解本《隐私政策》。

- -

  0、引言

- -

  南宁市网宿信息科技有限公司软件平台对其收集的用户信息严格保密,并建立健全用户信息保护制度,以便为每一位用户提供可靠、放心的服务:

- -

  1、清晰明确

- -

  我们将尽可能采用通俗易懂的文字为您阐释隐私政策,以便您能更清晰地了解我们如何保护和处理所收集的您的信息。

- -

  2、保障权益

- -

  我们将采取充分、合理的措施保障您的隐私权益。

- -

  3、尊重用户

- -

  我们尊重用户的选择权、知情权等权利的自由行使,允许您管理您的个人信息。

- -

  4、必要安全

- -

  我们将仅收取必要的信息,并利用这些信息为您提供安全、详实的服务。

- -

  5、及时贴心

- -

  我们将随时聆听您的询问,并尽快为您解答您的疑问。

- -

  希望您仔细阅读《隐私政策》(以下简称“本政策”),详细了解我们对信息的收集、使用方式,以便您更好地了解我们的服务并在是否选择服务以及选择何种服务时更加符合您的真实意思表示。

- -

  请您在注册或使用我们的服务前仔细阅读本政策,若您使用我们提供的服务,即表示您认同我们在本政策中所述内容。

- -

  如您有问题,请联系我们。

- -

  为更好的说明,本政策中的下列概念是指:

- -

  个人常用设备信息:指包括硬件序列号、设备MAC地址、软件列表、唯一设备识别码(如IMEI/android - ID/IDFA/OPENUDID/GUID、SIM卡IMSI信息等)等在内的描述个人常用设备基本情况的信息。

- -

  个人位置信息:指包括行踪轨迹、精准定位信息、住宿信息、经纬度等。

- -

  1、我们如何收集和使用您的个人信息

- -

  个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息,我们会出于本政策所述的以下目的,收集和使用您的个人信息:

- -

  收集个人信息的业务功能以及收集的个人信息

- -

  我们将向您提供下列服务,并在提供下列服务时分别收集如下所列的信息:

- -

  1.为帮助您使用南宁市网宿信息科技有限公司软件平台的相关服务。

- -

  为完成创建账号,并保护您的账号安全,您需要提供以下信息:手机权限、手机号码授权。

- -

  为了南宁市网宿信息科技有限公司软件平台的用户都拥有丰富完善的社交资料,以便挑选合适的交友对象,以及提升推荐准确度,提高交友效率,您还需提供昵称、性别、生日、身高、家乡、现居地、学历、自我介绍、个人照片权限或存储权限(如您选择拍摄头像则需相机权限),以及选填毕业学校、职业、年收入。 -

- -

  为了满足国家法律法规的网络实名制要求,并保证南宁市网宿信息科技有限公司软件平台真实、安全的社交环境,您需要提供真实姓名、身份证号、个人生物信息中的面部特征信息并授权身份证核验以完成实名认证。

- -

  手机号码、真实姓名及身份证号、身高、现居地、年收入、个人生物识别信息中的面部特征信息属于敏感信息,收集此类信息是为了满足国家法律法规的网络实名制要求,同时保证南宁市网宿信息科技有限公司软件平台产品真实、安全、资料丰富的社交氛围。 -

- -

  若您不提供这类信息,您可能无法正常使用我们的全部服务。

- -

  如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:麦克风权限(个人生物识别信息中的声纹特征信息)、学历认证材料(能证明您学历学校的相关信息)。以上信息主要为帮助您使用语音自我介绍功能以及完成您的学历认证。声纹特征信息属于敏感信息。但如果您不提供这些信息,将不会影响使用本服务的基本业务功能。 -

- -

  您提供的上述信息,将在您使用本服务期间持续授权我们使用。我们会一直保存您的信息直至您注销账号。在您注销账号时,我们将停止使用并删除或匿名化处理上述信息。

- -

  上述信息仅存储于中华人民共和国境内,如需跨境传输,我们将会单独征得您的授权同意。

- -

  2.为帮助您与其他用户进行聊天。

- -

  当您使用聊天服务时,我们没有要求您必须提供的信息。

- -

  如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:相册权限、相机权限、麦克风权限。但如果您不提供这些信息,将不会影响使用本服务的基本业务功能。

- -

  您提供的上述信息,将在您使用本服务期间持续授权我们使用。我们会一直保存您的信息直至您注销账号。在您注销账号时,我们将停止使用并删除或匿名化处理上述信息。

- -

  上述信息仅存储于中华人民共和国境内,如需跨境传输,我们将会单独征得您的授权同意。

- -

  3.为帮助您使用滑动卡片服务。

- -

  当您使用滑动卡片服务时,您需要提供以下功能、信息以保证功能正常使用:个人位置信息。收集此类信息是为实现基于地理位置的社交推荐。

- -

  若您不提供这类信息,您可能无法正常使用滑动卡片的服务。

- -

  在使用过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:我的生活、婚姻状态、车产、房产。但如果您不提供这些信息,将不会影响使用本服务的基本业务功能。

- -

  个人位置信息、我的生活、婚姻状态、车产、房产属于敏感信息。

- -

  您提供的上述信息,将在您使用本服务期间持续授权我们使用。我们会一直保存您的信息直至您注销账号。在您注销账号时,我们将停止使用并删除或匿名化处理上述信息。

- -

  上述信息仅存储于中华人民共和国境内,如需跨境传输,我们将会单独征得您的授权同意。

- -

  4.为帮助您使用视频约会功能。当您使用视频约会功能时,您需要提供以下功能、信息以保证功能正常使用:相册权限、摄像头权限、麦克风权限、视频的留存与内容查验授权。

- -

  若您不提供这类信息,您可能无法正常使用短视频的服务。

- -

  视频的留存与内容查验授权属于敏感信息,收集此类信息是为保证网络视频社交的安全性。

- -

  在使用过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:日历权限。但如果您不提供这些信息,将不会影响使用本服务的基本业务功能。

- -

  您提供的上述信息,将在您使用本服务期间持续授权我们使用。我们会一直保存您的信息直至您注销账号。在您注销账号时,我们将停止使用并删除或匿名化处理上述信息。

- -

  上述信息仅存储于中华人民共和国境内,如需跨境传输,我们将会单独征得您的授权同意。

- -

  5.为帮助您使用红娘服务。

- -

  当您使用红娘服务时,我们没有要求您必须提供的信息。

- -

  为帮助您使用分享服务。 当您使用分享服务时,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:剪切板信息、粘贴板信息。如果您不提供这些信息,将会一定程度影响使用本服务的体验。

- -

  7.为帮助您使用支付功能。

- -

  支付功能由与我们合作的第三方支付机构向您提供服务,第三方支付机构将会需要收集您的信息,我们将无法获取您的信息。拒绝提供信息仅会使您无法使用上述支付功能,但不影响您使用南宁市网宿信息科技有限公司软件平台的其他功能。

- -

  8.为保障软件与服务的安全运营和运营质量。

- -

  为了保障软件与服务的安全运营、运行的质量及效率,我们会收集您的硬件型号、操作系统版本、国际移动设备识别码、唯一设备标识符、网络设备硬件地址、IP地址、软件版本号和网络接入方式。为预防恶意程序、保障运营质量及效率,我们还会收集软件的崩溃情、操作日志、性能数据及应用来源。我们可能使用您的账户信息、设备信息、服务日志信息及我们关联方、合作方在取得您授权或依法可以共享的信息,用于判断账户安全、进行身份验证、检测及防范安全事件。 -

- -

  9.为向您提供个性化服务。

- -

  为向您提供某些个性化服务,我们会在取得您授权的前提下,收集您提供给与我们合作的第三方的您的信息。如您不授权我们获取您的相关信息,您将无法享受某些个性化服务,但不影响您使用 南宁市网宿信息科技有限公司软件平台的其他功能。 -

- -

  您知悉并同意,当发现您正在遭受电信诈骗或处于其他可能损害您的人身或财产安全的情况时,您同意我们通过电话、短信或其他可以联系到您的方式与您取得联系,以保护您不受侵害。

- -

  用户画像、个性化推送的说明

- -

  为了实现个性化推荐的功能,我们会根据上述功能中所收集的信息进行综合统计并通过算法做特征与偏好性分析,用以向您定向推送可能感兴趣的其他用户,以及推送可能感兴趣的社区内容。如您不需要个性化推送服务,您可在“我的-设置-账号安全”中关闭个性化推送服务。 -

- -

  我们如何使用收集的信息

- -

  我们将按照前述的用途使用您的信息。当我们要将信息用于本政策未载明的其他用途时,会事先征得您的同意。当我们要将基于特定目的收集的信息用于其他目的时,会事先征得您的同意。

- -

  2、我们如何使用Cookie、同类技术和SDK技术

- -

  Cookie

- -

  为确保网站正常运转、为您获得更轻松的访问体验、向您推荐您可能感兴趣的内容,我们可能会在您的计算机或移动设备上存储名为Cookie的小数据文件。Cookie通常包含标识符、站点名称以及一些号码和字符。您可以在浏览器中进行相应的数据清除操作。 -

- -

  其他技术

- -

  除Cookie外,我们还会在网站上使用其他同类技术。我们向您发送的会员短信通知或南宁市网宿信息科技有限公司软件小助手站内通知可能含有链接至我们网站内容的地址链接,如果您点击该链接,我们则会跟踪此次点击,帮助我们了解您的产品或服务偏好以便于我们主动改善客户服务体验。如果您不希望自己的活动以这种方式被追踪,则可以随时从我们的寄信名单中退订。 -

- -

  SDK技术

- -

  SDK技术由与我们合作的第三方机构提供,我们仅能知悉其要求获得授权的权限。第三方机构将会需要收集您的信息,我们无法获取您的信息,除非第三方机构明确向我们披露的要收集的敏感信息。我们会对合作方获取个人信息的行为进行严格的安全监测,以保护您的个人信息安全。 -

- -

  我们对接入的相关第三方SDK及其他第三方主体收集信息的情况在以下目录中列明。您可以通过相关链接查看第三方的数据使用和保护规则。请注意,第三方SDK可能由于版本升级、策略调整等原因导致其个人信息处理类型发生变化,请以其公示的官方说明为准。Alipay(支付宝)SDK -

- -

  第三方名称:支付宝网络有限公司

- -

  使用目的:支付功能

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集的个人信息类型:MAC地址、IMEI、IMSI、SIM卡序列号、IDFA、ICCID、Android - id、硬件序列号、设备识别信息、设备状态信息、设备环境信息、网络连接信息。申请读取及写入存储器权限,目的是为了保障支付功能的稳定运行

- -

  第三方隐私政策或官网链接:

- -

  https://opendocs.alipay.com/open/54/01g6qm

- -

  高德地图 SDK

- -

  第三方名称:高德软件有限公司

- -

  使用目的:帮助用户发布信息时定位位置

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式收集的个人信息类型:设备标识符

- -

  (Android如Android ID、IMEI、MEID、

- -

  IMSI、OAID、Serial,iOS如IDFV、

- -

  IDFA)、MAC地址、IP地址、位置信息

- -

  (如GPS、WLAN接入点、蓝牙和基站)、

- -

  设备传感器、当前应用信息(应用名、应用版本号)

- -

  第三方隐私政策或官网链接:

- -

  https://lbs.amap.com/pages/privacy/

- -

  个推推送SDK

- -

  使用目的:推送消息

- -

  数据类型:网络信息、IMEI、openid

- -

  官网链接:https://open.tencent.com/

- - -

  微信 SDK

- -

  第三方名称:深圳市腾讯计算机系统有限公司

- -

  使用目的:支持微信分享

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集的个人信息类型:设备标识符

- -

  (Android如IMEI、Android ID、Serial, iOS如IDFV)、MAC地址、WLAN接入点、分享图片或内容

- -

  第三方隐私政策或官网链接:https://support.weixin.qq.com/cgi-

- -

  bin/mmsupportacctnodeweb-

- -

  bin/pages/RYiYJkLOrQwu0nb8

- -

  微信支付SDK

- -

  第三方名称:财富通支付科技有限公司

- -

  使用目的:支持微信支付

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集个人信息类型:设备标识符(Android如IMEI、Android ID、Serial)、MAC地址、WLAN接入点

- -

  第三方隐私政策或官网链接:

- -

  https://www.tenpay.com/v3/helpcenter/low/priv

- -

  融云消息SDK

- -

  第三方名称:北京云中融信网络科技有限公司

- -

  使用目的:实现单群聊、系统通知等通信能力,安全可靠、全球互通。处理方式:通过去标识化、加密传输和处

- -

  理的安全处理方式

- -

  收集的个人信息类型:设备ID

- -

  (iOS:deviceToken / Android:AndroidId)、

- -

  操作系统版本、网络类型、手机机型、MNO

- -

  第三方隐私政策或官网链接:

- -

  https://docs.rongcloud.cn/v4/views/im/noui/intr

- -

  推送通知消息(OPPO推送SDK)

- -

  第三方名称:广东欢太科技有限公司

- -

  使用目的:用于在OPPO设备上推送消息

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集个人信息类型:设备标识信息、网络信息、设备状态信息、应用使用信息

- -

  第三方隐私政策或官网链接:

- -

  https://open.oppomobile.com/wiki/doc#id=104

- -

  推送通知消息(华为推送SDK)

- -

  第三方名称:华为软件技术有限公司使用目的:

- -

  1.提供消息推送服务;

- -

  2.统计华为推送SDK接口调用成功率。

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集个人信息类型:应用基本信息、应用内设备标识符、设备的硬件信息、系统基本信息和系统设置信息

- -

  第三方隐私政策或官网链接:

- -

  https://developer.huawei.com/consumer/cn/doc/ Guides/privacy-statement-0000001050042021

- -

  推送通知消息(VIVO推送SDK)

- -

  第三方名称:维沃移动通信有限公司

- -

  使用目的:用于在VIVO设备上推送消息

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集个人信息类型:设备标识信息、网络状态信息第三方隐私政策或官网链接:

- -

  https://dev.vivo.com.cn

- -

  腾讯浏览服务(TBS腾讯浏览服务;腾讯浏览服务;腾讯X5浏览器;腾讯浏览器)等SDK

- -

  第三方名称:深圳市腾讯计算机系统有限公司

- -

  使用目的:浏览word,excel,PPT,txt等格式文件

- -

  示例:用户在于他/她人聊天是可在线打开对方发送的相关文件进行预览。

- -

  处理方式:通过去标识化、加密传输和处理的安全处理方式

- -

  收集个人信息类型:设备信息(设备名称、设备型号、MAC地址、设备识别码、操作系统和应用程序版本、语言设置、分辨率、服务提供商网络ID(PLMN))、设备所在位置相关信息(包括您授权的GPS位置信息以及WLAN接入点、蓝牙和基站传感器信息) -

- -

  第三方隐私政策或官网链接:

- -

  https://x5.tencent.com/tbs/guide/develop.html#5

- -

  3、我们如何共享、转让、公开披露您的个人信息

- -

  共享

- -

  我们不会与南宁市网宿信息科技有限公司软件服务提供者以外的公司、组织和个人共享您的个人信息,但以下情况除外:

- -

  1、在获取明确同意的情况下共享:获得您的明确同意后,我们会与其他方共享您的个人信息;

- -

  2、在法定情形下的共享:我们可能会根据法律法规规定、诉讼争议解决需要,或按行政、司法机关依法提出的要求,对外共享您的个人信息;

- -

  3、与关联公司间共享:为便于我们基于关联账号共同向您提供服务,推荐您可能感兴趣的信息或保护南宁市网宿信息科技有限公司软件平台关联公司或其他用户或公众的人身财产安全免遭侵害,您的个人信息可能会与我们的关联公司共享。我们只会共享必要的个人信息(如为便于您通过南宁市网宿信息科技有限公司软件平台账号使用我们关联公司产品或服务,我们会向关联公司共享您必要的账户信息),如果我们共享您的个人敏感信息或关联公司改变个人信息的使用及处理目的,将再次征求您的授权同意; -

- -

  4、与授权合作伙伴共享:仅为实现本隐私政策中声明的目的,我们的某些服务将由我们和授权合作伙伴共同提供。我们可能会与合作伙伴共享您的某些个人信息,以提供更好的客户服务和用户体验。例如涉及用户身份验证时,我们需要收集姓名、身份证号、身份证照片、个人生物识别信息中的面部特征信息等,并将前述信息提供给第三方公司(包括但不限于北京旷视科技有限公司,以下第三方公司含义与此相同);第三方公司有权获得上述信息用于验证服务,并向我们返回识别结果;第三方公司有权保存用户的上述身份信息及身份信息的验证记录,并有权用于与用户相关的身份验证业务。我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。我们的合作伙伴无权将共享的个人信息用于与产品或服务无关的其他用途。 -

- -

  我们将信息发送给支持我们业务的供应商、服务提供商和其他合作伙伴,这些支持包括提供技术基础设施服务、分析我们服务的使用方式、衡量广告和服务的有效性、提供客户服务、支付便利或进行学术研究和调查。

- -

  对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的数据保护协定,要求其按照我们的说明、本隐私政策以及其他任何相关的保密和安全措施来处理个人信息。

- -

  转让

- -

  我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

- -

  1、在获取明确同意的情况下转让:获得您的明确同意后,我们会向其他方转让您的个人信息;

- -

  2、在涉及合并、收购或破产清算情形,或其他涉及合并、收购或破产清算情形时,如涉及到个人信息转让,我们会要求新的持有您个人信息的公司、组织继续受本政策的约束,否则我们将要求该公司、组织和个人重新向您征求授权同意。 -

- -

  公开披露

- -

  我们仅会在以下情况,公开披露您的个人信息:

- -

  1、获得您明确同意或基于您的主动选择,我们可能会公开披露您的个人信息;

- -

  2、如果我们确定您出现违反法律法规或严重违反南宁市网宿信息科技有限公司软件平台相关协议规则的情况,或为保护南宁市网宿信息科技有限公司软件平台及其关联公司用户或公众的人身财产安全免遭侵害,我们可能依据法律法规或南宁市网宿信息科技有限公司软件平台相关协议规则征得您同意的情况下披露关于您的个人信息,包括相关违规行为以及南宁市网宿信息科技有限公司软件平台已对您采取的措施。 -

- -

  共享、转让、公开披露个人信息时事先征得授权同意的例外

- -

  以下情形中,共享、转让、公开披露您的个人信息无需事先征得您的授权同意:

- -

  1、与国家安全、国防安全有关的;

- -

  2、与公共安全、公共卫生、重大公共利益有关的;

- -

  3、与犯罪侦查、起诉、审判和判决执行等有关的;

- -

  4、出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;

- -

  5、您自行向社会公众公开的个人信息;

- -

  6、从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。

- -

  根据法律规定,共享、转让经去标识化处理的个人信息,且确保数据接收方无法复原并重新识别个人信息主体的,不属于个人信息的对外共享、转让及公开披露行为,对此类数据的保存及处理将无需另行向您通知并征得您的同意。 -

- -

  4、我们如何保护您的个人信息

- -

  为了保护您的信息安全,我们将严格遵守法律法规等规范性文件要求的技术措施和操作流程保护您的信息秘密,同时:

- -

  1.我们已采取符合业界通用解决方案、合理可行的安全防护措施保护您提供的个人信息安全,防止个人信息遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会使用加密技术提高个人信息的安全性;我们会使用受信赖的保护机制防止个人信息遭到恶意攻击;我们建立严格的内部控制制度,建立完善、充分的管理流程,我们会部署访问控制机制,尽力确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。 -

- -

  2.我们有行业先进的以数据为核心,围绕数据生命周期进行的数据安全管理体系,从组织建设、制度设计、人员管理、产品技术等方面多维度提升整个系统的安全性。

- -

  3.我们会采取合理可行的措施,尽力避免收集无关的个人信息。我们只会在达成本政策所述目的所需的期限内保留您的个人信息,除非需要延长保留期或受到法律的允许。

- -

  4.互联网并非绝对安全的环境,我们强烈建议您不要使用非南宁市网宿信息科技有限公司软件平台推荐的通信方式发送个人信息。您可以通过我们的服务建立联系和相互分享。当您通过我们的服务创建交流、交易或分享时,您可以自主选择沟通、交易或分享的对象,作为能够看到您的交易内容、联络方式、交流信息或分享内容等相关信息的第三方。 -

- -

  如您发现自己的个人信息尤其是您的账户或密码发生泄露,请您立即联络南宁市网宿信息科技有限公司软件平台客服,以便我们根据您的申请采取相应措施。

- -

  请注意,您在使用我们服务时自愿共享甚至公开分享的信息,可能会涉及您或他人的个人信息甚至个人敏感信息,如您在发表动态或者在群聊天、圈子等公众场合选择上传包含个人信息的图片。请您更加谨慎地考虑,是否在使用我们的服务时共享甚至公开分享相关信息。 -

- -

  请使用复杂密码,协助我们保证您的账号安全。我们将尽力保障您发送给我们的任何信息的安全性。

- -

  我们将按照法律法规的要求更新并公开安全风险、个人信息安全影响评估等报告的内容。

- -

  互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。 -

- -

  在不幸发生个人信息安全事件后,我们将依照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施,您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以推送通知的方式告知您,并采取合理有效的方式发送公告。 -

- -

  同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。

- -

  5、您如何管理您的个人信息/您的权利

- -

  个人信息查询

- -

  您有权访问您的个人信息,法律法规规定的例外情况除外。您可以通过以下方式自行访问您的个人信息:

- -

  账户信息——如果您希望访问或编辑您的账户中的个人信息、设置隐私与权限、设置消息提醒与聊天、更改您的绑定手机号与密码、关闭您的账户等,您可以通过登录账号通过“我的”-“设置”执行此类操作。

- -

  个人资料——如果您希望访问或编辑您个人资料中的昵称、头像、家乡、出生年月日、职业、学校、兴趣爱好以及其他资料,您可以通过登录账户通过“我的”-“查看/编辑资料”执行此类操作。

- -

  如果您无法通过上述路径访问该等个人信息,您可以随时通过南宁市网宿信息科技有限公司软件平台客服与我们取得联系。我们将在15天内回复您的访问请求。

- -

  对于您在使用我们的产品或服务过程中产生的其他个人信息,我们将根据相关安排向您提供。

- -

  您可以通过与南宁市网宿信息科技有限公司软件平台客服联系的方式,申请个人信息副本。

- -

  个人信息更正

- -

  当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正或补充。您可以通过本条“个人信息查询”中列明的方式提出更正或补充申请。

- -

  个人信息删除

- -

  您可以通过本条“个人信息查询”中列明的方式删除您的部分个人信息。

- -

  在以下情形中,您可以向我们提出删除个人信息的请求:

- -

  1、如果我们处理个人信息的行为违反法律法规;

- -

  2、如果我们收集、使用您的个人信息,却未征得您的明确同意;

- -

  3、如果我们处理个人信息的行为严重违反了与您的约定;

- -

  4、如果您不再使用我们的产品或服务,或您主动注销了账号;

- -

  5、如果我们永久不再为您提供产品或服务。

- -

  若我们决定响应您的删除请求,我们还将同时尽可能通知从我们处获得您的个人信息的主体,要求其及时删除,除非法律法规另有规定,或这些主体获得您的独立授权。

- -

  当您从我们的服务中删除信息后,我们可能不会立即从备份系统中删除相应的信息,但会在备份更新时删除这些信息。

- -

  用户账号注销

- -

  您可以自行在“注销账户”页面(例如,南宁市网宿信息科技有限公司软件平台手机APP“我的-设置-账户与安全-注销账户”)提交账户注销申请。

- -

  在您主动注销账户之后,我们将停止为您提供产品或服务,根据相应法律的要求删除您的个人信息,或使其匿名化处理。

- -

  撤回已同意的授权

- -

  每个业务功能需要一些基本的个人信息才能得以完成。除此之外,对于额外个人信息的收集和使用,您可以自行或与南宁市网宿信息科技有限公司软件平台客服联系给予或收回您的授权同意。

- -

  当您收回同意后,我们将不再处理相应的个人信息。但您收回同意的决定,不会影响此前基于您的授权而开展的个人信息处理。

- -

  约束信息系统自动决策

- -

  在某些业务功能中,我们可能仅依据信息系统、算法等在内的非人工自动决策机制做出决定。如果这些决定显著影响您的合法权益,您有权要求我们做出解释,我们也将在不侵害南宁市网宿信息科技有限公司软件平台商业秘密或其他用户权益、社会公共利益的前提下提供申诉方法。 -

- -

  响应您的上述请求

- -

  为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。我们可能会先要求您验证自己的身份,然后再处理您的请求。

- -

  我们将在15天内做出答复。如您对我们的答复不满意,还可以通过南宁市网宿信息科技有限公司软件平台客服发起投诉。

- -

  对于您合理的请求,我们原则上不收取费用,但对多次重复、超出合理限度的请求,我们将视情况收取一定成本费用。对于无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际的请求,我们可能会予以拒绝。 -

- -

  相关限制

- -

  在以下情形中,按照法律法规要求,我们将无法响应您的请求:

- -

  1、与国家安全、国防安全有关的;

- -

  2、与公共安全、公共卫生、重大公共利益有关的;

- -

  3、与犯罪侦查、起诉、审判和执行判决等有关的;

- -

  4、有充分证据表明个人信息主体存在主观恶意或滥用权利的;

- -

  5、响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的;

- -

  6、涉及商业秘密的。

- -

  

- -

  6、我们如何处理未成年人的个人信息

- -

  本软件禁止未成年人注册、使用。如我们发现收集了未成年人的个人信息,我们将会设法尽快删除相关数据。

- -

  7、存储信息的地点和期限,您的个人信息如何在全球范围转移

- -

  个人信息存放的地域

- -

  我们严格按照法律法规的规定,将中华人民共和国境内收集和产生的用户个人信息存放于中华人民共和国境内。

- -

  个人信息出境的情况

- -

  我们在中华人民共和国境内运营中收集和产生的个人信息,存储在中华人民共和国境内。如果在未来出现个人信息出境的情况,我们将严格遵守中华人民共和国法律法规的相关规定,同时对出境信息的信息安全进行评估,并获取您的明确授权,但是您通过互联网进行跨境发布动态等个人主动行为除外。 -

- -

  针对以上情形,我们会确保依据本隐私政策对您的个人信息提供足够的保护。

- -

  存储信息的期限

- -

  一般而言,我们仅在为实现目的所必需的最短时间内保留您的个人信息,超过相应期限内的个人信息将会删除或匿名化进行处理。但在下列情况下,我们有可能因需符合法律要求,更改个人信息的存储时间:

- -

  1.为遵守适用的法律法规或政策等规范性文件的有关规定;

- -

  2.为遵守行政机关或类似授权组织的决定等、司法机关判决、裁定、仲裁机关的裁决或其他法律程序的规定;

- -

  3.我们有理由确信需要遵守法律法规等有关规定;

- -

  4.为执行相关服务协议或本政策、维护社会公共利益,为保护们的客户、我们或我们的关联公司、其他用户或雇员等第三方的人身财产安全或其他合法权益所合理必需的用途。

- -

  当南宁市网宿信息科技有限公司软件平台发生停止运营的情形时,我们将采取推送通知、网站或程序内公告等形式通知您,并在合理的期限内删除或匿名化处理您的个人信息。

- -

  8、本隐私政策如何更新

- -

  我们的隐私政策可能变更。如果发生业务功能变更、使用目的变更、个人信息保护相关负责人联络方式变更等情形,我们将相应修订隐私政策。

- -

  未经您明确同意,我们不会限制您按照本隐私政策所应享有的权利。对于重大变更,我们会提供显著的通知(包括我们会通过南宁市网宿信息科技有限公司软件平台公示的方式、南宁市网宿信息科技有限公司软件平台小助手等进行通知)。您也可以定期查看本隐私政策,以获取最新的条款。 -

- -

  本政策所指的重大变更包括但不限于:

- -

  1、我们的服务模式发生重大变化。如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式等;

- -

  2、个人信息共享、转让或公开披露的主要对象发生变化;

- -

  3、您参与个人信息处理方面的权利及其行使方式发生重大变化;

- -

  4、我们负责处理个人信息安全的责任部门、联络方式及投诉渠道发生变化时;

- -

  5、个人信息安全影响评估报告表明存在高风险时。

- -

  如果您在接到通知后,选择继续使用我们的服务,即表示同意受经修订的政策约束。

- -

  我们还会将本政策的旧版本存档,供您查阅,您可通过前述的联系方式向我们申请查阅。

- -

  9、如何联系我们/用户申诉渠道和反馈机制

- -

  如您对本政策或相关事宜有疑问或建议等,我们建立了个人信息保护专职部门,您可以通过如下投诉渠道与我们取得联系:

- -

  举报邮箱:603684184@qq.com

- -

  我们将妥善受理并及时反馈您的申诉,并在验证您的用户身份后的十五天内予以回复。

- -

  如果您对我们的回复不满意,特别是您认为我们的个人信息处理行为损害了您的合法权益,您还可以通过向被告住所地有管辖权的法院提起诉讼来寻求解决方案。

- -

  10、广告/我们向您发送的信息

- -

  我们可能使用您的相关信息,在相关网站、应用、及其他渠道向您发送商业广告。

- -

  如果您不想接受我们给您发送的商业广告,您可随时通过相应产品退订功能取消。

- -

  11、适用范围

- -

  南宁市网宿信息科技有限公司软件平台提供的所有服务均使用本隐私政策。但是,请您注意,本隐私政策不适用由其他公司或个人提供的服务,且该服务适用其他公司或个人的隐私政策。

- -

  南宁市网宿信息科技有限公司

-
- -
- - diff --git a/dict/admin/src/App.vue b/dict/admin/src/App.vue deleted file mode 100644 index 0252b48..0000000 --- a/dict/admin/src/App.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/dict/admin/src/api/bszx/bszxBm/index.ts b/dict/admin/src/api/bszx/bszxBm/index.ts deleted file mode 100644 index f643aa6..0000000 --- a/dict/admin/src/api/bszx/bszxBm/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { BszxBm, BszxBmParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询百色中学-报名记录 - */ -export async function pageBszxBm(params: BszxBmParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-bm/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询百色中学-报名记录列表 - */ -export async function listBszxBm(params?: BszxBmParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-bm', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加百色中学-报名记录 - */ -export async function addBszxBm(data: BszxBm) { - const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-bm', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改百色中学-报名记录 - */ -export async function updateBszxBm(data: BszxBm) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-bm', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除百色中学-报名记录 - */ -export async function removeBszxBm(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-bm/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除百色中学-报名记录 - */ -export async function removeBatchBszxBm(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-bm/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询百色中学-报名记录 - */ -export async function getBszxBm(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-bm/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxBm/model/index.ts b/dict/admin/src/api/bszx/bszxBm/model/index.ts deleted file mode 100644 index e0d2d8c..0000000 --- a/dict/admin/src/api/bszx/bszxBm/model/index.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-报名记录 - */ -export interface BszxBm { - // 自增ID - id?: number; - // 订单编号 - orderNo?: string; - // 姓名 - name?: string; - // 性别 1男 2女 - sex?: number; - sexName?: string; - // 手机号码 - phone?: string; - // 手机号码(脱敏) - mobile?: string; - // 捐款金额 - price?: string; - // 分部ID - branchId?: number; - // 班级ID - classId?: number; - // 班级 - className?: string; - // 年级 - gradeName?: string; - // 居住地址 - address?: string; - // 工作单位 - workUnit?: string; - // 职务 - position?: string; - // 是否能到场 - present?: string; - // 年龄 - age?: number; - // 人数 - number?: number; - // 额外信息 - extra?: string; - // 生成的邀请函存放路径 - certificate?: string; - // 预定日期 - dateTime?: string; - // 表单数据 - formData?: string; - // 表单ID - formId?: number; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 百色中学-报名记录搜索条件 - */ -export interface BszxBmParam extends PageParam { - id?: number; - branchId?: number; - gradeName?: string; - className?: string; - classId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/bszx/bszxBranch/index.ts b/dict/admin/src/api/bszx/bszxBranch/index.ts deleted file mode 100644 index 0f7955b..0000000 --- a/dict/admin/src/api/bszx/bszxBranch/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { BszxBranch, BszxBranchParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询百色中学-分部 - */ -export async function pageBszxBranch(params: BszxBranchParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-branch/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询百色中学-分部列表 - */ -export async function listBszxBranch(params?: BszxBranchParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-branch', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加百色中学-分部 - */ -export async function addBszxBranch(data: BszxBranch) { - const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-branch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改百色中学-分部 - */ -export async function updateBszxBranch(data: BszxBranch) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-branch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除百色中学-分部 - */ -export async function removeBszxBranch(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-branch/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除百色中学-分部 - */ -export async function removeBatchBszxBranch(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-branch/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询百色中学-分部 - */ -export async function getBszxBranch(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-branch/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxBranch/model/index.ts b/dict/admin/src/api/bszx/bszxBranch/model/index.ts deleted file mode 100644 index 16866dd..0000000 --- a/dict/admin/src/api/bszx/bszxBranch/model/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-分部 - */ -export interface BszxBranch { - // ID - id?: number; - // 分部名称 - name?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 租户id - tenantId?: number; -} - -/** - * 百色中学-分部搜索条件 - */ -export interface BszxBranchParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/bszx/bszxClass/model/index.ts b/dict/admin/src/api/bszx/bszxClass/model/index.ts deleted file mode 100644 index c25af05..0000000 --- a/dict/admin/src/api/bszx/bszxClass/model/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-班级 - */ -export interface BszxClass { - // ID - id?: number; - // 时代ID - eraId?: number; - // 年级ID - gradeId?: number; - // 年级 - gradeName?: string; - // 班级 - className?: string; - // 分部 - branch?: number; - // 班级 - name?: string; - // 累计捐款总金额 - totalMoney?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - value?: number; - label?: string; -} - -/** - * 百色中学-班级搜索条件 - */ -export interface BszxClassParam extends PageParam { - id?: number; - gradeId?: number; - eraId?: number; - branch?: number; - name?: string; - className?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/bszx/bszxEra/index.ts b/dict/admin/src/api/bszx/bszxEra/index.ts deleted file mode 100644 index 45747b5..0000000 --- a/dict/admin/src/api/bszx/bszxEra/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { BszxEra, BszxEraParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询百色中学-年代 - */ -export async function pageBszxEra(params: BszxEraParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-era/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询百色中学-年代列表 - */ -export async function listBszxEra(params?: BszxEraParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-era', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加百色中学-年代 - */ -export async function addBszxEra(data: BszxEra) { - const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-era', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改百色中学-年代 - */ -export async function updateBszxEra(data: BszxEra) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-era', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除百色中学-年代 - */ -export async function removeBszxEra(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-era/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除百色中学-年代 - */ -export async function removeBatchBszxEra(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-era/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询百色中学-年代 - */ -export async function getBszxEra(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-era/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxEra/model/index.ts b/dict/admin/src/api/bszx/bszxEra/model/index.ts deleted file mode 100644 index 910da64..0000000 --- a/dict/admin/src/api/bszx/bszxEra/model/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-年代 - */ -export interface BszxEra { - // ID - id?: number; - // 年代 - name?: string; - // 租户id - tenantId?: number; -} - -/** - * 百色中学-年代搜索条件 - */ -export interface BszxEraParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/bszx/bszxGrade/index.ts b/dict/admin/src/api/bszx/bszxGrade/index.ts deleted file mode 100644 index 294c03f..0000000 --- a/dict/admin/src/api/bszx/bszxGrade/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { BszxGrade, BszxGradeParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询百色中学-年级 - */ -export async function pageBszxGrade(params: BszxGradeParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-grade/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询百色中学-年级列表 - */ -export async function listBszxGrade(params?: BszxGradeParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-grade', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加百色中学-年级 - */ -export async function addBszxGrade(data: BszxGrade) { - const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-grade', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改百色中学-年级 - */ -export async function updateBszxGrade(data: BszxGrade) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-grade', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除百色中学-年级 - */ -export async function removeBszxGrade(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-grade/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除百色中学-年级 - */ -export async function removeBatchBszxGrade(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-grade/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询百色中学-年级 - */ -export async function getBszxGrade(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-grade/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxGrade/model/index.ts b/dict/admin/src/api/bszx/bszxGrade/model/index.ts deleted file mode 100644 index 7df61ec..0000000 --- a/dict/admin/src/api/bszx/bszxGrade/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-年级 - */ -export interface BszxGrade { - // ID - id?: number; - // 年级 - name?: string; - // 年代 - eraId?: number; - // 分部 - branch?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - value?: number; - label?: string; -} - -/** - * 百色中学-年级搜索条件 - */ -export interface BszxGradeParam extends PageParam { - id?: number; - branch?: number; - gradeId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/bszx/bszxOrder/index.ts b/dict/admin/src/api/bszx/bszxOrder/index.ts deleted file mode 100644 index 4c7faff..0000000 --- a/dict/admin/src/api/bszx/bszxOrder/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import { MODULES_API_URL } from '@/config/setting'; -import {ShopOrder, ShopOrderParam} from "@/api/shop/shopOrder/model"; - -/** - * 分页查询百色中学-捐款记录 - */ -export async function pageBszxOrder(params: ShopOrderParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - - -/** - * 统计订单总金额(只统计有效订单) - */ -export async function bszxOrderTotal(params?: ShopOrderParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-order/total', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxPay/index.ts b/dict/admin/src/api/bszx/bszxPay/index.ts deleted file mode 100644 index df20870..0000000 --- a/dict/admin/src/api/bszx/bszxPay/index.ts +++ /dev/null @@ -1,121 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { BszxPay, BszxPayParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; -import {ShopOrder} from "@/api/shop/shopOrder/model"; - -/** - * 分页查询百色中学-捐款记录 - */ -export async function pageBszxPay(params: BszxPayParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-pay/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询百色中学-捐款记录列表 - */ -export async function listBszxPay(params?: BszxPayParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-pay', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加百色中学-捐款记录 - */ -export async function addBszxPay(data: BszxPay) { - const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-pay', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改百色中学-捐款记录 - */ -export async function updateBszxPay(data: BszxPay) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-pay', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除百色中学-捐款记录 - */ -export async function removeBszxPay(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-pay/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除百色中学-捐款记录 - */ -export async function removeBatchBszxPay(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-pay/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询百色中学-捐款记录 - */ -export async function getBszxPay(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-pay/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改订单 - */ -export async function repairOrder(data: ShopOrder) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-pay/repair', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxPay/model/index.ts b/dict/admin/src/api/bszx/bszxPay/model/index.ts deleted file mode 100644 index 016b733..0000000 --- a/dict/admin/src/api/bszx/bszxPay/model/index.ts +++ /dev/null @@ -1,69 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-捐款记录 - */ -export interface BszxPay { - // ID - id?: number; - // 年龄 - age?: number; - // 姓名 - name?: string; - // 性别 1男 2女 - sex?: number; - // 手机号码 - phone?: string; - // 班级 - className?: string; - // 年级 - gradeName?: string; - // 居住地址 - address?: string; - // 工作单位 - workUnit?: string; - // 职务 - position?: string; - // 数量 - number?: number; - // 付费金额 - price?: string; - // 额外信息 - extra?: string; - // 订单编号 - orderNo?: string; - // 预定日期 - dateTime?: string; - // 捐赠证书 - certificate?: string; - // 表单数据 - formData?: string; - // 来源表ID - formId?: number; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 百色中学-捐款记录搜索条件 - */ -export interface BszxPayParam extends PageParam { - id?: number; - orderId?: number; - orderNo?: string; - gradeName?: string; - className?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/bszx/bszxPayRanking/index.ts b/dict/admin/src/api/bszx/bszxPayRanking/index.ts deleted file mode 100644 index 7a6dc99..0000000 --- a/dict/admin/src/api/bszx/bszxPayRanking/index.ts +++ /dev/null @@ -1,135 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { BszxPayRanking, BszxPayRankingParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; -import {BszxClass, BszxClassParam} from "@/api/bszx/bszxClass/model"; - -/** - * 分页查询百色中学-捐款排行 - */ -export async function pageBszxPayRanking(params: BszxPayRankingParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-pay-ranking/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询百色中学-捐款排行列表 - */ -export async function listBszxPayRanking(params?: BszxPayRankingParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-pay-ranking', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function ranking(params?: BszxPayRankingParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-pay-ranking/ranking', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function ranking2(params?: BszxClassParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-pay-ranking/ranking2', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - - - -/** - * 添加百色中学-捐款排行 - */ -export async function addBszxPayRanking(data: BszxPayRanking) { - const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-pay-ranking', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改百色中学-捐款排行 - */ -export async function updateBszxPayRanking(data: BszxPayRanking) { - const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-pay-ranking', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除百色中学-捐款排行 - */ -export async function removeBszxPayRanking(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-pay-ranking/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除百色中学-捐款排行 - */ -export async function removeBatchBszxPayRanking(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-pay-ranking/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询百色中学-捐款排行 - */ -export async function getBszxPayRanking(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-pay-ranking/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/bszx/bszxPayRanking/model/index.ts b/dict/admin/src/api/bszx/bszxPayRanking/model/index.ts deleted file mode 100644 index aa46138..0000000 --- a/dict/admin/src/api/bszx/bszxPayRanking/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 百色中学-捐款排行 - */ -export interface BszxPayRanking { - // ID - id?: number; - // 来源表ID(项目名称) - formId?: number; - // 数量 - number?: number; - // 获得捐款总金额 - totalPrice?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 百色中学-捐款排行搜索条件 - */ -export interface BszxPayRankingParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsAd/index.ts b/dict/admin/src/api/cms/cmsAd/index.ts deleted file mode 100644 index c465bd4..0000000 --- a/dict/admin/src/api/cms/cmsAd/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsAd, CmsAdParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询广告位 - */ -export async function pageCmsAd(params: CmsAdParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-ad/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询广告位列表 - */ -export async function listCmsAd(params?: CmsAdParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-ad', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加广告位 - */ -export async function addCmsAd(data: CmsAd) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-ad', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改广告位 - */ -export async function updateCmsAd(data: CmsAd) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-ad', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除广告位 - */ -export async function removeCmsAd(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-ad/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除广告位 - */ -export async function removeBatchCmsAd(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-ad/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询广告位 - */ -export async function getCmsAd(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-ad/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsAd/model/index.ts b/dict/admin/src/api/cms/cmsAd/model/index.ts deleted file mode 100644 index 104c9d0..0000000 --- a/dict/admin/src/api/cms/cmsAd/model/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 广告位 - */ -export interface CmsAd { - // ID - adId?: number; - // 类型 - type?: number; - // 唯一标识 - code?: string; - // 栏目分类 - categoryId?: number; - // 栏目名称 - categoryName?: string; - // 页面ID - designId?: number; - // 广告类型 - adType?: string; - // 广告位名称 - name?: string; - // 宽 - width?: string; - // 高 - height?: string; - // css样式 - style?: string; - // 广告图片 - images?: any; - // 广告图片 - imageList?: any; - // 路由/链接地址 - path?: string; - // 用户ID - userId?: number; - // 语言 - lang?: string; - // 页面ID - pageId?: number; - // 页面名称 - pageName?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - merchantId?: number; -} - -/** - * 广告位搜索条件 - */ -export interface CmsAdParam extends PageParam { - adId?: number; - pageId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsAdRecord/index.ts b/dict/admin/src/api/cms/cmsAdRecord/index.ts deleted file mode 100644 index 840e6d0..0000000 --- a/dict/admin/src/api/cms/cmsAdRecord/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsAdRecord, CmsAdRecordParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询广告图片 - */ -export async function pageCmsAdRecord(params: CmsAdRecordParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-ad-record/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询广告图片列表 - */ -export async function listCmsAdRecord(params?: CmsAdRecordParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-ad-record', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加广告图片 - */ -export async function addCmsAdRecord(data: CmsAdRecord) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-ad-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改广告图片 - */ -export async function updateCmsAdRecord(data: CmsAdRecord) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-ad-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除广告图片 - */ -export async function removeCmsAdRecord(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-ad-record/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除广告图片 - */ -export async function removeBatchCmsAdRecord(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-ad-record/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询广告图片 - */ -export async function getCmsAdRecord(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-ad-record/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsAdRecord/model/index.ts b/dict/admin/src/api/cms/cmsAdRecord/model/index.ts deleted file mode 100644 index 0ecf5d1..0000000 --- a/dict/admin/src/api/cms/cmsAdRecord/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 广告图片 - */ -export interface CmsAdRecord { - // ID - adRecordId?: number; - // 广告标题 - title?: string; - // 图片地址 - path?: string; - // 链接地址 - url?: string; - // 广告位ID - adId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 广告图片搜索条件 - */ -export interface CmsAdRecordParam extends PageParam { - adRecordId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsArticle/index.ts b/dict/admin/src/api/cms/cmsArticle/index.ts deleted file mode 100644 index 59f0470..0000000 --- a/dict/admin/src/api/cms/cmsArticle/index.ts +++ /dev/null @@ -1,160 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsArticle, CmsArticleParam } from './model'; -import {MODULES_API_URL} from '@/config/setting'; - -/** - * 分页查询文章 - */ -export async function pageCmsArticle(params: CmsArticleParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-article/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询文章列表 - */ -export async function listCmsArticle(params?: CmsArticleParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加文章 - */ -export async function addCmsArticle(data: CmsArticle) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改文章 - */ -export async function updateCmsArticle(data: CmsArticle) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量修改文章 - */ -export async function updateBatchCmsArticle(data: any) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除文章 - */ -export async function removeCmsArticle(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除文章 - */ -export async function removeBatchCmsArticle(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询文章 - */ -export async function getCmsArticle(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据code查询文章 - */ -export async function getByCode(code: string) { - const res = await request.get>( - '/cms/cms-article/getByCode/' + code - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function getCount(params: CmsArticleParam) { - const res = await request.get(MODULES_API_URL + '/cms/cms-article/data', { - params - }); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - - -/** - * 文章批量导入 - */ -export async function importArticles(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsArticle/model/index.ts b/dict/admin/src/api/cms/cmsArticle/model/index.ts deleted file mode 100644 index bad09d2..0000000 --- a/dict/admin/src/api/cms/cmsArticle/model/index.ts +++ /dev/null @@ -1,131 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 文章 - */ -export interface CmsArticle { - // 文章ID - articleId?: number; - // 文章标题 - title?: string; - // 文章类型 0常规 1视频 - type?: number; - // 文章模型 - model?: string; - // 文章编号 - code?: string; - // 文章详情 - detail?: string; - // 列表显示方式(10小图展示 20大图展示) - showType?: number; - // 话题 - topic?: string; - // 标签 - tags?: any; - // 父级ID - parentId?: number; - parentName?: string; - // 栏目ID - categoryId?: number; - // 栏目名称 - categoryName?: string; - // 封面图 - image?: string; - // 来源 - source?: string; - // 摘要 - overview?: string; - // 虚拟阅读量(仅用作展示) - virtualViews?: number; - // 实际阅读量 - actualViews?: number; - // 浏览权限(0公开 1会员 2密码) - permission?: number; - // 访问密码 - password?: string; - // 确认密码 - password2?: string; - // 发布来源客户端 (APP、H5、小程序等) - platform?: string; - // 文章附件 - files?: string; - // 视频地址 - video?: string; - // 接受的文件类型 - accept?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 街道地址 - address?: string; - // 点赞数 - likes?: number; - // 评论数 - commentNumbers?: number; - // 提醒谁看 - toUsers?: string; - // 文章内容 - content?: string; - // 编辑器类型 - editor?: number; - // PDF地址 - pdfUrl?: string; - // 用户ID - userId?: number; - // 商户ID - merchantId?: number; - // 作者 - author?: string; - // 语言 - lang?: string; - // 是否推荐 - recommend?: number; - // 是否同步翻译其他语言版本 - translation?: boolean; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0已发布, 1待审核 2已驳回 3违规内容 - status?: number; - // 状态描述 - statusText?: string; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 是否移动端 - isMobile?: boolean; - // 二维码 - qrcode?: string; - // 文章路径 - url?: string; -} - -/** - * 文章搜索条件 - */ -export interface CmsArticleParam extends PageParam { - articleId?: number; - model?: string; - status?: number; - keywords?: string; -} - -export interface CmsArticleCount { - totalNum?: number; - totalNum2?: number; - totalNum3?: number; - totalNum4?: number; -} diff --git a/dict/admin/src/api/cms/cmsArticleCategory/index.ts b/dict/admin/src/api/cms/cmsArticleCategory/index.ts deleted file mode 100644 index 4159ed2..0000000 --- a/dict/admin/src/api/cms/cmsArticleCategory/index.ts +++ /dev/null @@ -1,108 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsArticleCategory, CmsArticleCategoryParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询文章分类表 - */ -export async function pageCmsArticleCategory(params: CmsArticleCategoryParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-article-category/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询文章分类表列表 - */ -export async function listCmsArticleCategory(params?: CmsArticleCategoryParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-category', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加文章分类表 - */ -export async function addCmsArticleCategory(data: CmsArticleCategory) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article-category', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改文章分类表 - */ -export async function updateCmsArticleCategory(data: CmsArticleCategory) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article-category', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除文章分类表 - */ -export async function removeCmsArticleCategory(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-category/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除文章分类表 - */ -export async function removeBatchCmsArticleCategory( - data: (number | undefined)[] -) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-category/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询文章分类表 - */ -export async function getCmsArticleCategory(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-category/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsArticleCategory/model/index.ts b/dict/admin/src/api/cms/cmsArticleCategory/model/index.ts deleted file mode 100644 index 7f8b2a8..0000000 --- a/dict/admin/src/api/cms/cmsArticleCategory/model/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 文章分类表 - */ -export interface CmsArticleCategory { - // 文章分类ID - categoryId?: number; - // 分类标识 - categoryCode?: string; - // 分类名称 - title?: string; - // 类型 0列表 1单页 2外链 - type?: number; - // 分类图片 - image?: string; - // 上级分类ID - parentId?: number; - // 路由/链接地址 - path?: string; - // 组件路径 - component?: string; - // 绑定的页面 - pageId?: number; - // 用户ID - userId?: number; - // 文章数量 - count?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单) - hide?: number; - // 是否推荐 - recommend?: number; - // 是否显示在首页 - showIndex?: number; - // 状态, 0正常, 1禁用 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - value?: number; - label?: string; -} - -/** - * 文章分类表搜索条件 - */ -export interface CmsArticleCategoryParam extends PageParam { - categoryId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsArticleComment/index.ts b/dict/admin/src/api/cms/cmsArticleComment/index.ts deleted file mode 100644 index 085579f..0000000 --- a/dict/admin/src/api/cms/cmsArticleComment/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsArticleComment, CmsArticleCommentParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询文章评论表 - */ -export async function pageCmsArticleComment(params: CmsArticleCommentParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-article-comment/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询文章评论表列表 - */ -export async function listCmsArticleComment(params?: CmsArticleCommentParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-comment', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加文章评论表 - */ -export async function addCmsArticleComment(data: CmsArticleComment) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article-comment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改文章评论表 - */ -export async function updateCmsArticleComment(data: CmsArticleComment) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article-comment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除文章评论表 - */ -export async function removeCmsArticleComment(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-comment/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除文章评论表 - */ -export async function removeBatchCmsArticleComment(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-comment/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询文章评论表 - */ -export async function getCmsArticleComment(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-comment/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsArticleComment/model/index.ts b/dict/admin/src/api/cms/cmsArticleComment/model/index.ts deleted file mode 100644 index 2490228..0000000 --- a/dict/admin/src/api/cms/cmsArticleComment/model/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 文章评论表 - */ -export interface CmsArticleComment { - // 评价ID - commentId?: number; - // 文章ID - articleId?: number; - // 评分 (10好评 20中评 30差评) - score?: number; - // 评价内容 - content?: string; - // 是否为图片评价 - isPicture?: number; - // 评论者ID - userId?: number; - // 被评价者ID - toUserId?: number; - // 回复的评论ID - replyCommentId?: number; - // 回复者ID - replyUserId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0未读, 1已读 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 文章评论表搜索条件 - */ -export interface CmsArticleCommentParam extends PageParam { - commentId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsArticleContent/index.ts b/dict/admin/src/api/cms/cmsArticleContent/index.ts deleted file mode 100644 index c25d8f4..0000000 --- a/dict/admin/src/api/cms/cmsArticleContent/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsArticleContent, CmsArticleContentParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询文章记录表 - */ -export async function pageCmsArticleContent(params: CmsArticleContentParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-article-content/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询文章记录表列表 - */ -export async function listCmsArticleContent(params?: CmsArticleContentParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-content', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加文章记录表 - */ -export async function addCmsArticleContent(data: CmsArticleContent) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article-content', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改文章记录表 - */ -export async function updateCmsArticleContent(data: CmsArticleContent) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article-content', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除文章记录表 - */ -export async function removeCmsArticleContent(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-content/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除文章记录表 - */ -export async function removeBatchCmsArticleContent(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-content/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询文章记录表 - */ -export async function getCmsArticleContent(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-content/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsArticleContent/model/index.ts b/dict/admin/src/api/cms/cmsArticleContent/model/index.ts deleted file mode 100644 index 432c376..0000000 --- a/dict/admin/src/api/cms/cmsArticleContent/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 文章记录表 - */ -export interface CmsArticleContent { - // - id?: number; - // 文章ID - articleId?: number; - // 文章内容 - content?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 文章记录表搜索条件 - */ -export interface CmsArticleContentParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsArticleCount/index.ts b/dict/admin/src/api/cms/cmsArticleCount/index.ts deleted file mode 100644 index 0d88f6d..0000000 --- a/dict/admin/src/api/cms/cmsArticleCount/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsArticleCount, CmsArticleCountParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询点赞文章 - */ -export async function pageCmsArticleCount(params: CmsArticleCountParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-article-count/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询点赞文章列表 - */ -export async function listCmsArticleCount(params?: CmsArticleCountParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-count', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加点赞文章 - */ -export async function addCmsArticleCount(data: CmsArticleCount) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article-count', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改点赞文章 - */ -export async function updateCmsArticleCount(data: CmsArticleCount) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article-count', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除点赞文章 - */ -export async function removeCmsArticleCount(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-count/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除点赞文章 - */ -export async function removeBatchCmsArticleCount(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-count/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询点赞文章 - */ -export async function getCmsArticleCount(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-count/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsArticleCount/model/index.ts b/dict/admin/src/api/cms/cmsArticleCount/model/index.ts deleted file mode 100644 index 9cfbc24..0000000 --- a/dict/admin/src/api/cms/cmsArticleCount/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 点赞文章 - */ -export interface CmsArticleCount { - // 主键ID - id?: number; - // 文章ID - articleId?: number; - // 用户ID - userId?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 点赞文章搜索条件 - */ -export interface CmsArticleCountParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsArticleLike/index.ts b/dict/admin/src/api/cms/cmsArticleLike/index.ts deleted file mode 100644 index ab3dd0f..0000000 --- a/dict/admin/src/api/cms/cmsArticleLike/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsArticleLike, CmsArticleLikeParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询点赞文章 - */ -export async function pageCmsArticleLike(params: CmsArticleLikeParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-article-like/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询点赞文章列表 - */ -export async function listCmsArticleLike(params?: CmsArticleLikeParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-like', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加点赞文章 - */ -export async function addCmsArticleLike(data: CmsArticleLike) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-article-like', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改点赞文章 - */ -export async function updateCmsArticleLike(data: CmsArticleLike) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-article-like', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除点赞文章 - */ -export async function removeCmsArticleLike(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-like/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除点赞文章 - */ -export async function removeBatchCmsArticleLike(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-article-like/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询点赞文章 - */ -export async function getCmsArticleLike(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-article-like/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsArticleLike/model/index.ts b/dict/admin/src/api/cms/cmsArticleLike/model/index.ts deleted file mode 100644 index ccee27a..0000000 --- a/dict/admin/src/api/cms/cmsArticleLike/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 点赞文章 - */ -export interface CmsArticleLike { - // 主键ID - id?: number; - // 文章ID - articleId?: number; - // 用户ID - userId?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 点赞文章搜索条件 - */ -export interface CmsArticleLikeParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsDesign/index.ts b/dict/admin/src/api/cms/cmsDesign/index.ts deleted file mode 100644 index eb4736c..0000000 --- a/dict/admin/src/api/cms/cmsDesign/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsDesign, CmsDesignParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询页面管理记录表 - */ -export async function pageCmsDesign(params: CmsDesignParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-design/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询页面管理记录表列表 - */ -export async function listCmsDesign(params?: CmsDesignParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-design', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加页面管理记录表 - */ -export async function addCmsDesign(data: CmsDesign) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-design', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改页面管理记录表 - */ -export async function updateCmsDesign(data: CmsDesign) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-design', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除页面管理记录表 - */ -export async function removeCmsDesign(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-design/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除页面管理记录表 - */ -export async function removeBatchCmsDesign(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-design/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询页面管理记录表 - */ -export async function getCmsDesign(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-design/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsDesign/model/index.ts b/dict/admin/src/api/cms/cmsDesign/model/index.ts deleted file mode 100644 index d8ef624..0000000 --- a/dict/admin/src/api/cms/cmsDesign/model/index.ts +++ /dev/null @@ -1,64 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 页面管理记录表 - */ -export interface CmsDesign { - pageId?: number; - name?: string; - keywords?: string; - description?: string; - path?: string; - component?: string; - photo?: string; - content?: string; - // 类型 - type?: string; - categoryId?: number; - // 宽 - width?: string; - // 高 - height?: string; - // 页面样式 - style?: string; - // 附件 - images?: string; - // 用户ID - userId?: number; - // 设为首页 - home?: number; - // 排序 - sortNumber?: number; - // 备注 - comments?: string; - // 状态 - status?: number; - // 创建时间 - createTime?: string; - // 更新时间 - updateTime?: string; - // 页面布局 - layout?: string; - backgroundColor?: string; - // 关联网站导航ID - navigationId?: number; - showLayout?: boolean; - btn?: any[]; - showBanner?: boolean; - showButton?: boolean; - // 是否同步翻译其他语言版本 - translation?: boolean; - buyUrl?: string; - demoUrl?: string; - account?: string; - docUrl?: string; - parentId?: number; -} - -/** - * 页面管理记录表搜索条件 - */ -export interface CmsDesignParam extends PageParam { - pageId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsDomain/index.ts b/dict/admin/src/api/cms/cmsDomain/index.ts deleted file mode 100644 index 8ae32ad..0000000 --- a/dict/admin/src/api/cms/cmsDomain/index.ts +++ /dev/null @@ -1,153 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsDomain, CmsDomainParam } from './model'; -import { SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询网站域名记录表 - */ -export async function pageCmsDomain(params: CmsDomainParam) { - const res = await request.get>>( - SERVER_API_URL + '/cms/cms-domain/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询网站域名记录表列表 - */ -export async function listCmsDomain(params?: CmsDomainParam) { - const res = await request.get>( - SERVER_API_URL + '/cms/cms-domain', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加网站域名记录表 - */ -export async function addCmsDomain(data: CmsDomain) { - const res = await request.post>( - SERVER_API_URL + '/cms/cms-domain', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改网站域名记录表 - */ -export async function updateCmsDomain(data: CmsDomain) { - const res = await request.post>( - SERVER_API_URL + '/cms/cms-domain/domain', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除网站域名记录表 - */ -export async function removeCmsDomain(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/cms/cms-domain/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除网站域名记录表 - */ -export async function removeBatchCmsDomain(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/cms/cms-domain/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询网站域名记录表 - */ -export async function getCmsDomain(id: number) { - const res = await request.get>( - SERVER_API_URL + '/cms/cms-domain/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/cms/cms-domain/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function resolvable(id: number) { - const res = await request.get>( - SERVER_API_URL + '/cms/cms-domain/resolvable/' + id - ); - if (res.data.code === 0 && res.data) { - return res.data; - } - return Promise.reject(new Error(res.data.message)); -} - - -/** - * 根据授权主域名 - */ -export async function getAuthorizedDomain() { - if(!localStorage.getItem('WebsiteId')){ - return false; - } - const res = await request.get>( - SERVER_API_URL + '/cms/cms-domain/getAuthorizedDomain/' + localStorage.getItem('WebsiteId') - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsDomain/model/index.ts b/dict/admin/src/api/cms/cmsDomain/model/index.ts deleted file mode 100644 index 3be7c9d..0000000 --- a/dict/admin/src/api/cms/cmsDomain/model/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 网站域名记录表 - */ -export interface CmsDomain { - // ID - id?: number; - // 类型 0赠送域名 1绑定域名 - type?: number; - // 域名 - domain?: string; - // 主机记录 - hostName?: string; - // 记录值 - hostValue?: string; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 网站ID - websiteId?: number; - // 租户ID - appId?: number; - // 用户ID - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 网站域名记录表搜索条件 - */ -export interface CmsDomainParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsForm/index.ts b/dict/admin/src/api/cms/cmsForm/index.ts deleted file mode 100644 index abf07ab..0000000 --- a/dict/admin/src/api/cms/cmsForm/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsForm, CmsFormParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询表单设计表 - */ -export async function pageCmsForm(params: CmsFormParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-form/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询表单设计表列表 - */ -export async function listCmsForm(params?: CmsFormParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-form', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加表单设计表 - */ -export async function addCmsForm(data: CmsForm) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-form', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改表单设计表 - */ -export async function updateCmsForm(data: CmsForm) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-form', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除表单设计表 - */ -export async function removeCmsForm(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-form/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除表单设计表 - */ -export async function removeBatchCmsForm(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-form/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询表单设计表 - */ -export async function getCmsForm(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-form/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsForm/model/index.ts b/dict/admin/src/api/cms/cmsForm/model/index.ts deleted file mode 100644 index 6e43ff9..0000000 --- a/dict/admin/src/api/cms/cmsForm/model/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 表单设计表 - */ -export interface CmsForm { - // ID - formId?: number; - // 表单标题 - name?: string; - // 顶部图片 - photo?: string; - // 背景图片 - background?: string; - // 视频文件 - video?: string; - // 提交次数 - submitNumber?: number; - // 页面布局 - layout?: string; - // 是否隐藏顶部图片 - hidePhoto?: number; - // 是否隐藏背景图片 - hideBackground?: number; - // 是否隐藏视频 - hideVideo?: number; - // 背景图片透明度 - opacity?: string; - // 用户ID - userId?: number; - // 商户ID - merchantId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 表单设计表搜索条件 - */ -export interface CmsFormParam extends PageParam { - formId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsFormRecord/index.ts b/dict/admin/src/api/cms/cmsFormRecord/index.ts deleted file mode 100644 index b281148..0000000 --- a/dict/admin/src/api/cms/cmsFormRecord/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsFormRecord, CmsFormRecordParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询表单数据记录表 - */ -export async function pageCmsFormRecord(params: CmsFormRecordParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-form-record/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询表单数据记录表列表 - */ -export async function listCmsFormRecord(params?: CmsFormRecordParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-form-record', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加表单数据记录表 - */ -export async function addCmsFormRecord(data: CmsFormRecord) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-form-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改表单数据记录表 - */ -export async function updateCmsFormRecord(data: CmsFormRecord) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-form-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除表单数据记录表 - */ -export async function removeCmsFormRecord(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-form-record/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除表单数据记录表 - */ -export async function removeBatchCmsFormRecord(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-form-record/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询表单数据记录表 - */ -export async function getCmsFormRecord(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-form-record/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsFormRecord/model/index.ts b/dict/admin/src/api/cms/cmsFormRecord/model/index.ts deleted file mode 100644 index 4bd8f39..0000000 --- a/dict/admin/src/api/cms/cmsFormRecord/model/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 表单数据记录表 - */ -export interface CmsFormRecord { - // ID - formRecordId?: number; - // 手机号 - phone?: string; - // 表单数据 - formData?: string; - // 表单ID - formId?: number; - // 用户ID - userId?: number; - // 商户ID - merchantId?: number; - // 姓名 - name?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 表单数据记录表搜索条件 - */ -export interface CmsFormRecordParam extends PageParam { - formRecordId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsLang/index.ts b/dict/admin/src/api/cms/cmsLang/index.ts deleted file mode 100644 index 8787da1..0000000 --- a/dict/admin/src/api/cms/cmsLang/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsLang, CmsLangParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询国际化 - */ -export async function pageCmsLang(params: CmsLangParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-lang/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询国际化列表 - */ -export async function listCmsLang(params?: CmsLangParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-lang', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加国际化 - */ -export async function addCmsLang(data: CmsLang) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-lang', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改国际化 - */ -export async function updateCmsLang(data: CmsLang) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-lang', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除国际化 - */ -export async function removeCmsLang(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-lang/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除国际化 - */ -export async function removeBatchCmsLang(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-lang/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询国际化 - */ -export async function getCmsLang(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-lang/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsLang/model/index.ts b/dict/admin/src/api/cms/cmsLang/model/index.ts deleted file mode 100644 index 43c1d9e..0000000 --- a/dict/admin/src/api/cms/cmsLang/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 国际化 - */ -export interface CmsLang { - // ID - id?: number; - // 名称 - name?: string; - // 编码 - code?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0已发布, 1待审核 2已驳回 3违规内容 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 国际化搜索条件 - */ -export interface CmsLangParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsLangLog/index.ts b/dict/admin/src/api/cms/cmsLangLog/index.ts deleted file mode 100644 index 9af33c7..0000000 --- a/dict/admin/src/api/cms/cmsLangLog/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsLangLog, CmsLangLogParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询国际化记录启用 - */ -export async function pageCmsLangLog(params: CmsLangLogParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-lang-log/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询国际化记录启用列表 - */ -export async function listCmsLangLog(params?: CmsLangLogParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-lang-log', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加国际化记录启用 - */ -export async function addCmsLangLog(data: CmsLangLog) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-lang-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改国际化记录启用 - */ -export async function updateCmsLangLog(data: CmsLangLog) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-lang-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除国际化记录启用 - */ -export async function removeCmsLangLog(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-lang-log/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除国际化记录启用 - */ -export async function removeBatchCmsLangLog(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-lang-log/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询国际化记录启用 - */ -export async function getCmsLangLog(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-lang-log/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsLangLog/model/index.ts b/dict/admin/src/api/cms/cmsLangLog/model/index.ts deleted file mode 100644 index af5a2f6..0000000 --- a/dict/admin/src/api/cms/cmsLangLog/model/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 国际化记录启用 - */ -export interface CmsLangLog { - // ID - id?: number; - // 名称 - lang?: string; - // 关联ID - langId?: number; - // 编码 - code?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 国际化记录启用搜索条件 - */ -export interface CmsLangLogParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsLink/index.ts b/dict/admin/src/api/cms/cmsLink/index.ts deleted file mode 100644 index 63558af..0000000 --- a/dict/admin/src/api/cms/cmsLink/index.ts +++ /dev/null @@ -1,120 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsLink, CmsLinkParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询常用链接 - */ -export async function pageCmsLink(params: CmsLinkParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-link/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询常用链接列表 - */ -export async function listCmsLink(params?: CmsLinkParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-link', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加常用链接 - */ -export async function addCmsLink(data: CmsLink) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-link', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改常用链接 - */ -export async function updateCmsLink(data: CmsLink) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-link', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除常用链接 - */ -export async function removeCmsLink(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-link/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量修改常用链接 - */ -export async function updateBatchCmsLink(data: any) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-link/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除常用链接 - */ -export async function removeBatchCmsLink(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-link/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询常用链接 - */ -export async function getCmsLink(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-link/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsLink/model/index.ts b/dict/admin/src/api/cms/cmsLink/model/index.ts deleted file mode 100644 index 2f83581..0000000 --- a/dict/admin/src/api/cms/cmsLink/model/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 常用链接 - */ -export interface CmsLink { - // 自增ID - id?: number; - // 链接名称 - name?: string; - // 图标 - icon?: string; - // 链接地址 - url?: string; - // 链接分类 - categoryId?: number; - // 应用ID - appId?: number; - // 用户ID - userId?: number; - // 语言 - lang?: string; - // 是否推荐 - recommend?: number; - // 备注 - comments?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 状态, 0正常, 1待确认 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 常用链接搜索条件 - */ -export interface CmsLinkParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsModel/model/index.ts b/dict/admin/src/api/cms/cmsModel/model/index.ts deleted file mode 100644 index 14a78f2..0000000 --- a/dict/admin/src/api/cms/cmsModel/model/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 模型 - */ -export interface CmsModel { - // ID - modelId?: number; - // 模型名称 - name?: string; - // 唯一标识 - model?: string; - // 详情页组件 - componentDetail?: string; - // 菜单组件地址, 目录可为空 - component?: string; - // 模型banner图片 - banner?: string; - // 缩列图 - thumb?: string; - // 文件后缀 - suffix?: string; - // 封面图宽 - imageWidth?: string; - // 封面图高 - imageHeight?: string; - // 样式 - style?: string; - // Banner上的标题 - title?: string; - // Banner上的描述 - desc?: string; - // 列表显示方式(10小图展示 20大图展示) - showType?: number; - // 是否禁用 - disabled?: boolean; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0已发布, 1待审核 2已驳回 3违规内容 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - label?: string; - value?: string; -} - -/** - * 模型搜索条件 - */ -export interface CmsModelParam extends PageParam { - modelId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsNavigation/index.ts b/dict/admin/src/api/cms/cmsNavigation/index.ts deleted file mode 100644 index 1ebb173..0000000 --- a/dict/admin/src/api/cms/cmsNavigation/index.ts +++ /dev/null @@ -1,151 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsNavigation, CmsNavigationParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询网站导航记录表 - */ -export async function pageCmsNavigation(params: CmsNavigationParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-navigation/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询网站导航记录表列表 - */ -export async function listCmsNavigation(params?: CmsNavigationParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-navigation', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询导航列表(树形结构) - */ -export async function treeNavigation(params?: CmsNavigationParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-navigation/tree', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} -/** - * 添加网站导航记录表 - */ -export async function addCmsNavigation(data: CmsNavigation) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-navigation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改网站导航记录表 - */ -export async function updateCmsNavigation(data: CmsNavigation) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-navigation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除网站导航记录表 - */ -export async function removeCmsNavigation(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-navigation/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除网站导航记录表 - */ -export async function removeBatchCmsNavigation(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-navigation/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询网站导航记录表 - */ -export async function getCmsNavigation(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-navigation/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - - -/** - * 根据code查询导航 - */ -export async function getByCode(code: string) { - const res = await request.get>( - '/cms/cms-navigation/getByCode/' + code - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导航批量导入 - */ -export async function importCmsNavigation(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - MODULES_API_URL + '/cms/cms-navigation/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} \ No newline at end of file diff --git a/dict/admin/src/api/cms/cmsNavigation/model/index.ts b/dict/admin/src/api/cms/cmsNavigation/model/index.ts deleted file mode 100644 index a1da0a0..0000000 --- a/dict/admin/src/api/cms/cmsNavigation/model/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 网站导航记录表 - */ -export interface CmsNavigation { - // ID - navigationId?: number; - // 上级id, 0是顶级 - parentId?: number; - // 菜单名称 - title?: string; - // 模型 - model?: string; - // 标识 - code?: string; - // 菜单路由地址 - path?: string; - // 菜单组件地址, 目录可为空 - component?: string; - componentPath?: string; - // 打开位置 - target?: string; - // 菜单图标 - icon?: string; - // banner图片 - banner?: string; - // 图标颜色 - color?: string; - // 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单) - hide?: number; - // 可见类型 0所有人 1登录可见 2密码可见 - permission?: number; - // 访问密码 - password?: string; - // 位置 0不限 1顶部 2底部 - position?: number; - // 仅在顶部显示 - top?: number; - // 仅在底部显示 - bottom?: number; - // 菜单侧栏选中的path - active?: string; - // 其它路由元信息 - meta?: string; - // css样式 - style?: string; - // 父级栏目路由 - parentPath?: string; - // 父级栏目名称 - parentName?: string; - // 父级栏目位置 - parentPosition?: number; - // 模型名称 - modelName?: string; - // 类型(已废弃) - type?: number; - // 绑定的页面(已废弃) - pageId?: number; - // 项目ID - itemId?: number; - // 是否微信小程序菜单 - isMpWeixin?: string; - gutter?: number; - span?: number; - readNum?: number; - // 用户ID - userId?: number; - // 国际化语言 - lang?: string; - // 设为首页 - home?: number; - // 是否推荐 - recommend?: boolean; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 是否删除, 0否, 1是 - deleted?: number; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - children?: CmsNavigation[]; - disabled?: boolean; - label?: string; - value?: number; - suffix?: string; - showBanner?: boolean; - showLayout?: boolean; - langCategoryId?: number; -} - -/** - * 网站导航记录表搜索条件 - */ -export interface CmsNavigationParam extends PageParam { - navigationId?: number; - model?: string; - lang?: string; - recommend?: boolean; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsOrder/index.ts b/dict/admin/src/api/cms/cmsOrder/index.ts deleted file mode 100644 index fdfc69f..0000000 --- a/dict/admin/src/api/cms/cmsOrder/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsOrder, CmsOrderParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询订单 - */ -export async function pageCmsOrder(params: CmsOrderParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询订单列表 - */ -export async function listCmsOrder(params?: CmsOrderParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-order', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加订单 - */ -export async function addCmsOrder(data: CmsOrder) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改订单 - */ -export async function updateCmsOrder(data: CmsOrder) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除订单 - */ -export async function removeCmsOrder(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-order/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除订单 - */ -export async function removeBatchCmsOrder(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-order/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询订单 - */ -export async function getCmsOrder(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-order/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsOrder/model/index.ts b/dict/admin/src/api/cms/cmsOrder/model/index.ts deleted file mode 100644 index e36a1ae..0000000 --- a/dict/admin/src/api/cms/cmsOrder/model/index.ts +++ /dev/null @@ -1,66 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 订单 - */ -export interface CmsOrder { - // 订单号 - orderId?: number; - // 订单标题 - title?: string; - // 订单编号 - orderNo?: string; - // 订单类型,0商城 1询价 2留言 - type?: number; - // 关联项目ID,配合订单类型使用 - itemId?: number; - // 真实姓名 - realName?: string; - // 手机号码 - phone?: string; - // 电子邮箱 - email?: string; - // 收货地址 - address?: string; - // 订单内容 - content?: string; - // 订单附件 - files?: string; - // 订单总额 - totalPrice?: string; - // 实际付款 - payPrice?: string; - // 报价询价 - price?: string; - // 购买数量 - totalNum?: number; - // 二维码地址,保存订单号,支付成功后才生成 - qrcode?: string; - // 下单渠道,0网站 1小程序 2其他 - channel?: number; - // 过期时间 - expirationTime?: string; - // 订单是否已结算(0未结算 1已结算) - isSettled?: boolean; - // 用户id - userId?: number; - // 备注 - comments?: string; - // 排序号 - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 订单搜索条件 - */ -export interface CmsOrderParam extends PageParam { - orderId?: number; - isSettled?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsStatistics/index.ts b/dict/admin/src/api/cms/cmsStatistics/index.ts deleted file mode 100644 index 14edfeb..0000000 --- a/dict/admin/src/api/cms/cmsStatistics/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsStatistics, CmsStatisticsParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询站点统计信息表 - */ -export async function pageCmsStatistics(params: CmsStatisticsParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-statistics/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询站点统计信息表列表 - */ -export async function listCmsStatistics(params?: CmsStatisticsParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-statistics', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加站点统计信息表 - */ -export async function addCmsStatistics(data: CmsStatistics) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-statistics', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改站点统计信息表 - */ -export async function updateCmsStatistics(data: CmsStatistics) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-statistics', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除站点统计信息表 - */ -export async function removeCmsStatistics(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-statistics/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除站点统计信息表 - */ -export async function removeBatchCmsStatistics(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-statistics/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询站点统计信息表 - */ -export async function getCmsStatistics(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-statistics/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsStatistics/model/index.ts b/dict/admin/src/api/cms/cmsStatistics/model/index.ts deleted file mode 100644 index bff5bbc..0000000 --- a/dict/admin/src/api/cms/cmsStatistics/model/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 站点统计信息表 - */ -export interface CmsStatistics { - // 自增ID - id?: number; - // 站点ID - websiteId?: number; - // 用户总数 - userCount?: number; - // 订单总数 - orderCount?: number; - // 商品总数 - productCount?: number; - // 总销售额 - totalSales?: number; - // 本月销售额 - monthSales?: number; - // 今日销售额 - todaySales?: number; - // 昨日销售额 - yesterdaySales?: number; - // 本周销售额 - weekSales?: number; - // 本年销售额 - yearSales?: number; - // 今日订单数 - todayOrders?: number; - // 本月订单数 - monthOrders?: number; - // 今日新增用户 - todayUsers?: number; - // 本月新增用户 - monthUsers?: number; - // 今日访问量 - todayVisits?: number; - // 总访问量 - totalVisits?: number; - // 商户总数 - merchantCount?: number; - // 活跃用户数 - activeUsers?: number; - // 转化率(%) - conversionRate?: string; - // 平均订单金额 - avgOrderAmount?: string; - // 统计日期 - statisticsDate?: string; - // 统计类型: 1日统计, 2月统计, 3年统计 - statisticsType?: number; - // 运行天数 - runDays?: number; - // 排序号 - sortNumber?: number; - // 操作用户ID - userId?: number; - // 商户ID - merchantId?: number; - // 状态: 0禁用, 1启用 - status?: string; - // 是否删除: 0否, 1是 - deleted?: string; - // 租户ID - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 站点统计信息表搜索条件 - */ -export interface CmsStatisticsParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsTemplate/index.ts b/dict/admin/src/api/cms/cmsTemplate/index.ts deleted file mode 100644 index fd29228..0000000 --- a/dict/admin/src/api/cms/cmsTemplate/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsTemplate, CmsTemplateParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询网站模版 - */ -export async function pageCmsTemplate(params: CmsTemplateParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-template/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询网站模版列表 - */ -export async function listCmsTemplate(params?: CmsTemplateParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-template', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加网站模版 - */ -export async function addCmsTemplate(data: CmsTemplate) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-template', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改网站模版 - */ -export async function updateCmsTemplate(data: CmsTemplate) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-template', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除网站模版 - */ -export async function removeCmsTemplate(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-template/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除网站模版 - */ -export async function removeBatchCmsTemplate(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-template/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询网站模版 - */ -export async function getCmsTemplate(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-template/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsTemplate/model/index.ts b/dict/admin/src/api/cms/cmsTemplate/model/index.ts deleted file mode 100644 index 96211ee..0000000 --- a/dict/admin/src/api/cms/cmsTemplate/model/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 网站模版 - */ -export interface CmsTemplate { - // ID - id?: number; - // 模版名称 - name?: string; - // 模版标识 - code?: string; - // 缩列图 - image?: string; - // 类型 1企业官网 2其他 - type?: number; - // 网站关键词 - keywords?: string; - // 域名前缀 - prefix?: string; - // 预览地址 - domain?: string; - // 模版下载地址 - downUrl?: string; - // 色系 - color?: string; - // 应用版本 10免费版 20授权版 30永久授权 - version?: number; - // 行业类型(父级) - industryParent?: string; - // 行业类型(子级) - industryChild?: string; - // 备注 - comments?: string; - // 是否推荐 - recommend?: string; - // 是否共享模板 - share?: string; - // 排序号 - sortNumber?: number; - // 用户ID - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 网站模版搜索条件 - */ -export interface CmsTemplateParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsWebsite/index.ts b/dict/admin/src/api/cms/cmsWebsite/index.ts deleted file mode 100644 index 3e47dc4..0000000 --- a/dict/admin/src/api/cms/cmsWebsite/index.ts +++ /dev/null @@ -1,119 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsWebsite, CmsWebsiteParam } from './model'; -import {MODULES_API_URL} from '@/config/setting'; - -/** - * 分页查询网站信息记录表 - */ -export async function pageCmsWebsite(params: CmsWebsiteParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-website/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询网站信息记录表列表 - */ -export async function listCmsWebsite(params?: CmsWebsiteParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加网站信息记录表 - */ -export async function addCmsWebsite(data: CmsWebsite) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-website', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改网站信息记录表 - */ -export async function updateCmsWebsite(data: CmsWebsite) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-website', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除网站信息记录表 - */ -export async function removeCmsWebsite(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除网站信息记录表 - */ -export async function removeBatchCmsWebsite(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询网站信息记录表 - */ -export async function getCmsWebsite(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 清除缓存 - */ -export async function removeSiteInfoCache(key?: string) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website/clearSiteInfo/' + key - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsWebsite/model/index.ts b/dict/admin/src/api/cms/cmsWebsite/model/index.ts deleted file mode 100644 index c9a01d2..0000000 --- a/dict/admin/src/api/cms/cmsWebsite/model/index.ts +++ /dev/null @@ -1,162 +0,0 @@ -import type { PageParam } from '@/api'; -import {CmsWebsiteSetting} from "@/api/cms/cmsWebsiteSetting/model"; -import {CmsNavigation} from "@/api/cms/cmsNavigation/model"; - -/** - * 网站信息记录表 - */ -export interface CmsWebsite { - // 站点ID - websiteId?: number; - // 网站名称 - websiteName?: string; - // 网站标识 - websiteCode?: string; - // 网站密钥 - websiteSecret?: string; - // 网站LOGO - websiteIcon?: string; - // 网站LOGO - websiteLogo?: string; - // 网站LOGO(深色模式) - websiteDarkLogo?: string; - // 网站类型 - websiteType?: string; - // 网站截图 - files?: string; - // 网站类型 - type?: number; - // 网站关键词 - keywords?: string; - // 域名前缀 - prefix?: string; - // 绑定域名 - domain?: string; - // 全局样式 - style?: string; - // 后台管理地址 - adminUrl?: string; - // 应用版本 10标准版 20专业版 30永久授权 - version?: number; - // 允许展示到插件市场 - market?: boolean; - // 应用类型 0应用 1插件 - plugin?: boolean; - // 默认编辑器 - editor?: number, - // 服务到期时间 - expirationTime?: string; - // 模版ID - templateId?: number; - // 行业类型 - category?: string; - // 行业类型(父级) - industryParent?: string; - // 行业类型(子级) - industryChild?: string; - // 企业ID - companyId?: number; - // 所在国家 - country?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 街道地址 - address?: string; - // 联系电话 - phone?: string; - // 电子邮箱 - email?: string; - // ICP备案号 - icpNo?: string; - // 公安备案 - policeNo?: string; - // 备注 - comments?: string; - // 是否推荐 - recommend?: number; - // 是否运行中 - running?: number; - // 状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停 - status?: number; - // 维护说明 - statusText?: string; - // 关闭说明 - statusClose?: string; - // 全局样式 - styles?: string; - // 语言 - lang?: string; - // 排序号 - sortNumber?: number; - // 用户ID - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 网站配置 - config?: any; - // 短信验证码 - smsCode?: string; - // 短信验证码 - code?: string; - // 是否记住密码 - remember?: boolean; - // 企业名称 - companyName?: string; - // 是否注册未超级管理员 - isSuperAdmin?: boolean; - // 用户名 - username?: string; - // 网站配置 - setting?: CmsWebsiteSetting; -} - -export interface AppInfo { - appId?: number; - appName?: string; - description?: string; - keywords?: string; - appCode?: string; - mpQrCode?: string; - title?: string; - logo?: string; - icon?: string; - domain?: string; - running?: number; - version?: number; - expirationTime?: string; - expired?: boolean; - expiredDays?: number; - soon?: number; - statusIcon?: string; - statusText?: string; - config?: Object; - serverTime?: Object; - topNavs?: CmsNavigation[]; - bottomNavs?: CmsNavigation[]; - setting?: Object; - createTime?: string; -} - -/** - * 网站信息记录表搜索条件 - */ -export interface CmsWebsiteParam extends PageParam { - websiteId?: number; - status?: number; - plugin?: boolean; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/cmsWebsiteField/index.ts b/dict/admin/src/api/cms/cmsWebsiteField/index.ts deleted file mode 100644 index 8329889..0000000 --- a/dict/admin/src/api/cms/cmsWebsiteField/index.ts +++ /dev/null @@ -1,167 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type {CmsWebsiteField, CmsWebsiteFieldParam, Config} from './model'; -import {MODULES_API_URL, TEMPLATE_ID} from '@/config/setting'; - -/** - * 分页查询应用参数 - */ -export async function pageCmsWebsiteField(params: CmsWebsiteFieldParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-website-field/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用参数列表 - */ -export async function listCmsWebsiteField(params?: CmsWebsiteFieldParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website-field', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加应用参数 - */ -export async function addCmsWebsiteField(data: CmsWebsiteField) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-website-field', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用参数 - */ -export async function updateCmsWebsiteField(data: CmsWebsiteField) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-website-field', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用参数 - */ -export async function removeCmsWebsiteField(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website-field/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用参数 - */ -export async function removeBatchCmsWebsiteField(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website-field/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用参数 - */ -export async function getCmsWebsiteField(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website-field/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据code查询应用参数 - */ -export async function getCmsWebsiteFieldByCode(code: string) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website-field/getByCode/' + code - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 恢复项目参数 - */ -export async function undeleteWebsiteField(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/website-field/undelete/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 参数批量导入 - */ -export async function importWebsiteField(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - MODULES_API_URL + '/cms/cms-website-field/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询项目参数列表 - */ -export async function configWebsiteField(params?: CmsWebsiteFieldParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website-field/config', - { - params, - headers: { - TenantId: TEMPLATE_ID - } - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsWebsiteField/model/index.ts b/dict/admin/src/api/cms/cmsWebsiteField/model/index.ts deleted file mode 100644 index 17bda1d..0000000 --- a/dict/admin/src/api/cms/cmsWebsiteField/model/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用参数 - */ -export interface CmsWebsiteField { - // 自增ID - id?: number; - // 类型,0文本 1图片 2其他 - type?: number; - // 名称 - name?: string; - // 默认值 - defaultValue?: string; - // 可修改的值 [on|off] - modifyRange?: string; - // 备注 - comments?: string; - // css样式 - style?: string; - // 名称 - value?: any; - // 语言 - lang?: string; - // 是否加密 - encrypted?: boolean; - // 模板 - template?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 应用参数搜索条件 - */ -export interface CmsWebsiteFieldParam extends PageParam { - id?: number; - keywords?: string; -} - -export interface Config { - siteName?: string; - siteLogo?: string; - domain?: string; - icpNo?: string; - copyright?: string; - loginBgImg?: string; - address?: string; - tel?: string; - kefu2?: string; - kefu1?: string; - email?: string; - loginTitle?: string; - sysLogo?: string; - // 添加API地址配置项 - ApiUrl?: string; - // 添加主题配置项 - theme?: string; -} \ No newline at end of file diff --git a/dict/admin/src/api/cms/cmsWebsiteSetting/index.ts b/dict/admin/src/api/cms/cmsWebsiteSetting/index.ts deleted file mode 100644 index e1392a3..0000000 --- a/dict/admin/src/api/cms/cmsWebsiteSetting/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CmsWebsiteSetting, CmsWebsiteSettingParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询网站设置 - */ -export async function pageCmsWebsiteSetting(params: CmsWebsiteSettingParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-website-setting/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询网站设置列表 - */ -export async function listCmsWebsiteSetting(params?: CmsWebsiteSettingParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website-setting', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加网站设置 - */ -export async function addCmsWebsiteSetting(data: CmsWebsiteSetting) { - const res = await request.post>( - MODULES_API_URL + '/cms/cms-website-setting', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改网站设置 - */ -export async function updateCmsWebsiteSetting(data: CmsWebsiteSetting) { - const res = await request.put>( - MODULES_API_URL + '/cms/cms-website-setting', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除网站设置 - */ -export async function removeCmsWebsiteSetting(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website-setting/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除网站设置 - */ -export async function removeBatchCmsWebsiteSetting(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/cms/cms-website-setting/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询网站设置 - */ -export async function getCmsWebsiteSetting(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-website-setting/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/cmsWebsiteSetting/model/index.ts b/dict/admin/src/api/cms/cmsWebsiteSetting/model/index.ts deleted file mode 100644 index 71241f8..0000000 --- a/dict/admin/src/api/cms/cmsWebsiteSetting/model/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 网站设置 - */ -export interface CmsWebsiteSetting { - // 自增ID - id?: number; - // 关联网站ID - websiteId?: number; - // 是否官方插件 - official?: string; - // 是否展示在插件市场 - market?: string; - // 是否允许被搜索 - search?: string; - // 是否共享 - share?: string; - // 文章是否需要审核 - articleReview?: boolean; - // 是否插件 0应用1 插件 - plugin?: string; - // 编辑器类型 1 md-editor-v3, 2 tinymce-editor - editor?: number; - // 显示站内搜索 - searchBtn?: string; - // 显示登录注册功能 - loginBtn?: string; - // 显示悬浮客服工具 - floatTool?: boolean; - // 显示版权信息 - showCopyright?: boolean; - // 显示版权链接 - copyrightLink?: string; - // 导航栏最多显示数量 - maxMenuNum?: string; - // 排序号 - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 网站设置搜索条件 - */ -export interface CmsWebsiteSettingParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/cms/link/index.ts b/dict/admin/src/api/cms/link/index.ts deleted file mode 100644 index e18a108..0000000 --- a/dict/admin/src/api/cms/link/index.ts +++ /dev/null @@ -1,113 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Link, LinkParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询链接 - */ -export async function pageLink(params: LinkParam) { - const res = await request.get>>( - MODULES_API_URL + '/oa/link/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询链接列表 - */ -export async function listLink(params?: LinkParam) { - const res = await request.get>( - MODULES_API_URL + '/oa/link', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加链接 - */ -export async function addLink(data: Link) { - const res = await request.post>( - MODULES_API_URL + '/oa/link', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改链接 - */ -export async function updateLink(data: Link) { - const res = await request.put>( - MODULES_API_URL + '/oa/link', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除链接 - */ -export async function removeLink(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/oa/link/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除链接 - */ -export async function removeBatchLink(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/oa/link/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - MODULES_API_URL + '/oa/link/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/cms/link/model/index.ts b/dict/admin/src/api/cms/link/model/index.ts deleted file mode 100644 index 40f5988..0000000 --- a/dict/admin/src/api/cms/link/model/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 链接 - */ -export interface Link { - id?: number; - name?: string; - icon?: string; - url?: string; - linkType?: string; - appId?: number; - categoryId?: number; - userId?: number; - comments?: string; - recommend?: number; - sortNumber?: number; - deleted?: number; - status?: number; - createTime?: number; -} - -/** - * 链接搜索条件 - */ -export interface LinkParam extends PageParam { - id?: number; - linkType?: string; - categoryId?: number; - name?: string; -} diff --git a/dict/admin/src/api/dormitory/dormitoryApply/index.ts b/dict/admin/src/api/dormitory/dormitoryApply/index.ts deleted file mode 100644 index f1cb54c..0000000 --- a/dict/admin/src/api/dormitory/dormitoryApply/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DormitoryApply, DormitoryApplyParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询审批管理 - */ -export async function pageDormitoryApply(params: DormitoryApplyParam) { - const res = await request.get>>( - MODULES_API_URL + '/dormitory/dormitory-apply/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询审批管理列表 - */ -export async function listDormitoryApply(params?: DormitoryApplyParam) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-apply', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加审批管理 - */ -export async function addDormitoryApply(data: DormitoryApply) { - const res = await request.post>( - MODULES_API_URL + '/dormitory/dormitory-apply', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改审批管理 - */ -export async function updateDormitoryApply(data: DormitoryApply) { - const res = await request.put>( - MODULES_API_URL + '/dormitory/dormitory-apply', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除审批管理 - */ -export async function removeDormitoryApply(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-apply/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除审批管理 - */ -export async function removeBatchDormitoryApply(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-apply/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询审批管理 - */ -export async function getDormitoryApply(id: number) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-apply/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/dormitory/dormitoryBed/index.ts b/dict/admin/src/api/dormitory/dormitoryBed/index.ts deleted file mode 100644 index 02ad8ac..0000000 --- a/dict/admin/src/api/dormitory/dormitoryBed/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DormitoryBed, DormitoryBedParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询宿舍床铺 - */ -export async function pageDormitoryBed(params: DormitoryBedParam) { - const res = await request.get>>( - MODULES_API_URL + '/dormitory/dormitory-bed/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询宿舍床铺列表 - */ -export async function listDormitoryBed(params?: DormitoryBedParam) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-bed', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加宿舍床铺 - */ -export async function addDormitoryBed(data: DormitoryBed) { - const res = await request.post>( - MODULES_API_URL + '/dormitory/dormitory-bed', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改宿舍床铺 - */ -export async function updateDormitoryBed(data: DormitoryBed) { - const res = await request.put>( - MODULES_API_URL + '/dormitory/dormitory-bed', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除宿舍床铺 - */ -export async function removeDormitoryBed(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-bed/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除宿舍床铺 - */ -export async function removeBatchDormitoryBed(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-bed/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询宿舍床铺 - */ -export async function getDormitoryBed(id: number) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-bed/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/dormitory/dormitoryBed/model/index.ts b/dict/admin/src/api/dormitory/dormitoryBed/model/index.ts deleted file mode 100644 index 0024b8c..0000000 --- a/dict/admin/src/api/dormitory/dormitoryBed/model/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 宿舍床铺 - */ -export interface DormitoryBed { - // ID - id?: number; - // 宿舍名称 - name?: string; - // 编号 - code?: string; - // 楼栋ID - buildingId?: number; - // 楼栋名称 - buildingName?: string; - // 楼层ID - floorId?: number; - // 楼层名称 - floorName?: string; - // 房间ID - recordId?: number; - // 房间名称 - recordName?: string; - // 上下铺 1下铺 2上铺 0无 - bunk?: number; - // 充电口 - chargingPort?: string; - // 用户ID - userId?: number; - // 真实姓名 - realName?: string; - // 手机号码 - phone?: string; - // 头像 - avatar?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1报修 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 宿舍床铺搜索条件 - */ -export interface DormitoryBedParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/dormitory/dormitoryBuilding/index.ts b/dict/admin/src/api/dormitory/dormitoryBuilding/index.ts deleted file mode 100644 index bc51fad..0000000 --- a/dict/admin/src/api/dormitory/dormitoryBuilding/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DormitoryBuilding, DormitoryBuildingParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询宿舍楼栋 - */ -export async function pageDormitoryBuilding(params: DormitoryBuildingParam) { - const res = await request.get>>( - MODULES_API_URL + '/dormitory/dormitory-building/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询宿舍楼栋列表 - */ -export async function listDormitoryBuilding(params?: DormitoryBuildingParam) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-building', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加宿舍楼栋 - */ -export async function addDormitoryBuilding(data: DormitoryBuilding) { - const res = await request.post>( - MODULES_API_URL + '/dormitory/dormitory-building', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改宿舍楼栋 - */ -export async function updateDormitoryBuilding(data: DormitoryBuilding) { - const res = await request.put>( - MODULES_API_URL + '/dormitory/dormitory-building', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除宿舍楼栋 - */ -export async function removeDormitoryBuilding(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-building/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除宿舍楼栋 - */ -export async function removeBatchDormitoryBuilding(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-building/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询宿舍楼栋 - */ -export async function getDormitoryBuilding(id: number) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-building/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/dormitory/dormitoryBuilding/model/index.ts b/dict/admin/src/api/dormitory/dormitoryBuilding/model/index.ts deleted file mode 100644 index 2ea7d60..0000000 --- a/dict/admin/src/api/dormitory/dormitoryBuilding/model/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 宿舍楼栋 - */ -export interface DormitoryBuilding { - // ID - id?: number; - // 楼栋名称 - name?: string; - // 楼栋编号 - code?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 宿舍楼栋搜索条件 - */ -export interface DormitoryBuildingParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/dormitory/dormitoryFloor/index.ts b/dict/admin/src/api/dormitory/dormitoryFloor/index.ts deleted file mode 100644 index 7750079..0000000 --- a/dict/admin/src/api/dormitory/dormitoryFloor/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DormitoryFloor, DormitoryFloorParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询宿舍楼层 - */ -export async function pageDormitoryFloor(params: DormitoryFloorParam) { - const res = await request.get>>( - MODULES_API_URL + '/dormitory/dormitory-floor/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询宿舍楼层列表 - */ -export async function listDormitoryFloor(params?: DormitoryFloorParam) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-floor', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加宿舍楼层 - */ -export async function addDormitoryFloor(data: DormitoryFloor) { - const res = await request.post>( - MODULES_API_URL + '/dormitory/dormitory-floor', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改宿舍楼层 - */ -export async function updateDormitoryFloor(data: DormitoryFloor) { - const res = await request.put>( - MODULES_API_URL + '/dormitory/dormitory-floor', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除宿舍楼层 - */ -export async function removeDormitoryFloor(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-floor/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除宿舍楼层 - */ -export async function removeBatchDormitoryFloor(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-floor/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询宿舍楼层 - */ -export async function getDormitoryFloor(id: number) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-floor/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/dormitory/dormitoryFloor/model/index.ts b/dict/admin/src/api/dormitory/dormitoryFloor/model/index.ts deleted file mode 100644 index 33fa316..0000000 --- a/dict/admin/src/api/dormitory/dormitoryFloor/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 宿舍楼层 - */ -export interface DormitoryFloor { - // ID - id?: number; - // 楼层 - name?: string; - // 编号 - code?: string; - // 楼栋ID - buildingId?: number; - // 楼栋名称 - buildingName?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 宿舍楼层搜索条件 - */ -export interface DormitoryFloorParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/dormitory/dormitoryRecord/index.ts b/dict/admin/src/api/dormitory/dormitoryRecord/index.ts deleted file mode 100644 index e3a9058..0000000 --- a/dict/admin/src/api/dormitory/dormitoryRecord/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DormitoryRecord, DormitoryRecordParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询宿舍记录 - */ -export async function pageDormitoryRecord(params: DormitoryRecordParam) { - const res = await request.get>>( - MODULES_API_URL + '/dormitory/dormitory-record/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询宿舍记录列表 - */ -export async function listDormitoryRecord(params?: DormitoryRecordParam) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-record', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加宿舍记录 - */ -export async function addDormitoryRecord(data: DormitoryRecord) { - const res = await request.post>( - MODULES_API_URL + '/dormitory/dormitory-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改宿舍记录 - */ -export async function updateDormitoryRecord(data: DormitoryRecord) { - const res = await request.put>( - MODULES_API_URL + '/dormitory/dormitory-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除宿舍记录 - */ -export async function removeDormitoryRecord(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-record/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除宿舍记录 - */ -export async function removeBatchDormitoryRecord(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/dormitory/dormitory-record/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询宿舍记录 - */ -export async function getDormitoryRecord(id: number) { - const res = await request.get>( - MODULES_API_URL + '/dormitory/dormitory-record/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/dormitory/dormitoryRecord/model/index.ts b/dict/admin/src/api/dormitory/dormitoryRecord/model/index.ts deleted file mode 100644 index 828718d..0000000 --- a/dict/admin/src/api/dormitory/dormitoryRecord/model/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 宿舍记录 - */ -export interface DormitoryRecord { - // ID - id?: number; - // 宿舍名称 - name?: string; - // 编号 - code?: string; - // 楼栋ID - buildingId?: number; - // 楼栋名称 - buildingName?: string; - // 楼层ID - floorId?: number; - // 楼层名称 - floorName?: string; - // 床铺数 - beds?: number; - // 独立卫生间 - toilet?: boolean; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 宿舍记录搜索条件 - */ -export interface DormitoryRecordParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmBxLog/index.ts b/dict/admin/src/api/hjm/hjmBxLog/index.ts deleted file mode 100644 index 1cefdd2..0000000 --- a/dict/admin/src/api/hjm/hjmBxLog/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmBxLog, HjmBxLogParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询黄家明_报险记录 - */ -export async function pageHjmBxLog(params: HjmBxLogParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-bx-log/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询黄家明_报险记录列表 - */ -export async function listHjmBxLog(params?: HjmBxLogParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-bx-log', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加黄家明_报险记录 - */ -export async function addHjmBxLog(data: HjmBxLog) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-bx-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改黄家明_报险记录 - */ -export async function updateHjmBxLog(data: HjmBxLog) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-bx-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除黄家明_报险记录 - */ -export async function removeHjmBxLog(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-bx-log/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除黄家明_报险记录 - */ -export async function removeBatchHjmBxLog(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-bx-log/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询黄家明_报险记录 - */ -export async function getHjmBxLog(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-bx-log/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmBxLog/model/index.ts b/dict/admin/src/api/hjm/hjmBxLog/model/index.ts deleted file mode 100644 index b9214fe..0000000 --- a/dict/admin/src/api/hjm/hjmBxLog/model/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 黄家明_报险记录 - */ -export interface HjmBxLog { - // 自增ID - id?: number; - // 用户ID - userId?: number; - // 车辆ID - carId?: number; - // 车牌号 - carNo?: string; - // 操作员 - realName?: string; - // 事故类型 - accidentType?: string; - // 部门 - parentOrganization?: string; - // 保险图片 - image?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 黄家明_报险记录搜索条件 - */ -export interface HjmBxLogParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmCar/index.ts b/dict/admin/src/api/hjm/hjmCar/index.ts deleted file mode 100644 index c9db868..0000000 --- a/dict/admin/src/api/hjm/hjmCar/index.ts +++ /dev/null @@ -1,135 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmCar, HjmCarParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询车辆管理 - */ -export async function pageHjmCar(params: HjmCarParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-car/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询车辆管理列表 - */ -export async function listHjmCar(params?: HjmCarParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-car', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加车辆管理 - */ -export async function addHjmCar(data: HjmCar) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-car', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改车辆管理 - */ -export async function updateHjmCar(data: HjmCar) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-car', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除车辆管理 - */ -export async function removeHjmCar(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-car/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除车辆管理 - */ -export async function removeBatchHjmCar(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-car/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询车辆管理 - */ -export async function getHjmCar(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-car/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 车辆批量导入 - */ -export async function importHjmCar(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-car/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据code查询黄家明_车辆管理 - */ -export async function getHjmCarByCode(code: string) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-car/getByCode/' + code - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmCar/model/index.ts b/dict/admin/src/api/hjm/hjmCar/model/index.ts deleted file mode 100644 index 4cd7534..0000000 --- a/dict/admin/src/api/hjm/hjmCar/model/index.ts +++ /dev/null @@ -1,96 +0,0 @@ -import type { PageParam } from '@/api'; -import {HjmFence} from "@/api/hjm/hjmFence/model"; - -/** - * 车辆管理 - */ -export interface HjmCar { - // 自增ID - id?: number; - // 车辆名称 - name?: string; - // 车辆图片 - image?: string; - // 类型 0汽车 1其他车 - type?: number; - // 快递公司 - kuaidi?: string; - // 管理负责人 - kuaidiAdmin?: string; - // 车辆编号 - code?: string; - // 车架号 - vinCode?: string; - // 保单图片 - bdImg?: string; - // 绑定操作员 - driverId?: number; - // 操作员名称 - driver?: string; - // 操作员名称 - driverName?: string; - // 操作员手机号 - driverPhone?: string; - // 安装人员 - installerId?: number; - // 安装时间 - installTime?: string; - // 保险状态 - insuranceStatus?: string; - // GPS设备编号 - gpsNo?: string; - // 电子围栏ID - fenceId?: number; - // 电子围栏名称 - fenceName?: string; - // 车辆是否在电子围栏内 - inFence?: boolean; - // 电子围栏名称 - fence?: HjmFence; - // 位置 - location?: string; - // 经度 - longitude?: string, - // 纬度 - latitude?: string, - // 区域 - district?: string; - // 地址 - address?: string, - // 组织ID - organizationId?: number; - // 父级组织ID - organizationParentId?: number; - // 用户ID - userId?: number; - // 认领状态 - claim?: number; - // 认领时间 - claimTime?: string; - // 绑定用户 - toUser?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 车辆管理搜索条件 - */ -export interface HjmCarParam extends PageParam { - id?: number; - status?: number; - organizationId?: number; - installerId?: number; - organizationParentId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmChoices/index.ts b/dict/admin/src/api/hjm/hjmChoices/index.ts deleted file mode 100644 index 594b0f4..0000000 --- a/dict/admin/src/api/hjm/hjmChoices/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmChoices, HjmChoicesParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询选择题选项 - */ -export async function pageHjmChoices(params: HjmChoicesParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-choices/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询选择题选项列表 - */ -export async function listHjmChoices(params?: HjmChoicesParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-choices', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加选择题选项 - */ -export async function addHjmChoices(data: HjmChoices) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-choices', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改选择题选项 - */ -export async function updateHjmChoices(data: HjmChoices) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-choices', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除选择题选项 - */ -export async function removeHjmChoices(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-choices/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除选择题选项 - */ -export async function removeBatchHjmChoices(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-choices/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询选择题选项 - */ -export async function getHjmChoices(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-choices/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmChoices/model/index.ts b/dict/admin/src/api/hjm/hjmChoices/model/index.ts deleted file mode 100644 index 4b68fca..0000000 --- a/dict/admin/src/api/hjm/hjmChoices/model/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 选择题选项 - */ -export interface HjmChoices { - // 自增ID - id?: number; - // 题目ID - questionId?: number; - // 题目 - content?: string; - // 是否正确 - isCorrect?: boolean; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 选择题内容 - choiceContent?: string; -} - -/** - * 选择题选项搜索条件 - */ -export interface HjmChoicesParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmCourses/model/index.ts b/dict/admin/src/api/hjm/hjmCourses/model/index.ts deleted file mode 100644 index b6d7d7a..0000000 --- a/dict/admin/src/api/hjm/hjmCourses/model/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 课程 - */ -export interface HjmCourses { - // 自增ID - id?: number; - // 课程名称 - name?: string; - // 类型 - type?: number; - // 课程编号 - code?: string; - // 课程封面图 - image?: string; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 课程搜索条件 - */ -export interface HjmCoursesParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmExamLog/index.ts b/dict/admin/src/api/hjm/hjmExamLog/index.ts deleted file mode 100644 index bf47e15..0000000 --- a/dict/admin/src/api/hjm/hjmExamLog/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmExamLog, HjmExamLogParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询黄家明_学习记录 - */ -export async function pageHjmExamLog(params: HjmExamLogParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-exam-log/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询黄家明_学习记录列表 - */ -export async function listHjmExamLog(params?: HjmExamLogParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-exam-log', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加黄家明_学习记录 - */ -export async function addHjmExamLog(data: HjmExamLog) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-exam-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改黄家明_学习记录 - */ -export async function updateHjmExamLog(data: HjmExamLog) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-exam-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除黄家明_学习记录 - */ -export async function removeHjmExamLog(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-exam-log/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除黄家明_学习记录 - */ -export async function removeBatchHjmExamLog(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-exam-log/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询黄家明_学习记录 - */ -export async function getHjmExamLog(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-exam-log/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmExamLog/model/index.ts b/dict/admin/src/api/hjm/hjmExamLog/model/index.ts deleted file mode 100644 index c7a8c10..0000000 --- a/dict/admin/src/api/hjm/hjmExamLog/model/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 黄家明_学习记录 - */ -export interface HjmExamLog { - // 自增ID - id?: number; - // 用户ID - userId?: number; - // 得分 - total?: string; - // 用时 - useTime?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 黄家明_学习记录搜索条件 - */ -export interface HjmExamLogParam extends PageParam { - id?: number; - status?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmFence/index.ts b/dict/admin/src/api/hjm/hjmFence/index.ts deleted file mode 100644 index 1efaf87..0000000 --- a/dict/admin/src/api/hjm/hjmFence/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmFence, HjmFenceParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询电子围栏 - */ -export async function pageHjmFence(params: HjmFenceParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-fence/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询电子围栏列表 - */ -export async function listHjmFence(params?: HjmFenceParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-fence', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加电子围栏 - */ -export async function addHjmFence(data: HjmFence) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-fence', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改电子围栏 - */ -export async function updateHjmFence(data: HjmFence) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-fence', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除电子围栏 - */ -export async function removeHjmFence(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-fence/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除电子围栏 - */ -export async function removeBatchHjmFence(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-fence/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询电子围栏 - */ -export async function getHjmFence(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-fence/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmFence/model/index.ts b/dict/admin/src/api/hjm/hjmFence/model/index.ts deleted file mode 100644 index 1143faa..0000000 --- a/dict/admin/src/api/hjm/hjmFence/model/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 电子围栏 - */ -export interface HjmFence { - // 自增ID - id?: number; - // 围栏名称 - name?: string; - // 类型 0圆形 1方形 - type?: number; - // 位置 - location?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 区域 - district?: string; - // 轮廓 - points?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 电子围栏搜索条件 - */ -export interface HjmFenceParam extends PageParam { - id?: number; - type?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmGpsLog/index.ts b/dict/admin/src/api/hjm/hjmGpsLog/index.ts deleted file mode 100644 index 3e4dd25..0000000 --- a/dict/admin/src/api/hjm/hjmGpsLog/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmGpsLog, HjmGpsLogParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询黄家明_gps轨迹 - */ -export async function pageHjmGpsLog(params: HjmGpsLogParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-gps-log/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询黄家明_gps轨迹列表 - */ -export async function listHjmGpsLog(params?: HjmGpsLogParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-gps-log', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加黄家明_gps轨迹 - */ -export async function addHjmGpsLog(data: HjmGpsLog) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-gps-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改黄家明_gps轨迹 - */ -export async function updateHjmGpsLog(data: HjmGpsLog) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-gps-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除黄家明_gps轨迹 - */ -export async function removeHjmGpsLog(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-gps-log/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除黄家明_gps轨迹 - */ -export async function removeBatchHjmGpsLog(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-gps-log/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询黄家明_gps轨迹 - */ -export async function getHjmGpsLog(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-gps-log/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmGpsLog/model/index.ts b/dict/admin/src/api/hjm/hjmGpsLog/model/index.ts deleted file mode 100644 index a22d413..0000000 --- a/dict/admin/src/api/hjm/hjmGpsLog/model/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 黄家明_gps轨迹 - */ -export interface HjmGpsLog { - // 自增ID - id?: number; - // 车辆ID - carId?: number; - // gps编号 - gpsNo?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 黄家明_gps轨迹搜索条件 - */ -export interface HjmGpsLogParam extends PageParam { - id?: number; - gpsNo?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmQuestions/model/index.ts b/dict/admin/src/api/hjm/hjmQuestions/model/index.ts deleted file mode 100644 index 349d81b..0000000 --- a/dict/admin/src/api/hjm/hjmQuestions/model/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { PageParam } from '@/api'; -import {HjmChoices} from "@/api/hjm/hjmChoices/model"; - -/** - * 题目 - */ -export interface HjmQuestions { - // 自增ID - id?: number; - // 课程ID - courseId?: number; - // 课程名称 - courseName?: string; - // 类型 0choice 1fill 2essay - type?: number; - // 题目 - question?: string; - // 正确答案 - correctAnswer?: string; - // 难度,'easy', 'medium', 'hard' - difficulty?: number; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 选项 - choicesA?: string, - choicesB?: string, - choicesC?: string, - choicesD?: string, - choices?: number; - choicesList?: HjmChoices[]; -} - -/** - * 题目搜索条件 - */ -export interface HjmQuestionsParam extends PageParam { - id?: number; - courseId?: number; - type?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/hjm/hjmViolation/index.ts b/dict/admin/src/api/hjm/hjmViolation/index.ts deleted file mode 100644 index 6b48a73..0000000 --- a/dict/admin/src/api/hjm/hjmViolation/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { HjmViolation, HjmViolationParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询黄家明_违章记录 - */ -export async function pageHjmViolation(params: HjmViolationParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-violation/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询黄家明_违章记录列表 - */ -export async function listHjmViolation(params?: HjmViolationParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-violation', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加黄家明_违章记录 - */ -export async function addHjmViolation(data: HjmViolation) { - const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-violation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改黄家明_违章记录 - */ -export async function updateHjmViolation(data: HjmViolation) { - const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-violation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除黄家明_违章记录 - */ -export async function removeHjmViolation(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-violation/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除黄家明_违章记录 - */ -export async function removeBatchHjmViolation(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-violation/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询黄家明_违章记录 - */ -export async function getHjmViolation(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-violation/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/hjm/hjmViolation/model/index.ts b/dict/admin/src/api/hjm/hjmViolation/model/index.ts deleted file mode 100644 index 3c1bc20..0000000 --- a/dict/admin/src/api/hjm/hjmViolation/model/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 黄家明_违章记录 - */ -export interface HjmViolation { - // 自增ID - id?: number; - // 车辆编号 - code?: string; - // 标题 - title?: string; - // 文章分类ID - categoryId?: number; - // 处罚金额 - money?: string; - // 扣分 - score?: string; - // 录入员 - adminId?: number; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0未处理, 1已处理 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 黄家明_违章记录搜索条件 - */ -export interface HjmViolationParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/index.ts b/dict/admin/src/api/index.ts deleted file mode 100644 index 00f3d67..0000000 --- a/dict/admin/src/api/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * 接口统一返回结果 - */ -export interface ApiResult { - // 状态码 - code: number; - // 状态信息 - message?: string; - // 返回数据 - data?: T; -} - -/** - * 分页查询统一结果 - */ -export interface PageResult { - // 返回数据 - list: T[]; - // 总数量 - count: number; -} - -/** - * 分页查询基本参数 - */ -export interface PageParam { - // 第几页 - page?: number; - // 每页多少条 - limit?: number; - // 排序字段 - sort?: string; - sortNum?: string; - // 排序方式, asc升序, desc降序 - order?: string; - // 租户ID - tenantId?: number; - // 企业ID - companyId?: number; - // 商户ID - merchantId?: number; - merchantName?: string; - categoryIds?: any; - // 商品分类 - categoryId?: number; - categoryName?: string; - // 搜素关键词 - keywords?: string; - // 起始时间 - createTimeStart?: string; - // 结束时间 - createTimeEnd?: string; - timeStart?: number; - timeEnd?: number; - isExpireTime?: number; - showSoldStatus?: boolean; - dateTime?: string; - sceneType?: string; - userId?: number; - lang?: string; -} diff --git a/dict/admin/src/api/layout/index.ts b/dict/admin/src/api/layout/index.ts deleted file mode 100644 index 4893c09..0000000 --- a/dict/admin/src/api/layout/index.ts +++ /dev/null @@ -1,153 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { User } from '@/api/system/user/model'; -import type { UpdatePasswordParam, NoticeResult } from './model'; -import {SERVER_API_URL} from '@/config/setting'; -import { Company } from '@/api/system/company/model'; -import { CmsWebsite } from '@/api/cms/cmsWebsite/model'; -import {Menu} from "@/api/system/menu/model"; - -/** - * 获取当前登录的用户信息、菜单、权限、角色 - */ -export async function getTenantInfo(): Promise { - const res = await request.get>( - SERVER_API_URL + '/auth/tenant' - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取网站信息 https://cms-api.websoft.top/api - */ -export async function getSiteInfo() { - const res = await request.get>( - '/shop/getShopInfo', - { - params: {} - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取当前登录的用户信息、菜单、权限、角色 - */ -export async function getUserInfo(): Promise { - const res = await request.get>(SERVER_API_URL + '/auth/user'); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改当前登录用户信息 - */ -export async function updateLoginUser(data: User) { - const res = await request.put>( - SERVER_API_URL + '/auth/user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取服务器时间(实时) - * @return - */ -export async function getServerTime() { - const res = await request.get>( - '/cms/website/getServerTime' - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取未来7天的日期 - * @return - */ -export async function getNext7day() { - const res = await request.get>( - '/cms/website/getNext7day' - ); - console.log('res.data.code: ', res.data.code); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 向子模块传递token - * @param url - */ -export async function transferToken(url: string): Promise { - const res = await request.get>(url); - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改当前登录的用户密码 - */ -export async function updatePassword( - data: UpdatePasswordParam -): Promise { - const res = await request.put>( - SERVER_API_URL + '/auth/password', - data - ); - if (res.data.code === 0) { - return res.data.message ?? '修改成功'; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 创建完整网站并初始化 - */ -export async function createCmsWebSite(data: CmsWebsite){ - const res = await request.post>( - SERVER_API_URL + '/superAdminRegister',data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 租户初始化 - */ -export async function initialization(roleId?: number) { - const res = await request.get>( - SERVER_API_URL + '/system/tenant/role-menu/' + roleId - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询未读通知 - */ -export async function getUnreadNotice(): Promise { - return { - notice: [], - letter: [], - todo: [] - }; -} diff --git a/dict/admin/src/api/layout/model/index.ts b/dict/admin/src/api/layout/model/index.ts deleted file mode 100644 index 317b25d..0000000 --- a/dict/admin/src/api/layout/model/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -/** - * 首页布局样式 - */ -export interface Layout { - // 内容区域的宽度 - width?: string; - // 文字颜色 - color?: string; - // 高亮颜色 - hover?: string; - // 背景颜色 - backgroundColor?: string; - headerStyle?: any; - siteNameStyle?: any; -} - -/** - * 修改密码参数 - */ -export interface UpdatePasswordParam { - // 新密码 - password: string; - // 原始密码 - oldPassword: string; -} - -/** - * 通知数据格式 - */ -export interface NoticeModel { - // 图标颜色 - color?: string; - // 图标 - icon?: string; - // 标题 - title?: string; - // 时间 - time?: string; -} - -/** - * 私信数据格式 - */ -export interface LetterModel { - // 头像 - avatar?: string; - // 标题 - title?: string; - // 内容 - content?: string; - // 时间 - time?: string; -} - -/** - * 代办数据格式 - */ -export interface TodoModel { - // 状态 - status?: number; - // 标题 - title?: string; - // 描述 - description?: string; -} - -/** - * 查询未读通知返回结果 - */ -export interface NoticeResult { - notice: NoticeModel[]; - letter: LetterModel[]; - todo: TodoModel[]; -} diff --git a/dict/admin/src/api/miniprogram/index.ts b/dict/admin/src/api/miniprogram/index.ts deleted file mode 100644 index 8cfbbc9..0000000 --- a/dict/admin/src/api/miniprogram/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {MODULES_API_URL} from '@/config/setting'; - -/** - * 小程序码参数 - */ -export interface MiniProgramCodeParam { - page?: string; - scene: string; - width?: number; - checkPath?: boolean; - envVersion?: 'release' | 'trial' | 'develop'; -} - -/** - * 生成小程序码 - */ -export async function generateMiniProgramCode(data: MiniProgramCodeParam) { - try { - const url = '/wx-login/getOrderQRCodeUnlimited/' + data.scene; - const fullUrl = MODULES_API_URL + `${url}`; - - console.log('生成小程序码URL:', fullUrl); - console.log('小程序码参数:', data); - console.log('scene 参数:', data.scene); - - // 直接返回URL,让浏览器处理图片加载 - // scene 参数中包含了租户ID信息 - return fullUrl; - } catch (error: any) { - console.error('生成小程序码失败:', error); - throw new Error(error.message || '生成小程序码失败'); - } -} - -/** - * 生成邀请小程序码 - */ -export async function generateInviteCode(inviterId: number) { - const scene = `uid_${inviterId}`; - - console.log('生成邀请小程序码 scene:', scene); - - return generateMiniProgramCode({ - page: 'pages/index/index', - scene: scene, - width: 180, - checkPath: true, - envVersion: 'trial' - }); -} diff --git a/dict/admin/src/api/passport/login/index.ts b/dict/admin/src/api/passport/login/index.ts deleted file mode 100644 index 6e4a498..0000000 --- a/dict/admin/src/api/passport/login/index.ts +++ /dev/null @@ -1,117 +0,0 @@ -import request from '@/utils/request'; -import { setToken } from '@/utils/token-util'; -import type { ApiResult } from '@/api'; -import type { - LoginParam, - LoginResult, - CaptchaResult, - SmsCaptchaResult -} from './model'; -import { User } from '@/api/system/user/model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 登录 - */ -export async function login(data: LoginParam) { - const res = await request.post>( - SERVER_API_URL + '/login', - data - ); - if (res.data.code === 0) { - setToken(res.data.data?.access_token, data.remember); - if (res.data.data?.user) { - const user = res.data.data?.user; - localStorage.setItem('TenantId', String(user.tenantId)); - localStorage.setItem('UserId', String(user.userId)); - } - - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取验证码 - */ -export async function getCaptcha() { - const res = await request.get>( - SERVER_API_URL + '/captcha' - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function loginBySms(data: LoginParam) { - const res = await request.post>( - SERVER_API_URL + '/loginBySms', - data - ); - if (res.data.code === 0) { - setToken(res.data.data?.access_token, data.remember); - if (res.data.data?.user) { - const user = res.data.data?.user; - localStorage.setItem('TenantId', String(user.tenantId)); - localStorage.setItem('UserId', String(user.userId)); - } - - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 发送短信验证码 - */ -export async function sendSmsCaptcha(data: LoginParam) { - const res = await request.post>( - SERVER_API_URL + '/sendSmsCaptcha', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 登录 - */ -export async function remoteLogin(data: LoginParam) { - const res = await request.post>( - 'https://open.gxwebsoft.com/api/login', - data - ); - if (res.data.code === 0) { - setToken(res.data.data?.access_token, data.remember); - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取企业微信登录链接 - */ -export async function getWxWorkQrConnect(data) { - const res = await request.post>( - SERVER_API_URL + '/wx-work', - data - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function registerUser(data: User) { - const res = await request.post>( - SERVER_API_URL + '/register', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/passport/login/model/index.ts b/dict/admin/src/api/passport/login/model/index.ts deleted file mode 100644 index 1f1c822..0000000 --- a/dict/admin/src/api/passport/login/model/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { User } from '@/api/system/user/model'; -/** - * 登录参数 - */ -export interface LoginParam { - // 账号 - username?: string; - // 密码 - password?: string; - // 租户id - tenantId?: number; - // 是否记住密码 - remember?: boolean; - // 手机号码 - phone?: string; - // 短信验证码 - code?: string; -} - -/** - * 登录返回结果 - */ -export interface LoginResult { - // token - access_token?: string; - // 用户信息 - user?: User; -} - -/** - * 图形验证码返回结果 - */ -export interface CaptchaResult { - // 图形验证码base64数据 - base64: string; - // 验证码文本 - text: string; -} - -/** - * 短信验证码返回结果 - */ -export interface SmsCaptchaResult { - // 验证码文本 - text: string; -} diff --git a/dict/admin/src/api/passport/qrLogin/index.ts b/dict/admin/src/api/passport/qrLogin/index.ts deleted file mode 100644 index 0f662d8..0000000 --- a/dict/admin/src/api/passport/qrLogin/index.ts +++ /dev/null @@ -1,110 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 二维码生成响应数据 - */ -export interface QrCodeResponse { - token: string; // 二维码唯一标识token - qrCode: string; // 二维码内容 - expiresIn: number; // 过期时间(秒) -} - -/** - * 二维码状态响应 - */ -export interface QrCodeStatusResponse { - status: 'pending' | 'scanned' | 'confirmed' | 'expired'; - accessToken?: string; // 登录成功时返回的JWT token - userInfo?: any; // 用户信息 - expiresIn?: number; // 剩余过期时间(秒) - tenantId?: string; // 租户ID -} - -/** - * 确认登录请求参数 - */ -export interface QrLoginConfirmRequest { - token: string; // 二维码token - userId?: number; // 用户ID - platform?: string; // 登录平台 -} - -/** - * 生成登录二维码 - */ -export async function generateQrCode(): Promise { - const res = await request.post>( - SERVER_API_URL + '/qr-login/generate', - {} - ); - - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - - return Promise.reject(new Error(res.data.message || '生成二维码失败')); -} - -/** - * 检查二维码状态 - */ -export async function checkQrCodeStatus(token: string): Promise { - const res = await request.get>( - SERVER_API_URL + `/qr-login/status/${token}` - ); - - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - - return Promise.reject(new Error(res.data.message || '检查二维码状态失败')); -} - -/** - * 扫码确认登录(移动端调用) - */ -export async function confirmQrLogin(requestData: QrLoginConfirmRequest): Promise { - const res = await request.post>( - SERVER_API_URL + '/qr-login/confirm', - requestData - ); - console.log(res,'>>>89898989') - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - - return Promise.reject(new Error(res.data.message || '确认登录失败')); -} - -/** - * 扫码标记(移动端扫码时调用) - */ -export async function scanQrCode(token: string): Promise { - const res = await request.post>( - SERVER_API_URL + `/qr-login/scan/${token}` - ); - - if (res.data.code === 0) { - return res.data.data || true; - } - - return Promise.reject(new Error(res.data.message || '扫码失败')); -} - -/** - * 微信小程序扫码登录确认 - */ -export async function wechatMiniProgramConfirm(requestData: QrLoginConfirmRequest): Promise { - const res = await request.post>( - SERVER_API_URL + '/qr-login/wechat-confirm', - requestData - ); - - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - - return Promise.reject(new Error(res.data.message || '微信小程序登录确认失败')); -} diff --git a/dict/admin/src/api/sdy/sdyDealerOrder/index.ts b/dict/admin/src/api/sdy/sdyDealerOrder/index.ts deleted file mode 100644 index bd57cc4..0000000 --- a/dict/admin/src/api/sdy/sdyDealerOrder/index.ts +++ /dev/null @@ -1,135 +0,0 @@ -import request from '@/utils/request'; -import type {ApiResult} from '@/api'; -import type {ShopDealerOrder, ShopDealerOrderParam} from './model'; -import {utils, writeFile} from 'xlsx'; -import {message} from 'ant-design-vue'; -import {getTenantId} from '@/utils/domain'; -import {listShopDealerOrder} from "@/api/shop/shopDealerOrder"; -import {MODULES_API_URL} from "@/config/setting"; - -/** - * 导入分销商订单 - */ -export async function importSdyDealerOrder(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - MODULES_API_URL + '/sdy/sdy-dealer-order/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导出分销商订单 - */ -export async function exportSdyDealerOrder(params?: ShopDealerOrderParam) { - // 显示导出加载提示 - message.loading('正在准备导出数据...', 0); - - try { - // 获取数据 - const list = await listShopDealerOrder(params); - - if (!list || list.length === 0) { - message.destroy(); - message.warning('没有数据可以导出'); - return; - } - - // 构建导出数据 - const array: (string | number)[][] = [ - [ - '订单ID', - '买家用户ID', - '订单总金额', - '一级分销商ID', - '一级佣金', - '二级分销商ID', - '二级佣金', - '三级分销商ID', - '三级佣金', - '订单状态', - '结算状态', - '结算时间', - '创建时间' - ] - ]; - - list.forEach((order: ShopDealerOrder) => { - array.push([ - order.orderNo || '', - order.userId || '', - order.orderPrice || '0', - order.firstUserId || '', - order.firstMoney || '0', - order.secondUserId || '', - order.secondMoney || '0', - order.thirdUserId || '', - order.thirdMoney || '0', - order.isInvalid === 0 ? '有效' : '失效', - order.isSettled === 0 ? '未结算' : '已结算', - order.settleTime ? new Date(order.settleTime).toLocaleString() : '', - order.createTime || '' - ]); - }); - - // 创建工作簿 - const sheetName = `shop_dealer_order_${getTenantId()}`; - const workbook = { - SheetNames: [sheetName], - Sheets: {} - }; - - const sheet = utils.aoa_to_sheet(array); - workbook.Sheets[sheetName] = sheet; - - // 设置列宽 - sheet['!cols'] = [ - {wch: 15}, // 订单ID - {wch: 12}, // 买家用户ID - {wch: 12}, // 订单总金额 - {wch: 15}, // 一级分销商ID - {wch: 12}, // 一级佣金 - {wch: 15}, // 二级分销商ID - {wch: 12}, // 二级佣金 - {wch: 15}, // 三级分销商ID - {wch: 12}, // 三级佣金 - {wch: 10}, // 订单状态 - {wch: 10}, // 结算状态 - {wch: 20}, // 结算时间 - {wch: 20} // 创建时间 - ]; - - message.destroy(); - message.loading('正在生成Excel文件...', 0); - - // 延迟写入文件,确保消息提示显示 - setTimeout(() => { - writeFile(workbook, `${sheetName}.xlsx`); - message.destroy(); - message.success(`成功导出 ${list.length} 条记录`); - }, 1000); - - } catch (error: any) { - message.destroy(); - message.error(error.message || '导出失败,请重试'); - } -} - -/** - * 结算订单 - */ -export async function updateSdyDealerOrder(data: ShopDealerOrder) { - const res = await request.put>( - '/sdy/sdy-dealer-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopCommissionRole/model/index.ts b/dict/admin/src/api/shop/shopCommissionRole/model/index.ts deleted file mode 100644 index 4309104..0000000 --- a/dict/admin/src/api/shop/shopCommissionRole/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分红角色 - */ -export interface ShopCommissionRole { - // - id?: number; - // - title?: string; - // - provinceId?: number; - // - cityId?: number; - // - regionId?: number; - // 状态, 0正常, 1异常 - status?: number; - // 备注 - comments?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // - sortNumber?: number; -} - -/** - * 分红角色搜索条件 - */ -export interface ShopCommissionRoleParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopCoupon/index.ts b/dict/admin/src/api/shop/shopCoupon/index.ts deleted file mode 100644 index 0327e4f..0000000 --- a/dict/admin/src/api/shop/shopCoupon/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopCoupon, ShopCouponParam } from './model'; - -/** - * 分页查询优惠券 - */ -export async function pageShopCoupon(params: ShopCouponParam) { - const res = await request.get>>( - '/shop/shop-coupon/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询优惠券列表 - */ -export async function listShopCoupon(params?: ShopCouponParam) { - const res = await request.get>( - '/shop/shop-coupon', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加优惠券 - */ -export async function addShopCoupon(data: ShopCoupon) { - const res = await request.post>( - '/shop/shop-coupon', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改优惠券 - */ -export async function updateShopCoupon(data: ShopCoupon) { - const res = await request.put>( - '/shop/shop-coupon', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除优惠券 - */ -export async function removeShopCoupon(id?: number) { - const res = await request.delete>( - '/shop/shop-coupon/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除优惠券 - */ -export async function removeBatchShopCoupon(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-coupon/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询优惠券 - */ -export async function getShopCoupon(id: number) { - const res = await request.get>( - '/shop/shop-coupon/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopCoupon/model/index.ts b/dict/admin/src/api/shop/shopCoupon/model/index.ts deleted file mode 100644 index 218fc2e..0000000 --- a/dict/admin/src/api/shop/shopCoupon/model/index.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type { PageParam } from '@/api/index'; -import {ShopCouponApplyCate} from "@/api/shop/shopCouponApplyCate/model"; -import {ShopCouponApplyItem} from "@/api/shop/shopCouponApplyItem/model"; - -/** - * 优惠券 - */ -export interface ShopCoupon { - // id - id?: number; - // 优惠券名称 - name?: string; - // 优惠券描述 - description?: string; - // 优惠券类型(10满减券 20折扣券 30免费劵) - type?: number; - // 满减券-减免金额 - reducePrice?: string; - // 折扣券-折扣率(0-100) - discount?: number; - // 最低消费金额 - minPrice?: string; - // 到期类型(10领取后生效 20固定时间) - expireType?: number; - // 领取后生效-有效天数 - expireDay?: number; - // 有效期开始时间 - startTime?: string | Date; - // 有效期结束时间 - endTime?: string | Date; - // 适用范围(10全部商品 20指定商品 30指定分类) - applyRange?: number; - // 适用范围配置(json格式) - applyRangeConfig?: string; - // 是否过期(0未过期 1已过期) - isExpire?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1禁用 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 创建用户ID - userId?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string | Date; - // 修改时间 - updateTime?: string | Date; - // 发放总数量(-1表示无限制) - totalCount?: number; - // 已发放数量 - issuedCount?: number; - // 每人限领数量(-1表示无限制) - limitPerUser?: number; - // 是否启用(0禁用 1启用) - enabled?: string; - couponApplyCateList?: ShopCouponApplyCate[]; - couponApplyItemList?: ShopCouponApplyItem[]; -} - -/** - * 优惠券搜索条件 - */ -export interface ShopCouponParam extends PageParam { - id?: number; - name?: string; - type?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopCouponApplyCate/model/index.ts b/dict/admin/src/api/shop/shopCouponApplyCate/model/index.ts deleted file mode 100644 index 2adc829..0000000 --- a/dict/admin/src/api/shop/shopCouponApplyCate/model/index.ts +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * 优惠券 - */ -export interface ShopCouponApplyCate { - id?: number; - couponId?: number; - cateId?: number; - cateLevel?: number; - -} diff --git a/dict/admin/src/api/shop/shopCouponApplyItem/model/index.ts b/dict/admin/src/api/shop/shopCouponApplyItem/model/index.ts deleted file mode 100644 index a9ed201..0000000 --- a/dict/admin/src/api/shop/shopCouponApplyItem/model/index.ts +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * 优惠券 - */ -export interface ShopCouponApplyItem { - id?: number; - couponId?: number; - type?: number; - pk?: number; - -} diff --git a/dict/admin/src/api/shop/shopDealerApply/index.ts b/dict/admin/src/api/shop/shopDealerApply/index.ts deleted file mode 100644 index 1cf1f57..0000000 --- a/dict/admin/src/api/shop/shopDealerApply/index.ts +++ /dev/null @@ -1,158 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerApply, ShopDealerApplyParam } from './model'; - -/** - * 分页查询分销商申请记录表 - */ -export async function pageShopDealerApply(params: ShopDealerApplyParam) { - const res = await request.get>>( - '/shop/shop-dealer-apply/page', - {params} - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商申请记录表列表 - */ -export async function listShopDealerApply(params?: ShopDealerApplyParam) { - const res = await request.get>( - '/shop/shop-dealer-apply', - {params} - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商申请记录表 - */ -export async function addShopDealerApply(data: ShopDealerApply) { - const res = await request.post>( - '/shop/shop-dealer-apply', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商申请记录表 - */ -export async function updateShopDealerApply(data: ShopDealerApply) { - const res = await request.put>( - '/shop/shop-dealer-apply', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商申请记录表 - */ -export async function removeShopDealerApply(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-apply/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商申请记录表 - */ -export async function removeBatchShopDealerApply(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-apply/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商申请记录表 - */ -export async function getShopDealerApply(id: number) { - const res = await request.get>( - '/shop/shop-dealer-apply/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 审核通过分销商申请 - */ -export async function approveShopDealerApply(id: number) { - const res = await request.put>( - `/shop/shop-dealer-apply/${id}/approve` - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 驳回分销商申请 - */ -export async function rejectShopDealerApply(id: number, data: { rejectReason: string }) { - const res = await request.put>( - `/shop/shop-dealer-apply/${id}/reject`, - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量审核通过分销商申请 - */ -export async function batchApproveShopDealerApply(ids: number[]) { - const res = await request.put>( - '/shop/shop-dealer-apply/batch-approve', - { ids } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导入经销商申请 - */ -export async function importShopDealerApplies(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - '/shop/shop-dealer-apply/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerApply/model/index.ts b/dict/admin/src/api/shop/shopDealerApply/model/index.ts deleted file mode 100644 index bc35074..0000000 --- a/dict/admin/src/api/shop/shopDealerApply/model/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分销商申请记录表 - */ -export interface ShopDealerApply { - // 主键ID - applyId?: number; - // 类型 - type?: number; - // 用户ID - userId?: number; - // 昵称 - nickName?: string; - // 姓名 - realName?: string; - // 经销商名称 - dealerName?: string; - // 手机号 - mobile?: string; - // 分销比例 - rate?: number; - // 推荐人用户ID - refereeId?: number; - // 推荐人姓名 - refereeName?: string; - // 申请方式(10需后台审核 20无需审核) - applyType?: number; - // 申请时间 - applyTime?: string | number | Date; - // 审核状态 (10待审核 20审核通过 30驳回) - applyStatus?: number; - // 审核时间 - auditTime?: string | number | Date; - // 驳回原因 - rejectReason?: string; - comments?: string; - // 商城ID - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 分销商申请记录表搜索条件 - */ -export interface ShopDealerApplyParam extends PageParam { - applyId?: number; - userId?: number; - realName?: string; - dealerName?: string; - mobile?: string; - refereeId?: number; - applyType?: number; - applyStatus?: number; - startTime?: string; - endTime?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopDealerCapital/index.ts b/dict/admin/src/api/shop/shopDealerCapital/index.ts deleted file mode 100644 index 1792423..0000000 --- a/dict/admin/src/api/shop/shopDealerCapital/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerCapital, ShopDealerCapitalParam } from './model'; - -/** - * 分页查询分销商资金明细表 - */ -export async function pageShopDealerCapital(params: ShopDealerCapitalParam) { - const res = await request.get>>( - '/shop/shop-dealer-capital/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商资金明细表列表 - */ -export async function listShopDealerCapital(params?: ShopDealerCapitalParam) { - const res = await request.get>( - '/shop/shop-dealer-capital', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商资金明细表 - */ -export async function addShopDealerCapital(data: ShopDealerCapital) { - const res = await request.post>( - '/shop/shop-dealer-capital', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商资金明细表 - */ -export async function updateShopDealerCapital(data: ShopDealerCapital) { - const res = await request.put>( - '/shop/shop-dealer-capital', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商资金明细表 - */ -export async function removeShopDealerCapital(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-capital/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商资金明细表 - */ -export async function removeBatchShopDealerCapital(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-capital/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商资金明细表 - */ -export async function getShopDealerCapital(id: number) { - const res = await request.get>( - '/shop/shop-dealer-capital/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerCapital/model/index.ts b/dict/admin/src/api/shop/shopDealerCapital/model/index.ts deleted file mode 100644 index f2155b8..0000000 --- a/dict/admin/src/api/shop/shopDealerCapital/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分销商资金明细表 - */ -export interface ShopDealerCapital { - // 主键ID - id?: number; - // 分销商用户ID - userId?: number; - // 订单ID - orderId?: number; - // 资金流动类型 (10佣金收入 20提现支出 30转账支出 40转账收入) - flowType?: number; - // 金额 - money?: string; - // 描述 - comments?: string; - // 对方用户ID - toUserId?: number; - // 商城ID - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 分销商资金明细表搜索条件 - */ -export interface ShopDealerCapitalParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopDealerOrder/index.ts b/dict/admin/src/api/shop/shopDealerOrder/index.ts deleted file mode 100644 index dab3b28..0000000 --- a/dict/admin/src/api/shop/shopDealerOrder/index.ts +++ /dev/null @@ -1,221 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerOrder, ShopDealerOrderParam } from './model'; -import { utils, writeFile } from 'xlsx'; -import { message } from 'ant-design-vue'; -import { getTenantId } from '@/utils/domain'; - -/** - * 分页查询分销商订单记录表 - */ -export async function pageShopDealerOrder(params: ShopDealerOrderParam) { - const res = await request.get>>( - '/shop/shop-dealer-order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商订单记录表列表 - */ -export async function listShopDealerOrder(params?: ShopDealerOrderParam) { - const res = await request.get>( - '/shop/shop-dealer-order', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商订单记录表 - */ -export async function addShopDealerOrder(data: ShopDealerOrder) { - const res = await request.post>( - '/shop/shop-dealer-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商订单记录表 - */ -export async function updateShopDealerOrder(data: ShopDealerOrder) { - const res = await request.put>( - '/shop/shop-dealer-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商订单记录表 - */ -export async function removeShopDealerOrder(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-order/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商订单记录表 - */ -export async function removeBatchShopDealerOrder(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-order/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商订单记录表 - */ -export async function getShopDealerOrder(id: number) { - const res = await request.get>( - '/shop/shop-dealer-order/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导入分销商订单 - */ -export async function importShopDealerOrder(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - '/shop/shop-dealer-order/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导出分销商订单 - */ -export async function exportShopDealerOrder(params?: ShopDealerOrderParam) { - // 显示导出加载提示 - message.loading('正在准备导出数据...', 0); - - try { - // 获取数据 - const list = await listShopDealerOrder(params); - - if (!list || list.length === 0) { - message.destroy(); - message.warning('没有数据可以导出'); - return; - } - - // 构建导出数据 - const array: (string | number)[][] = [ - [ - '订单ID', - '买家用户ID', - '订单总金额', - '一级分销商ID', - '一级佣金', - '二级分销商ID', - '二级佣金', - '三级分销商ID', - '三级佣金', - '订单状态', - '结算状态', - '结算时间', - '创建时间' - ] - ]; - - list.forEach((order: ShopDealerOrder) => { - array.push([ - order.orderId || '', - order.userId || '', - order.orderPrice || '0', - order.firstUserId || '', - order.firstMoney || '0', - order.secondUserId || '', - order.secondMoney || '0', - order.thirdUserId || '', - order.thirdMoney || '0', - order.isInvalid === 0 ? '有效' : '失效', - order.isSettled === 0 ? '未结算' : '已结算', - order.settleTime ? new Date(order.settleTime).toLocaleString() : '', - order.createTime || '' - ]); - }); - - // 创建工作簿 - const sheetName = `shop_dealer_order_${getTenantId()}`; - const workbook = { - SheetNames: [sheetName], - Sheets: {} - }; - - const sheet = utils.aoa_to_sheet(array); - workbook.Sheets[sheetName] = sheet; - - // 设置列宽 - sheet['!cols'] = [ - { wch: 15 }, // 订单ID - { wch: 12 }, // 买家用户ID - { wch: 12 }, // 订单总金额 - { wch: 15 }, // 一级分销商ID - { wch: 12 }, // 一级佣金 - { wch: 15 }, // 二级分销商ID - { wch: 12 }, // 二级佣金 - { wch: 15 }, // 三级分销商ID - { wch: 12 }, // 三级佣金 - { wch: 10 }, // 订单状态 - { wch: 10 }, // 结算状态 - { wch: 20 }, // 结算时间 - { wch: 20 } // 创建时间 - ]; - - message.destroy(); - message.loading('正在生成Excel文件...', 0); - - // 延迟写入文件,确保消息提示显示 - setTimeout(() => { - writeFile(workbook, `${sheetName}.xlsx`); - message.destroy(); - message.success(`成功导出 ${list.length} 条记录`); - }, 1000); - - } catch (error: any) { - message.destroy(); - message.error(error.message || '导出失败,请重试'); - } -} diff --git a/dict/admin/src/api/shop/shopDealerPoster/index.ts b/dict/admin/src/api/shop/shopDealerPoster/index.ts deleted file mode 100644 index d560dcc..0000000 --- a/dict/admin/src/api/shop/shopDealerPoster/index.ts +++ /dev/null @@ -1,131 +0,0 @@ -import request from '@/utils/request'; -import type { ShopDealerPoster, ShopDealerPosterParam } from './model'; - -/** - * 分页查询分销商海报设置 - */ -export async function pageShopDealerPoster(params: ShopDealerPosterParam) { - const res = await request.get('/shop/dealer/poster/page', { params }); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商海报设置列表 - */ -export async function listShopDealerPoster(params?: ShopDealerPosterParam) { - const res = await request.get('/shop/dealer/poster/list', { params }); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商海报设置 - */ -export async function getShopDealerPoster(id: number) { - const res = await request.get('/shop/dealer/poster/' + id); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取当前海报配置 - */ -export async function getCurrentPosterConfig() { - const res = await request.get('/shop/dealer/poster/config'); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商海报设置 - */ -export async function addShopDealerPoster(data: ShopDealerPoster) { - const res = await request.post('/shop/dealer/poster', data); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商海报设置 - */ -export async function updateShopDealerPoster(data: ShopDealerPoster) { - const res = await request.put('/shop/dealer/poster', data); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 保存海报配置 - */ -export async function savePosterConfig(data: any) { - const res = await request.post('/shop/dealer/poster/config', data); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商海报设置 - */ -export async function removeShopDealerPoster(id: number) { - const res = await request.delete('/shop/dealer/poster/' + id); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商海报设置 - */ -export async function removeBatchShopDealerPoster(ids: (number | undefined)[]) { - const res = await request.delete('/shop/dealer/poster/batch', { data: ids }); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 生成海报 - */ -export async function generatePoster(userId: number, config?: any) { - const res = await request.post('/shop/dealer/poster/generate', { userId, config }); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传海报背景图片 - */ -export async function uploadPosterBackground(file: File) { - const formData = new FormData(); - formData.append('file', file); - - const res = await request.post('/shop/dealer/poster/upload/background', formData, { - headers: { - 'Content-Type': 'multipart/form-data' - } - }); - - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerPoster/model/index.ts b/dict/admin/src/api/shop/shopDealerPoster/model/index.ts deleted file mode 100644 index 06a85f9..0000000 --- a/dict/admin/src/api/shop/shopDealerPoster/model/index.ts +++ /dev/null @@ -1,93 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分销商海报设置 - */ -export interface ShopDealerPoster { - // 主键ID - id?: number; - // 海报名称 - name?: string; - // 背景图片URL - backgroundImage?: string; - // 海报配置(JSON格式) - config?: string; - // 是否启用 - enabled?: boolean; - // 是否默认 - isDefault?: boolean; - // 排序 - sort?: number; - // 商城ID - tenantId?: number; - // 创建时间 - createTime?: string | Date; - // 修改时间 - updateTime?: string | Date; -} - -/** - * 海报配置 - */ -export interface PosterConfig { - // 背景图片 - backgroundImage?: string; - // 海报尺寸 - width?: number; - height?: number; - // 是否显示头像 - showAvatar?: boolean; - // 头像URL - avatarUrl?: string; - // 头像宽度 - avatarWidth?: number; - // 头像形状 circle|square - avatarShape?: string; - // 是否显示昵称 - showNickname?: boolean; - // 昵称 - nickname?: string; - // 昵称字体大小 - nicknameFontSize?: number; - // 昵称颜色 - nicknameColor?: string; - // 是否显示二维码 - showQrcode?: boolean; - // 二维码URL - qrcodeUrl?: string; - // 二维码宽度 - qrcodeWidth?: number; - // 元素位置配置 - elements?: { - avatar?: { x: number; y: number }; - nickname?: { x: number; y: number }; - qrcode?: { x: number; y: number }; - [key: string]: { x: number; y: number } | undefined; - }; -} - -/** - * 分销商海报设置搜索条件 - */ -export interface ShopDealerPosterParam extends PageParam { - id?: number; - name?: string; - enabled?: boolean; - keywords?: string; -} - -/** - * 海报生成参数 - */ -export interface PosterGenerateParam { - // 用户ID - userId: number; - // 海报配置 - config?: PosterConfig; - // 用户信息 - userInfo?: { - nickname?: string; - avatar?: string; - qrcode?: string; - }; -} diff --git a/dict/admin/src/api/shop/shopDealerRecord/index.ts b/dict/admin/src/api/shop/shopDealerRecord/index.ts deleted file mode 100644 index 3982d39..0000000 --- a/dict/admin/src/api/shop/shopDealerRecord/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerRecord, ShopDealerRecordParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询客户跟进情况 - */ -export async function pageShopDealerRecord(params: ShopDealerRecordParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-dealer-record/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询客户跟进情况列表 - */ -export async function listShopDealerRecord(params?: ShopDealerRecordParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-dealer-record', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加客户跟进情况 - */ -export async function addShopDealerRecord(data: ShopDealerRecord) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-dealer-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改客户跟进情况 - */ -export async function updateShopDealerRecord(data: ShopDealerRecord) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-dealer-record', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除客户跟进情况 - */ -export async function removeShopDealerRecord(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-dealer-record/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除客户跟进情况 - */ -export async function removeBatchShopDealerRecord(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-dealer-record/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询客户跟进情况 - */ -export async function getShopDealerRecord(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-dealer-record/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerRecord/model/index.ts b/dict/admin/src/api/shop/shopDealerRecord/model/index.ts deleted file mode 100644 index c32e9a7..0000000 --- a/dict/admin/src/api/shop/shopDealerRecord/model/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 客户跟进情况 - */ -export interface ShopDealerRecord { - // ID - id?: number; - // 上级id, 0是顶级 - parentId?: number; - // 客户ID - dealerId?: number; - // 内容 - content?: string; - // 用户ID - userId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0待处理, 1已完成 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 客户跟进情况搜索条件 - */ -export interface ShopDealerRecordParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopDealerReferee/index.ts b/dict/admin/src/api/shop/shopDealerReferee/index.ts deleted file mode 100644 index 351ed7b..0000000 --- a/dict/admin/src/api/shop/shopDealerReferee/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerReferee, ShopDealerRefereeParam } from './model'; - -/** - * 分页查询分销商推荐关系表 - */ -export async function pageShopDealerReferee(params: ShopDealerRefereeParam) { - const res = await request.get>>( - '/shop/shop-dealer-referee/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商推荐关系表列表 - */ -export async function listShopDealerReferee(params?: ShopDealerRefereeParam) { - const res = await request.get>( - '/shop/shop-dealer-referee', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商推荐关系表 - */ -export async function addShopDealerReferee(data: ShopDealerReferee) { - const res = await request.post>( - '/shop/shop-dealer-referee', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商推荐关系表 - */ -export async function updateShopDealerReferee(data: ShopDealerReferee) { - const res = await request.put>( - '/shop/shop-dealer-referee', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商推荐关系表 - */ -export async function removeShopDealerReferee(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-referee/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商推荐关系表 - */ -export async function removeBatchShopDealerReferee(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-referee/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商推荐关系表 - */ -export async function getShopDealerReferee(id: number) { - const res = await request.get>( - '/shop/shop-dealer-referee/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerReferee/model/index.ts b/dict/admin/src/api/shop/shopDealerReferee/model/index.ts deleted file mode 100644 index 1091e32..0000000 --- a/dict/admin/src/api/shop/shopDealerReferee/model/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分销商推荐关系表 - */ -export interface ShopDealerReferee { - // 主键ID - id?: number; - // 分销商用户ID - dealerId?: number; - // 用户id(被推荐人) - userId?: number; - // 推荐关系层级(1,2,3) - level?: number; - // 商城ID - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 分销商推荐关系表搜索条件 - */ -export interface ShopDealerRefereeParam extends PageParam { - id?: number; - dealerId?: number; - userId?: number; - level?: number; - startTime?: string; - endTime?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopDealerSetting/index.ts b/dict/admin/src/api/shop/shopDealerSetting/index.ts deleted file mode 100644 index da0075b..0000000 --- a/dict/admin/src/api/shop/shopDealerSetting/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerSetting, ShopDealerSettingParam } from './model'; - -/** - * 分页查询分销商设置表 - */ -export async function pageShopDealerSetting(params: ShopDealerSettingParam) { - const res = await request.get>>( - '/shop/shop-dealer-setting/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商设置表列表 - */ -export async function listShopDealerSetting(params?: ShopDealerSettingParam) { - const res = await request.get>( - '/shop/shop-dealer-setting', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商设置表 - */ -export async function addShopDealerSetting(data: ShopDealerSetting) { - const res = await request.post>( - '/shop/shop-dealer-setting', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商设置表 - */ -export async function updateShopDealerSetting(data: ShopDealerSetting) { - const res = await request.put>( - '/shop/shop-dealer-setting', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商设置表 - */ -export async function removeShopDealerSetting(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-setting/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商设置表 - */ -export async function removeBatchShopDealerSetting(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-setting/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商设置表 - */ -export async function getShopDealerSetting(id: number) { - const res = await request.get>( - '/shop/shop-dealer-setting/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerSetting/model/index.ts b/dict/admin/src/api/shop/shopDealerSetting/model/index.ts deleted file mode 100644 index ad503ad..0000000 --- a/dict/admin/src/api/shop/shopDealerSetting/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分销商设置表 - */ -export interface ShopDealerSetting { - // 设置项标示 - key?: string; - // 设置项描述 - describe?: string; - // 设置内容(json格式) - values?: string; - // 商城ID - tenantId?: number; - // 更新时间 - updateTime?: number; -} - -/** - * 分销商设置表搜索条件 - */ -export interface ShopDealerSettingParam extends PageParam { - key?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopDealerUser/index.ts b/dict/admin/src/api/shop/shopDealerUser/index.ts deleted file mode 100644 index 384aeda..0000000 --- a/dict/admin/src/api/shop/shopDealerUser/index.ts +++ /dev/null @@ -1,140 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerUser, ShopDealerUserParam } from './model'; - -/** - * 分页查询分销商用户记录表 - */ -export async function pageShopDealerUser(params: ShopDealerUserParam) { - const res = await request.get>>( - '/shop/shop-dealer-user/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商用户记录表列表 - */ -export async function listShopDealerUser(params?: ShopDealerUserParam) { - const res = await request.get>( - '/shop/shop-dealer-user', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商用户记录表 - */ -export async function addShopDealerUser(data: ShopDealerUser) { - const res = await request.post>( - '/shop/shop-dealer-user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商用户记录表 - */ -export async function updateShopDealerUser(data: ShopDealerUser) { - const res = await request.put>( - '/shop/shop-dealer-user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商用户记录表 - */ -export async function removeShopDealerUser(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-user/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商用户记录表 - */ -export async function removeBatchShopDealerUser(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-user/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商用户记录表 - */ -export async function getShopDealerUser(id: number) { - const res = await request.get>( - '/shop/shop-dealer-user/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导入分销商用户 - */ -export async function importShopDealerUsers(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - '/shop/shop-dealer-user/import', - formData, - { - headers: { - 'Content-Type': 'multipart/form-data' - } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导出分销商用户 - */ -export async function exportShopDealerUsers(params?: ShopDealerUserParam) { - const res = await request.get( - '/shop/shop-dealer-user/export', - { - params, - responseType: 'blob' - } - ); - return res.data; -} diff --git a/dict/admin/src/api/shop/shopDealerWithdraw/index.ts b/dict/admin/src/api/shop/shopDealerWithdraw/index.ts deleted file mode 100644 index 305e1ad..0000000 --- a/dict/admin/src/api/shop/shopDealerWithdraw/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopDealerWithdraw, ShopDealerWithdrawParam } from './model'; - -/** - * 分页查询分销商提现明细表 - */ -export async function pageShopDealerWithdraw(params: ShopDealerWithdrawParam) { - const res = await request.get>>( - '/shop/shop-dealer-withdraw/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询分销商提现明细表列表 - */ -export async function listShopDealerWithdraw(params?: ShopDealerWithdrawParam) { - const res = await request.get>( - '/shop/shop-dealer-withdraw', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加分销商提现明细表 - */ -export async function addShopDealerWithdraw(data: ShopDealerWithdraw) { - const res = await request.post>( - '/shop/shop-dealer-withdraw', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改分销商提现明细表 - */ -export async function updateShopDealerWithdraw(data: ShopDealerWithdraw) { - const res = await request.put>( - '/shop/shop-dealer-withdraw', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除分销商提现明细表 - */ -export async function removeShopDealerWithdraw(id?: number) { - const res = await request.delete>( - '/shop/shop-dealer-withdraw/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除分销商提现明细表 - */ -export async function removeBatchShopDealerWithdraw(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-dealer-withdraw/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询分销商提现明细表 - */ -export async function getShopDealerWithdraw(id: number) { - const res = await request.get>( - '/shop/shop-dealer-withdraw/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopDealerWithdraw/model/index.ts b/dict/admin/src/api/shop/shopDealerWithdraw/model/index.ts deleted file mode 100644 index 6a2e492..0000000 --- a/dict/admin/src/api/shop/shopDealerWithdraw/model/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 分销商提现明细表 - */ -export interface ShopDealerWithdraw { - // 主键ID - id?: number; - // 分销商用户ID - userId?: number; - // 提现金额 - money?: string; - // 打款方式 (10微信 20支付宝 30银行卡) - payType?: number; - // 支付宝姓名 - alipayName?: string; - // 支付宝账号 - alipayAccount?: string; - // 开户行名称 - bankName?: string; - // 银行开户名 - bankAccount?: string; - // 银行卡号 - bankCard?: string; - // 申请状态 (10待审核 20审核通过 30驳回 40已打款) - applyStatus?: number; - // 审核时间 - auditTime?: number; - // 驳回原因 - rejectReason?: string; - // 来源客户端(APP、H5、小程序等) - platform?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 分销商提现明细表搜索条件 - */ -export interface ShopDealerWithdrawParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopExpress/model/index.ts b/dict/admin/src/api/shop/shopExpress/model/index.ts deleted file mode 100644 index 24d2098..0000000 --- a/dict/admin/src/api/shop/shopExpress/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 物流公司 - */ -export interface ShopExpress { - // 物流公司ID - expressId?: number; - // 物流公司名称 - expressName?: string; - // 物流公司编码 (微信) - wxCode?: string; - // 物流公司编码 (快递100) - kuaidi100Code?: string; - // 物流公司编码 (快递鸟) - kdniaoCode?: string; - // 排序号 - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 物流公司搜索条件 - */ -export interface ShopExpressParam extends PageParam { - expressId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopExpressTemplate/model/index.ts b/dict/admin/src/api/shop/shopExpressTemplate/model/index.ts deleted file mode 100644 index d6e6aa6..0000000 --- a/dict/admin/src/api/shop/shopExpressTemplate/model/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 运费模板 - */ -export interface ShopExpressTemplate { - // - id?: number; - // - type?: string; - // - title?: string; - // 收件价格 - firstAmount?: string; - // 续件价格 - extraAmount?: string; - // 状态, 0已发布, 1待审核 2已驳回 3违规内容 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 排序 - sortNumber?: number; - // 备注 - comments?: string; - // 首件数量/重量 - firstNum?: string; - // 续件数量/重量 - extraNum?: string; -} - -/** - * 运费模板搜索条件 - */ -export interface ShopExpressTemplateParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopExpressTemplateDetail/model/index.ts b/dict/admin/src/api/shop/shopExpressTemplateDetail/model/index.ts deleted file mode 100644 index 5b74dcc..0000000 --- a/dict/admin/src/api/shop/shopExpressTemplateDetail/model/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 运费模板 - */ -export interface ShopExpressTemplateDetail { - // - id?: number; - // - templateId?: number; - // 0按件 - type?: string; - // - provinceId?: number; - // - cityId?: number; - // 首件数量/重量 - firstNum?: string; - // 收件价格 - firstAmount?: string; - // 续件价格 - extraAmount?: string; - // 续件数量/重量 - extraNum?: string; - // 状态, 0已发布, 1待审核 2已驳回 3违规内容 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // - sortNumber?: number; -} - -/** - * 运费模板搜索条件 - */ -export interface ShopExpressTemplateDetailParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGift/index.ts b/dict/admin/src/api/shop/shopGift/index.ts deleted file mode 100644 index bb798c9..0000000 --- a/dict/admin/src/api/shop/shopGift/index.ts +++ /dev/null @@ -1,130 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api/index'; -import type { ShopGift, ShopGiftParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询礼品卡 - */ -export async function pageShopGift(params: ShopGiftParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-gift/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询礼品卡列表 - */ -export async function listShopGift(params?: ShopGiftParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-gift', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加礼品卡 - */ -export async function addShopGift(data: ShopGift) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-gift', - data - ); - if (res.data.code === 0) { - return res.data.message; - } -} - -/** - * 生成礼品卡 - */ -export async function makeShopGift(data: ShopGift) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-gift/make', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改礼品卡 - */ -export async function updateShopGift(data: ShopGift) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-gift', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除礼品卡 - */ -export async function removeShopGift(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-gift/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除礼品卡 - */ -export async function removeBatchShopGift(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-gift/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询礼品卡 - */ -export async function getShopGift(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-gift/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function exportShopGift(ids?: number[]) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-gift/export', - ids - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGift/model/index.ts b/dict/admin/src/api/shop/shopGift/model/index.ts deleted file mode 100644 index 25390db..0000000 --- a/dict/admin/src/api/shop/shopGift/model/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { PageParam } from '@/api/index'; - -/** - * 礼品卡 - */ -export interface ShopGift { - // - id?: number; - // - name?: string; - // 秘钥 - code?: string; - // 商品ID - goodsId?: number; - // 商品名称 - goodsName?: string; - // 面值 - faceValue?: string; - // 领取时间 - takeTime?: string; - // 核销时间 - verificationTime?: string; - // 操作人ID - operatorUserId?: number; - // 操作人 - operatorUserName?: string; - // 操作备注 - operatorRemarks?: string; - // 使用地址 - useLocation?: string; - // 是否展示 - isShow?: boolean; - // 状态, 0上架 1待上架 2待审核 3审核不通过 - status?: number; - // 备注 - comments?: string; - // 排序号 - sortNumber?: number; - // 用户ID - userId?: number; - // 昵称 - nickName?: string; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - num?: number; -} - -/** - * 礼品卡搜索条件 - */ -export interface ShopGiftParam extends PageParam { - id?: number; - code?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGoods/index.ts b/dict/admin/src/api/shop/shopGoods/index.ts deleted file mode 100644 index 580cd69..0000000 --- a/dict/admin/src/api/shop/shopGoods/index.ts +++ /dev/null @@ -1,116 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopGoods, ShopGoodsParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询商品 - */ -export async function pageShopGoods(params: ShopGoodsParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-goods/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品列表 - */ -export async function listShopGoods(params?: ShopGoodsParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品 - */ -export async function addShopGoods(data: ShopGoods) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-goods', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品 - */ -export async function updateShopGoods(data: ShopGoods) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-goods', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品 - */ -export async function removeShopGoods(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品 - */ -export async function removeBatchShopGoods(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品 - */ -export async function getShopGoods(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function getCount(params: ShopGoodsParam) { - const res = await request.get(MODULES_API_URL + '/shop/shop-goods/data', { - params - }); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGoods/model/index.ts b/dict/admin/src/api/shop/shopGoods/model/index.ts deleted file mode 100644 index 493295d..0000000 --- a/dict/admin/src/api/shop/shopGoods/model/index.ts +++ /dev/null @@ -1,148 +0,0 @@ -import type { PageParam } from '@/api'; -import { ShopGoodsSpec } from '@/api/shop/shopGoodsSpec/model'; -import { ShopGoodsSku } from '@/api/shop/shopGoodsSku/model'; -import { ShopGoodsRoleCommission } from '@/api/shop/shopGoodsRoleCommission/model'; - -export interface GoodsCount { - totalNum: number; - totalNum2: number; - totalNum3: number; - totalNum4: number; -} -/** - * 商品记录表 - */ -export interface ShopGoods { - // 自增ID - goodsId?: number; - // 类型 1实物商品 2虚拟商品 - type?: number; - // 商品编码 - code?: string; - // 商品名称 - name?: string; - // 商品标题 - goodsName?: string; - // 商品封面图 - image?: string; - video?: string; - // 商品详情 - content?: string; - canExpress?: number; - // 商品分类 - category?: string; - // 商品分类ID - categoryId?: number; - parentName?: string; - categoryName?: string; - // 一级分类 - categoryParent?: string; - // 二级分类 - categoryChildren?: string; - // 商品规格 0单规格 1多规格 - specs?: number; - commissionRole?: number; - // 货架 - position?: string; - // 进货价 - buyingPrice?: string; - // 商品价格 - price?: string; - originPrice?: string; - // 销售价格 - salePrice?: string; - chainStorePrice?: string; - chainStoreRate?: string; - memberStoreRate?: string; - memberMarketRate?: string; - memberStoreCommission?: string; - supplierCommission?: string; - coopCommission?: string; - memberStorePrice?: string; - memberMarketPrice?: string; - // 经销商价格 - dealerPrice?: string; - // 有赠品 - buyingGift?: boolean; - // 有赠品 - priceGift?: boolean; - // 有赠品 - dealerGift?: boolean; - buyingGiftNum?: number; - priceGiftNum?: number; - priceGiftName?: string; - dealerGiftNum?: number; - // 库存计算方式(10下单减库存 20付款减库存) - deductStockType?: number; - // 封面图 - files?: string; - // 销量 - sales?: number; - isNew?: number; - // 库存 - stock?: number; - // 商品重量 - goodsWeight?: number; - // 消费赚取积分 - gainIntegral?: number; - // 推荐 - recommend?: number; - // 商户ID - merchantId?: number; - // 商户名称 - merchantName?: string; - supplierMerchantId?: number; - supplierName?: string; - // 状态(0:未上架,1:上架) - isShow?: number; - // 状态, 0上架 1待上架 2待审核 3审核不通过 - status?: number; - // 备注 - comments?: string; - // 排序号 - sortNumber?: number; - // 用户ID - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 显示规格名 - specName?: string; - // 商品规格 - goodsSpecs?: ShopGoodsSpec[]; - goodsRoleCommission?: ShopGoodsRoleCommission[]; - // 商品sku列表 - goodsSkus?: ShopGoodsSku[]; - // 单位名称 - unitName?: string; - expressTemplateId?: number; - canUseDate?: string; - ensureTag?: string; - expiredDay?: number; -} - -export interface BathSet { - price?: number; - salePrice?: number; - stock?: number; - skuNo?: string; -} - -/** - * 商品记录表搜索条件 - */ -export interface ShopGoodsParam extends PageParam { - parentId?: number; - categoryId?: number; - goodsId?: number; - status?: number; - goodsName?: string; - isShow?: number; - stock?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGoodsCategory/index.ts b/dict/admin/src/api/shop/shopGoodsCategory/index.ts deleted file mode 100644 index dbdf598..0000000 --- a/dict/admin/src/api/shop/shopGoodsCategory/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopGoodsCategory, ShopGoodsCategoryParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询商品分类 - */ -export async function pageShopGoodsCategory(params: ShopGoodsCategoryParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-goods-category/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品分类列表 - */ -export async function listShopGoodsCategory(params?: ShopGoodsCategoryParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-category', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品分类 - */ -export async function addShopGoodsCategory(data: ShopGoodsCategory) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-goods-category', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品分类 - */ -export async function updateShopGoodsCategory(data: ShopGoodsCategory) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-goods-category', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品分类 - */ -export async function removeShopGoodsCategory(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-category/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品分类 - */ -export async function removeBatchShopGoodsCategory(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-category/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品分类 - */ -export async function getShopGoodsCategory(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-category/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGoodsCategory/model/index.ts b/dict/admin/src/api/shop/shopGoodsCategory/model/index.ts deleted file mode 100644 index 13fefa1..0000000 --- a/dict/admin/src/api/shop/shopGoodsCategory/model/index.ts +++ /dev/null @@ -1,64 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商品分类 - */ -export interface ShopGoodsCategory { - // 商品分类ID - categoryId?: number; - // 分类标识 - categoryCode?: string; - // 分类名称 - title?: string; - // 类型 0商城分类 1外卖分类 - type?: number; - // 分类图片 - image?: string; - // 上级分类ID - parentId?: number; - // 路由/链接地址 - path?: string; - // 组件路径 - component?: string; - // 绑定的页面 - pageId?: number; - // 用户ID - userId?: number; - // 商品数量 - count?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单) - hide?: number; - // 是否推荐 - recommend?: number; - // 是否显示在首页 - showIndex?: number; - // 商铺ID - merchantId?: number; - // 状态, 0正常, 1禁用 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 子菜单 - children?: ShopGoodsCategory[]; - key?: number; - value?: number; - label?: string; -} - -/** - * 商品分类搜索条件 - */ -export interface ShopGoodsCategoryParam extends PageParam { - categoryId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGoodsCoupon/index.ts b/dict/admin/src/api/shop/shopGoodsCoupon/index.ts deleted file mode 100644 index 7eed12d..0000000 --- a/dict/admin/src/api/shop/shopGoodsCoupon/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api/index'; -import type { ShopGoodsCoupon, ShopGoodsCouponParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询商品优惠券表 - */ -export async function pageShopGoodsCoupon(params: ShopGoodsCouponParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-goods-coupon/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品优惠券表列表 - */ -export async function listShopGoodsCoupon(params?: ShopGoodsCouponParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-coupon', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品优惠券表 - */ -export async function addShopGoodsCoupon(data: ShopGoodsCoupon) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-goods-coupon', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品优惠券表 - */ -export async function updateShopGoodsCoupon(data: ShopGoodsCoupon) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-goods-coupon', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品优惠券表 - */ -export async function removeShopGoodsCoupon(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-coupon/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品优惠券表 - */ -export async function removeBatchShopGoodsCoupon(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-coupon/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品优惠券表 - */ -export async function getShopGoodsCoupon(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-coupon/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGoodsCoupon/model/index.ts b/dict/admin/src/api/shop/shopGoodsCoupon/model/index.ts deleted file mode 100644 index 9f3ff38..0000000 --- a/dict/admin/src/api/shop/shopGoodsCoupon/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@/api/index'; - -/** - * 商品优惠券表 - */ -export interface ShopGoodsCoupon { - // - id?: number; - // 商品id - goodsId?: number; - // 优惠劵id - issueCouponId?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 用户ID - userId?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 备注 - comments?: string; -} - -/** - * 商品优惠券表搜索条件 - */ -export interface ShopGoodsCouponParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGoodsRoleCommission/index.ts b/dict/admin/src/api/shop/shopGoodsRoleCommission/index.ts deleted file mode 100644 index ac3c88b..0000000 --- a/dict/admin/src/api/shop/shopGoodsRoleCommission/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import { MODULES_API_URL } from '@/config/setting'; -import { ShopGoodsRoleCommission, ShopGoodsRoleCommissionParam } from '@/api/shop/shopGoodsRoleCommission/model'; - -/** - * 分页查询商品绑定角色的分润金额 - */ -export async function pageShopGoodsRoleCommission(params: ShopGoodsRoleCommissionParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-goods-role-commission/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品绑定角色的分润金额列表 - */ -export async function listShopGoodsRoleCommission(params?: ShopGoodsRoleCommissionParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-role-commission', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品绑定角色的分润金额 - */ -export async function addShopGoodsRoleCommission(data: ShopGoodsRoleCommission) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-goods-role-commission', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品绑定角色的分润金额 - */ -export async function updateShopGoodsRoleCommission(data: ShopGoodsRoleCommission) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-goods-role-commission', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品绑定角色的分润金额 - */ -export async function removeShopGoodsRoleCommission(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-role-commission/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品绑定角色的分润金额 - */ -export async function removeBatchShopGoodsRoleCommission(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-role-commission/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品绑定角色的分润金额 - */ -export async function getShopGoodsRoleCommission(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-role-commission/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGoodsRoleCommission/model/index.ts b/dict/admin/src/api/shop/shopGoodsRoleCommission/model/index.ts deleted file mode 100644 index 54384fc..0000000 --- a/dict/admin/src/api/shop/shopGoodsRoleCommission/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商品绑定角色的分润金额 - */ -export interface ShopGoodsRoleCommission { - // - id?: number; - // - roleId?: number; - // - goodsId?: number; - // - sku?: string; - // - amount?: string; - // 状态, 0正常, 1异常 - status?: number; - // 备注 - comments?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // - sortNumber?: number; -} - -/** - * 商品绑定角色的分润金额搜索条件 - */ -export interface ShopGoodsRoleCommissionParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGoodsSku/index.ts b/dict/admin/src/api/shop/shopGoodsSku/index.ts deleted file mode 100644 index 2d0d926..0000000 --- a/dict/admin/src/api/shop/shopGoodsSku/index.ts +++ /dev/null @@ -1,118 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import { MODULES_API_URL } from '@/config/setting'; -import { ShopGoodsSpec } from '@/api/shop/shopGoodsSpec/model'; -import { ShopGoodsSku, ShopGoodsSkuParam } from '@/api/shop/shopGoodsSku/model'; - -export async function generateGoodsSku(data: ShopGoodsSpec) { - const res = await request.post>( - MODULES_API_URL + '/shop/goods-sku/generateGoodsSku', - data - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 分页查询商品sku列表 - */ -export async function pageShopGoodsSku(params: ShopGoodsSkuParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-goods-sku/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品sku列表列表 - */ -export async function listShopGoodsSku(params?: ShopGoodsSkuParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-sku', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品sku列表 - */ -export async function addShopGoodsSku(data: ShopGoodsSku) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-goods-sku', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品sku列表 - */ -export async function updateShopGoodsSku(data: ShopGoodsSku) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-goods-sku', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品sku列表 - */ -export async function removeShopGoodsSku(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-sku/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品sku列表 - */ -export async function removeBatchShopGoodsSku(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-goods-sku/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品sku列表 - */ -export async function getShopGoodsSku(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-goods-sku/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGoodsSku/model/index.ts b/dict/admin/src/api/shop/shopGoodsSku/model/index.ts deleted file mode 100644 index 0880d7f..0000000 --- a/dict/admin/src/api/shop/shopGoodsSku/model/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商品sku列表 - */ -export interface ShopGoodsSku { - // 主键ID - id?: number; - // 商品ID - goodsId?: number; - // 商品属性索引值 (attr_value|attr_value[|....]) - sku?: string; - // 商品图片 - image?: string; - // 商品价格 - price?: string; - // 市场价格 - salePrice?: string; - // 成本价 - cost?: string; - // 库存 - stock?: number; - // sku编码 - skuNo?: string; - // 商品条码 - barCode?: string; - // 重量 - weight?: string; - // 体积 - volume?: string; - // 唯一值 - uuid?: string; - // 状态, 0正常, 1异常 - status?: number; - // 备注 - comments?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - images?: string; -} - -/** - * 商品sku列表搜索条件 - */ -export interface ShopGoodsSkuParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopGoodsSpec/index.ts b/dict/admin/src/api/shop/shopGoodsSpec/index.ts deleted file mode 100644 index d7d9ef9..0000000 --- a/dict/admin/src/api/shop/shopGoodsSpec/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopGoodsSpec, ShopGoodsSpecParam } from './model'; - -/** - * 分页查询商品多规格 - */ -export async function pageShopGoodsSpec(params: ShopGoodsSpecParam) { - const res = await request.get>>( - '/shop/shop-goods-spec/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品多规格列表 - */ -export async function listShopGoodsSpec(params?: ShopGoodsSpecParam) { - const res = await request.get>( - '/shop/shop-goods-spec', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品多规格 - */ -export async function addShopGoodsSpec(data: ShopGoodsSpec) { - const res = await request.post>( - '/shop/shop-goods-spec', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品多规格 - */ -export async function updateShopGoodsSpec(data: ShopGoodsSpec) { - const res = await request.put>( - '/shop/shop-goods-spec', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品多规格 - */ -export async function removeShopGoodsSpec(id?: number) { - const res = await request.delete>( - '/shop/shop-goods-spec/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品多规格 - */ -export async function removeBatchShopGoodsSpec(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-goods-spec/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品多规格 - */ -export async function getShopGoodsSpec(id: number) { - const res = await request.get>( - '/shop/shop-goods-spec/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopGoodsSpec/model/index.ts b/dict/admin/src/api/shop/shopGoodsSpec/model/index.ts deleted file mode 100644 index 44a6644..0000000 --- a/dict/admin/src/api/shop/shopGoodsSpec/model/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商品多规格 - */ -export interface ShopGoodsSpec { - // 主键 - id?: number; - // 商品ID - goodsId?: number; - // 规格ID - specId?: number; - // 规格名称 - specName?: string; - // 规格值 - specValue?: string; - // 活动类型 0=商品,1=秒杀,2=砍价,3=拼团 - type?: string; - // 租户id - tenantId?: number; -} - -/** - * 商品多规格搜索条件 - */ -export interface ShopGoodsSpecParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopMerchant/index.ts b/dict/admin/src/api/shop/shopMerchant/index.ts deleted file mode 100644 index 895bc80..0000000 --- a/dict/admin/src/api/shop/shopMerchant/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api/index'; -import type { ShopMerchant, ShopMerchantParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询商户 - */ -export async function pageShopMerchant(params: ShopMerchantParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-merchant/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商户列表 - */ -export async function listShopMerchant(params?: ShopMerchantParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-merchant', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商户 - */ -export async function addShopMerchant(data: ShopMerchant) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-merchant', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商户 - */ -export async function updateShopMerchant(data: ShopMerchant) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-merchant', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商户 - */ -export async function removeShopMerchant(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-merchant/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商户 - */ -export async function removeBatchShopMerchant(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-merchant/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商户 - */ -export async function getShopMerchant(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-merchant/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopMerchant/model/index.ts b/dict/admin/src/api/shop/shopMerchant/model/index.ts deleted file mode 100644 index 4074c0d..0000000 --- a/dict/admin/src/api/shop/shopMerchant/model/index.ts +++ /dev/null @@ -1,95 +0,0 @@ -import type { PageParam } from '@/api/index'; - -/** - * 商户 - */ -export interface ShopMerchant { - // ID - merchantId?: number; - // 商户名称 - merchantName?: string; - // 商户编号 - merchantCode?: string; - // 商户类型 - type?: number; - // 商户图标 - image?: string; - // 商户手机号 - phone?: string; - // 商户姓名 - realName?: string; - // 店铺类型 - shopType?: string; - // 项目分类 - itemType?: string; - // 商户分类 - category?: string; - // 商户经营分类 - merchantCategoryId?: number; - // 商户分类 - merchantCategoryTitle?: string; - // 经纬度 - lngAndLat?: string; - // - lng?: string; - // - lat?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 详细地址 - address?: string; - // 手续费 - commission?: string; - // 关键字 - keywords?: string; - // 资质图片 - files?: string; - // 营业时间 - businessTime?: string; - // 文章内容 - content?: string; - // 每小时价格 - price?: string; - // 是否自营 - ownStore?: number; - // 是否可以快递 - canExpress?: string; - // 是否推荐 - recommend?: number; - // 是否营业 - isOn?: number; - // - startTime?: string; - // - endTime?: string; - // 是否需要审核 - goodsReview?: number; - // 管理入口 - adminUrl?: string; - // 备注 - comments?: string; - // 所有人 - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 商户搜索条件 - */ -export interface ShopMerchantParam extends PageParam { - merchantId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopMerchantAccount/index.ts b/dict/admin/src/api/shop/shopMerchantAccount/index.ts deleted file mode 100644 index eff50c4..0000000 --- a/dict/admin/src/api/shop/shopMerchantAccount/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopMerchantAccount, ShopMerchantAccountParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询商户账号 - */ -export async function pageShopMerchantAccount(params: ShopMerchantAccountParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-merchant-account/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商户账号列表 - */ -export async function listShopMerchantAccount(params?: ShopMerchantAccountParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-merchant-account', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商户账号 - */ -export async function addShopMerchantAccount(data: ShopMerchantAccount) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-merchant-account', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商户账号 - */ -export async function updateShopMerchantAccount(data: ShopMerchantAccount) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-merchant-account', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商户账号 - */ -export async function removeShopMerchantAccount(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-merchant-account/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商户账号 - */ -export async function removeBatchShopMerchantAccount(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-merchant-account/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商户账号 - */ -export async function getShopMerchantAccount(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-merchant-account/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopMerchantAccount/model/index.ts b/dict/admin/src/api/shop/shopMerchantAccount/model/index.ts deleted file mode 100644 index 6dbada0..0000000 --- a/dict/admin/src/api/shop/shopMerchantAccount/model/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商户账号 - */ -export interface ShopMerchantAccount { - // ID - id?: number; - // 商户手机号 - phone?: string; - // 真实姓名 - realName?: string; - // 商户ID - merchantId?: number; - // 角色ID - roleId?: number; - // 角色名称 - roleName?: string; - // 用户ID - userId?: number; - // 备注 - comments?: string; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 商户账号搜索条件 - */ -export interface ShopMerchantAccountParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopMerchantApply/index.ts b/dict/admin/src/api/shop/shopMerchantApply/index.ts deleted file mode 100644 index 1a725f6..0000000 --- a/dict/admin/src/api/shop/shopMerchantApply/index.ts +++ /dev/null @@ -1,120 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopMerchantApply, ShopMerchantApplyParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询商户入驻申请 - */ -export async function pageShopMerchantApply(params: ShopMerchantApplyParam) { - const res = await request.get>>( - SERVER_API_URL + '/shop/shop-merchant-apply/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商户入驻申请列表 - */ -export async function listShopMerchantApply(params?: ShopMerchantApplyParam) { - const res = await request.get>( - SERVER_API_URL + '/shop/shop-merchant-apply', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商户入驻申请 - */ -export async function addShopMerchantApply(data: ShopMerchantApply) { - const res = await request.post>( - SERVER_API_URL + '/shop/shop-merchant-apply', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商户入驻申请 - */ -export async function updateShopMerchantApply(data: ShopMerchantApply) { - const res = await request.put>( - SERVER_API_URL + '/shop/shop-merchant-apply', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 审核通过 -export async function checkShopMerchantApply(data: ShopMerchantApply) { - const res = await request.put>( - SERVER_API_URL + '/shop/shop-merchant-apply/check', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商户入驻申请 - */ -export async function removeShopMerchantApply(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/shop/shop-merchant-apply/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商户入驻申请 - */ -export async function removeBatchShopMerchantApply( - data: (number | undefined)[] -) { - const res = await request.delete>( - SERVER_API_URL + '/shop/shop-merchant-apply/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商户入驻申请 - */ -export async function getShopMerchantApply(id: number) { - const res = await request.get>( - SERVER_API_URL + '/shop/shop-merchant-apply/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopMerchantApply/model/index.ts b/dict/admin/src/api/shop/shopMerchantApply/model/index.ts deleted file mode 100644 index 6e02334..0000000 --- a/dict/admin/src/api/shop/shopMerchantApply/model/index.ts +++ /dev/null @@ -1,72 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商户入驻申请 - */ -export interface ShopMerchantApply { - // ID - applyId?: number; - // 类型 - type?: number; - // 主体名称 - merchantName?: string; - // 证件号码 - merchantCode?: string; - // 商户图标 - image?: string; - // 商户手机号 - phone?: string; - // 商户姓名 - realName?: string; - // 身份证号码 - idCard?: string; - // 店铺类型 - shopType?: string; - // 商户分类 - category?: string; - // 手续费 - commission?: string; - // 关键字 - keywords?: string; - // 营业执照 - yyzz?: string; - // 身份证正面 - sfz1?: string; - // 身份证反面 - sfz2?: string; - // 资质图片 - files?: string; - // 所有人 - userId?: number; - // 是否自营 - ownStore?: number; - // 是否推荐 - recommend?: number; - // 是否需要审核 - goodsReview?: number; - // 工作负责人 - name2?: string; - // 驳回原因 - reason?: string; - // 备注 - comments?: string; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 商户入驻申请搜索条件 - */ -export interface ShopMerchantApplyParam extends PageParam { - applyId?: number; - userId?: number; - shopType?: string; - phone?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopMerchantCount/index.ts b/dict/admin/src/api/shop/shopMerchantCount/index.ts deleted file mode 100644 index c859b1b..0000000 --- a/dict/admin/src/api/shop/shopMerchantCount/index.ts +++ /dev/null @@ -1,108 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopMerchantCount, ShopMerchantCountParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询门店销售统计表 - */ -export async function pageShopMerchantCount(params: ShopMerchantCountParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-merchant-count/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询门店销售统计表列表 - */ -export async function listShopMerchantCount(params?: ShopMerchantCountParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-merchant-count', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加门店销售统计表 - */ -export async function addShopMerchantCount(data: ShopMerchantCount) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-merchant-count', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改门店销售统计表 - */ -export async function updateShopMerchantCount(data: ShopMerchantCount) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-merchant-count', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除门店销售统计表 - */ -export async function removeShopMerchantCount(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-merchant-count/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除门店销售统计表 - */ -export async function removeBatchShopMerchantCount( - data: (number | undefined)[] -) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-merchant-count/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询门店销售统计表 - */ -export async function getShopMerchantCount(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-merchant-count/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopMerchantCount/model/index.ts b/dict/admin/src/api/shop/shopMerchantCount/model/index.ts deleted file mode 100644 index ea27a60..0000000 --- a/dict/admin/src/api/shop/shopMerchantCount/model/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 门店销售统计表 - */ -export interface ShopMerchantCount { - // ID - id?: number; - // 店铺名称 - name?: string; - // 店铺说明 - comments?: string; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 门店销售统计表搜索条件 - */ -export interface ShopMerchantCountParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopMerchantType/index.ts b/dict/admin/src/api/shop/shopMerchantType/index.ts deleted file mode 100644 index 8d7a054..0000000 --- a/dict/admin/src/api/shop/shopMerchantType/index.ts +++ /dev/null @@ -1,108 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopMerchantType, ShopMerchantTypeParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询商户类型 - */ -export async function pageShopMerchantType(params: ShopMerchantTypeParam) { - const res = await request.get>>( - SERVER_API_URL + '/shop/shop-merchant-type/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商户类型列表 - */ -export async function listShopMerchantType(params?: ShopMerchantTypeParam) { - const res = await request.get>( - SERVER_API_URL + '/shop/shop-merchant-type', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商户类型 - */ -export async function addShopMerchantType(data: ShopMerchantType) { - const res = await request.post>( - SERVER_API_URL + '/shop/shop-merchant-type', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商户类型 - */ -export async function updateShopMerchantType(data: ShopMerchantType) { - const res = await request.put>( - SERVER_API_URL + '/shop/shop-merchant-type', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商户类型 - */ -export async function removeShopMerchantType(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/shop/shop-merchant-type/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商户类型 - */ -export async function removeBatchShopMerchantType( - data: (number | undefined)[] -) { - const res = await request.delete>( - SERVER_API_URL + '/shop/shop-merchant-type/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商户类型 - */ -export async function getShopMerchantType(id: number) { - const res = await request.get>( - SERVER_API_URL + '/shop/shop-merchant-type/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopMerchantType/model/index.ts b/dict/admin/src/api/shop/shopMerchantType/model/index.ts deleted file mode 100644 index c09be90..0000000 --- a/dict/admin/src/api/shop/shopMerchantType/model/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商户类型 - */ -export interface ShopMerchantType { - // ID - id?: number; - // 店铺类型 - name?: string; - // 店铺入驻条件 - comments?: string; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - value?: string; -} - -/** - * 商户类型搜索条件 - */ -export interface ShopMerchantTypeParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopOrder/index.ts b/dict/admin/src/api/shop/shopOrder/index.ts deleted file mode 100644 index d0107ac..0000000 --- a/dict/admin/src/api/shop/shopOrder/index.ts +++ /dev/null @@ -1,137 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopOrder, ShopOrderParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询订单 - */ -export async function pageShopOrder(params: ShopOrderParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询订单列表 - */ -export async function listShopOrder(params?: ShopOrderParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-order', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加订单 - */ -export async function addShopOrder(data: ShopOrder) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改订单 - */ -export async function updateShopOrder(data: ShopOrder) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除订单 - */ -export async function removeShopOrder(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-order/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除订单 - */ -export async function removeBatchShopOrder(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-order/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询订单 - */ -export async function getShopOrder(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-order/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改订单 - */ -export async function repairOrder(data: ShopOrder) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-order/repair', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 统计订单总金额(只统计有效订单) - */ -export async function shopOrderTotal(params?: ShopOrderParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-order/total', - { - params - } - ); - if (res.data.code === 0) { - // 即使没有数据也返回空数组,而不是抛出错误 - return res.data.data || []; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopOrderGoods/index.ts b/dict/admin/src/api/shop/shopOrderGoods/index.ts deleted file mode 100644 index 2973147..0000000 --- a/dict/admin/src/api/shop/shopOrderGoods/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopOrderGoods, ShopOrderGoodsParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询商品信息 - */ -export async function pageShopOrderGoods(params: ShopOrderGoodsParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-order-goods/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询商品信息列表 - */ -export async function listShopOrderGoods(params?: ShopOrderGoodsParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-order-goods', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加商品信息 - */ -export async function addShopOrderGoods(data: ShopOrderGoods) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-order-goods', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改商品信息 - */ -export async function updateShopOrderGoods(data: ShopOrderGoods) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-order-goods', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除商品信息 - */ -export async function removeShopOrderGoods(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-order-goods/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除商品信息 - */ -export async function removeBatchShopOrderGoods(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-order-goods/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询商品信息 - */ -export async function getShopOrderGoods(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-order-goods/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopOrderGoods/model/index.ts b/dict/admin/src/api/shop/shopOrderGoods/model/index.ts deleted file mode 100644 index ef7cbf1..0000000 --- a/dict/admin/src/api/shop/shopOrderGoods/model/index.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 商品信息 - */ -export interface ShopOrderGoods { - // 自增ID - id?: number; - // 关联订单表id - orderId?: number; - // 订单标识 - orderCode?: string; - // 关联商户ID - merchantId?: number; - // 商户名称 - merchantName?: string; - // 商品封面图 - image?: string; - // 关联商品id - goodsId?: number; - // 商品名称 - goodsName?: string; - // 商品规格 - spec?: string; - // - skuId?: number; - // 单价 - price?: string; - // 购买数量 - totalNum?: number; - // 0 未付款 1已付款,2无需付款或占用状态 - payStatus?: number; - // 0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 - orderStatus?: number; - // 是否免费:0收费、1免费 - isFree?: string; - // 系统版本 0当前版本 其他版本 - version?: number; - // 预约时间段 - timePeriod?: string; - // 预定日期 - dateTime?: string; - // 开场时间 - startTime?: string; - // 结束时间 - endTime?: string; - // 毫秒时间戳 - timeFlag?: string; - // 过期时间 - expirationTime?: string; - // 备注 - comments?: string; - // 用户id - userId?: number; - // 租户id - tenantId?: number; - // 更新时间 - updateTime?: string; - // 创建时间 - createTime?: string; -} - -/** - * 商品信息搜索条件 - */ -export interface ShopOrderGoodsParam extends PageParam { - id?: number; - orderId?: number; - orderNo?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopSpec/index.ts b/dict/admin/src/api/shop/shopSpec/index.ts deleted file mode 100644 index 5056ba8..0000000 --- a/dict/admin/src/api/shop/shopSpec/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import { MODULES_API_URL } from '@/config/setting'; -import { ShopSpec, ShopSpecParam } from '@/api/shop/shopSpec/model'; - -/** - * 分页查询规格 - */ -export async function pageShopSpec(params: ShopSpecParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-spec/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询规格列表 - */ -export async function listShopSpec(params?: ShopSpecParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-spec', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加规格 - */ -export async function addShopSpec(data: ShopSpec) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-spec', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改规格 - */ -export async function updateShopSpec(data: ShopSpec) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-spec', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除规格 - */ -export async function removeShopSpec(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-spec/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除规格 - */ -export async function removeBatchShopSpec(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-spec/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询规格 - */ -export async function getShopSpec(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-spec/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopSpec/model/index.ts b/dict/admin/src/api/shop/shopSpec/model/index.ts deleted file mode 100644 index cd52c14..0000000 --- a/dict/admin/src/api/shop/shopSpec/model/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 规格 - */ -export interface ShopSpec { - // 规格ID - specId?: number; - // 规格名称 - specName?: string; - // 规格值 - specValue?: string; - // 商户ID - merchantId?: number; - // 创建用户 - userId?: number; - // 更新者 - updater?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1待修,2异常已修,3异常未修 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - value?: string; -} - -/** - * 规格搜索条件 - */ -export interface ShopSpecParam extends PageParam { - specId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopSpecValue/index.ts b/dict/admin/src/api/shop/shopSpecValue/index.ts deleted file mode 100644 index 2eab7d1..0000000 --- a/dict/admin/src/api/shop/shopSpecValue/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopSpecValue, ShopSpecValueParam } from './model'; - -/** - * 分页查询规格值 - */ -export async function pageShopSpecValue(params: ShopSpecValueParam) { - const res = await request.get>>( - '/shop/shop-spec-value/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询规格值列表 - */ -export async function listShopSpecValue(params?: ShopSpecValueParam) { - const res = await request.get>( - '/shop/shop-spec-value', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加规格值 - */ -export async function addShopSpecValue(data: ShopSpecValue) { - const res = await request.post>( - '/shop/shop-spec-value', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改规格值 - */ -export async function updateShopSpecValue(data: ShopSpecValue) { - const res = await request.put>( - '/shop/shop-spec-value', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除规格值 - */ -export async function removeShopSpecValue(id?: number) { - const res = await request.delete>( - '/shop/shop-spec-value/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除规格值 - */ -export async function removeBatchShopSpecValue(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-spec-value/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询规格值 - */ -export async function getShopSpecValue(id: number) { - const res = await request.get>( - '/shop/shop-spec-value/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopSpecValue/model/index.ts b/dict/admin/src/api/shop/shopSpecValue/model/index.ts deleted file mode 100644 index e911f6c..0000000 --- a/dict/admin/src/api/shop/shopSpecValue/model/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 规格值 - */ -export interface ShopSpecValue { - // 规格值ID - specValueId?: number; - // 规格组ID - specId?: number; - // 规格值 - specValue?: string; - // 备注 - comments?: string; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 规格值搜索条件 - */ -export interface ShopSpecValueParam extends PageParam { - specValueId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopUser/index.ts b/dict/admin/src/api/shop/shopUser/index.ts deleted file mode 100644 index c88282f..0000000 --- a/dict/admin/src/api/shop/shopUser/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopUser, ShopUserParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询用户记录表 - */ -export async function pageShopUser(params: ShopUserParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-user/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询用户记录表列表 - */ -export async function listShopUser(params?: ShopUserParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-user', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加用户记录表 - */ -export async function addShopUser(data: ShopUser) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户记录表 - */ -export async function updateShopUser(data: ShopUser) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除用户记录表 - */ -export async function removeShopUser(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-user/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除用户记录表 - */ -export async function removeBatchShopUser(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-user/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询用户记录表 - */ -export async function getShopUser(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-user/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopUser/model/index.ts b/dict/admin/src/api/shop/shopUser/model/index.ts deleted file mode 100644 index d0e1c09..0000000 --- a/dict/admin/src/api/shop/shopUser/model/index.ts +++ /dev/null @@ -1,163 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 用户记录表 - */ -export interface ShopUser { - // 用户id - userId?: number; - // 用户类型 0个人用户 1企业用户 2其他 - type?: number; - // 账号 - username?: string; - // 密码 - password?: string; - // 昵称 - nickname?: string; - // 手机号 - phone?: string; - // 性别 1男 2女 - sex?: number; - // 职务 - position?: string; - // 注册来源客户端 (APP、H5、MP-WEIXIN等) - platform?: string; - // 邮箱 - email?: string; - // 邮箱是否验证, 0否, 1是 - emailVerified?: number; - // 别名 - alias?: string; - // 真实姓名 - realName?: string; - // 证件号码 - idCard?: string; - // 出生日期 - birthday?: string; - // 所在国家 - country?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 街道地址 - address?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 用户可用余额 - balance?: string; - // 已提现金额 - cashedMoney?: string; - // 用户可用积分 - points?: number; - // 用户总支付的金额 - payMoney?: string; - // 实际消费的金额(不含退款) - expendMoney?: string; - // 密码 - payPassword?: string; - // 会员等级ID - gradeId?: number; - // 行业分类 - category?: string; - // 个人简介 - introduction?: string; - // 机构id - organizationId?: number; - // 会员分组ID - groupId?: number; - // 头像 - avatar?: string; - // 背景图 - bgImage?: string; - // 用户编码 - userCode?: string; - // 是否已实名认证 - certification?: number; - // 年龄 - age?: number; - // 是否线下会员 - offline?: string; - // 关注数 - followers?: number; - // 粉丝数 - fans?: number; - // 点赞数 - likes?: number; - // 评论数 - commentNumbers?: number; - // 是否推荐 - recommend?: number; - // 微信openid - openid?: string; - // 微信公众号openid - officeOpenid?: string; - // 微信unionID - unionid?: string; - // 客户端ID - clientId?: string; - // 不允许办卡 - notAllowVip?: string; - // 是否管理员 - isAdmin?: string; - // 是否企业管理员 - isOrganizationAdmin?: string; - // 累计登录次数 - loginNum?: number; - // 企业ID - companyId?: number; - // 可管理的场馆 - merchants?: string; - // 商户ID - merchantId?: number; - // 商户名称 - merchantName?: string; - // 商户头像 - merchantAvatar?: string; - // 第三方系统的用户ID - uid?: number; - // 专家角色 - expertType?: string; - // 过期时间 - expireTime?: number; - // 最后结算时间 - settlementTime?: string; - // 资质 - aptitude?: string; - // 行业类型(父级) - industryParent?: string; - // 行业类型(子级) - industryChild?: string; - // 头衔 - title?: string; - // 安装的产品ID - templateId?: number; - // 插件安装状态(仅对超超管判断) 0未安装 1已安装 - installed?: number; - // 特长 - speciality?: string; - // 备注 - comments?: string; - // 状态, 0在线, 1离线 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 用户记录表搜索条件 - */ -export interface ShopUserParam extends PageParam { - userId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopUserAddress/index.ts b/dict/admin/src/api/shop/shopUserAddress/index.ts deleted file mode 100644 index 2a0d186..0000000 --- a/dict/admin/src/api/shop/shopUserAddress/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopUserAddress, ShopUserAddressParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询收货地址 - */ -export async function pageShopUserAddress(params: ShopUserAddressParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/shop-user-address/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询收货地址列表 - */ -export async function listShopUserAddress(params?: ShopUserAddressParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-user-address', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加收货地址 - */ -export async function addShopUserAddress(data: ShopUserAddress) { - const res = await request.post>( - MODULES_API_URL + '/shop/shop-user-address', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改收货地址 - */ -export async function updateShopUserAddress(data: ShopUserAddress) { - const res = await request.put>( - MODULES_API_URL + '/shop/shop-user-address', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除收货地址 - */ -export async function removeShopUserAddress(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-user-address/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除收货地址 - */ -export async function removeBatchShopUserAddress(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/shop-user-address/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询收货地址 - */ -export async function getShopUserAddress(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/shop-user-address/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopUserAddress/model/index.ts b/dict/admin/src/api/shop/shopUserAddress/model/index.ts deleted file mode 100644 index 4f45d0f..0000000 --- a/dict/admin/src/api/shop/shopUserAddress/model/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 收货地址 - */ -export interface ShopUserAddress { - // 主键ID - id?: number; - // 姓名 - name?: string; - // 手机号码 - phone?: string; - // 所在国家 - country?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 收货地址 - address?: string; - // 收货地址 - fullAddress?: string; - // - lat?: string; - // - lng?: string; - // 1先生 2女士 - gender?: number; - // 家、公司、学校 - type?: string; - // 默认收货地址 - isDefault?: string; - // 用户ID - userId?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; -} - -/** - * 收货地址搜索条件 - */ -export interface ShopUserAddressParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopUserCoupon/model/index.ts b/dict/admin/src/api/shop/shopUserCoupon/model/index.ts deleted file mode 100644 index e9fec3a..0000000 --- a/dict/admin/src/api/shop/shopUserCoupon/model/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 用户优惠券 - */ -export interface ShopUserCoupon { - // id - id?: string; - // 优惠券模板ID - couponId?: number; - // 用户ID - userId?: number; - // 优惠券名称 - name?: string; - // 优惠券描述 - description?: string; - // 优惠券类型(10满减券 20折扣券 30免费劵) - type?: number; - // 满减券-减免金额 - reducePrice?: string; - // 折扣券-折扣率(0-100) - discount?: number; - // 最低消费金额 - minPrice?: string; - // 适用范围(10全部商品 20指定商品 30指定分类) - applyRange?: number; - // 适用范围配置(json格式) - applyRangeConfig?: string; - // 有效期开始时间 - startTime?: string; - // 有效期结束时间 - endTime?: string; - // 使用状态(0未使用 1已使用 2已过期) - status?: number; - // 使用时间 - useTime?: string; - // 使用订单ID - orderId?: string; - // 使用订单号 - orderNo?: string; - // 获取方式(10主动领取 20系统发放 30活动赠送) - obtainType?: number; - // 获取来源描述 - obtainSource?: string; - // 是否删除, 0否, 1是 - deleted?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 用户优惠券搜索条件 - */ -export interface ShopUserCouponParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/shopUserReferee/index.ts b/dict/admin/src/api/shop/shopUserReferee/index.ts deleted file mode 100644 index 4f4c663..0000000 --- a/dict/admin/src/api/shop/shopUserReferee/index.ts +++ /dev/null @@ -1,105 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ShopUserReferee, ShopUserRefereeParam } from './model'; - -/** - * 分页查询用户推荐关系表 - */ -export async function pageShopUserReferee(params: ShopUserRefereeParam) { - const res = await request.get>>( - '/shop/shop-user-referee/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询用户推荐关系表列表 - */ -export async function listShopUserReferee(params?: ShopUserRefereeParam) { - const res = await request.get>( - '/shop/shop-user-referee', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加用户推荐关系表 - */ -export async function addShopUserReferee(data: ShopUserReferee) { - const res = await request.post>( - '/shop/shop-user-referee', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户推荐关系表 - */ -export async function updateShopUserReferee(data: ShopUserReferee) { - const res = await request.put>( - '/shop/shop-user-referee', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除用户推荐关系表 - */ -export async function removeShopUserReferee(id?: number) { - const res = await request.delete>( - '/shop/shop-user-referee/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除用户推荐关系表 - */ -export async function removeBatchShopUserReferee(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/shop-user-referee/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询用户推荐关系表 - */ -export async function getShopUserReferee(id: number) { - const res = await request.get>( - '/shop/shop-user-referee/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/shopUserReferee/model/index.ts b/dict/admin/src/api/shop/shopUserReferee/model/index.ts deleted file mode 100644 index 06e1ecd..0000000 --- a/dict/admin/src/api/shop/shopUserReferee/model/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 用户推荐关系表 - */ -export interface ShopUserReferee { - // 主键ID - id?: number; - // 推荐人ID - dealerId?: number; - // 用户id(被推荐人) - userId?: number; - // 推荐关系层级(1,2,3) - level?: number; - // 备注 - comments?: string; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 用户推荐关系表搜索条件 - */ -export interface ShopUserRefereeParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/spec/model/index.ts b/dict/admin/src/api/shop/spec/model/index.ts deleted file mode 100644 index 52ba8dc..0000000 --- a/dict/admin/src/api/shop/spec/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 规格 - */ -export interface Spec { - // 规格ID - specId?: number; - // 规格名称 - specName?: string; - // 规格值 - specValue?: string; - // 创建用户 - userId?: number; - // 更新者 - updater?: number; - // 商户ID - merchantId?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1待修,2异常已修,3异常未修 - status?: number; - // 排序号 - sortNumber?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 规格搜索条件 - */ -export interface SpecParam extends PageParam { - specId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/shop/specValue/index.ts b/dict/admin/src/api/shop/specValue/index.ts deleted file mode 100644 index 2e2e398..0000000 --- a/dict/admin/src/api/shop/specValue/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { SpecValue, SpecValueParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询规格值 - */ -export async function pageSpecValue(params: SpecValueParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/spec-value/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询规格值列表 - */ -export async function listSpecValue(params?: SpecValueParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/spec-value', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加规格值 - */ -export async function addSpecValue(data: SpecValue) { - const res = await request.post>( - MODULES_API_URL + '/shop/spec-value', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改规格值 - */ -export async function updateSpecValue(data: SpecValue) { - const res = await request.put>( - MODULES_API_URL + '/shop/spec-value', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除规格值 - */ -export async function removeSpecValue(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/spec-value/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除规格值 - */ -export async function removeBatchSpecValue(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/spec-value/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询规格值 - */ -export async function getSpecValue(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/spec-value/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/shop/specValue/model/index.ts b/dict/admin/src/api/shop/specValue/model/index.ts deleted file mode 100644 index eb1e717..0000000 --- a/dict/admin/src/api/shop/specValue/model/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 规格值 - */ -export interface SpecValue { - // 规格值ID - specValueId?: number; - // 规格值 - specValue?: string; - // 规格组ID - specId?: number; - // 描述 - comments?: string; - // 排序 - sortNumber?: number; - // 租户id - tenantId?: number; - key?: string; - label?: string; - value?: string; - detail?: [string]; - specName?: string; -} - -/** - * 规格值搜索条件 - */ -export interface SpecValueParam extends PageParam { - specValueId?: number; - specId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/access-key/index.ts b/dict/admin/src/api/system/access-key/index.ts deleted file mode 100644 index ecc7852..0000000 --- a/dict/admin/src/api/system/access-key/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { AccessKey, AccessKeyParam } from './model'; -import { PageResult } from '@/api'; -import { SERVER_API_URL } from '@/config/setting'; -/** - * 查询AccessKey列表 - */ -export async function pageAccessKey(params: AccessKeyParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/access-key/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加AccessKey - */ -export async function addAccessKey(data: AccessKey) { - const res = await request.post>( - SERVER_API_URL + '/system/access-key', - data - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改AccessKey - */ -export async function updateAccessKey(data: AccessKey) { - const res = await request.put>( - SERVER_API_URL + '/system/access-key', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除AccessKey - */ -export async function removeAccessKey(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/access-key/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/access-key/model/index.ts b/dict/admin/src/api/system/access-key/model/index.ts deleted file mode 100644 index 376b577..0000000 --- a/dict/admin/src/api/system/access-key/model/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * AccessKey - */ -export interface AccessKey { - id?: number; - phone?: string; - accessKey?: string; - accessSecret?: string; - createTime?: string; - tenantId?: number; - code?: number; -} - -/** - * AccessKey搜索条件 - */ -export interface AccessKeyParam { - id?: number; - accessKey?: string; -} diff --git a/dict/admin/src/api/system/appstore/index.ts b/dict/admin/src/api/system/appstore/index.ts deleted file mode 100644 index 4acad48..0000000 --- a/dict/admin/src/api/system/appstore/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -// json数据 -export function appstoreType() { - return [ - { value: '0', label: '全部', text: '全部', comments: '' }, - { value: '1', label: '系统管理', text: '系统管理', comments: '' }, - { value: '2', label: '内容管理', text: '内容管理', comments: '' }, - { value: '3', label: '第三方应用', text: '第三方应用', comments: '' }, - { value: '4', label: '办公协同', text: '办公协同', comments: '' }, - { value: '5', label: '商城模块', text: '商城模块', comments: '' } - ]; -} diff --git a/dict/admin/src/api/system/appstore/model/index.ts b/dict/admin/src/api/system/appstore/model/index.ts deleted file mode 100644 index c3c9c45..0000000 --- a/dict/admin/src/api/system/appstore/model/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * 消息 - */ -export interface Appstore { - // 消息id - id?: number; - // 标题 - title?: string; - // 时间 - time?: string; - // 状态 - status?: number; -} diff --git a/dict/admin/src/api/system/cache/index.ts b/dict/admin/src/api/system/cache/index.ts deleted file mode 100644 index aa4c8e6..0000000 --- a/dict/admin/src/api/system/cache/index.ts +++ /dev/null @@ -1,76 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { Cache, CacheParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 查询缓存数据 - */ -export async function listCache(params?: CacheParam) { - const res = await request.get>( - SERVER_API_URL + '/system/cache', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取缓存数据 - * @param key - */ -export async function getCache(key: String) { - const res = await request.get>( - SERVER_API_URL + '/system/cache/' + key - ); - if (res.data.code === 0) { - return res.data.data; - } -} - -/** - * 更新缓存数据 - * @param cache - */ -export async function updateCache(cache: Cache) { - const res = await request.post>( - SERVER_API_URL + '/system/cache', - cache - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除缓存数据 - * @param key - */ -export async function removeCache(key?: String) { - const res = await request.delete>( - SERVER_API_URL + '/system/cache/' + key - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 更新缓存数据 - * @param cache - */ -export async function updateCacheTheme(cache: Cache) { - const res = await request.post>( - SERVER_API_URL + '/system/cache/theme', - cache - ); - if (res.data.code === 0) { - return res.data.message; - } -} diff --git a/dict/admin/src/api/system/cache/model/index.ts b/dict/admin/src/api/system/cache/model/index.ts deleted file mode 100644 index dc28d00..0000000 --- a/dict/admin/src/api/system/cache/model/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 缓存管理 - */ -export interface Cache { - key?: string; - content?: string; - uploadMethod?: any; - expireTime?: number; // 过期时间(秒) -} - -/** - * 搜索条件 - */ -export interface CacheParam extends PageParam { - key?: string; -} diff --git a/dict/admin/src/api/system/chat/index.ts b/dict/admin/src/api/system/chat/index.ts deleted file mode 100644 index e926ecd..0000000 --- a/dict/admin/src/api/system/chat/index.ts +++ /dev/null @@ -1,157 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { - ChatConversation, - ChatConversationParam, - ChatMessage, - ChatMessageParam -} from '@/api/system/chat/model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 查询聊天列表 - */ -export async function pageChatConversation(params: ChatConversationParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/chat-conversation/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询聊天列表 - */ -export async function pageChatMessage(params: ChatMessageParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/chat-message/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} -/** - * 查询日志列表 - */ -export async function listChatConversation(params?: ChatConversationParam) { - const res = await request.get>( - SERVER_API_URL + '/system/chat-conversation', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加日志 - */ -export async function addChatMessage(data: ChatMessage) { - const res = await request.post>( - SERVER_API_URL + '/system/chat-message', - data - ); - if (res.data.code === 0) { - return res.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加日志 - */ -export async function addChatConversation(data: ChatConversation) { - const res = await request.post>( - SERVER_API_URL + '/system/chat-conversation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改日志 - */ -export async function updateChatConversation(data: any) { - const res = await request.put>( - SERVER_API_URL + '/system/chat-conversation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 绑定日志 - */ -export async function bindChatConversation(data: ChatConversation) { - const res = await request.put>( - SERVER_API_URL + '/system/chat-conversation/bind', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量添加 - */ -export async function addBatchChatConversation(data: ChatConversation[]) { - const res = await request.post>( - SERVER_API_URL + '/system/chat-conversation/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除日志 - */ -export async function removeChatConversation(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/chat-conversation/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除日志 - */ -export async function removeBatchChatConversation( - data: (number | undefined)[] -) { - const res = await request.delete>( - SERVER_API_URL + '/system/chat-conversation/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/chat/model/index.ts b/dict/admin/src/api/system/chat/model/index.ts deleted file mode 100644 index 5ead20e..0000000 --- a/dict/admin/src/api/system/chat/model/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { PageParam } from '@/api'; -import type { User } from '@/api/system/user/model'; - -export interface ChatConversation { - id?: number; - userId?: number; - friendId?: number; - userInfo?: User; - friendInfo?: User; - content: string; - messages: ChatMessage[]; - unRead: number; - createTime?: string; - updateTime: string | number | Date; -} - -export interface ChatMessage { - id?: number; - formUserId?: number; - formUserInfo?: User; - toUserInfo?: User; - toUserId?: number; - type: string; - content: string; - status?: number; - createTime?: number; - updateTime?: number; -} - -/** - * 搜索条件 - */ -export interface ChatConversationParam extends PageParam { - userId?: number; - status: number; - onlyFake: boolean; - keywords: string; -} - -/** - * 搜索条件 - */ -export interface ChatMessageParam extends PageParam { - formUserId?: number; - toUserId?: number; - type?: string; - status?: number; - keywords: string; -} diff --git a/dict/admin/src/api/system/chatConversation/index.ts b/dict/admin/src/api/system/chatConversation/index.ts deleted file mode 100644 index 4c84dc4..0000000 --- a/dict/admin/src/api/system/chatConversation/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ChatConversation, ChatConversationParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询聊天消息表 - */ -export async function pageChatConversation(params: ChatConversationParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/chat-conversation/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询聊天消息表列表 - */ -export async function listChatConversation(params?: ChatConversationParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/chat-conversation', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加聊天消息表 - */ -export async function addChatConversation(data: ChatConversation) { - const res = await request.post>( - MODULES_API_URL + '/shop/chat-conversation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改聊天消息表 - */ -export async function updateChatConversation(data: ChatConversation) { - const res = await request.put>( - MODULES_API_URL + '/shop/chat-conversation', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除聊天消息表 - */ -export async function removeChatConversation(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/shop/chat-conversation/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除聊天消息表 - */ -export async function removeBatchChatConversation(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/shop/chat-conversation/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询聊天消息表 - */ -export async function getChatConversation(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/chat-conversation/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/chatConversation/model/index.ts b/dict/admin/src/api/system/chatConversation/model/index.ts deleted file mode 100644 index 110806d..0000000 --- a/dict/admin/src/api/system/chatConversation/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 聊天消息表 - */ -export interface ChatConversation { - // 自增ID - id?: number; - // 用户ID - userId?: number; - // 好友ID - friendId?: number; - // 消息类型 - type?: number; - // 消息内容 - content?: string; - // 未读消息 - unRead?: number; - // 状态, 0未读, 1已读 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 聊天消息表搜索条件 - */ -export interface ChatConversationParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/chatMessage/index.ts b/dict/admin/src/api/system/chatMessage/index.ts deleted file mode 100644 index 1cc75d1..0000000 --- a/dict/admin/src/api/system/chatMessage/index.ts +++ /dev/null @@ -1,120 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { ChatMessage, ChatMessageParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询聊天消息表 - */ -export async function pageChatMessage(params: ChatMessageParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/chat-message/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询聊天消息表列表 - */ -export async function listChatMessage(params?: ChatMessageParam) { - const res = await request.get>( - SERVER_API_URL + '/system/chat-message', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加聊天消息表 - */ -export async function addChatMessage(data: ChatMessage) { - const res = await request.post>( - SERVER_API_URL + '/system/chat-message', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加聊天消息表 - */ -export async function addBatchChatMessage(data: ChatMessage[]) { - const res = await request.post>( - SERVER_API_URL + '/system/chat-message/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改聊天消息表 - */ -export async function updateChatMessage(data: ChatMessage) { - const res = await request.put>( - SERVER_API_URL + '/system/chat-message', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除聊天消息表 - */ -export async function removeChatMessage(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/chat-message/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除聊天消息表 - */ -export async function removeBatchChatMessage(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/chat-message/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询聊天消息表 - */ -export async function getChatMessage(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/chat-message/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/chatMessage/model/index.ts b/dict/admin/src/api/system/chatMessage/model/index.ts deleted file mode 100644 index 4352a3f..0000000 --- a/dict/admin/src/api/system/chatMessage/model/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 聊天消息表 - */ -export interface ChatMessage { - // 自增ID - id?: number; - // 发送人ID - formUserId?: number; - // 接收人ID - toUserId?: number; - // 消息类型 - type?: string; - // 消息内容 - content?: string; - // 屏蔽接收方 - sideTo?: number; - // 屏蔽发送方 - sideFrom?: number; - // 是否撤回 - withdraw?: number; - // 文件信息 - fileInfo?: string; - toUserName?: any; - formUserName?: string; - // 批量发送 - toUserIds?: any[]; - // 存在联系方式 - hasContact?: number; - // 状态, 0未读, 1已读 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 聊天消息表搜索条件 - */ -export interface ChatMessageParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/comment/model/index.ts b/dict/admin/src/api/system/comment/model/index.ts deleted file mode 100644 index 8d644d6..0000000 --- a/dict/admin/src/api/system/comment/model/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用评论 - */ -export interface Comment { - // ID - id?: number; - // 父级ID - parentId?: number; - // 用户ID - userId?: number; - // 评分 - rate?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 评论内容 - comments?: string; - // 状态 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 应用评论搜索条件 - */ -export interface CommentParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/company/index.ts b/dict/admin/src/api/system/company/index.ts deleted file mode 100644 index f1d021e..0000000 --- a/dict/admin/src/api/system/company/index.ts +++ /dev/null @@ -1,162 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { Company, CompanyParam } from './model'; -import { PageResult } from '@/api'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 查询企业资料 - */ -export async function getCompany(params?: CompanyParam) { - const res = await request.get>( - SERVER_API_URL + '/system/company/profile', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询企业资料不限租户 - */ -export async function getCompanyAll(companyId: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company/profileAll/' + companyId - ); - if (res.data.code === 0 && res.data) { - console.log(res.data); - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询Company列表 - */ -export async function pageCompany(params: CompanyParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询Company列表不限租户 - */ -export async function pageCompanyAll(params: CompanyParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company/pageAll', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加Company - */ -export async function addCompany(data: Company) { - const res = await request.post>( - SERVER_API_URL + '/system/company', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改Company - */ -export async function updateCompany(data: Company) { - const res = await request.put>( - SERVER_API_URL + '/system/company', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改CompanyAll - */ -export async function updateCompanyAll(data: Company) { - const res = await request.put>( - SERVER_API_URL + '/system/company/updateCompanyAll', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除Company - */ -export async function removeCompany(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 销毁租户 -export async function destructionTenant(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company/destruction/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除Company - */ -export async function removeBatchCompany(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/company/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/company/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/company/model/index.ts b/dict/admin/src/api/system/company/model/index.ts deleted file mode 100644 index 0ae57e1..0000000 --- a/dict/admin/src/api/system/company/model/index.ts +++ /dev/null @@ -1,187 +0,0 @@ -import type { PageParam } from '@/api'; -import type {Menu} from "@/api/system/menu/model"; - -/** - * 企业信息 - */ -export interface Company { - // 企业id - companyId?: number; - // 应用类型 - type?: number; - // 插件ID - menuId?: number; - // 企业简称 - shortName?: string; - // 企业全称 - companyName?: string; - // 企业标识 - companyCode?: string; - // 栏目分类 - categoryId?: number; - // 应用截图 - files?: string; - // 类型 10企业 20政府单位 - companyType?: string; - // 企业类型多选(已废弃) - companyTypeMultiple?: string; - // 应用标识 - companyLogo?: string; - // 封面图 - image?: string; - // 应用详情 - content?: string; - // 应用类型 - appType?: string; - // 免费域名 - freeDomain?: string; - // 绑定域名 - domain?: string; - // 联系电话 - phone?: string; - // 座机电话 - tel?: string; - // 邮箱 - email?: string; - // 发票抬头 - invoiceHeader?: string; - // 企业法人 - businessEntity?: string; - // 服务开始时间 - startTime?: string; - // 服务到期时间 - expirationTime?: string; - // 即将过期 - soon?: number; - // 应用版本 10体验版 20授权版 30永久授权 - version?: string; - // 版本名称 - versionName?: string; - // 版本号 - versionCode?: string; - // 销售价格 - price?: number; - // 计费方式(0免费 1一次性 2按年 3按月 4按天) - chargingMethod?: number; - // 成员数量(人数上限) - members?: number; - // 成员数量(当前) - users?: number; - // 行业类型(父级) - industryParent?: string; - // 行业类型(子级) - industryChild?: string; - // 部门数量 - departments?: number; - // 存储空间 - storage?: string; - // 存储空间(上限) - storageMax?: string; - // 所在国家 - country?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 街道地址 - address?: string; - // 详细 - lngAndLat?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 备注 - comments?: string; - // 是否实名认证 - authentication?: number; - // 企业默认主体 - authoritative?: boolean; - // 主控节点 - serverUrl?: string; - // 模块节点 - modulesUrl?: string; - // 重定向 - redirectUrl?: string; - // request合法域名 - requestUrl?: string; - // socket合法域名 - socketUrl?: string; - // 总后台管理入口 - adminUrl?: string; - // 商户端入口 - merchantUrl?: string; - // 网站域名 - websiteUrl?: string; - // 微信小程序二维码 - mpWeixinCode?: string; - // 支付宝小程序二维码 - mpAlipayCode?: string; - // H5端应用二维码 - h5Code?: string; - // 安卓APP二维码 - androidUrl?: string; - // 苹果APP二维码 - iosUrl?: string; - // 是否推荐 - recommend?: number; - // 点赞数量 - likes?: number; - // 点击数量 - clicks?: number; - // 购买数量 - buys?: number; - // 评分 - rate?: number; - // 是否含税, 0不含, 1含 - isTax?: number; - // 当前克隆的租户ID - planId?: number; - // 状态 - status?: number; - // 是否隐藏 - hide?: boolean; - // 是否开启网站 - websiteStatus?: boolean; - // 排序号 - sortNumber?: number; - // 商户ID - merchantId?: number; - // 租户id - tid?: number; - // 用户ID - userId?: number; - // 是否官方自营 - official?: boolean; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 租户名称 - tenantName?: string; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 权限 - authorities?: Menu[]; -} - -/** - * 企业信息搜索条件 - */ -export interface CompanyParam extends PageParam { - companyId?: number; - phone?: string; - userId?: string; - type?: number; - tenantId?: number; - version?: number; - shortName?: string; - companyName?: string; - official?: boolean; - deleted?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/companyComment/index.ts b/dict/admin/src/api/system/companyComment/index.ts deleted file mode 100644 index 2a5a15a..0000000 --- a/dict/admin/src/api/system/companyComment/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type {ApiResult, PageResult} from '@/api'; -import type {CompanyComment, CompanyCommentParam} from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询应用评论 - */ -export async function pageCompanyComment(params: CompanyCommentParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company-comment/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用评论列表 - */ -export async function listCompanyComment(params?: CompanyCommentParam) { - const res = await request.get>( - SERVER_API_URL + '/system/company-comment', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加应用评论 - */ -export async function addCompanyComment(data: CompanyComment) { - const res = await request.post>( - SERVER_API_URL + '/system/company-comment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用评论 - */ -export async function updateCompanyComment(data: CompanyComment) { - const res = await request.put>( - SERVER_API_URL + '/system/company-comment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用评论 - */ -export async function removeCompanyComment(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-comment/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用评论 - */ -export async function removeBatchCompanyComment(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-comment/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用评论 - */ -export async function getCompanyComment(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company-comment/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/companyComment/model/index.ts b/dict/admin/src/api/system/companyComment/model/index.ts deleted file mode 100644 index ef8cae9..0000000 --- a/dict/admin/src/api/system/companyComment/model/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用评论 - */ -export interface CompanyComment { - // ID - id?: number; - // 父级ID - parentId?: number; - // 用户ID - userId?: number; - // 企业ID - companyId?: number; - // 评分 - rate?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 评论内容 - comments?: string; - // 状态 - status?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 应用评论搜索条件 - */ -export interface CompanyCommentParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/companyContent/index.ts b/dict/admin/src/api/system/companyContent/index.ts deleted file mode 100644 index 62f2f02..0000000 --- a/dict/admin/src/api/system/companyContent/index.ts +++ /dev/null @@ -1,121 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CompanyContent, CompanyContentParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询应用详情 - */ -export async function pageCompanyContent(params: CompanyContentParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company-content/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用详情列表 - */ -export async function listCompanyContent(params?: CompanyContentParam) { - const res = await request.get>( - SERVER_API_URL + '/system/company-content', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取应用详情 - * @param id - */ -export async function getByCompanyId(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company-content/getByCompanyId/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - - -/** - * 添加应用详情 - */ -export async function addCompanyContent(data: CompanyContent) { - const res = await request.post>( - SERVER_API_URL + '/system/company-content', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用详情 - */ -export async function updateCompanyContent(data: CompanyContent) { - const res = await request.put>( - SERVER_API_URL + '/system/company-content', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用详情 - */ -export async function removeCompanyContent(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-content/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用详情 - */ -export async function removeBatchCompanyContent(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-content/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用详情 - */ -export async function getCompanyContent(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company-content/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/companyContent/model/index.ts b/dict/admin/src/api/system/companyContent/model/index.ts deleted file mode 100644 index 226f513..0000000 --- a/dict/admin/src/api/system/companyContent/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用详情 - */ -export interface CompanyContent { - // - id?: number; - // 企业ID - companyId?: number; - // 详细内容 - content?: string; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; -} - -/** - * 应用详情搜索条件 - */ -export interface CompanyContentParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/companyGit/index.ts b/dict/admin/src/api/system/companyGit/index.ts deleted file mode 100644 index 64b63be..0000000 --- a/dict/admin/src/api/system/companyGit/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CompanyGit, CompanyGitParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询代码仓库 - */ -export async function pageCompanyGit(params: CompanyGitParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company-git/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询代码仓库列表 - */ -export async function listCompanyGit(params?: CompanyGitParam) { - const res = await request.get>( - SERVER_API_URL + '/system/company-git', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加代码仓库 - */ -export async function addCompanyGit(data: CompanyGit) { - const res = await request.post>( - SERVER_API_URL + '/system/company-git', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改代码仓库 - */ -export async function updateCompanyGit(data: CompanyGit) { - const res = await request.put>( - SERVER_API_URL + '/system/company-git', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除代码仓库 - */ -export async function removeCompanyGit(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-git/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除代码仓库 - */ -export async function removeBatchCompanyGit(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-git/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询代码仓库 - */ -export async function getCompanyGit(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company-git/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/companyGit/model/index.ts b/dict/admin/src/api/system/companyGit/model/index.ts deleted file mode 100644 index 901a7cd..0000000 --- a/dict/admin/src/api/system/companyGit/model/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 代码仓库 - */ -export interface CompanyGit { - // 自增ID - id?: number; - // 仓库名称 - title?: string; - // 厂商 0私有仓库 1github 2gitee 3其他 - brand?: string; - // 语言 - language?: string; - // 企业ID - companyId?: number; - // 仓库地址 - domain?: string; - // 账号 - account?: string; - // 密码 - password?: string; - // 仓库描述 - comments?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1待确认 - status?: number; - // 创建时间 - createTime?: string; - // 租户id - tenantId?: number; -} - -/** - * 代码仓库搜索条件 - */ -export interface CompanyGitParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/companyParameter/index.ts b/dict/admin/src/api/system/companyParameter/index.ts deleted file mode 100644 index 4c5ee60..0000000 --- a/dict/admin/src/api/system/companyParameter/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CompanyParameter, CompanyParameterParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询应用参数 - */ -export async function pageCompanyParameter(params: CompanyParameterParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company-parameter/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用参数列表 - */ -export async function listCompanyParameter(params?: CompanyParameterParam) { - const res = await request.get>( - SERVER_API_URL + '/system/company-parameter', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加应用参数 - */ -export async function addCompanyParameter(data: CompanyParameter) { - const res = await request.post>( - SERVER_API_URL + '/system/company-parameter', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用参数 - */ -export async function updateCompanyParameter(data: CompanyParameter) { - const res = await request.put>( - SERVER_API_URL + '/system/company-parameter', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用参数 - */ -export async function removeCompanyParameter(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-parameter/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用参数 - */ -export async function removeBatchCompanyParameter(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-parameter/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用参数 - */ -export async function getCompanyParameter(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company-parameter/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/companyParameter/model/index.ts b/dict/admin/src/api/system/companyParameter/model/index.ts deleted file mode 100644 index bf608d8..0000000 --- a/dict/admin/src/api/system/companyParameter/model/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用参数 - */ -export interface CompanyParameter { - // 自增ID - id?: number; - // 参数名称 - name?: string; - // 参数内容 - value?: string; - // 企业ID - companyId?: number; - // 备注 - comments?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1待确认 - status?: number; - // 创建时间 - createTime?: string; - // 租户id - tenantId?: number; -} - -/** - * 应用参数搜索条件 - */ -export interface CompanyParameterParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/companyUrl/index.ts b/dict/admin/src/api/system/companyUrl/index.ts deleted file mode 100644 index e3995da..0000000 --- a/dict/admin/src/api/system/companyUrl/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { CompanyUrl, CompanyUrlParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询应用域名 - */ -export async function pageCompanyUrl(params: CompanyUrlParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/company-url/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用域名列表 - */ -export async function listCompanyUrl(params?: CompanyUrlParam) { - const res = await request.get>( - SERVER_API_URL + '/system/company-url', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加应用域名 - */ -export async function addCompanyUrl(data: CompanyUrl) { - const res = await request.post>( - SERVER_API_URL + '/system/company-url', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用域名 - */ -export async function updateCompanyUrl(data: CompanyUrl) { - const res = await request.put>( - SERVER_API_URL + '/system/company-url', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用域名 - */ -export async function removeCompanyUrl(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-url/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用域名 - */ -export async function removeBatchCompanyUrl(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/company-url/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用域名 - */ -export async function getCompanyUrl(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/company-url/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/companyUrl/model/index.ts b/dict/admin/src/api/system/companyUrl/model/index.ts deleted file mode 100644 index 1ae38e2..0000000 --- a/dict/admin/src/api/system/companyUrl/model/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用域名 - */ -export interface CompanyUrl { - // 自增ID - id?: number; - // 域名类型 - type?: string; - // 企业ID - companyId?: number; - // 域名 - domain?: string; - // 账号 - account?: string; - // 密码 - password?: string; - // 二维码 - qrcode?: string; - // 备注 - comments?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1待确认 - status?: number; - // 创建时间 - createTime?: string; - // 租户id - tenantId?: number; -} - -/** - * 应用域名搜索条件 - */ -export interface CompanyUrlParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/dict-data/index.ts b/dict/admin/src/api/system/dict-data/index.ts deleted file mode 100644 index ded8ced..0000000 --- a/dict/admin/src/api/system/dict-data/index.ts +++ /dev/null @@ -1,87 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DictData, DictDataParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询字典数据 - */ -export async function pageDictData(params: DictDataParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/dict-data/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询字典数据列表 - */ -export async function listDictData(params: DictDataParam) { - const res = await request.get>( - SERVER_API_URL + '/system/dict-data', - { params } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加字典数据 - */ -export async function addDictData(data: DictData) { - const res = await request.post>( - SERVER_API_URL + '/system/dict-data', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改字典数据 - */ -export async function updateDictData(data: DictData) { - const res = await request.put>( - SERVER_API_URL + '/system/dict-data', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除字典数据 - */ -export async function removeDictData(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/dict-data/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除字典数据 - */ -export async function removeDictDataBatch(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/dict-data/batch', - { data } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/dict-data/model/index.ts b/dict/admin/src/api/system/dict-data/model/index.ts deleted file mode 100644 index 6383ed3..0000000 --- a/dict/admin/src/api/system/dict-data/model/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 字典数据 - */ -export interface DictData { - // 字典数据id - dictDataId?: number; - // 字典id - dictId?: number; - // 字典名称 - dictName?: string; - // 字典数据标识 - dictDataCode?: string; - // 字典数据名称 - dictDataName?: string; - // 预设字段(路由地址) - path?: string; - // 预设字段(组件路径) - component?: string; - // 字典标识 - dictCode?: string; - // 排序号 - sortNumber?: any; - // 备注 - comments?: string; - // 创建时间 - createTime?: string; - tenantId?: number; - label?: string; - value?: number; -} - -/** - * 字典数据搜索条件 - */ -export interface DictDataParam extends PageParam { - // 关键字 - keywords?: string; - // 字典标识 - dictCode?: string; - // 字典id - dictId?: number; - // - value?: number; - // - label?: string; - dictDataId?: number; -} diff --git a/dict/admin/src/api/system/dict/index.ts b/dict/admin/src/api/system/dict/index.ts deleted file mode 100644 index 59ec1db..0000000 --- a/dict/admin/src/api/system/dict/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { Dict, DictParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 查询字典列表 - */ -export async function listDictionaries(params?: DictParam) { - const res = await request.get>( - SERVER_API_URL + '/system/dict', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加字典 - */ -export async function addDict(data: Dict) { - const res = await request.post>( - SERVER_API_URL + '/system/dict', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改字典 - */ -export async function updateDict(data: Dict) { - const res = await request.put>( - SERVER_API_URL + '/system/dict', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除字典 - */ -export async function removeDict(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/dict/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/dict/model/index.ts b/dict/admin/src/api/system/dict/model/index.ts deleted file mode 100644 index 575cb35..0000000 --- a/dict/admin/src/api/system/dict/model/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * 字典 - */ -export interface Dict { - // 字典id - dictId?: number; - // 字典标识 - dictCode?: string; - // 字典名称 - dictName?: string; - // 排序号 - sortNumber?: number; - // 备注 - comments?: string; - // 创建时间 - createTime?: string; - type?: number; - tenantId?: number; -} - -/** - * 字典搜索条件 - */ -export interface DictParam { - dictCode?: string; - dictName?: string; - type?: number; - tenantId?: number; -} diff --git a/dict/admin/src/api/system/dictionary-data/index.ts b/dict/admin/src/api/system/dictionary-data/index.ts deleted file mode 100644 index cc951d3..0000000 --- a/dict/admin/src/api/system/dictionary-data/index.ts +++ /dev/null @@ -1,87 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { DictionaryData, DictionaryDataParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询字典数据 - */ -export async function pageDictionaryData(params: DictionaryDataParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/dictionary-data/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询字典数据列表 - */ -export async function listDictionaryData(params: DictionaryDataParam) { - const res = await request.get>( - SERVER_API_URL + '/system/dictionary-data', - { params } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加字典数据 - */ -export async function addDictionaryData(data: DictionaryData) { - const res = await request.post>( - SERVER_API_URL + '/system/dictionary-data', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改字典数据 - */ -export async function updateDictionaryData(data: DictionaryData) { - const res = await request.put>( - SERVER_API_URL + '/system/dictionary-data', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除字典数据 - */ -export async function removeDictionaryData(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/dictionary-data/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除字典数据 - */ -export async function removeDictionaryDataBatch(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/dictionary-data/batch', - { data } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/dictionary-data/model/index.ts b/dict/admin/src/api/system/dictionary-data/model/index.ts deleted file mode 100644 index 734485a..0000000 --- a/dict/admin/src/api/system/dictionary-data/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 字典数据 - */ -export interface DictionaryData { - // 字典数据id - dictDataId?: number; - // 字典id - dictId?: number; - // 字典数据标识 - dictDataCode?: string; - // 字典数据名称 - dictDataName?: string; - // 预设字段(路由地址) - path?: string; - // 组件路径 - component?: string; - // 排序号 - sortNumber?: number; - // 备注 - comments?: string; - // 创建时间 - createTime?: string; -} - -/** - * 字典数据搜索条件 - */ -export interface DictionaryDataParam extends PageParam { - // 关键字 - keywords?: string; - // 字典标识 - dictCode?: string; - // 字典id - dictId?: number; -} diff --git a/dict/admin/src/api/system/dictionary/index.ts b/dict/admin/src/api/system/dictionary/index.ts deleted file mode 100644 index 84dcc4c..0000000 --- a/dict/admin/src/api/system/dictionary/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { Dictionary, DictionaryParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 查询字典列表 - */ -export async function listDictionaries(params?: DictionaryParam) { - const res = await request.get>( - SERVER_API_URL + '/system/dictionary', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加字典 - */ -export async function addDictionary(data: Dictionary) { - const res = await request.post>( - SERVER_API_URL + '/system/dictionary', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改字典 - */ -export async function updateDictionary(data: Dictionary) { - const res = await request.put>( - SERVER_API_URL + '/system/dictionary', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除字典 - */ -export async function removeDictionary(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/dictionary/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/dictionary/model/index.ts b/dict/admin/src/api/system/dictionary/model/index.ts deleted file mode 100644 index d72e7c2..0000000 --- a/dict/admin/src/api/system/dictionary/model/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * 字典 - */ -export interface Dictionary { - // 字典id - dictId?: number; - // 字典标识 - dictCode?: string; - // 字典名称 - dictName?: string; - // 排序号 - sortNumber?: number; - // 备注 - comments?: string; - // 创建时间 - createTime?: string; - type?: number; - tenantId?: number; -} - -/** - * 字典搜索条件 - */ -export interface DictionaryParam { - dictCode?: string; - dictName?: string; - type?: number; - tenantId?: number; -} diff --git a/dict/admin/src/api/system/domain/index.ts b/dict/admin/src/api/system/domain/index.ts deleted file mode 100644 index 82c050e..0000000 --- a/dict/admin/src/api/system/domain/index.ts +++ /dev/null @@ -1,119 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Domain, DomainParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询授权域名 - */ -export async function pageDomain(params: DomainParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/domain/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询授权域名列表 - */ -export async function listDomain(params?: DomainParam) { - const res = await request.get>( - SERVER_API_URL + '/system/domain', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加授权域名 - */ -export async function addDomain(data: Domain) { - const res = await request.post>( - SERVER_API_URL + '/system/domain', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改授权域名 - */ -export async function updateDomain(data: Domain) { - const res = await request.put>( - SERVER_API_URL + '/system/domain', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除授权域名 - */ -export async function removeDomain(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/domain/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除授权域名 - */ -export async function removeBatchDomain(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/domain/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询授权域名 - */ -export async function getDomain(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/domain/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据域名查询授权 - */ -export async function getByDomain(domain: string) { - const res = await request.get>( - SERVER_API_URL + '/system/domain/getByDomain/' + domain - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/domain/model/index.ts b/dict/admin/src/api/system/domain/model/index.ts deleted file mode 100644 index 89a73e4..0000000 --- a/dict/admin/src/api/system/domain/model/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 授权域名 - */ -export interface Domain { - // ID - id?: number; - // 域名 - domain?: string; - // 主机记录 - hostName?: string; - // 记录值 - hostValue?: string; - // 状态 - status?: number; - // 排序号 - sortNumber?: number; - // 用户ID - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - comments?: string; -} - -/** - * 授权域名搜索条件 - */ -export interface DomainParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/environment/index.ts b/dict/admin/src/api/system/environment/index.ts deleted file mode 100644 index 01d542b..0000000 --- a/dict/admin/src/api/system/environment/index.ts +++ /dev/null @@ -1,125 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Environment, EnvironmentParam } from './model/index'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询应用 - */ -export async function pageEnvironment(params?: EnvironmentParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/environment/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用列表 - */ -export async function listEnvironment(params?: EnvironmentParam) { - const res = await request.get>( - SERVER_API_URL + '/system/environment', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用 - */ -export async function getEnvironment(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/environment/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用 - */ -export async function updateEnvironment(data: Environment) { - const res = await request.put>( - SERVER_API_URL + '/system/environment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 排行榜 -export async function ranking(params?: EnvironmentParam) { - const res = await request.get>( - SERVER_API_URL + '/system/environment/ranking', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/environment/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 搜索历史 -export async function searchHistory(params?: String) { - const res = await request.get>( - SERVER_API_URL + '/system/environment/search-history', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 制作插件 - */ -export async function createEnvironment(data: Environment) { - const res = await request.post>( - SERVER_API_URL + '/system/environment/environment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/environment/model/index.ts b/dict/admin/src/api/system/environment/model/index.ts deleted file mode 100644 index daa916b..0000000 --- a/dict/admin/src/api/system/environment/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 插件 - */ -export interface Environment { - id?: number; - environmentName?: string; - environmentCode?: string; - brand?: string; - serverIp?: string; - modulesUrl?: string; - modulesApi?: string; - sortNumber?: number; - comments?: string; - status?: number; -} - -/** - * 插件搜索条件 - */ -export interface EnvironmentParam extends PageParam { - id: number; - environmentName: string; -} diff --git a/dict/admin/src/api/system/file/index.ts b/dict/admin/src/api/system/file/index.ts deleted file mode 100644 index 20d4334..0000000 --- a/dict/admin/src/api/system/file/index.ts +++ /dev/null @@ -1,250 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { FileRecord, FileRecordParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; -import { FILE_SERVER } from '@/config/setting'; - -/** - * 上传文件 - */ -export async function uploadFileLocal(file: File, AppId: number) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - FILE_SERVER + '/api/file/upload', - formData, - { - headers: { AppId } - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传文件 - */ -export async function uploadFileLocalByCompany(file: File, CompanyId: number) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - FILE_SERVER + '/api/file/upload', - formData, - { - headers: { CompanyId } - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传文件 - */ -export async function uploadFile(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/oss/upload', - formData - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传 base64 文件 - * @param base64 文件数据 - * @param fileName 文件名称 - */ -export async function uploadBase64File(base64: string, fileName?: string) { - const formData = new FormData(); - formData.append('base64', base64); - if (fileName) { - formData.append('fileName', fileName); - } - const res = await request.post>( - SERVER_API_URL + '/file/upload/base64', - formData - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传证书 - */ -export async function uploadCert(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/file/upload', - formData - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 分页查询文件上传记录 - */ -export async function pageFiles(params: FileRecordParam) { - const res = await request.get>>( - SERVER_API_URL + '/file/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询文件 - */ -export async function getFile(id: number) { - const res = await request.get>( - SERVER_API_URL + '/file/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除文件 - */ -export async function removeFile(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/file/remove/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除文件 - */ -export async function removeFiles(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/file/remove/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加文件 - */ -export async function addFiles(data: FileRecord) { - const res = await request.post>( - SERVER_API_URL + '/file', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改文件 - */ -export async function updateFiles(data: FileRecord) { - const res = await request.put>( - SERVER_API_URL + '/file', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传阿里云OSS - */ -export async function uploadOss(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/oss/upload', - formData - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传阿里云OSS - */ -export async function uploadOssAvatar(file: File, fileName: string) { - const formData = new FormData(); - formData.append('file', file, fileName); - const res = await request.post>( - SERVER_API_URL + '/oss/upload', - formData - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传阿里云OSS - */ -export async function uploadOssByGroupId(file: File, GroupId: string) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/oss/upload', - formData, - { - headers: { GroupId } - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 上传阿里云OSS - */ -export async function uploadOssByAppId(file: File, appId: string) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/oss/upload', - formData, - { - headers: { appId } - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/file/model/index.ts b/dict/admin/src/api/system/file/model/index.ts deleted file mode 100644 index 5a20f8b..0000000 --- a/dict/admin/src/api/system/file/model/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 文件上传记录 - */ -export interface FileRecord { - // id - id: number; - // 文件名称 - name?: string; - // 文件存储路径 - path?: string; - // 文件大小 - length?: number; - // 文件类型 - contentType?: string; - // 上传人id - createUserId?: number; - // 分组ID - groupId?: number; - groupName?: string; - // 上传时间 - createTime?: string; - // 描述 - comments?: string; - // 文件访问地址 - url?: string; - // 文件缩略图访问地址 - thumbnail?: string; - // 文件下载地址 - downloadUrl?: string; - // 上传人账号 - createUsername?: string; - // 上传人名称 - createNickname?: string; - // 是否编辑状态 - isUpdate?: boolean; - // 商品SKU索引 - index?: any; -} - -/** - * 文件上传记录查询参数 - */ -export interface FileRecordParam extends PageParam { - name?: string; - path?: string; - contentType?: string; - createNickname?: string; - groupId?: number; - groupName?: string; - count?: number; - page?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/login-record/index.ts b/dict/admin/src/api/system/login-record/index.ts deleted file mode 100644 index d96f0ca..0000000 --- a/dict/admin/src/api/system/login-record/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { LoginRecord, LoginRecordParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询登录日志 - */ -export async function pageLoginRecords(params: LoginRecordParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/login-record/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询登录日志列表 - */ -export async function listLoginRecords(params?: LoginRecordParam) { - const res = await request.get>( - SERVER_API_URL + '/system/login-record', - { params } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/login-record/model/index.ts b/dict/admin/src/api/system/login-record/model/index.ts deleted file mode 100644 index 0836eb5..0000000 --- a/dict/admin/src/api/system/login-record/model/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 登录日志 - */ -export interface LoginRecord { - // 登录日志id - id: number; - // 用户账号 - username: string; - // 操作系统 - os: string; - // 设备名称 - device: string; - // 浏览器类型 - browser: string; - // ip地址 - ip: string; - // 操作类型, 0登录成功, 1登录失败, 2退出登录, 3续签token - loginType: number; - // 备注 - comments: string; - // 操作时间 - createTime: string; - // 用户昵称 - nickname: string; -} - -/** - * 登录日志搜索条件 - */ -export interface LoginRecordParam extends PageParam { - username?: string; - nickname?: string; - createTimeStart?: string; - createTimeEnd?: string; - loginType?: number; -} diff --git a/dict/admin/src/api/system/menu/index.ts b/dict/admin/src/api/system/menu/index.ts deleted file mode 100644 index a2ae069..0000000 --- a/dict/admin/src/api/system/menu/index.ts +++ /dev/null @@ -1,172 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { Menu, MenuParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 查询菜单列表 - */ -export async function listMenus(params: MenuParam) { - const res = await request.get>( - SERVER_API_URL + '/system/menu', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加菜单 - */ -export async function addMenu(data: Menu) { - const res = await request.post>( - SERVER_API_URL + '/system/menu', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改菜单 - */ -export async function updateMenu(data: Menu) { - const res = await request.put>( - SERVER_API_URL + '/system/menu', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除菜单 - */ -export async function removeMenu(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/menu/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除菜单 - */ -export async function removeBatchMenu(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/menu/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 按顶级目录批量删除菜单 - */ -export async function deleteParentMenu(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/menu/deleteParentMenu/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - - -/** - * 安装应用 - */ -export async function installApp(data: any) { - const res = await request.post>( - SERVER_API_URL + '/system/menu/install', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 卸载应用 - */ -export async function uninstallApp(data: any) { - const res = await request.post>( - SERVER_API_URL + '/system/menu/uninstall', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 菜单克隆 -export async function clone(data: any) { - const res = await request.post>( - SERVER_API_URL + '/system/menu/clone', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 制作插件 - */ -export async function createPlug(data: Menu) { - const res = await request.post>( - SERVER_API_URL + '/system/menu/plug', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 安装插件 -export async function installPlug(id?: number) { - const res = await request.get>( - SERVER_API_URL + '/system/menu/install/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导入备份 - */ -export async function importSystemMenu(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/system/menu/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/menu/model/index.ts b/dict/admin/src/api/system/menu/model/index.ts deleted file mode 100644 index 4b52e95..0000000 --- a/dict/admin/src/api/system/menu/model/index.ts +++ /dev/null @@ -1,67 +0,0 @@ -/** - * 菜单 - */ -export interface Menu { - // 菜单id - menuId?: number; - // 上级id, 0是顶级 - parentId?: number; - // 菜单名称 - title: string; - // 菜单路由地址 - path: string; - // 菜单组件地址 - component: string; - // 模块API - modulesUrl?: string; - // 模块ID - modules?: string; - // 菜单类型, 0菜单, 1按钮 - menuType?: number; - // 排序号 - sortNumber?: number; - // 权限标识 - authority?: string; - // 菜单图标 - icon?: string; - // 是否隐藏, 0否,1是(仅注册路由不显示左侧菜单) - hide?: number; - // 路由元信息 - meta?: string; - // 创建时间 - createTime?: string; - // 子菜单 - children?: Menu[]; - // 权限树回显选中状态, 0未选中, 1选中 - checked?: boolean; - // - key?: number; - // - value?: number; - // - parentIds?: number[]; - // - openType?: number; - disabled?: boolean; - // - appId?: number; - // - tenantId?: number; - tenantName?: string; - companyId?: number; - // 插件Api - plugUrl?: string; - label?: string; -} - -/** - * 菜单搜索参数 - */ -export interface MenuParam { - title?: string; - path?: string; - authority?: string; - parentId?: number; - menuType?: number; - hide?: number; -} diff --git a/dict/admin/src/api/system/modules/index.ts b/dict/admin/src/api/system/modules/index.ts deleted file mode 100644 index 859a703..0000000 --- a/dict/admin/src/api/system/modules/index.ts +++ /dev/null @@ -1,118 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Modules, ModulesParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询角色module - */ -export async function pageModules(params) { - const res = await request.get>>( - SERVER_API_URL + '/system/modules/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询角色列表 - */ -export async function listModules(params?: ModulesParam) { - const res = await request.get>( - SERVER_API_URL + '/system/modules', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加角色 - */ -export async function addModules(data: Modules) { - const res = await request.post>( - SERVER_API_URL + '/system/modules', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改角色 - */ -export async function updateModules(data: Modules) { - const res = await request.put>( - SERVER_API_URL + '/system/modules', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除角色 - */ -export async function removeModules(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/modules/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除角色 - */ -export async function removeModulesBath(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/modules/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取角色分配的菜单 - */ -export async function listModulesMenus(modulesId?: number) { - const res = await request.get>( - SERVER_API_URL + '/system/modules-menu/' + modulesId - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改角色菜单 - */ -export async function updateModulesMenus(modulesId?: number, data?: number[]) { - const res = await request.put>( - SERVER_API_URL + '/system/modules-menu/' + modulesId, - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/modules/model/index.ts b/dict/admin/src/api/system/modules/model/index.ts deleted file mode 100644 index a1cda9b..0000000 --- a/dict/admin/src/api/system/modules/model/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 插件 - */ -export interface Modules { - id?: number; - modules?: string; - modulesUrl?: string; - sortNumber?: number; - comments?: string; - status?: number; -} - -/** - * 插件搜索条件 - */ -export interface ModulesParam extends PageParam { - id: number; - modules: string; - modulesUrl?: string; -} diff --git a/dict/admin/src/api/system/operation-record/index.ts b/dict/admin/src/api/system/operation-record/index.ts deleted file mode 100644 index 216e935..0000000 --- a/dict/admin/src/api/system/operation-record/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { OperationRecord, OperationRecordParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询操作日志 - */ -export async function pageOperationRecords(params: OperationRecordParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/operation-record/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询操作日志列表 - */ -export async function listOperationRecords(params?: OperationRecordParam) { - const res = await request.get>( - SERVER_API_URL + '/system/operation-record', - { params } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/operation-record/model/index.ts b/dict/admin/src/api/system/operation-record/model/index.ts deleted file mode 100644 index fc1425e..0000000 --- a/dict/admin/src/api/system/operation-record/model/index.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 操作日志 - */ -export interface OperationRecord { - // 操作日志id - id?: number; - // 用户id - userId?: number; - // 操作模块 - module: string; - // 操作功能 - description: string; - // 请求地址 - url: string; - // 请求方式 - requestMethod: string; - // 调用方法 - method: string; - // 请求参数 - params: string; - // 返回结果 - result: string; - // 异常信息 - error: string; - // 消耗时间, 单位毫秒 - spendTime: number; - // 操作系统 - os: string; - // 设备名称 - device: string; - // 浏览器类型 - browser: string; - // ip地址 - ip: string; - // 状态, 0成功, 1异常 - status: number; - // 操作时间 - createTime: string; - // 用户昵称 - nickname: string; - // 用户账号 - username: string; -} - -/** - * 操作日志搜索条件 - */ -export interface OperationRecordParam extends PageParam { - username?: string; - module?: string; - createTimeStart?: string; - createTimeEnd?: string; - status?: number; -} diff --git a/dict/admin/src/api/system/order/index.ts b/dict/admin/src/api/system/order/index.ts deleted file mode 100644 index 0b19d6b..0000000 --- a/dict/admin/src/api/system/order/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Order, OrderParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询订单 - */ -export async function pageOrder(params: OrderParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询订单列表 - */ -export async function listOrder(params?: OrderParam) { - const res = await request.get>( - SERVER_API_URL + '/system/order', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加订单 - */ -export async function addOrder(data: Order) { - const res = await request.post>( - SERVER_API_URL + '/system/order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改订单 - */ -export async function updateOrder(data: Order) { - const res = await request.put>( - SERVER_API_URL + '/system/order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除订单 - */ -export async function removeOrder(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/order/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除订单 - */ -export async function removeBatchOrder(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/order/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询订单 - */ -export async function getOrder(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/order/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/order/model/index.ts b/dict/admin/src/api/system/order/model/index.ts deleted file mode 100644 index 39647a7..0000000 --- a/dict/admin/src/api/system/order/model/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 订单 - */ -export interface Order { - // 订单号 - orderId?: number; - // 订单编号 - orderNo?: string; - // 订单类型,0产品 1插件 - type?: number; - // 下单渠道,0网站 1小程序 2其他 - channel?: number; - // 微信支付订单号 - transactionId?: string; - // 微信退款订单号 - refundOrder?: string; - // 使用的优惠券id - couponId?: number; - // 真实姓名 - realName?: string; - // 手机号码 - phone?: string; - // 订单总额 - totalPrice?: string; - // 减少的金额,使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格 - reducePrice?: string; - // 实际付款 - payPrice?: string; - // 用于统计 - price?: string; - // 价钱,用于积分赠送 - money?: string; - // 退款金额 - refundMoney?: string; - // 购买数量 - totalNum?: number; - // 0余额支付, 1微信支付,102微信Native,2会员卡支付,3支付宝,4现金,5POS机 - payType?: number; - // 0未付款,1已付款 - payStatus?: number; - // 0未完成,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 - orderStatus?: number; - // 优惠类型:0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡,5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡 - couponType?: number; - // 优惠说明 - couponDesc?: string; - // 二维码地址,保存订单号,支付成功后才生成 - qrcode?: string; - // 预约详情开始时间数组 - startTime?: string; - // 是否已开具发票:0未开发票,1已开发票,2不能开具发票 - isInvoice?: string; - // 发票流水号 - invoiceNo?: string; - // 支付时间 - payTime?: string; - // 退款时间 - refundTime?: string; - // 申请退款时间 - refundApplyTime?: string; - // 过期时间 - expirationTime?: string; - // 对账情况:0=未对账;1=已对账;3=已对账,金额对不上;4=未查询到该订单 - checkBill?: number; - // 订单是否已结算(0未结算 1已结算) - isSettled?: number; - // 系统版本号 0当前版本 value=其他版本 - version?: number; - // 用户id - userId?: number; - // 备注 - comments?: string; - // 排序号 - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 修改时间 - updateTime?: string; - // 创建时间 - createTime?: string; -} - -/** - * 订单搜索条件 - */ -export interface OrderParam extends PageParam { - orderId?: number; - type?: number; - payStatus?: number; - payType?: number; - isInvoice?: string; - week?: string; - keywords?: string; -} diff --git a/dict/admin/src/api/system/orderGoods/index.ts b/dict/admin/src/api/system/orderGoods/index.ts deleted file mode 100644 index ce37160..0000000 --- a/dict/admin/src/api/system/orderGoods/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { OrderGoods, OrderGoodsParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询订单商品 - */ -export async function pageOrderGoods(params: OrderGoodsParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/order-goods/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询订单商品列表 - */ -export async function listOrderGoods(params?: OrderGoodsParam) { - const res = await request.get>( - SERVER_API_URL + '/system/order-goods', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加订单商品 - */ -export async function addOrderGoods(data: OrderGoods) { - const res = await request.post>( - SERVER_API_URL + '/system/order-goods', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改订单商品 - */ -export async function updateOrderGoods(data: OrderGoods) { - const res = await request.put>( - SERVER_API_URL + '/system/order-goods', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除订单商品 - */ -export async function removeOrderGoods(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/order-goods/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除订单商品 - */ -export async function removeBatchOrderGoods(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/order-goods/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询订单商品 - */ -export async function getOrderGoods(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/order-goods/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/orderGoods/model/index.ts b/dict/admin/src/api/system/orderGoods/model/index.ts deleted file mode 100644 index ab180bf..0000000 --- a/dict/admin/src/api/system/orderGoods/model/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 订单商品 - */ -export interface OrderGoods { - // 订单号 - id?: number; - // 订单类型,0商城 1应用插件 - type?: number; - // 项目ID - itemId?: number; - // 实际付款 - payPrice?: string; - // 购买数量 - totalNum?: number; - // 0未付款,1已付款 - payStatus?: string; - // 0未完成,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 - orderStatus?: number; - // 预约详情开始时间数组 - startTime?: string; - // 是否已开具发票:0未开发票,1已开发票,2不能开具发票 - isInvoice?: string; - // 发票流水号 - invoiceNo?: string; - // 支付时间 - payTime?: string; - // 过期时间 - expirationTime?: string; - // 用户id - userId?: number; - // 备注 - comments?: string; - // 排序号 - sortNumber?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 修改时间 - updateTime?: string; - // 创建时间 - createTime?: string; -} - -/** - * 订单商品搜索条件 - */ -export interface OrderGoodsParam extends PageParam { - id?: number; - itemId?: number; - payStatus?: boolean; - userId?: number; - orderStatus?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/organization/index.ts b/dict/admin/src/api/system/organization/index.ts deleted file mode 100644 index 3557b1a..0000000 --- a/dict/admin/src/api/system/organization/index.ts +++ /dev/null @@ -1,73 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Organization, OrganizationParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询机构 - */ -export async function pageOrganizations(params: OrganizationParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/organization/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询机构列表 - */ -export async function listOrganizations(params?: OrganizationParam) { - const res = await request.get>( - SERVER_API_URL + '/system/organization', - { params } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加机构 - */ -export async function addOrganization(data: Organization) { - const res = await request.post>( - SERVER_API_URL + '/system/organization', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改机构 - */ -export async function updateOrganization(data: Organization) { - const res = await request.put>( - SERVER_API_URL + '/system/organization', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除机构 - */ -export async function removeOrganization(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/organization/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/organization/model/index.ts b/dict/admin/src/api/system/organization/model/index.ts deleted file mode 100644 index 1f9deaa..0000000 --- a/dict/admin/src/api/system/organization/model/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 机构 - */ -export interface Organization { - // 机构id - organizationId?: number; - // 上级id, 0是顶级 - parentId?: number; - // 机构名称 - organizationName?: string; - // 机构全称 - organizationFullName?: string; - // 机构代码 - organizationCode?: string; - // 机构类型(字典) - organizationType?: string; - // 排序号 - sortNumber?: number; - // 备注 - comments?: string; - // 创建时间 - createTime?: string; - // 机构类型名称 - organizationTypeName?: string; - // - key?: number; - // - value?: number; - // - title?: string; - children?: Organization[]; -} - -/** - * 机构搜索条件 - */ -export interface OrganizationParam extends PageParam { - organizationName?: string; - parentId?: number; -} diff --git a/dict/admin/src/api/system/parameter/index.ts b/dict/admin/src/api/system/parameter/index.ts deleted file mode 100644 index 9b8b72d..0000000 --- a/dict/admin/src/api/system/parameter/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Parameter, ParameterParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询应用参数 - */ -export async function pageParameter(params: ParameterParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/parameter/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用参数列表 - */ -export async function listParameter(params?: ParameterParam) { - const res = await request.get>( - SERVER_API_URL + '/system/parameter', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加应用参数 - */ -export async function addParameter(data: Parameter) { - const res = await request.post>( - SERVER_API_URL + '/system/parameter', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用参数 - */ -export async function updateParameter(data: Parameter) { - const res = await request.put>( - SERVER_API_URL + '/system/parameter', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用参数 - */ -export async function removeParameter(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/parameter/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用参数 - */ -export async function removeBatchParameter(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/parameter/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用参数 - */ -export async function getParameter(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/parameter/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/parameter/model/index.ts b/dict/admin/src/api/system/parameter/model/index.ts deleted file mode 100644 index ae3d159..0000000 --- a/dict/admin/src/api/system/parameter/model/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用参数 - */ -export interface Parameter { - // 自增ID - id?: number; - // 参数名称 - name?: string; - // 参数内容 - value?: string; - // 备注 - comments?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1待确认 - status?: number; - // 创建时间 - createTime?: string; - // 租户id - tenantId?: number; -} - -/** - * 应用参数搜索条件 - */ -export interface ParameterParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/payment/index.ts b/dict/admin/src/api/system/payment/index.ts deleted file mode 100644 index 20b218c..0000000 --- a/dict/admin/src/api/system/payment/index.ts +++ /dev/null @@ -1,121 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Payment, PaymentParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; -import type { Order } from '@/api/shop/order/model'; - -/** - * 分页查询支付方式 - */ -export async function pagePayment(params: PaymentParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/payment/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询支付方式列表 - */ -export async function listPayment(params?: PaymentParam) { - const res = await request.get>( - SERVER_API_URL + '/system/payment', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加支付方式 - */ -export async function addPayment(data: Payment) { - const res = await request.post>( - SERVER_API_URL + '/system/payment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改支付方式 - */ -export async function updatePayment(data: Payment) { - const res = await request.put>( - SERVER_API_URL + '/system/payment', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除支付方式 - */ -export async function removePayment(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/payment/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除支付方式 - */ -export async function removeBatchPayment(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/payment/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询支付方式 - */ -export async function getPayment(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/payment/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 生成支付二维码(微信native) - */ -export async function getNativeCode(data: Order) { - const res = await request.post>( - SERVER_API_URL + '/system/wx-native-pay/codeUrl', - data - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/payment/model/index.ts b/dict/admin/src/api/system/payment/model/index.ts deleted file mode 100644 index 07c4ee4..0000000 --- a/dict/admin/src/api/system/payment/model/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 支付方式 - */ -export interface Payment { - // ID - id?: number; - // 支付方式 - name?: string; - // 支付类型 - type?: number; - // 标识 - code?: string; - // 支付图标 - image?: string; - // 微信商户号类型 1普通商户2子商户 - wechatType?: number; - // 应用ID - appId?: string; - // 商户号 - mchId?: string; - // 设置APIv3密钥 - apiKey?: string; - // 证书文件 (CERT) - apiclientCert?: string; - // 证书文件 (KEY) - apiclientKey?: string; - // 商户证书序列号 - merchantSerialNumber?: string; - // 支付宝公钥 - pubKey?: string; - // 支付宝公钥ID - pubKeyId?: string; - // 支付结果通过 - notifyUrl?: string; - // 备注 - comments?: string; - // 文章排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0启用, 1禁用 - status?: boolean; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 支付方式搜索条件 - */ -export interface PaymentParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/plug/index.ts b/dict/admin/src/api/system/plug/index.ts deleted file mode 100644 index bd27986..0000000 --- a/dict/admin/src/api/system/plug/index.ts +++ /dev/null @@ -1,125 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Plug, PlugParam } from './model/index'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询应用 - */ -export async function pagePlug(params: PlugParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/plug/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用列表 - */ -export async function listPlug(params?: PlugParam) { - const res = await request.get>( - SERVER_API_URL + '/system/plug', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用 - */ -export async function getPlug(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/plug/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用 - */ -export async function updatePlug(data: Plug) { - const res = await request.put>( - SERVER_API_URL + '/system/plug', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 排行榜 -export async function ranking(params?: PlugParam) { - const res = await request.get>( - SERVER_API_URL + '/system/plug/ranking', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/plug/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -// 搜索历史 -export async function searchHistory(params?: String) { - const res = await request.get>( - SERVER_API_URL + '/system/plug/search-history', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 制作插件 - */ -export async function createPlug(data: Plug) { - const res = await request.post>( - SERVER_API_URL + '/system/plug/plug', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/plug/model/index.ts b/dict/admin/src/api/system/plug/model/index.ts deleted file mode 100644 index e67242f..0000000 --- a/dict/admin/src/api/system/plug/model/index.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 插件 - */ -export interface Plug { - plugId?: number; - plugName?: string; - plugCode?: string; - // 菜单id - menuId?: number; - // 上级id, 0是顶级 - parentId?: number; - // 菜单名称 - title?: string; - // 菜单路由地址 - path?: string; - // 菜单组件地址 - component?: string; - // 菜单类型, 0菜单, 1按钮 - menuType?: number; - // 排序号 - sortNumber?: number; - // 权限标识 - authority?: string; - // 菜单图标 - icon?: string; - // 是否隐藏, 0否,1是(仅注册路由不显示左侧菜单) - hide?: number; - // 路由元信息 - meta?: string; - score?: number; - price?: number; - // 创建时间 - createTime?: string; - // 子菜单 - children?: Plug[]; - // 权限树回显选中状态, 0未选中, 1选中 - checked?: boolean; - shortName?: string; - comments?: string; - content?: string; - // - key?: number; - // - value?: number; - // - parentIds?: number[]; - // - openType?: number; - // - userId?: number; - // - appId?: number; - status?: number; - tenantId?: number; -} - -/** - * 插件搜索条件 - */ -export interface PlugParam extends PageParam { - title?: string; - path?: string; - authority?: string; - parentId?: number; -} diff --git a/dict/admin/src/api/system/role/index.ts b/dict/admin/src/api/system/role/index.ts deleted file mode 100644 index 352e352..0000000 --- a/dict/admin/src/api/system/role/index.ts +++ /dev/null @@ -1,119 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Role, RoleParam } from './model'; -import type { Menu } from '../menu/model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询角色 - */ -export async function pageRoles(params: RoleParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/role/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询角色列表 - */ -export async function listRoles(params?: RoleParam) { - const res = await request.get>( - SERVER_API_URL + '/system/role', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加角色 - */ -export async function addRole(data: Role) { - const res = await request.post>( - SERVER_API_URL + '/system/role', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改角色 - */ -export async function updateRole(data: Role) { - const res = await request.put>( - SERVER_API_URL + '/system/role', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除角色 - */ -export async function removeRole(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/role/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除角色 - */ -export async function removeRoles(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/role/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取角色分配的菜单 - */ -export async function listRoleMenus(roleId?: number) { - const res = await request.get>( - SERVER_API_URL + '/system/role-menu/' + roleId - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改角色菜单 - */ -export async function updateRoleMenus(roleId?: number, data?: number[]) { - const res = await request.put>( - SERVER_API_URL + '/system/role-menu/' + roleId, - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/role/model/index.ts b/dict/admin/src/api/system/role/model/index.ts deleted file mode 100644 index d4c9a50..0000000 --- a/dict/admin/src/api/system/role/model/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 角色 - */ -export interface Role { - // 角色id - roleId?: number; - // 角色标识 - roleCode?: string; - // 角色名称 - roleName?: string; - sortNumber?: any; - // 备注 - comments?: any; - // 创建时间 - createTime?: string; -} - -/** - * 角色搜索条件 - */ -export interface RoleParam extends PageParam { - roleName?: string; - roleCode?: string; - comments?: string; -} diff --git a/dict/admin/src/api/system/setting/index.ts b/dict/admin/src/api/system/setting/index.ts deleted file mode 100644 index e7ca3c0..0000000 --- a/dict/admin/src/api/system/setting/index.ts +++ /dev/null @@ -1,153 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Setting, SettingParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询设置 - */ -export async function pageSetting(params: SettingParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/setting/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询设置列表 - */ -export async function listSetting(params?: SettingParam) { - const res = await request.get>( - SERVER_API_URL + '/system/setting', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询 - */ -export async function getSetting(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/setting/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据key查询 - */ -export async function getSettingByKey(key: string) { - const res = await request.get>( - SERVER_API_URL + '/system/setting/getByKey/' + key - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加设置 - */ -export async function addSetting(data: Setting) { - const res = await request.post>( - SERVER_API_URL + '/system/setting', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改设置 - */ -export async function updateSetting(data: Setting) { - const res = await request.put>( - SERVER_API_URL + '/system/setting', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据Key修改设置 - */ -export async function updateSettingByKey(data: Setting) { - const res = await request.put>( - SERVER_API_URL + '/system/setting/updateByKey', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除设置 - */ -export async function removeSetting(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/setting/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除设置 - */ -export async function removeBatchSetting(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/setting/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/setting/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/setting/model/index.ts b/dict/admin/src/api/system/setting/model/index.ts deleted file mode 100644 index c0bee23..0000000 --- a/dict/admin/src/api/system/setting/model/index.ts +++ /dev/null @@ -1,127 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 系统设置 - */ -export interface Setting { - // 公共字段 - settingId?: number; - settingKey?: string; - content?: string; - comments?: string; - tenantName?: string; - tenantId?: string | null; - - // 设置信息 - siteName?: string; - fullName?: string; - tenantCode?: string; - domain?: string; - remarks?: string; - icp?: string; - copyright?: string; - keyword?: string; - phone?: string; - company?: string; - address?: string; - email?: string; - support?: string; - logo?: string; - - // 注册设置 - roleId?: number; - openWxAuth?: number; - openWxBindPhone?: number; - openWxofficialAuth?: number; - openWxofficialBindPhone?: number; - tokenExpireTime?: number; - - // 短信设置 - type?: number; - accessKeyId?: string; - accessKeySecret?: string; - sign?: string; - isNoticeUser?: string; - userTemplateId?: string; - merchantTemplateId?: string; - isNoticeMerchant?: string; - merchantMobiles?: string; - - // 支付设置 - payMethod?: string; - signMode?: string; - alipayAppId?: string; - signType?: string; - appCertPublicKey?: string; - alipayCertPublicKey?: string; - alipayRootCert?: string; - alipayPublicKey?: string; - privateKey?: string; - decryptKey?: string; - balanceIsEnable?: boolean; - wechatIsEnable?: boolean; - alipayIsEnable?: boolean; - wechatType?: string; - mchId?: number; - wechatAppId?: string; - wechatApiKey?: string; - apiclientCert?: string; - apiclientKey?: string; - spAppId?: string; - spMchId?: string; - spApiKey?: string; - spSubAppId?: string; - spSubMchId?: string; - spApiclientCert?: string; - spApiclientKey?: string; - merchantSerialNumber?: string; - - // 微信公众号/小程序设置 - appId?: string; - appSecret?: string; - wxOfficialAccount?: string; - originalId?: string; - - // 企业微信参数 - suiteId?: string; - secret?: string; - corpId?: string; - token?: string; - encodingAESKey?: string; - - // 打印设置 - isOpenPrinter?: string; - printerType?: string; - printerStatus?: string; - printerUser?: string; - printerUserKey?: string; - printerCode?: string; - printerKey?: string; - printerTimes?: string; - - // chatGPT - chatKey?: string; - - // 清除缓存 - clearCache?: string; - - // 主题 - theme?: string; - - // 云存储 - uploadMethod?: any; - fileUrl?: string; - bucketName?: string; - bucketEndpoint?: string; - bucketDomain?: string; - // accessKeyId?: string; 引用上面的 - // accessKeySecret?: string; 引用上面的 -} - -/** - * 系统设置搜索条件 - */ -export interface SettingParam extends PageParam { - settingId?: number; - settingKey?: string; -} diff --git a/dict/admin/src/api/system/tenant/index.ts b/dict/admin/src/api/system/tenant/index.ts deleted file mode 100644 index f09388d..0000000 --- a/dict/admin/src/api/system/tenant/index.ts +++ /dev/null @@ -1,191 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Tenant, TenantParam } from './model'; -import { Menu } from '@/api/system/menu/model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询租户 - */ -export async function pageTenant(params: TenantParam) { - // 租户列表查询需要传一个key - // params.tenantCode = 'ZAcxbdmDQFwUKC3e'; - const res = await request.get>>( - SERVER_API_URL + '/system/tenant/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询租户资料 - */ -export async function profile(params?: TenantParam) { - const res = await request.get>( - SERVER_API_URL + '/system/tenant/profile', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询租户列表 - */ -export async function listTenant(params?: TenantParam) { - const res = await request.get>( - SERVER_API_URL + '/system/tenant', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询 - */ -export async function getTenant(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/tenant/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加租户 - */ -export async function addTenant(data: Tenant) { - const res = await request.post>( - SERVER_API_URL + '/system/tenant', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改租户 - */ -export async function updateTenant(data: Tenant) { - const res = await request.put>( - SERVER_API_URL + '/system/tenant', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除租户 - */ -export async function removeTenant(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/tenant/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除租户 - */ -export async function removeBatchTenant(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/tenant/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 重置用户密码 - */ -export async function updateTenantPassword( - tenantId?: number, - password = 'gxwebsoft.com' -) { - const res = await request.put>( - SERVER_API_URL + '/system/tenant/password', - { - tenantId, - password - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/tenant/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 租户初始化 - */ -export async function initialization(roleId?: number) { - const res = await request.get>( - SERVER_API_URL + '/system/tenant/role-menu/' + roleId - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据code查询租户 - */ -export async function getByCode(code: string) { - const res = await request.get( - SERVER_API_URL + '/system/tenant/getByCode/' + code - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/tenant/model/index.ts b/dict/admin/src/api/system/tenant/model/index.ts deleted file mode 100644 index de007b2..0000000 --- a/dict/admin/src/api/system/tenant/model/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { PageParam } from '@/api'; -import { Company } from '@/api/system/company/model'; - -/** - * 租户 - */ -export interface Tenant { - // 租户id - tenantId?: number; - // 租户名称 - tenantName?: string; - // 应用ID - appId?: string; - // 应用秘钥 - appSecret?: string; - // logo - logo?: string; - // 企业名称 - companyName?: string; - // 关联客户ID - companyId?: string; - // 备注 - comments?: string; - // 创建时间 - createTime?: string; - // 状态 - status?: number; - // - password?: string; - // 企业信息 - company?: Company | null; -} - -/** - * 租户搜索条件 - */ -export interface TenantParam extends PageParam { - tenantName?: string; - appId?: string; - companyId?: number; - companyName?: string; - version?: string; - province?: string; - city?: string; - tenantCode?: string; -} diff --git a/dict/admin/src/api/system/url/index.ts b/dict/admin/src/api/system/url/index.ts deleted file mode 100644 index 054c5d3..0000000 --- a/dict/admin/src/api/system/url/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Url, UrlParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询应用域名 - */ -export async function pageUrl(params: UrlParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/url/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询应用域名列表 - */ -export async function listUrl(params?: UrlParam) { - const res = await request.get>( - SERVER_API_URL + '/system/url', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加应用域名 - */ -export async function addUrl(data: Url) { - const res = await request.post>( - SERVER_API_URL + '/system/url', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改应用域名 - */ -export async function updateUrl(data: Url) { - const res = await request.put>( - SERVER_API_URL + '/system/url', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除应用域名 - */ -export async function removeUrl(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/url/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除应用域名 - */ -export async function removeBatchUrl(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/url/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询应用域名 - */ -export async function getUrl(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/url/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/url/model/index.ts b/dict/admin/src/api/system/url/model/index.ts deleted file mode 100644 index e5f74d6..0000000 --- a/dict/admin/src/api/system/url/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 应用域名 - */ -export interface Url { - // 自增ID - id?: number; - // 域名类型 - type?: string; - // 域名 - domain?: string; - // 账号 - account?: string; - // 密码 - password?: string; - // 二维码 - qrcode?: string; - // 备注 - comments?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0正常, 1待确认 - status?: number; - // 创建时间 - createTime?: string; - // 租户id - tenantId?: number; -} - -/** - * 应用域名搜索条件 - */ -export interface UrlParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/user-collection/index.ts b/dict/admin/src/api/system/user-collection/index.ts deleted file mode 100644 index 85786a0..0000000 --- a/dict/admin/src/api/system/user-collection/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserCollection, UserCollectionParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询我的收藏 - */ -export async function pageUserCollection(params: UserCollectionParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-collection/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询我的收藏列表 - */ -export async function listUserCollection(params?: UserCollectionParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-collection', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加我的收藏 - */ -export async function addUserCollection(data: UserCollection) { - const res = await request.post>( - SERVER_API_URL + '/system/user-collection', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改我的收藏 - */ -export async function updateUserCollection(data: UserCollection) { - const res = await request.put>( - SERVER_API_URL + '/system/user-collection', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除我的收藏 - */ -export async function removeUserCollection(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-collection/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除我的收藏 - */ -export async function removeBatchUserCollection(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-collection/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询我的收藏 - */ -export async function getUserCollection(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/user-collection/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/user-collection/model/index.ts b/dict/admin/src/api/system/user-collection/model/index.ts deleted file mode 100644 index ebd88c9..0000000 --- a/dict/admin/src/api/system/user-collection/model/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 我的收藏 - */ -export interface UserCollection { - // 主键ID - id?: number; - // 租户ID - tid?: number; - // 用户ID - userId?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; -} - -/** - * 我的收藏搜索条件 - */ -export interface UserCollectionParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/user-file/index.ts b/dict/admin/src/api/system/user-file/index.ts deleted file mode 100644 index 67a9c22..0000000 --- a/dict/admin/src/api/system/user-file/index.ts +++ /dev/null @@ -1,89 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserFile, UserFileParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询用户文件 - */ -export async function pageUserFiles(params: UserFileParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-file/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询用户文件列表 - */ -export async function listUserFiles(params: UserFileParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-file', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加用户文件 - */ -export async function addUserFile(data: UserFile) { - const res = await request.post>( - SERVER_API_URL + '/system/user-file', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户文件 - */ -export async function updateUserFile(data: UserFile) { - const res = await request.put>( - SERVER_API_URL + '/system/user-file', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除用户文件 - */ -export async function removeUserFile(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-file/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除用户文件 - */ -export async function removeUserFiles(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-file/batch', - { data } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/user-file/model/index.ts b/dict/admin/src/api/system/user-file/model/index.ts deleted file mode 100644 index ca51256..0000000 --- a/dict/admin/src/api/system/user-file/model/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { PageParam } from '@/api'; - -/** - * 用户文件 - */ -export interface UserFile { - // id - id?: number; - // 用户id - userId?: number; - // 文件名称 - name?: string; - // 是否是文件夹, 0否, 1是 - isDirectory?: number; - // 上级id - parentId?: number; - // 文件存储路径 - path?: string; - // 文件大小 - length?: number; - // 文件类型 - contentType?: string; - // 上传时间 - createTime?: string; - // 文件访问地址 - url?: string; - // 文件缩略图访问地址 - thumbnail?: string; - // 文件下载地址 - downloadUrl?: string; -} - -/** - * 用户文件查询参数 - */ -export interface UserFileParam extends PageParam { - name?: string; - parentId?: number; -} diff --git a/dict/admin/src/api/system/user-grade/index.ts b/dict/admin/src/api/system/user-grade/index.ts deleted file mode 100644 index c8df87c..0000000 --- a/dict/admin/src/api/system/user-grade/index.ts +++ /dev/null @@ -1,120 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Grade, GradeParam } from '@/api/user/grade/model'; -import { SERVER_API_URL } from '@/config/setting'; -/** - * 分页查询仓库 - */ -export async function pageGrade(params: GradeParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-grade/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询仓库列表 - */ -export async function listGrade(params?: GradeParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-grade', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加仓库 - */ -export async function addGrade(data: Grade) { - const res = await request.post>( - SERVER_API_URL + '/system/user-grade', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改仓库 - */ -export async function updateGrade(data: Grade) { - const res = await request.put>( - SERVER_API_URL + '/system/user-grade', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 绑定仓库 - */ -export async function bindGrade(data: Grade) { - const res = await request.put>( - SERVER_API_URL + '/system/user-grade/bind', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量添加设备 - */ -export async function addBatchGrade(data: Grade[]) { - const res = await request.post>( - SERVER_API_URL + '/system/user-grade/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除仓库 - */ -export async function removeGrade(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-grade/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除仓库 - */ -export async function removeBatchGrade(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-grade/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/user-grade/model/index.ts b/dict/admin/src/api/system/user-grade/model/index.ts deleted file mode 100644 index c4d9cc4..0000000 --- a/dict/admin/src/api/system/user-grade/model/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { PageParam } from '@/api'; - -export interface Grade { - gradeId?: number; - name?: string; - weight?: string; - upgrade?: string; - equity?: string; - commission?: string; - status?: number; - comments?: string; - sortNumber?: number; - userId?: number; - deleted?: number; - tenantId?: number; - createTime?: string; - updateTime?: string; -} - -/** - * 搜索条件 - */ -export interface GradeParam extends PageParam { - gradeId?: number; - name?: string; - status?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/user-group/index.ts b/dict/admin/src/api/system/user-group/index.ts deleted file mode 100644 index 6e2aca9..0000000 --- a/dict/admin/src/api/system/user-group/index.ts +++ /dev/null @@ -1,120 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Group, GroupParam } from '@/api/system/user-group/model'; -import { SERVER_API_URL } from '@/config/setting'; -/** - * 分页查询仓库 - */ -export async function pageGroup(params: GroupParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-group/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询仓库列表 - */ -export async function listGroup(params?: GroupParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-group', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加仓库 - */ -export async function addGroup(data: Group) { - const res = await request.post>( - SERVER_API_URL + '/system/user-group', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改仓库 - */ -export async function updateGroup(data: Group) { - const res = await request.put>( - SERVER_API_URL + '/system/user-group', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 绑定仓库 - */ -export async function bindGroup(data: Group) { - const res = await request.put>( - SERVER_API_URL + '/system/user-group/bind', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量添加设备 - */ -export async function addBatchGroup(data: Group[]) { - const res = await request.post>( - SERVER_API_URL + '/system/user-group/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除仓库 - */ -export async function removeGroup(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-group/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除仓库 - */ -export async function removeBatchGroup(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-group/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/user-group/model/index.ts b/dict/admin/src/api/system/user-group/model/index.ts deleted file mode 100644 index dc858cb..0000000 --- a/dict/admin/src/api/system/user-group/model/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { PageParam } from '@/api'; - -export interface Group { - groupId?: number; - name?: string; - status?: number; - comments?: any; - sortNumber?: number; - deleted?: number; - tenantId?: number; - createTime?: string; - updateTime?: string; -} - -/** - * 搜索条件 - */ -export interface GroupParam extends PageParam { - groupId?: number; - name?: string; - status?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/user/index.ts b/dict/admin/src/api/system/user/index.ts deleted file mode 100644 index 3817ff1..0000000 --- a/dict/admin/src/api/system/user/index.ts +++ /dev/null @@ -1,298 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { User, UserParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询用户 - */ -export async function pageUsers(params: UserParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询用户列表 - */ -export async function listUsers(params?: UserParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询用户列表 - */ -export async function getStaffs(params?: UserParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询用户列表 - */ -export async function getCompanyList(params?: UserParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询用户 - */ -export async function getUser(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/user/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加用户 - */ -export async function addUser(data: User) { - const res = await request.post>( - SERVER_API_URL + '/system/user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加管理员用户 - * @param data - */ -export async function addAdminUser(data: User) { - const res = await request.post>( - SERVER_API_URL + '/system/user/addAdminUser', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户 - */ -export async function updateUser(data: User) { - const res = await request.put>( - SERVER_API_URL + '/system/user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除用户 - */ -export async function removeUser(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除用户 - */ -export async function removeUsers(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户状态 - */ -export async function updateUserStatus(userId?: number, status?: number) { - const res = await request.put>( - SERVER_API_URL + '/system/user/status', - { - userId, - status - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改推荐状态 - */ -export async function updateUserRecommend(form) { - const res = await request.put>( - SERVER_API_URL + '/system/user/recommend', - form - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 重置用户密码 - */ -export async function updateUserPassword(userId?: number, password = '123456') { - const res = await request.put>( - SERVER_API_URL + '/system/user/password', - { - userId, - password - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导入用户 - */ -export async function importUsers(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/system/user/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导入经销商 - */ -export async function importShopAdmins(file: File) { - const formData = new FormData(); - formData.append('file', file); - const res = await request.post>( - SERVER_API_URL + '/shop/admin/import', - formData - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查用户是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/user/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 统计用户余额 - */ -export async function countUserBalance(params?: UserParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user/countUserBalance', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 选择管理员账号登录 - * @param params - */ -export async function listAdminsByPhoneAll(params?: UserParam){ - const res = await request.get>( - SERVER_API_URL + '/system/user/listAdminsByPhoneAll', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 导出用户列表 - */ -export async function exportUsers(params?: UserParam) { - const res = await request.get( - SERVER_API_URL + '/system/user/export', - { - params, - responseType: 'blob' - } - ); - return res.data; -} diff --git a/dict/admin/src/api/system/user/model/count.ts b/dict/admin/src/api/system/user/model/count.ts deleted file mode 100644 index 82442c2..0000000 --- a/dict/admin/src/api/system/user/model/count.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 用户 - */ -export interface Count { - balance?: string; -} - -/** - * 用户搜索条件 - */ -export interface UserParam extends PageParam { - organizationId?: number; -} diff --git a/dict/admin/src/api/system/user/model/index.ts b/dict/admin/src/api/system/user/model/index.ts deleted file mode 100644 index be3b50d..0000000 --- a/dict/admin/src/api/system/user/model/index.ts +++ /dev/null @@ -1,161 +0,0 @@ -import type { PageParam } from '@/api'; -import type { Role } from '../../role/model'; -import type { Menu } from '../../menu/model'; -import { Company } from '@/api/system/company/model'; - -/** - * 用户 - */ -export interface User { - // 账号类型 - type?: number; - // 用户id - userId?: number; - // 账号 - username?: string; - // 密码 - password?: string; - password2?: string; - // 昵称 - nickname?: string; - openId?: string; - officeOpenid?: string; - sessionKey?: string; - // 别名 - alias?: string; - // 头像 - avatar?: string; - // 性别(字典) - sex?: string; - // 手机号 - phone?: string; - // 脱敏手机号 - mobile?: string; - // 邮箱 - email?: string; - // 出生日期 - birthday?: string; - age?: number; - // 详细地址 - address?: string; - longitude?: string; - latitude?: string; - // 会员等级ID - gradeId?: number; - // 个人简介 - introduction?: string; - // 机构id - organizationId?: number; - // 状态, 0正常, 1冻结 - status?: number; - // 性别名称 - sexName?: string; - province?: string; - city?: string; - region?: string; - // 机构名称 - organizationName?: string; - // 角色列表 - roles?: Role[]; - roleCode?: string; - roleId?: number; - roleName?: string; - // 权限列表 - authorities?: Menu[]; - payTime?: string; - deliveryTime?: string; - receiptTime?: string; - merchantId?: number; - // 可管理的商户 - merchants?: string; - // 创建时间 - createTime?: string; - // 租户ID - tenantId?: number; - // 租户名称 - tenantName?: string; - logo?: string; - companyId?: number; - companyInfo?: Company; - planId?: number; - code?: string; - smsCode?: string; - // - remember?: boolean; - balance?: number; - points?: number; - payMoney?: number; - setting?: string; - realName?: string; - companyName?: string; - merchantName?: string; - merchantAvatar?: string; - gradeName?: string; - idCard?: string; - comments?: string; - recommend?: number; - system?: any; - // 头像地址 - avatarUrl?: string; - // 1男,2女 - gender?: string; - // 国家 - country?: string; - // 邮箱是否验证, 0否, 1是 - emailVerified?: number; - // 注册时间 - addTime?: number; - // - idcard?: string; - // - truename?: string; - // 是否管理员:1是;2否 - isAdmin?: boolean; - // 客户端ID - clientId?: string; - // 注册来源客户端 (APP、H5、小程序等) - platform?: string; - // 排序 - sortNumber?: number; - isSuperAdmin?: boolean; - deleted?: number; - // 克隆的模板ID - templateId?: number; - // 是否安装 - installed?: boolean; - label?: string; - value?: number; - // 关注数量 - followers?: number; - // 推荐人ID - dealerId?: number; -} - -/** - * 用户搜索条件 - */ -export interface UserParam extends PageParam { - keywords?: any; - type?: any; - userId?: number; - username?: string; - nickname?: string; - realName?: string; - gradeId?: unknown; - gradeName?: string; - companyName?: string; - city?: string; - cityMate?: string; - sex?: string; - phone?: string; - status?: number; - organizationId?: number; - parentId?: number; - sexName?: string; - roleId?: string; - isAdmin?: number; - isSuperAdmin?: boolean; - showProfile?: boolean; - isStaff?: boolean; - templateId?: number; -} diff --git a/dict/admin/src/api/system/userOauth/index.ts b/dict/admin/src/api/system/userOauth/index.ts deleted file mode 100644 index 0818140..0000000 --- a/dict/admin/src/api/system/userOauth/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type {ApiResult, PageResult} from '@/api'; -import type {UserOauth, UserOauthParam} from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询第三方用户信息表 - */ -export async function pageUserOauth(params: UserOauthParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-oauth/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询第三方用户信息表列表 - */ -export async function listUserOauth(params?: UserOauthParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-oauth', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加第三方用户信息表 - */ -export async function addUserOauth(data: UserOauth) { - const res = await request.post>( - SERVER_API_URL + '/system/user-oauth', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改第三方用户信息表 - */ -export async function updateUserOauth(data: UserOauth) { - const res = await request.put>( - SERVER_API_URL + '/system/user-oauth', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除第三方用户信息表 - */ -export async function removeUserOauth(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-oauth/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除第三方用户信息表 - */ -export async function removeBatchUserOauth(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-oauth/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询第三方用户信息表 - */ -export async function getUserOauth(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/user-oauth/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/userOauth/model/index.ts b/dict/admin/src/api/system/userOauth/model/index.ts deleted file mode 100644 index 4540cc1..0000000 --- a/dict/admin/src/api/system/userOauth/model/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 第三方用户信息表 - */ -export interface UserOauth { - // 主键ID - id?: number; - // 用户ID - userId?: number; - // 第三方登陆类型(MP-WEIXIN) - oauthType?: string; - // 第三方用户唯一标识 (uid openid) - oauthId?: string; - // 微信unionID - unionid?: string; - // 排序(数字越小越靠前) - sortNumber?: number; - // 备注 - comments?: string; - // 状态, 0正常, 1冻结 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 第三方用户信息表搜索条件 - */ -export interface UserOauthParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/userRole/index.ts b/dict/admin/src/api/system/userRole/index.ts deleted file mode 100644 index a78ae49..0000000 --- a/dict/admin/src/api/system/userRole/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { UserRole, UserRoleParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 查询用户列表 - */ -export async function listUserRole(params?: UserRoleParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-role', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户角色 - */ -export async function updateUserRole(data: UserRole) { - const res = await request.put>( - SERVER_API_URL + '/system/user-role', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加用户角色 - */ -export async function addUserRole(data: UserRole) { - const res = await request.post>( - SERVER_API_URL + '/system/user-role', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/userRole/model/index.ts b/dict/admin/src/api/system/userRole/model/index.ts deleted file mode 100644 index 6a04ca3..0000000 --- a/dict/admin/src/api/system/userRole/model/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 用户 - */ -export interface UserRole { - id?: number; - // 用户id - userId?: number; - // 角色ID - roleId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; - // 角色名称 - roleName?: string; - // 租户ID - tenantId?: number; -} - -/** - * 用户搜索条件 - */ -export interface UserRoleParam extends PageParam { - keywords?: any; - roleId?: number; - userId?: number; - userIds?: any; -} diff --git a/dict/admin/src/api/system/userVerify/index.ts b/dict/admin/src/api/system/userVerify/index.ts deleted file mode 100644 index 4f5e0d2..0000000 --- a/dict/admin/src/api/system/userVerify/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserVerify, UserVerifyParam } from './model'; -import {SERVER_API_URL} from '@/config/setting'; - -/** - * 分页查询实名认证 - */ -export async function pageUserVerify(params: UserVerifyParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-verify/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询实名认证列表 - */ -export async function listUserVerify(params?: UserVerifyParam) { - const res = await request.get>( - SERVER_API_URL + '/system/user-verify', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加实名认证 - */ -export async function addUserVerify(data: UserVerify) { - const res = await request.post>( - SERVER_API_URL + '/system/user-verify', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改实名认证 - */ -export async function updateUserVerify(data: UserVerify) { - const res = await request.put>( - SERVER_API_URL + '/system/user-verify', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除实名认证 - */ -export async function removeUserVerify(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-verify/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除实名认证 - */ -export async function removeBatchUserVerify(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-verify/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询实名认证 - */ -export async function getUserVerify(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/user-verify/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/userVerify/model/index.ts b/dict/admin/src/api/system/userVerify/model/index.ts deleted file mode 100644 index c13c863..0000000 --- a/dict/admin/src/api/system/userVerify/model/index.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 实名认证 - */ -export interface UserVerify { - // 自增ID - id?: number; - // 用户ID - userId?: number; - // 类型, 0个人, 1企业 - type?: number; - // 主体名称 - name?: string; - // 营业执照号码 - zzCode?: string; - // 营业执照 - zzImg?: string; - // 真实姓名 - realName?: string; - // 手机号码 - phone?: string; - // 证件号码 - idCard?: string; - // 出生日期 - birthday?: string; - // 正面 - sfz1?: string; - // 反面 - sfz2?: string; - // 机构名称 - organizationName?: string; - // 备注 - comments?: string; - // 状态, 0在线, 1离线 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 实名认证搜索条件 - */ -export interface UserVerifyParam extends PageParam { - id?: number; - type?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/version/index.ts b/dict/admin/src/api/system/version/index.ts deleted file mode 100644 index aba95d8..0000000 --- a/dict/admin/src/api/system/version/index.ts +++ /dev/null @@ -1,119 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Version, VersionParam } from './model'; -import type { Menu } from '../menu/model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询角色 - */ -export async function pageVersion(params: VersionParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/version/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询角色列表 - */ -export async function listVersion(params?: VersionParam) { - const res = await request.get>( - SERVER_API_URL + '/system/version', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加角色 - */ -export async function addVersion(data: Version) { - const res = await request.post>( - SERVER_API_URL + '/system/version', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改角色 - */ -export async function updateVersion(data: Version) { - const res = await request.put>( - SERVER_API_URL + '/system/version', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除角色 - */ -export async function removeVersion(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/version/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除角色 - */ -export async function removeVersions(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/version/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 获取角色分配的菜单 - */ -export async function listVersionMenus(versionId?: number) { - const res = await request.get>( - SERVER_API_URL + '/system/version-menu/' + versionId - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改角色菜单 - */ -export async function updateVersionMenus(versionId?: number, data?: number[]) { - const res = await request.put>( - SERVER_API_URL + '/system/version-menu/' + versionId, - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/version/model/index.ts b/dict/admin/src/api/system/version/model/index.ts deleted file mode 100644 index 8899e2f..0000000 --- a/dict/admin/src/api/system/version/model/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { PageParam } from '@/api'; - -export interface Version { - id?: number; - versionName?: string; - versionCode?: string; - vueDownloadUrl?: string; - androidDownloadUrl?: string; - iosDownloadUrl?: string; - updateInfo?: any; - isHard?: boolean; - isHot?: boolean; - status?: number; - comments?: string; - tenantId?: number; - createTime?: string; -} - -/** - * 角色搜索条件 - */ -export interface VersionParam extends PageParam { - versionName?: string; - versionCode?: string; - comments?: string; -} diff --git a/dict/admin/src/api/system/website/field/index.ts b/dict/admin/src/api/system/website/field/index.ts deleted file mode 100644 index 9380fcc..0000000 --- a/dict/admin/src/api/system/website/field/index.ts +++ /dev/null @@ -1,162 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { - Config, - WebsiteField, - WebsiteFieldParam -} from '@/api/system/website/field/model'; -import {SERVER_API_URL, TEMPLATE_ID} from '@/config/setting'; - -/** - * 分页查询项目参数 - */ -export async function pageWebsiteField(params: WebsiteFieldParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/website-field/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询项目参数列表 - */ -export async function listWebsiteField(params?: WebsiteFieldParam) { - const res = await request.get>( - SERVER_API_URL + '/system/website-field', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询项目参数 - */ -export async function getWebsiteField(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/website-field/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加项目参数 - */ -export async function addWebsiteField(data: WebsiteField) { - const res = await request.post>( - SERVER_API_URL + '/system/website-field', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改项目参数 - */ -export async function updateWebsiteField(data: WebsiteField) { - const res = await request.put>( - SERVER_API_URL + '/system/website-field', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除项目参数 - */ -export async function removeWebsiteField(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/website-field/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除项目参数 - */ -export async function removeBatchWebsiteField(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/website-field/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/website-field/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询项目参数列表 - */ -export async function configWebsiteField(params?: WebsiteFieldParam) { - const res = await request.get>( - 'https://cms-api.websoft.top/api/cms/cms-website-field/config', - { - params, - headers: { - TenantId: TEMPLATE_ID - } - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 恢复项目参数 - */ -export async function undeleteWebsiteField(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/cms/website-field/undelete/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/website/field/model/index.ts b/dict/admin/src/api/system/website/field/model/index.ts deleted file mode 100644 index cf32e49..0000000 --- a/dict/admin/src/api/system/website/field/model/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 网站参数 - */ -export interface WebsiteField { - id?: number; - name?: string; - value?: string; - comments?: string; - userId?: number; - defaultValue?: string; - modifyRange?: string; - type?: number; - status?: any; - sortNumber?: any; - createTime?: string; - deleted?: number; -} - -// 约定的网站参数名称 -export interface WebsiteParam { - // 网站名称 - site_logo?: string; - // 登录页面标题 - login_name?: string; - // 登录页面的背景图片 - login_bg_img?: string; -} - -// 约定的小程序参数名称 -export interface MpWeixinParam { - // 小程序LOGO - site_logo?: string; - // 我的页面顶部背景图片 - mp_user_top?: string; -} - -/** - * 网站参数搜索条件 - */ -export interface WebsiteFieldParam extends PageParam { - id?: number; - userId?: number; - name?: string; - websiteId?: number; -} - -export interface Config { - siteName?: string; - siteLogo?: string; - domain?: string; - icpNo?: string; - copyright?: string; - loginBgImg?: string; - address?: string; - tel?: string; - kefu2?: string; - kefu1?: string; - email?: string; - loginTitle?: string; - sysLogo?: string; -} diff --git a/dict/admin/src/api/system/website/index.ts b/dict/admin/src/api/system/website/index.ts deleted file mode 100644 index 8afbfbf..0000000 --- a/dict/admin/src/api/system/website/index.ts +++ /dev/null @@ -1,169 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Website, WebsiteParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 获取网站信息 - */ -export async function getSiteInfo() { - const res = await request.get>( - SERVER_API_URL + '/system/website/getSiteInfo' - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 清除缓存 - */ -export async function removeSiteInfoCache(key?: string) { - const res = await request.delete>( - SERVER_API_URL + '/system/website/clearSiteInfo/' + key - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 分页查询网站 - */ -export async function pageWebsite(params: WebsiteParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/website/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询网站列表 - */ -export async function listWebsite(params?: WebsiteParam) { - const res = await request.get>( - SERVER_API_URL + '/system/website', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加网站 - */ -export async function addWebsite(data: Website) { - const res = await request.post>( - SERVER_API_URL + '/system/website', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改网站 - */ -export async function updateWebsite(data: Website) { - const res = await request.put>( - SERVER_API_URL + '/system/website', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除网站 - */ -export async function removeWebsite(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/website/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除网站 - */ -export async function removeBatchWebsite(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/website/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户状态 - */ -export async function updateWebsiteStatus(websiteId?: number, status?: number) { - const res = await request.put>( - SERVER_API_URL + '/system/website/status', - { - websiteId, - status - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询网站 - */ -export async function getWebsite(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/website/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/website/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/website/model/index.ts b/dict/admin/src/api/system/website/model/index.ts deleted file mode 100644 index a886d3e..0000000 --- a/dict/admin/src/api/system/website/model/index.ts +++ /dev/null @@ -1,97 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 网站信息记录表 - */ -export interface Website { - // 站点ID - websiteId?: number; - // 网站名称 - websiteName?: string; - // 网站标识 - websiteCode?: string; - // 网站LOGO - websiteIcon?: string; - // 网站LOGO - websiteLogo?: string; - // 网站LOGO(深色模式) - websiteDarkLogo?: string; - // 网站类型 - websiteType?: string; - // 网站关键词 - keywords?: string; - // 域名前缀 - prefix?: string; - // 绑定域名 - domain?: string; - // 全局样式 - style?: string; - // 后台管理地址 - adminUrl?: string; - // 应用版本 10免费版 20专业版 30永久授权 - version?: number; - // 服务到期时间 - expirationTime?: string; - // 模版ID - templateId?: number; - // 行业类型(父级) - industryParent?: string; - // 行业类型(子级) - industryChild?: string; - // 企业ID - companyId?: number; - // 所在国家 - country?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 经度 - longitude?: string; - // 纬度 - latitude?: string; - // 街道地址 - address?: string; - // 联系电话 - phone?: string; - // 电子邮箱 - email?: string; - // ICP备案号 - icpNo?: string; - // 公安备案 - policeNo?: string; - // 备注 - comments?: string; - // 是否推荐 - recommend?: number; - // 状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停 - status?: number; - // 维护说明 - statusText?: string; - // 关闭说明 - statusClose?: string; - // 全局样式 - styles?: string; - // 排序号 - sortNumber?: number; - // 用户ID - userId?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 租户id - tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 网站信息记录表搜索条件 - */ -export interface WebsiteParam extends PageParam { - websiteId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/system/white-domain/index.ts b/dict/admin/src/api/system/white-domain/index.ts deleted file mode 100644 index 3649677..0000000 --- a/dict/admin/src/api/system/white-domain/index.ts +++ /dev/null @@ -1,146 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { WhiteDomain, WhiteDomainParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询服务器白名单 - */ -export async function pageWhiteDomain(params: WhiteDomainParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/white-domain/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询服务器白名单列表 - */ -export async function listWhiteDomain(params?: WhiteDomainParam) { - const res = await request.get>( - SERVER_API_URL + '/system/white-domain', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加服务器白名单 - */ -export async function addWhiteDomain(data: WhiteDomain) { - const res = await request.post>( - SERVER_API_URL + '/system/white-domain', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改服务器白名单 - */ -export async function updateWhiteDomain(data: WhiteDomain) { - const res = await request.put>( - SERVER_API_URL + '/system/white-domain', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除服务器白名单 - */ -export async function removeWhiteDomain(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/white-domain/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除服务器白名单 - */ -export async function removeBatchWhiteDomain(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/white-domain/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改用户状态 - */ -export async function updateWhiteDomainStatus( - docsId?: number, - status?: number -) { - const res = await request.put>( - SERVER_API_URL + '/system/white-domain/status', - { - docsId, - status - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询服务器白名单 - */ -export async function getWhiteDomain(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/white-domain/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 检查IP是否存在 - */ -export async function checkExistence( - field: string, - value: string, - id?: number -) { - const res = await request.get>( - SERVER_API_URL + '/system/white-domain/existence', - { - params: { field, value, id } - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/system/white-domain/model/index.ts b/dict/admin/src/api/system/white-domain/model/index.ts deleted file mode 100644 index 8a231df..0000000 --- a/dict/admin/src/api/system/white-domain/model/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 服务器白名单 - */ -export interface WhiteDomain { - // 自增ID - id?: number; - // 域名 - domain?: string; - // 排序 - sortNumber?: number; - // 备注 - comments?: string; - // 状态 - status?: number; - // 创建时间 - createTime?: string; -} - -/** - * 服务器白名单搜索条件 - */ -export interface WhiteDomainParam extends PageParam { - id?: number; - domain?: string; -} diff --git a/dict/admin/src/api/user/balance-log/index.ts b/dict/admin/src/api/user/balance-log/index.ts deleted file mode 100644 index e37899d..0000000 --- a/dict/admin/src/api/user/balance-log/index.ts +++ /dev/null @@ -1,104 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserBalanceLog, UserBalanceLogParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 分页查询余额明细 - */ -export async function pageUserBalanceLog(params: UserBalanceLogParam) { - const res = await request.get>>( - SERVER_API_URL + '/sys/user-balance-log/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询余额明细列表 - */ -export async function listUserBalanceLog(params?: UserBalanceLogParam) { - const res = await request.get>( - SERVER_API_URL + '/sys/user-balance-log', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询余额明细 - */ -export async function getUserBalanceLog(id: number) { - const res = await request.get>( - SERVER_API_URL + '/sys/user-balance-log/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加余额明细 - */ -export async function addUserBalanceLog(data: UserBalanceLog) { - const res = await request.post>( - SERVER_API_URL + '/sys/user-balance-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改余额明细 - */ -export async function updateUserBalanceLog(data: UserBalanceLog) { - const res = await request.put>( - SERVER_API_URL + '/sys/user-balance-log', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除余额明细 - */ -export async function removeUserBalanceLog(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/sys/user-balance-log/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除余额明细 - */ -export async function removeUserBalanceLogs(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/sys/user-balance-log/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/balance-log/model/index.ts b/dict/admin/src/api/user/balance-log/model/index.ts deleted file mode 100644 index 71ffd77..0000000 --- a/dict/admin/src/api/user/balance-log/model/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 余额明细 - */ -export interface UserBalanceLog { - logId?: number; - userId?: number; - scene?: number; - money?: string; - describe?: string; - remark?: string; - sortNumber?: number; - comments?: string; - status?: number; - deleted?: number; - tenantId?: number; - createTime?: string; - updateTime?: string; -} - -/** - * 用户搜索条件 - */ -export interface UserBalanceLogParam extends PageParam { - logId?: number; - userId?: number; - scene?: number; - createTimeStart?: string; - createTimeEnd?: string; -} diff --git a/dict/admin/src/api/user/feedback/index.ts b/dict/admin/src/api/user/feedback/index.ts deleted file mode 100644 index 5862ed3..0000000 --- a/dict/admin/src/api/user/feedback/index.ts +++ /dev/null @@ -1,103 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserFeedback, UserFeedbackParam } from './model'; - -/** - * 分页查询意见反馈 - */ -export async function pageUserFeedback(params: UserFeedbackParam) { - const res = await request.get>>( - '/shop/user-feedback/page', - { params } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询意见反馈列表 - */ -export async function listUserFeedback(params?: UserFeedbackParam) { - const res = await request.get>( - '/shop/user-feedback', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询意见反馈 - */ -export async function getUserFeedback(id: number) { - const res = await request.get>( - '/shop/user-feedback/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加意见反馈 - */ -export async function addUserFeedback(data: UserFeedback) { - const res = await request.post>( - '/shop/user-feedback', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改意见反馈 - */ -export async function updateUserFeedback(data: UserFeedback) { - const res = await request.put>( - '/shop/user-feedback', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除意见反馈 - */ -export async function removeUserFeedback(id?: number) { - const res = await request.delete>( - '/shop/user-feedback/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除意见反馈 - */ -export async function removeBatchUserFeedbacks(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/user-feedback/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/feedback/model/index.ts b/dict/admin/src/api/user/feedback/model/index.ts deleted file mode 100644 index 5b4acfe..0000000 --- a/dict/admin/src/api/user/feedback/model/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 意见反馈 - */ -export interface UserFeedback { - id?: number; - userId?: number; - type?: string; - content?: string; - images?: string; - sortNumber?: number; - comments?: string; - status?: number; - deleted?: number; - tenantId?: number; - createTime?: string; -} - -/** - * 用户搜索条件 - */ -export interface UserFeedbackParam extends PageParam { - id?: number; - userId?: number; - type?: string; - createTimeStart?: string; - createTimeEnd?: string; -} diff --git a/dict/admin/src/api/user/grade/index.ts b/dict/admin/src/api/user/grade/index.ts deleted file mode 100644 index 3803604..0000000 --- a/dict/admin/src/api/user/grade/index.ts +++ /dev/null @@ -1,114 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { Grade, GradeParam } from '@/api/user/grade/model'; -import { SERVER_API_URL } from '@/config/setting'; -/** - * 分页查询仓库 - */ -export async function pageGrade(params: GradeParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/user-grade/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询仓库列表 - */ -export async function listGrade(params?: GradeParam) { - const res = await request.get>('/system/user-grade', { - params - }); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加仓库 - */ -export async function addGrade(data: Grade) { - const res = await request.post>( - SERVER_API_URL + '/system/user-grade', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改仓库 - */ -export async function updateGrade(data: Grade) { - const res = await request.put>('/system/user-grade', data); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 绑定仓库 - */ -export async function bindGrade(data: Grade) { - const res = await request.put>( - SERVER_API_URL + '/system/user-grade/bind', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量添加设备 - */ -export async function addBatchGrade(data: Grade[]) { - const res = await request.post>( - SERVER_API_URL + '/system/user-grade/batch', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除仓库 - */ -export async function removeGrade(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-grade/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除仓库 - */ -export async function removeBatchGrade(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/system/user-grade/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/grade/model/index.ts b/dict/admin/src/api/user/grade/model/index.ts deleted file mode 100644 index c4d9cc4..0000000 --- a/dict/admin/src/api/user/grade/model/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { PageParam } from '@/api'; - -export interface Grade { - gradeId?: number; - name?: string; - weight?: string; - upgrade?: string; - equity?: string; - commission?: string; - status?: number; - comments?: string; - sortNumber?: number; - userId?: number; - deleted?: number; - tenantId?: number; - createTime?: string; - updateTime?: string; -} - -/** - * 搜索条件 - */ -export interface GradeParam extends PageParam { - gradeId?: number; - name?: string; - status?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/user/index.ts b/dict/admin/src/api/user/index.ts deleted file mode 100644 index 7f5b610..0000000 --- a/dict/admin/src/api/user/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult } from '@/api'; -import type { User } from './model'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 修改当前登录用户信息 - */ -export async function authUser(data: User) { - const res = await request.put>( - SERVER_API_URL + '/auth/user', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/model/index.ts b/dict/admin/src/api/user/model/index.ts deleted file mode 100644 index f73f212..0000000 --- a/dict/admin/src/api/user/model/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 用户 - */ -export interface User { - // 用户id - userId?: number; - // 账号 - username?: string; - // 密码 - password?: string; - // 昵称 - nickname?: string; - // 头像 - avatar?: string; - // 性别(字典) - sex?: string; - // 手机号 - phone?: string; - // 邮箱 - email?: string; - // 出生日期 - birthday?: string; - // 手机号 - address?: string; - // 个人简介 - introduction?: string; - // 机构id - organizationId?: number; - // 状态, 0正常, 1冻结 - status?: number; - // 性别名称 - sexName?: string; - // 机构名称 - organizationName?: string; - // 商户ID - merchantId?: number; - // 商户名称 - merchantName?: string; - // 创建时间 - createTime?: string; -} - -/** - * 用户搜索条件 - */ -export interface UserParam extends PageParam { - userId?: number; - username?: string; - nickname?: string; - sex?: string; - phone?: string; - status?: number; - organizationId?: number; - sexName?: string; -} diff --git a/dict/admin/src/api/user/recharge/export/index.ts b/dict/admin/src/api/user/recharge/export/index.ts deleted file mode 100644 index acd5983..0000000 --- a/dict/admin/src/api/user/recharge/export/index.ts +++ /dev/null @@ -1,109 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { - RechargeOrder, - RechargeOrderParam -} from '@/api/user/recharge/export/model'; -import { SERVER_API_URL } from '@/config/setting'; -/** - * 分页查询充值计划 - */ -export async function pageRechargeOrder(params: RechargeOrderParam) { - const res = await request.get>>( - SERVER_API_URL + '/sys/recharge-order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询充值计划列表 - */ -export async function listRechargeOrder(params?: RechargeOrderParam) { - const res = await request.get>( - SERVER_API_URL + '/sys/recharge-order', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加充值计划 - */ -export async function addRechargeOrder(data: RechargeOrder) { - const res = await request.post>( - SERVER_API_URL + '/sys/recharge-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改充值计划 - */ -export async function updateRechargeOrder(data: RechargeOrder) { - const res = await request.put>( - SERVER_API_URL + '/sys/recharge-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 绑定充值计划 - */ -export async function bindRechargeOrder(data: RechargeOrder) { - const res = await request.put>( - SERVER_API_URL + '/sys/recharge-order/bind', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除充值计划 - */ -export async function removeRechargeOrder(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/sys/recharge-order/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除充值计划 - */ -export async function removeBatchRechargeOrder(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/sys/recharge-order/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/recharge/export/model/index.ts b/dict/admin/src/api/user/recharge/export/model/index.ts deleted file mode 100644 index 43ef4b0..0000000 --- a/dict/admin/src/api/user/recharge/export/model/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@/api'; - -export interface RechargeOrder { - orderId?: number; - organizationId?: number; - organizationName?: string; - rechargeType?: number; - nickname?: string; - realName?: string; - phone?: string; - payPrice?: number; - giftMoney?: number; - actualMoney?: number; - operator?: string; - comments?: string; - createTime?: string; - tenantId?: number; - expendMoney?: string; - userId?: number; -} - -/** - * 搜索条件 - */ -export interface RechargeOrderParam extends PageParam { - exportId?: number; - organizationName?: string; - organizationId?: number; - dayTime?: string; - week?: number; - status?: number; - userId?: number; - createTimeStart?: string; - createTimeEnd?: string; - deliveryTimeStart?: string; - deliveryTimeEnd?: string; -} diff --git a/dict/admin/src/api/user/recharge/order/index.ts b/dict/admin/src/api/user/recharge/order/index.ts deleted file mode 100644 index ac356ae..0000000 --- a/dict/admin/src/api/user/recharge/order/index.ts +++ /dev/null @@ -1,134 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { RechargeOrder, RechargeOrderParam } from './model/index'; -import { SERVER_API_URL } from '@/config/setting'; - -/** - * 充值 - */ -export async function recharge(data: RechargeOrder) { - const res = await request.post>( - SERVER_API_URL + '/sys/recharge-order/recharge', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 分页查询充值记录 - */ -export async function pageRechargeOrder(params: RechargeOrderParam) { - const res = await request.get>>( - SERVER_API_URL + '/sys/recharge-order/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询充值记录列表 - */ -export async function listRechargeOrder(params?: RechargeOrderParam) { - const res = await request.get>( - SERVER_API_URL + '/sys/recharge-order', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询充值记录 - */ -export async function getRechargeOrder(id: number) { - const res = await request.get>( - SERVER_API_URL + '/sys/recharge-order/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加充值记录 - */ -export async function addRechargeOrder(data: RechargeOrder) { - const res = await request.post>( - SERVER_API_URL + '/sys/recharge-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改充值记录 - */ -export async function updateRechargeOrder(data: RechargeOrder) { - const res = await request.put>( - SERVER_API_URL + '/sys/recharge-order', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除充值记录 - */ -export async function removeRechargeOrder(id?: number) { - const res = await request.delete>( - SERVER_API_URL + '/sys/recharge-order/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除充值记录 - */ -export async function removeBatchRechargeOrder(data: (number | undefined)[]) { - const res = await request.delete>( - SERVER_API_URL + '/sys/recharge-order/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量充值操作 - */ -export async function batchRecharge(data: RechargeOrder[]) { - const res = await request.post>( - SERVER_API_URL + '/sys/recharge-order/batchRecharge', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/recharge/order/model/index.ts b/dict/admin/src/api/user/recharge/order/model/index.ts deleted file mode 100644 index 8c762be..0000000 --- a/dict/admin/src/api/user/recharge/order/model/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 充值记录 - */ -export interface RechargeOrder { - orderId?: number; - userId?: number; - scene?: number; - orderNo?: string; - money?: string; - payPrice?: number; - actualMoney?: number; - organizationId?: number; - rechargeType?: number; - describe?: string; - remark?: string; - sortNumber?: number; - comments?: string; - status?: number; - deleted?: number; - tenantId?: number; - createTime?: string; - updateTime?: string; - balance?: number; -} - -/** - * 用户搜索条件 - */ -export interface RechargeOrderParam extends PageParam { - orderId?: number; - keywords?: string; -} diff --git a/dict/admin/src/api/user/referee/index.ts b/dict/admin/src/api/user/referee/index.ts deleted file mode 100644 index c926a3b..0000000 --- a/dict/admin/src/api/user/referee/index.ts +++ /dev/null @@ -1,102 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserReferee, UserRefereeParam } from '@/api/user/referee/model'; -/** - * 分页查询推荐关系 - */ -export async function pageUserReferee(params: UserRefereeParam) { - const res = await request.get>>( - '/shop/user-referee/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询推荐关系列表 - */ -export async function listUserReferee(params?: UserRefereeParam) { - const res = await request.get>( - '/shop/user-referee', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加推荐关系 - */ -export async function addUserReferee(data: UserReferee) { - const res = await request.post>( - '/shop/user-referee', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改推荐关系 - */ -export async function updateUserReferee(data: UserReferee) { - const res = await request.put>('/shop/user-referee', data); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 绑定推荐关系 - */ -export async function bindUserReferee(data: UserReferee) { - const res = await request.put>( - '/shop/user-referee/bind', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除推荐关系 - */ -export async function removeUserReferee(id?: number) { - const res = await request.delete>( - '/shop/user-referee/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除推荐关系 - */ -export async function removeBatchUserReferee(data: (number | undefined)[]) { - const res = await request.delete>( - '/shop/user-referee/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/referee/model/index.ts b/dict/admin/src/api/user/referee/model/index.ts deleted file mode 100644 index 7f9a5f8..0000000 --- a/dict/admin/src/api/user/referee/model/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 推荐关系 - */ -export interface UserReferee { - id?: number; - dealerId?: number; - userId?: number; - level?: number; - comments?: string; - createTime?: string; - tenantId?: number; -} - -/** - * 搜索条件 - */ -export interface UserRefereeParam extends PageParam { - id?: number; - dealerId?: number; - userId?: number; - level?: number; -} diff --git a/dict/admin/src/api/user/userCoupon/index.ts b/dict/admin/src/api/user/userCoupon/index.ts deleted file mode 100644 index ecfcdfa..0000000 --- a/dict/admin/src/api/user/userCoupon/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import request from '@/utils/request'; -import type { ApiResult, PageResult } from '@/api'; -import type { UserCoupon, UserCouponParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; - -/** - * 分页查询我的优惠券 - */ -export async function pageUserCoupon(params: UserCouponParam) { - const res = await request.get>>( - MODULES_API_URL + '/booking/user-coupon/page', - { - params - } - ); - if (res.data.code === 0) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 查询我的优惠券列表 - */ -export async function listUserCoupon(params?: UserCouponParam) { - const res = await request.get>( - MODULES_API_URL + '/booking/user-coupon', - { - params - } - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 添加我的优惠券 - */ -export async function addUserCoupon(data: UserCoupon) { - const res = await request.post>( - MODULES_API_URL + '/booking/user-coupon', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 修改我的优惠券 - */ -export async function updateUserCoupon(data: UserCoupon) { - const res = await request.put>( - MODULES_API_URL + '/booking/user-coupon', - data - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 删除我的优惠券 - */ -export async function removeUserCoupon(id?: number) { - const res = await request.delete>( - MODULES_API_URL + '/booking/user-coupon/' + id - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 批量删除我的优惠券 - */ -export async function removeBatchUserCoupon(data: (number | undefined)[]) { - const res = await request.delete>( - MODULES_API_URL + '/booking/user-coupon/batch', - { - data - } - ); - if (res.data.code === 0) { - return res.data.message; - } - return Promise.reject(new Error(res.data.message)); -} - -/** - * 根据id查询我的优惠券 - */ -export async function getUserCoupon(id: number) { - const res = await request.get>( - MODULES_API_URL + '/booking/user-coupon/' + id - ); - if (res.data.code === 0 && res.data.data) { - return res.data.data; - } - return Promise.reject(new Error(res.data.message)); -} diff --git a/dict/admin/src/api/user/userCoupon/model/index.ts b/dict/admin/src/api/user/userCoupon/model/index.ts deleted file mode 100644 index 3649ebb..0000000 --- a/dict/admin/src/api/user/userCoupon/model/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { PageParam } from '@/api'; - -/** - * 我的优惠券 - */ -export interface UserCoupon { - // id - id?: number; - // 优惠劵id - couponId?: number; - // 优惠券名称 - name?: string; - // 优惠券类型(10满减券 20折扣券) - type?: number; - // 满减券-减免金额 - reducePrice?: string; - // 折扣券-折扣率(0-100) - discount?: number; - // 最低消费金额 - minPrice?: string; - // 到期类型(10领取后生效 20固定时间) - expireType?: number; - // 领取后生效-有效天数 - expireDay?: number; - // 有效期开始时间 - startTime?: number; - // 有效期结束时间 - endTime?: number; - // 适用范围(10全部商品 20指定商品) - applyRange?: number; - // 适用范围配置(json格式) - applyRangeConfig?: string; - // 是否过期(0未过期 1已过期) - isExpire?: number; - // 是否已使用(0未使用 1已使用) - isUse?: number; - // 排序(数字越小越靠前) - sortNumber?: number; - // 状态, 0待使用, 1已使用, 2已失效 - status?: number; - // 是否删除, 0否, 1是 - deleted?: number; - // 用户ID - userId?: number; - // 租户id - tenantId?: number; - // 注册时间 - createTime?: string; - // 修改时间 - updateTime?: string; -} - -/** - * 我的优惠券搜索条件 - */ -export interface UserCouponParam extends PageParam { - id?: number; - keywords?: string; -} diff --git a/dict/admin/src/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg b/dict/admin/src/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg deleted file mode 100644 index a7b3b75..0000000 --- a/dict/admin/src/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dict/admin/src/assets/bg-2.jpeg b/dict/admin/src/assets/bg-2.jpeg deleted file mode 100644 index 5ea2d426e7e226a0ac35c4a54a70f87f66158387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406999 zcmb5W|6db#x;B2lCo^Q2NEjp%D-kCsl6d%HdlX3hU?))&;Sob>dpHY1VB39Mi!_eb z)>7I@Abw-j@MX1Iu^p6dvD@7Z?TVpV8>-ZxU6X6x8`d|0-}Djap)J~z+n z_51;!_=8G9W-@bsx$f(_?)(t_Ar5@mnssY{5CU%e13!ETtANw8iEILw$R^IxakG-= zr6lY1$qUlvrq0VUXD?o4UbN7fx8gBtPEpRnMgO{HSyAy5j#UoJqowOh#q}%fjwfc` zgy?3?N={17NJ+_fV#%T;#zu1rX+-;&`L!LV(-Q7hQYCDTwCN?*E{TNcvkMU|{D#$E;!nKS^XNny%BuisBr z1++p%i|%`k&w7&MWLVO8`AVD=Un;^|K6^w3I)*3F5fc2sR^J4@oruRTeDqK@cHCYZ zcdidVWiCy5DU%_e$}a|E>=OtYt`zq8=6 zMuTZLHBWYCjmVsSjsM)5!Og3nkyjWX-Zn=s!iI*fK>i|Y(Kw4a(@(3A9~AsC|IjKq50bo~@H)3WtY7=M z@y)o**117BUgyzD+Lag%Sik@(#IrJIgq8>^xePfM89MbNpBw%jRCSsUIuD3^pZbdI z(PmMG&G~M6{^jA-(8nu1_r2?+XdCs_z!O*e%Y;1H*EF)fVux^6zc%`q9GYIB&=ogk z`I--Ptm2l=eKrYJ?O46cesHb%X?5Q2)DKh}^hT^870o+X`m2lEh6p~Ti3t#V>Rwla zyf*=()CLx3d7|-{7~>O9?H-BsLrzH^Dg4qs@7m$3U7fdSCcUkAkHsH*w=r?F)GPul zF~8_e5s6cCY+XcO9wcJ14E%rwD*^pj);U=_RLX;7i0ao0Fl8LqE>cgF-n~#FJ z>CiR_RE=017Rc5;W+?U=G=VBIk?{9%7}_Q1#lg2#ANj!ab8XmMmadC7C+$^0C~z~( z8SVW;9+R)p)fovZ!%&1=0;Y-7FD%4uAdU z>?givgfzJ97EOi}+V$vYBTe*9r$UQbA>oJ#l;|Mg$@88xfEdQ6R9o_q+yvuRH>?g0 zbSyBhDZ6MXw5Q)n|Crt zmg=&ACMdvQ z6;d4M-CjGSh2QYINJMu_*FbA?l*B1m%2Gbwe6o?Ar5BSuVG;q?(z%PSd4p7k@jzn4 z**74PD{b|9(Ik)c#U+h=9#%h{BjyVd^jSHL+m+bR)e*ty*gjFYi@rvSsszSkgpu{D z@*nr+6+SxvQf0&Tekc$OnRDa^-ESnx{0UK>f+dpkt{XtRFm`rgy|}puD|rIo@#iKC zN1jo+@C5lF>W6}79+t-hI)9P&e+JbP&c$z=0-3K|ay&@svlbJll^9f|$Ga|Kxmko4 z%pYy6c)^0X`vGksk-HcV&@pQ-jp3#7fc}XKy*q47Jkdk+;T6*uDinZ3KzFc=iS~HG z>EQApRR#6kv)(&|j25xSZ#sO~KftdZ9`8?#Sls2`Z8}ds8P&DVp_;pSuACX#s3vcV zR2)`A)9n79!#9QsEln;8E2g~-KT2F#`Akf*jqiOlD%IZD_$(Dqj0~P|a20m3heRv} zY3;=Zt{}Vk7cF6_;zh>NHx-qAhdd&q`Uh_$$EOCcR_tP;$CfM0X9K?GBhjb#-T`gm+Sg1;rCidFVu9&jv)AO%MmW1Bo=r~z{+Wx;@RA+V|G@kXf5KmRyj(YVdK1SrUmGkut8S;39aOKta1 zeu1}S&JyYz0u=|-?qXTjeh|PG1Q$&X_*=;+Clh5B#3e9CRs~FQ5gyT=6b|aw0^?+% zZ<5N8`@Z$$?)gkk_)IxW1^OO}=9|?#m<~ElJ|fP(vG_9@RLrF17G5tJ{DNQ^RM<<2 zktYMoh~Z~dO2t|;XkvO%f&M&aN)Z+32!58D*S5U?;tJWyiAr_v9iq3Fl0(kA*ZIxG zj4avQf<4smbr{mdxe5{SqXg0;rOe{%J}*G+x_%2U0SW%t!$e!<-j^1K1t--uPev@L zSo5Qp9-1*_wQDJpCaAL|*UJXB&XY&G2Oo<3(q&XY4~_Y~rQRqJ-}0O{0$dLzajR{x z`)wg10k5^>6hfHw66kki#0^i_r%gWXP0X$N@}mlX2#A}24o#<7W}jDUS5Z|m8}e$$S0VjK<#A((OoBlEiGik6ZxXS_@Cl#k%S^u8 zB4DullBIxBoqEg;`m&9pEqCw91|L|tN}H*>&5+tDkI@xnjB)(1(0J(yr&CQ;H$l&R zLxNqKbK)nOBW|A4V^mk>Qp7#p1>>eGBtIp5(-1{ia)XPU3P9;>f2x;yaQzR55nO+wa_dGvNV*H1h6< zq&=rPi$^XBj`j&o7f6`U3e5o>qTwdmlJT|EI8nQ9)bJm@5r%{yQToe>+B*9|x11wq zj3jTXZ@T^r-m{9~o4Uyo`@joBHVYNdLf=du=nQ0UVRH=U-p>9E;A6qmbrkF`X<|~P zEojnH`HL9tt!+1-8iiy}j%GaVbAggmf5(s=tz&1qs%1pfX5F>+FAluU9kIl!wEY=z zA>n$occM59wshHa6TaxEuVCZNzlLM}ejj`=#}&Ub{$8AngtqK!vB%9}Uku zDUfjdouB?TqIjStRi;KvH9iBiM*zjtRUT}QsD3i36)-WAWQ1TddD#ffsjdeH!n`uS zH30s!324NO)&%H0g%nv-tpGduz6t&39z+6@y6-8^ra_p2z{UXRfvVe7#_IndeQA%V za1UrWvriW|+dfk+Y&0<8aZ-x0zqOyzmx;1QWFPAaydAz{S&jY0Alozn`Q-$c1Wli$ zFQxG8J(>K zS|YmJlzwe&`z<&Vn8Ch+iWf5uh6TN)e17Ce{yZ;CnY^#AR$E#DJFsZssY!aKP|AG_ zWjJrVYicw&4NJ z2o~^0Og=dy3^dib{p++TC*fq0o~pWeqFH3qU7+za*nC*>iqgR5?}OuEV+SMJ_3j z;n$ZrqM4h?OB7ukeu_>fc8<^b^m;&<)wg=gu-O2F(*}8?n4K+|M$%eE_tZnSyghXM<)y7>qumTw_ErM#kMNYfgT!c}lU3CrPKaPEs3)BQG0i!5RcX`YuPC-wFHAK)cA>5uCoOE7p+W5_tL zzr6#sVP^OF9S9;A>XR^{(Nb(jPX>V*?8EAf;8?bq_JjxyCc2qYk@R{Ds0ZzhIr^}1 zVF3D6FpIh%BnQ(m!8K7tg4j#}rZutZF-VKbF3Aa$hXEEU5{3;pr!UbLmz6{MKnOc- z6~{UkEM@Pp$1lwP#Gf5vDOq5ykCWvZ!~?++AsB}n-hL7>Lgn{qoS&{I5w%JuEv0_# zEdrNxX$|r-8kf9qei+*@msEm9327g)ZFH+A+vBQQ^8HC&1LAFW_CnFQ&$H=b)FM`c zfQ1ID^lcNb5RM*K*jkw6ES6_1_C{i4#CZ#h-y@vLG#8P6OQl5mUEKVmZm2A9lOwxyar)`(|Z+ z#9U;mrqW@f z&1$o33^G(wcv?Updiai&qX*yX1DmF^TP!TW#?X3<6D>3~VILL!f_nURVx*aOZQENvGC~>ZB+2faGB+D+rUS1F0~W=Kl>RLQGdHwjX0sZ+2_ zS?WUB17ekw2maE{DUi}{7lG01SrU0 zAwe>QpkhPAcjDtDH1DPpD@o+*k?P>$c(P|FUSc3?7rvT2pl8niJMh4gkknA$b z=Cy83fMsSln)&yPi{myc7rwj6tq@@>iQN5ZbxDJ`?`2D$bH0bJx`GnrgAkCeJV zJf~8Dn$wi78_bPxSTlA;$d&@9$CnrzU=QBz)CT$F=(<}@Y<1lFGOD+6L;dtj*UET% z@%g}sSl^f;ay;!ugnS|(zN-zfezmSaVg^476S0Ws*M9Z}0+k*}V^qlyRFCS1jbF(? z>DPpp!64^{%qEu}2BU{(Ng71K%>d@utFq0?&Cy+KXlaj#Z?sj*m~egpYY{0K-Fgw6 z>$M?6s|R4ty03!KmQSpF@U$mGmWm+Zv(uD;Cu;@Bc7w7P)IL>%<8_~^Oq?1<#!gdx zutn^fwl3%=Th}g(a*ocpE&a$b7KsmD)r*qNdgwD<1SsUaI=k#sMA675?@d5T7+bvQ zpooXi293fTBtD+8P|b5v0}B@BOOHloNT6E=Q}QoBNe!5rHiV`#TLTt|(%!(P{8Y+$M!2$N>-1Rg*lthJN_Pl15bbhJLad>9c$bju=D!tj+!C5~dahD8I#=i$s{$+Y00!0yY|5^A zgkv?6Mb$CZBhuY6TA`M$zE%EH#TY0zekJYOD&F$} zW7!_ftWwIiZ2CUio*kAj#lH2yt(qlr#b*X(6i<)lO zCbaAk&dzb-JtC9Et#`=dT6qE%<&Kw9E+Mv#DBa@DUIHoODkW@PtenZBx zSsCGvhs~cV5_olxcOl-gpPsV9Q<)_LlvNj#Q+ClDl42V?*z346fx4ST?98~boV<2& z9ahkv;dll;m?O_inR2ET2_*RFzZba0dEP6nQPSwRHHS1&@K*gT14s;bQna5b7OfH# zj~d?eQvu$VX8F5kv7g+Msh734nCz3Ka6*MQ^yS;0qo^$j9}8BkpkZ*Lhq?~R1lGcg zaPh^gEF8w2PC?^jrZP>WROiVS`UaH*UzkgrX-Wu~mP6Q*8a=%b3XKyu|5%HFTMf#w z^9UJ2V4H_{I_OR~kJrg5An6|oQZc`!)zSHIuO*wIHrw((xlgdiLlb^zgxUJCa#`)W zFJt1;w)Ca!(z&GmKIR**Uvqw^Q(&nIF^&38geLe_oEJC|WxTfWDsDL)&GeoToJzCI zCJ^u4c`?=z=v35}{Ts1RlZ|o;Vq1Sjr5IHz%GSRw8kodzTycDthmwQ^Sj}rvfRT~V zOt>)nMjVKzz^#y$FyBXYb%ceQv;55cz681e3^lQ*yM`L*4kc{saSitHHc(fQcVw#+2eu+XO?^ zQNsk2{un%H-@=(&MotMvF+qiLgEsTNoccjWWWdIqyO5t#?cCYoZ4}cFc|doIWyYoD zOxkpIfo|Jq(mM+~rWs?$aKW>JZ$$06S-E3DgMrx>vCO`q7DrX>qENoz=#m+ufI#S= z*pv3>SZmB%-=Y=z4YCC+N$sDW=ww0d-8N~n@UYq?JzSGLw#m>ALsMwWy-@e04ig=rnWZfZ;M%uC|Kp|?^29cq8ucB&I3^}R^mO2U4 zKZX;O8Cc819m_plaDgTJW)U(RA`|zs6fl{VjnnWVxI9j;)?+YrlRW$<_}OFOd1T$K zx`t+7#RyK>pk$~ja%w2#%HU=8V}nD)!5K^eCE*X)gkfB%nW0s&-BL!`B(I0#*FL@J z6{d3ck|kob4;(VGK$-(PX2C#d5!EFZ%crxvq91W2>ok|vu8_0g>@7GJ9@h$3UZ6F= z>+S2#Xnzt%_D@{U|6{jI5al!{kO)j`PRcKA~5NE4mZiU`X9L*YHXNk>raaX1;r3e0$XRjeZO& zOAFITWW3sG-*qSBf=RB|izq+Nh$l&FZ$bjV^7&!p%r(K6+g8e02H=Rfl*wNBV!x`J ztbjP@c#zsbMqd&*$;I?)kTGDuk5NGDA7LK&j(ahNmE18h0fL0#Hu4eC%LyZ76p>Y5 zx*_3w$HNOoM{+~ANSHJlN1kTcIwMf1qLSz0|GRoi!2&_ZamZ#C_i__ndc=GupN~QIboc(fr?Y-5b)zii=m7Q;*(mwOnST*bik#4tHPD|bb%U~Y{Z))`Hq0sElEmKgW zIaIk7FCcR0l4HN)7HhSc+H2;>}`Lw^Zfi3^baldX;yP;9;F^Zz;(9kYZz|m!&1ZbQ3F@jJu!elMK0Na?)BQuQqx5uER%OKI>RB(@`7-o! zqWn#`&Y2Mh#A@0BoNPQ|{-Sslj(WB5W*mDZ7O(zvLGz(zLKCPPz=Gg`s;ce3Jbquc zt_+jXT9F?-_W%}O|5*C+CQf?-taJmD7F@0Nk@c@HkdXPsP>GNaG#vs?+%y$9hl!Zz zuC7Ytl_~*8unQI^-xA)LA2Jb}MrtcEzv^bZGlDde`0Gnlws7Jb8vChhGcou9f~lPW zWi{q)s!tX)>qP^+eTurk8k%KcDnBMW9bRPMFwt|IW;^uV#Za|S;52plzCijt2aq+) zmgH=t0Vc^Vu%AJ?7q16s4mqijDS`Bxz1Zp=ApO|-Q_~oWsqDjAldD0u6KYG=I^7@ku-6~;D>OfgnWAaLlxM5!!X&Q9~AYm&o5euJob+fpG zR~RfP)YU2A)??-lz+hU|T}v|3;MjPooy!*p>Atl4^10*ZJ6go16$jUa4XH8Z>BQSv zcd5xuGq@L#@JFLtMP$CiM5;N5e9P7Lhd|sIkdZgzi49*?qH@H9jQ0b+{~c?zje9gh zE3bF{TsPB1e9y(23^$JWsLbD0=tc{uLlWgJb@t;tC2o>s*c~}N;qcpWqMouAnV4K9 zY7Ed1bkkT1brI~VJTQ){w`y?&qENZcdJo8Dkkf^9*|pa;2I)(&%{LzuNf2(%^G(=u z`$I89ZQ=*%54yD)AEjl4*zwz9U65DWpujj(@=Di4em_*F#(;h-&H{DNo*1nSqjGVi zvso9&1B(HFOR-*c^HK+7WACy2+C5@awKd2ue|`MnqD1cu=d9>PDRQ9*`8vZ zTSzyc5eWK$)pL|AYqMyAbCoxxbj}Ortue1L<_E`wI7bYzJ>5J8E|$FdVbPy0kkb9M zs(3d-3a2%12ncK=SN@-hPG26PDEVa2N|oxuWWpgUAgo5xd8so)jT@F2j&=)T_1~j# zZZP9K65tBUQ@$hkLpg@?42%Gx=>G zZM03c|7~FQ>0s14S-d~@mu;!rBJ=2KD4!$hCVABR&Y0w14QYkrT@44tCJ?BC+5GMY z`Z5#`VTMf+01GbWb@PE{>R^~x5+|Q7q6`9k-SHjph>9frl~v|O@ov_o9K$n~CB)l{ zA3J2F-Z<1x|IOfMHcrip_5C?sVCt?5;&ePsKfeAFRQxYr$IC|P((chE7R1x3bVAr?)?b@=Ki) zDSTw<12gTX$J?(`54Blo6jGLF_=t?>D=)L!VAHRoN4p7wx>s%D^C!jBH^08>eHbn> zd69-yHn{UPVvB)nq0X80+sT4lujBl&{pC~U@5l$~Uea=YNml!WLov7PYnbpIp~Bus zw7NcmNW78xNVcw?w3!a>5N2QRaO3P?F?IweG~1rjj&kiS2@kg9l&Ab#XWA6QpXeCU z_zZw!#74+apUOIAGJdmBbXDzF-fC#8C=aWCga6MHZPbA`i1YZvy}TyMuF&aBxdEK&7Q8?Vp2$1|*9Z82%ZHRkGXR&2ftPK}}42 zB^(7r0&(DJiz}|Dpowam>84two3S0g7lvXll%S=IM2HBhE#%2gnb&*+JW~1h+E^zN zfr7ql<}~~TG!kvJL!N=%_*!7GXEqx$jo5M>vLQQi_Mn&?n8E<1VR7%q8h>y#A}R#y zICJ0g>BY^Uexz&A+fhx2{FU+su}*?$pLO*(Iv#97$+zOddEJ22c*R;Y9>oo;>oKpc z0W_UaxtgC51!+x;xr}PU$=j9(NnvDt`%%+LoLHVN&pTNDy+DE@S5Zb1`&B*kF=R*= z!ijl(6lrjbo$7#x!@u@CyWcTmgqcMm2?^IdO!l~9pIDX~mS2|9wnnQp0y3VB7X_N1 z#qjm|xGilwf#946(_=(8%!QGen)_ew6^13?NbnDf&S5Eo3#9o4UNC zCA8WH>&r)1TZT&e(e8$JvO%TO9;qEg+^g%ZohqFkM9RK+BP=zxn%I- zwWbWo0a)2^O>P|$`QO~f!-=Q%ZwOdOGX?oW=;nCdBg9UdS4DNVs&CnKlPq~+}}XzBv&9hep9;X`J41T9Fs(<@vi0N zcEX%8{XCZVd)dO{a7(WEK9A|9NaWSyaZDH6c(n^mzGJd+Csg?bWK_d-L#rm?e|@9z zrN!CmBs(8V`ZQd==}4^F!921yG_cBzjQFHZnLRQnL)`x{HFbxgVolKcA-E`N z`1TDn2U0}cfQViu{n{a0{%6Oj+ZA)u5HPT-F*Sll)5M&YOr7z5gRC3Y4YSMuS#_A( z5O5lOG+1VblRfWbsUCLU_ei&|`~4+NhldH7y2RdHG<)u9;Ou4_8Q}ibf^oYz&N1OP z&mT3s<;nkS_6>@<4Lw^5(P#nu%QAH%&O=(dVCB}!Eteb!`K8;HWNk#d2pe~pJ%T|Z z;lP0e4$u~%1enADq`|<8>4$`x7h%!12-nkHLj$o#W^%fCuGl0avY^Kl>#5PvUDzZ^ zIRcF)@m>3X*kka=`lW>Uel$`}6q*kBGUB?Jr3iIu6~GvH&%Q2Fg3=vO=RKJS9VZfw zUmIo-3Bk9{e%q{GOmZVl21=b6e{M7WCF}l}pjre!PTbgN_Kh~##(#$KiwK@|W@piW zyk8QRS1kK+=wPlpGn6+BiM{KP|8Z8tNfW^dTGM$SglW_JUc9CwW2y2ygFg4v^-gN{x1UN0) zTQ;^jWL?H3?a4v{{(L~w;noC-*P3ywNsP(N#;60v@mXxGvc*20+vsuA}GfPJsU zyY4o1^@8b;+jI~?4V+W|6z4=DsF>a8#4Gn>n7u3ESZPo*C1Zl}nOeDgkVr$F@ zH&Lw}h;~6-N}!2ghh>#1bgg-}g$*(eSR`;_TxK`@&N{YyD6g7#9CFJzZ|hz(9V|Wh zT-t@fx1m_3VuyS+iuNX~@B^lBm86&acC|bF9YR z@`4F1eul*7H|ahc+bmiOjCZjJZTs~{NKe}qNOInV;0n?*MWT7_WFm-K)dNGsDUgAwMUr z7ef`@t(}N17U{dm^8us;eiUALJpgZxXrg&tJDH16Il;U~$4^A*|3vvKr($hLMe%VC zzo_zs?1cgQu53+1ce&wcyZ7IXib|R))-LQo{d9LcA5~KA;|JuZ_toH2>*E{A3JWO}H@%V{QT z4PoXtAC(o0yfLu1)=r(&Meg%#t!gnr%1YUBzWxe7J zvI?_g@o7_yvcJiG(`jBiR%MQSJC@v0ad55RfnWZAN8F0pAuw^4tJsn7$?cK|)pgYO z9X+%brOREy6hW7pV0Z%xl& z7}zC1(b!op0GgrR3~LdjV|M|F{uJ#5kX(5aU-_-$b_Hy-OlRP$o^|h(ujR8zyCS2(+W#3Grt`!bf3e&+$WUO=pb)Ar{?; zZ)bx=i%u8|i*Vazfcar(Bg^N1mK-Eass%)5O4D&gnK?}azwZdmvX_XS0{Wh8!Jx}f zDPNMPzkz;Obb6&W%rJC#RYa%@>QKzi;b>HBA4d)VeMl~Y>`E%5^Mz_BzS$8hXut@@ zPBh|Z2i7QPd@SWOs*N7!HX!(swT~xx#WzQQPoZLnNNOZ<08NZXa44u72UC)ab4c}n z_Rl`=3@4CA8kBMpX5kV79=hPi2nL7@ed9~tmL2iA8fWXQN5fAIV0k~RLAT43PV|yd z7ygH}>FYm#v?t5ba|`0Ssq6yFx6Xy*TME#)rhU8%dB8EH;syA)0Ua*Xp#j}(K|c4u zcL@vLI|~CggzW}I-4 zou+pEg+VzjyrJQJL!$KMrgf66@>_#x;p7km#tFAvFm_z|jQ`4=aD0XOD|iNA9;%FQ{g;tR3dE}5zMQYXa)vyYR3#vPJr(V3xV_;QE67edJ+R5X z^2TXTdg`Rh;G!nr$oNMQ=0TV5yWEpBsy^spI6PjriBO+EJAZVj2gG0in}0s zWG3B??|6Es$*`cIZg6BwyC`2E`R@+A`r}TFap$)o^DfpOf90Z(rcPVPa}&$4wTTvU zqd~0#FGv2g9fkGC1IVYz1~(d{pxBqYXA#=4nklrq59KhlNyf0}J$Nw1TT$j{TmR|E zq-bPJn7HU@C0DLXUaf%bfCfp^IlcHZOxInDvE{vmz^X+~8r~)7(1}R?7G^2QsXV}R z(fp*qjV*5qaE$}s#Yxe14MuO+NrKdO4Kw+KTBtV|v*6oallf?}{W-~iO52+^V#Jmk zjtamTWD03pKD}6+2DI{Qum4m*#Et0QHDY#XIssi1U%IxRY#a&WyHUNnP^xyWm;2(z zfZ0w6dKO^s+h(2HHYQhG@AT$I`=By152bkGJbTO0R)jlLku=yaR5DE=L1z}}>?|bm z5TDCjMfvH40Yo?X;1|$qVvKfT;K_^6?8$4oKU5>yWtIVO;}y z;NM8QP(pc@LqDpDDUKMz*+$W-frQfx+gg7MgyOLCOsw@8IN_@S5OC`8#mT-`Rmz~I zsU)l_Y;9sc6d}RZ5jMtByRk%~Fx%TQI=WM+YQiNS+7xgmj+UIR52_y83dXPM!!+b@ znvO|iQRIv`0?j}Teh40IK{0)qnEkkZZNvVAxVPml7%GrEcr>I^3;x2BttERh|GIXl zbcM{~5|Au{?kkT|%pTZjUezhvmsz#3-rr(BfUHY4;Yaa=AK(&+zsR=0u{qD>|Z3bdcF^SNFZ{L$E zZTSe5p$gQVZm%Kr7&k|IQ=2YFw;@(qjpw^wKGE57SxF69L6Jn}e;l69H}j{>yF^>s zq-`Oomu|EDWEU20SF@a+8Ex%m79Y7|$xQBSZg0Q!RPEf4Kl85^5#h3~IsX=|;boW6 z*E_m$WGv;$Sf5ptdnsMJ_h}``*IT;suc%U89{l7&wumpEk$Vch8t(+vYhRZ5 zC$wHXz_+eI?%QB~RTQ)fJ?7Ho_Xy%()I$+0ruuGI;4r{IB4(_8bS>~EIqMY0Ofa2b zl-PjG#gl{?sdDiMtPh*KYZqek-@+w2WKu;Ulr}_$MKZzWFhGeYj|J$M9t_)+#j=xm z0O(VaHJ!JKjslaM+=YC+J=VuH>LP5<;R_bj)iKavRY(69-cnxGpv*&N#H-B|6>aVG z7Jp)$3rM(Sj0_ZjQv@t{A}E<2P%SP%32N6kTV&Z{qy!o{zij@~% zc|t;ye1VlN?Ng;Hl&XkBss*vC)&1^@j@!;X0^wR^=f2@}qwD_Eb5K+hx0V44E`D5d zFDpKgl) z9~6u#y9g=Ku`|Aue~a}TX^>LZ+?1$yvQYYUw4)skoyF%THJv{4Vn)2j`x1o;KQ16{)!srj z41ND8cH5Z3jAcJg8vQc5NwsF;F2;!zn$Ei=I$z_~?A$ZNX+%fsK$CV6bx=G#u6^ew zF$$HRw&lv?dm$~1whppFMknN7-oD--x%L)5JC55aV*U`f{xs+s5Gw`IiZ*4E7kFm0 zCoDv0S5H4^Ulqvxtw$W&aLgz=?sM~Di+C>&hm-c0Vt+lTncoECE_PO9xc5IMr zi*0XU@|D<+K0DJkLrm@D{AuGf0>!n9@*`RS7XS)LX5uu%;6@W(o8mAEEueVlFMM5- zuw4m$0JT~gFp|y&O7&zXg$tg@axo|`1aLj$EzdM65BRh`%!KhDGuebS86OYPb(HLx zgAN=to$*L@gpq)hft)c_X%~)3l<(R_!5lml#&H}^!Oi@!)BtqxrwS>s;BRY@EO+A8 z)Qoprw}r5kA^f4PNd+8B0UXgEg>4|aFvF7FHb}T0p#Dr-086FloOhp}v1O;mq#Tq< z6@dJP8iO`Og|&+w>b9aY?KeoqsRY?9bg)D5>Flic(ezw=Nl=YrvO}Ts(LAD&$POgl zXNrz7>Pd7%AKO^%V{{%!4HU8lKexp(5z+jlG91%9llOT>{BN9?vM!kGn@V*TVPoz& zSeBDQN}noT6HdYPk`KwsuwjW*D-MX8MUh#sQ~>iW;!v&~ESt^u;cxw{2{UbJ`?lLO z2N$tLC1l-Q(16GTHwdY&PJd3tnvuJt;rXHG-B9CCO#J<&4Gn&FQy53eq_-3mvQFh9 zxJkM=gop-%dpC_!zggtvW-w@eVuL!76=qEIY#}-p*8C-m6M{X*MS0f>vg2lsCeUhm zI!iODsSmjUP`OWe^}@HV|2l~S|1X+AJ`wZbX4IanC=!(zgm@FV{6*iKcWeIVEinIa z3cF9PtmB(~{`W399>G0*Y$O1Q$`5yk4XjQPlgWl(Aj~q?%D!8B`n*6R8HQ(@4 z%zZH19-E%WAQ59aG$3wd77wpLz7~ov>Bl5(DEW2Vkv{6{3hW8y?%V2oQUtu&e19W) z=kTuLO#8g_-Gi>cW*{qkGSZLvcS%3eGuq(2gW<%#4>-wS7#-9n0ZY-$!H6u>) zT)>s&KLw84IrPx0j!&*#!r9PIBs*8^eaiOi_=~j2D-hKFG-8>gnNxcP?2>lT;D;#= zG#z0gU)!I4P`oF{{if8vV#_CPQ`bagXrpS7_^iuY*T_X0Y-;gpH*)iWfBdKc{(0Nb z8}rZe>V^w&fe+yfqOO^qC0D;FK*9r@hM5undrbTYkab}aTJRX+-`W*jzVF|;X+vKL z4uhy97>&7SGhB~X>fp4!Dn}J&Ls70M2 z$hY@TrR58Mvmwe3;CMpk6~KCIt}_K;qlL@>FBRoFD57Uj0PfQy>wGii>*5o zC-vh!-ABQKcoq>(KuB%qa#~am#>v~$88^OweFLQkV*v3k4#rrhCO9gr2S1Iq9hnR~ zOp?Zql>Y!4-4AAd%G>H|}J~%HfG>#@=+^jc1G~W&S6^HzU*J$)Dh!la&o9RbEuURKwv( zCQ}pemh2%;3dec=28J*WgO%#DpIGqt*(sD^VfR-HvpCbaAzjwkDzrTno?qS4Lk?7_U zTY8N|6A3)+WSb#Gk3+Jbe)gc6Pn7sL$x4#Jcuee`r*~Y_bpiu zFXgoc)jSrkS>S43S{RWTlIP}9gUN6hUHL70aT8NcvFDx?t2_yRbyjb(zm#w=4(MIy zq!r#UZuV(VMfAR(o*Y=^3Mh|g1?yl>_oJcI17hq)!#blFSz)O1Bm1hGW_xy@0mJFB zD%}=7Xo+d*D6aPOMH%OY5Oq^@n)J&A>h?+*1$(NF) z8YsyQ8hr8j^M|*_XNM>oIQ{@;o4g(lJB!~ zz?xT>CySe=p@O`C`1ehPtee5yo4h&jh4)7jt8qvkq3GwzyJfP={1QdBipEZyt`S4# z6e2VMQwr@Ge;+W=?XBpE$pg)EuGoQ7hN!(_*AOE73eehT}E zZW4dmmvP;L`we6Il0BZMinW>NC&g28tO*A`O;rB^xe~^vEz@^$-=lMfS9qT~g;yWj z_RGdVC6`WyY-iE;~Ml43#q??dFkOvWQtU1l>tX~L3(2z zVzF1z>PQc~L`gP{Cm;2aYDe1VZfy?G>e>4~iTQYZb3ulJwg9y+9rt~1kuSDQFySWr z;tDc}TR~>=8k5-Y{$_sQg#q0ZWjLzy7q`E9J@hS7z_<-)wUPd)lGxyDO0jc3CE8zw z&Za5C8xOfWa~kKym+r|7%XuhMZFc?wB(A{i2)sx}cbG*lInG*g&A3eX(R%*p;O_SeYcqX;Gr;i3Zsqt9eV~uY^2Ju z_i(cr7kpUi;l+iWd$NRa=E0%*&;zK@(}&Ck3=_t^1t_fA;5yFJW9(ssp;6!sa4)r_^Z!=3>aH z7wvkHginwA)g{foSW^nOZvy%>@{;jZA7&+4yYL@3H@L03QS^+V!hivT+bm~!WGE9p zLr5I!%ZuAD;}=P^j{?pE@`D*$bk=XeYND|dX9rMQWa_(eZ)p*34hMm=e~+&7d<0T6 zc@o5Ky(UiE<`ECTJLj+hi3ktE>LP$&&J^kxqR!8-`BJw<@*OxOSXC~=%gJs6>4$HxbSi4GOok$aEIvL%ad!jngsRxG1qBu? zwSNdWP922Vey3hXM-#IylghWD=m~?`8f+B$d zY5TE2>K}H9qA0f*&~B`}1^RM31sYcYePFRiZ2IWYEaj) zji*g(T(cTm9+zePTZLPxyPt3N`1#b@mO^s!d%3Rf+r=50x7a`Ux3J4XNH&k^L%qu{ zFC4Gsq#41(FuoOWOdP1k?;tK+YucSk9Hd;pdHD+!zb@N6RAyNz%k`fytK7Lsq%b?? zPvw24S%GIN58RCt)0Tv54^3-k*tqfW1{F`#0o%GxKB!ztML27&VPcmDOdfL= zl*E2lA)hR)ZysM`N!LCq;?$c;)B{5k2MkNh3L))zZI91OBqUewNpMjsdS~|+j!SxP z71mSyLgBEQmX%qAX0PT!QlIpumDsAseVk&dymHEX7w7gOs`2DgpW6!+7Wle{lxgfZCZhIGUASX${QBGHh(m2FKc+hO zHmPXHR;Q(gHZ!3C%~*m-E2w95ZbtL`}(lx@;RMVHd@s*cVM{f8~XW)KN z9+;Li`()K$Tf=<-&Va$M%=`zTvYv%I?!` zS4X>flE2!k*qj-yVTr7|iCST|{12lnE}xIa!>Ds#K_y!A!Td4 zwWG2rhg#>W^~ex*!59|1G+3Wb99zTNRmpdHL_gk^X0m~`AMaIH02%@sb-cGpP`?Ac zxib{KG!cUU8;OCK91UzpKqqa~tqGH+F^IdZW`=MvVtP~XxQhc-rFJf+A+13tgH2@y zZd~=hA(rt+Zy*v-kPmMXz%Y zD1Q8K5T6w2phx@tjo9Vn#hYN7h^v(t5<7&L7$ILo0RHe@ZHk2GR?TsCNety>` zSs5QX?5d$Pb0o4|{x=mfiE!nO@v1nW8r6rwC0*UGQ|rjIKB4g4o2`AvZ16h{lXH8a z$I)$1`W&jLdxcGzStpyAkz-%j+X^R)$(LOQ?jS>VK^6LhouN*AyvwQ-PfL!-$>4K$sN_n>x0S-2}eUtCF*y5uig|58pJ1Dy% zr9AD*n3eiwQZHpWFHsw8w@kK|nP~|mxM`_{xO&*!|0Qz~Vp8b)^p07Rr1*zdwkbxC zpjNCaT|s}*&W_q6YDqX7ucLxYC+=-vm%^k>X>D8G`U~xMzqAh%<=y(fxuug^-Gxfi zqGeBQm@)}-5(4L@iMT+J^lWJlFHo*JM-o5Oh*B@fK}EOKZ>uK4fPGokXoSEeB22^= zifRE-Y1EpgtIXWJo$Ibc1ocU96MCH!H+-bDP0nSm`=12|{a8DP`{o79w+=Mmt?d<^ zGmBX?{P*~2Nthv(-G!#h$lhvPjZYL;zF=$n;8i;#8MqDU>^)bsd zlRFfSlTSo=>UN!33wR`Id^0A^u#|6+6*ow7yWE|y-rR{bj9)l<=)e`IyWx-qQL*FT zJ)XFkY}5Y8{8cc+!axj=L=K^lH2aR-=ZW)G%LvYum29wrB=wGMRFP}}84B871P{n1 z^=cda)h!prr+JxK(56TOi1#LsQEt%B6rY)8!G)9JgLo?W*lp1*yzVwEk>R!=N^|P= z#h(jos(>BI?!xs5VdSExB~~)p``G>w-h<(J75Sa-%X)%qA4|I%_`fmcGjs_gD}eSG zJI5`^qsyLXu#Y7|OwedpLbBc$8horDE?_XChH)ZkF_PRmx8zk)VwT)1;H91rY@mmf zL|2q3z$b7I`-B3&Osa&~ZvNDmpE9O@AsADLDnmdKp*nV-a4>|T4ABXaknFl-%ifRC zN+rLCC;81}ycb~bqa?fs(*L1AKb|JC2iZ4C;{G!{$`0w`Iv-6tjwzDKH27 zk(6-4oM7_HDpltms|o{%Q_4o@*MxmN^3nEtG!r9}!1vm&bCOhN%aX4q&fnn5mjg7=nbY(BYMXV%TuE{+hY&EX$@KecKH|X>`rPh&o}9nt zQEW3j@}v>%$)D?r7hZ*9TO#D3dLpSeECfey*?q1+p&;+LAt|t5y@7tLB;b4~Yk-mz zzAs6SJ2^-w(=A&x&_{f-Hc5T-QjoxbY?fNqxQR618NT}V6qhxmN!fLz=$e<5H!*k0 z--jcOoIbM>2!gio<&wTR+ruxH7Cq2cj3&5{Lq~0xNaEGXB?hw>Km zby!RJSs_$$+6!2x@7UAjt?lx{fIa*is~4)cId50$JgSDWRww_Qm$Dc?YqmO1O+53b zA@qtXBe{A$e=N^HmGS{bR(^|56&?$ch&0*#W1buqo>C{+KSFAp98l}J8v`WnZ$cYM zu-$5IwmJCzFxUt`%D#c|;!a+ZJofCK6F0nYoCMCfP%R_1{ry2>G(m@%LR72KvL`~`QR zwbCvxMc=i_;0I^D1jjtB*j%zBx~eE~JG5RnIHs$#*Q3O*|mKAejkJQ#c$<_NWb< zjynWgu4iYEK&y2RYLUek>qaL4%6KSWq9^*0G?SDy$?<&$t6LMn@e>uQ5RMhg-WQ|) z)hd_x>8R8)Y40^oI*fBkor3kHXZ<09EB%{7UqU;2@ib%=(tqFJS05(RlJfSK!cx!T zl6&i}ueT(gUv=5F;Z&M!zytK90-GCT2f6JCJ4o#L>l-|9-uRuNcKaJ-mm4hw4|yfN zzeDk4EwZdE<*i}3Z1j*R*s6JZLqUt46`}Q!)GHqEZHgUxfqx>K+ZG{SYM@D$MhSL* zXUV?uu20;~I`ipCL7qeGBfDw~KS~QI+ExPxp7dRDE1Iq(lF5o4g5<{(ujq1B_vF5E zem56RMXk0iJGjM1au*2Rg}a}}-Ah0@v%^N#QhJvjTVJpB+u_heS%e4k0+$VA)YLlX zB~p9OD6g77>Ygj*MyT;0Y>#&hZ7k`N^SLRK$WxQlntJCh8y!$R^()mv1Gg)X?w;1m z;{HtN=$(qfD9k|bV7d$ps~wPP^fQsw*6$SZcV`}ddH!>EEHMWQU2fa_;xb*ZK5?&rh zA12u<2qqwh0yQaE2$OZ;xa-~F=OQ($13I_~za3+Rb2~u6Cb)0REIDf?aX zI2y2j2UoJYxnoT?#K(lbEe1N{J(JdrRGz`}!Wo(Q$WbwyHey6-$R?bpTi}bzo^xR@%KHf{M zu@bdF6=!45xzIR{)0&BM315>z>|=z%B?sl}%{8<;KpY50$%tnAu*CCNU_({W14R}k zz#ih~qR{;(ioWO{vaFJTVg?yaTGxEC$RZf(vE31!>Xq$sRSN=~zW+;dNxE-a+VD16 zLjC>d|3j20dY~GjUd1=sZ{D3cDsjDwLL0xZe{qN?c}0_y{OA)mD9DAljb_qu8Kn`k zczcSTS$YCTpTt9ZxBy{O{m{5}^FQLF0!^&=BZcdZ2BRob^t+u-odpVzs#oIJpzagH z?}cCY9o7UTB*j)OD89ADgoS?=#<=D4INnXk3%%vHJCP#_g9lZ-D?m}EcXf_qsH+zW zJbA)RFExn4j zqg)0NWV+lRVn48H{tab8{p?;raB}qiBjR8Z7IZyXkV*Y~vhv=#&sh%wXPYvm97-IJ zz>=evk0^W_pYU7}P)`>dKmk(S3~`KFMY81 z<JMB@$G>{tutGX!xll;q&;RNrbhKRJ2DbC3!FI{KxLqkL`f?Dx!gVkCdNj2_!x0YrR6W zG5ON^T*UC36LZ6_T>V8;4c~FRQGf+AA5F}kPGW&&&F;5CL6UtbSjuOGJCAVC;6*AU zW#poje`I&dS{0jOTiI6{$Iq-fay@nICrc=il?eqrDR{}Us9A*Gal)26O@;F&<}!t1LQ2aPdOGjnxV}ZPp)1W|kj+Cbngq zQ_Di~ioJrB9jipsC(aOdjPKt@DsbSCP{M&4(3mcyS5FujKlBU$HWg#YJ@CojsdtgA zJ@u%T2y@GiZU1wQiZ|C3vtf{k)R>7$r=85Stf>qM4nS@~>EU&k{w8t?|G|utB*lQZ zHX+_B!8!`1D5;;*Y5{lXIboR4_d!EFB&yjC)bw#EqM3m9RY=65SyqRot@BsI0;uY4QPz0h+W;3OBF_P@&58qY(;W#8&|mbXds{kAN@JFcol>V2qZ}T zgo&=@9%SA~y-<>=XgdmYP;s=2hPT=W*Q5>r%Zoubuei@}*zGh78+cig0CKMJ{gL!4 zgdrRjqj1I26KMgW52>6U&0`AD9TQcu^2&01L3_IFH+NTtm>z&suod}$gaWj($+2W47=o6>d zkh{LxMSft+cFQhl7W8GJzp@J7cqXd!HOn|OMLnRuN_iea*Lah2y~*DINWo$zwdK<0 zEeZY;afkdP9C9V1kN0a4lCq4{8{_nq#8x%A)BF&R^C9b1*_K6V{8vfbOyHtrK)Tqq zTbq5h_tt@+>0L{nJT77amXh<*DdJ@$^^fqF-%()n3-gHhh>w6UpBV zu`tKw5It67%sbCSAT!S64Pe1q3M}r`K8oN5uBfo8Jk#X24S7sRFw03xQcr@b);52A z^J|5loQN8Nvqe73KTv-2tfPsgL-hUF$BK3`hrBjvgLJJ&B>Al4_ z&P&?SPPFn?)xbZj9Z0~@@%_kJ_69&GBa5ULt0Z=KRajkE|7|uH%&oQ*n{m$klFjUx z>FySjEs;Zh-hp7@X|EpYtkAYs;_Dr%+LKUa9Q&|>Ch5z=)W0&dfN5^vMOJUN{;y5A9qwMd_5Yu0S(nn@nhh)%hakx_pXU-$%Tf8#CurvHqzPeCj4s=Il~48EOW46CQ?(#qO34j zNSknnCxhO2&$KpLWJs{#<8dyG9QQY|egTNU2EV&W`N`_xVunq1uxYHk-&5(Z%Vi9z z%78PL^_BU|@cF^sL5bS#OF^byE`h&&8>yWHBR2WYvyO$ymwUB*v}p+p+^cl`V8ax^ zZU|>XlE2(Bo3)eu#GEcyrFjB2`fA$Z3F%^6m_B^5uyM6#2DM--&vA1Una=|Iky zgEXn)t%f0a1>KJHGX!Wm*!&w%1tqxT8%qKy4*jJC1a?R>Zwt$kke_9bIiZ!$`(oeZ z0CgJFX#Pwh-s+#bTI4oXRD*-)F1n;i66R+$M-;CeQfcoI)Gf?#F`fuw0vwMOh~sPN zoD1;{>>2p{LW@u#-u;{^2m(bia0@w!mA$>mm=a(w7PhU99!pjt70G87?7-i-@`&kO zgo715kxa8-8}y3N37X6*)OO9C7A!3F-TkkZQ)LFXOfK~upmxGz2-j|)p@eEf*7(~e z0x4UkG8L`PQgiaHy~0l^8&gx9W8kP<{qyTO3ql^XfW!8@ppS-kQsFF%ky8lfQ@*m1 zub8ZkQwW-Ta^1Pd=E$ftD?F;!zQgX_WaP8zJ>x}b+(1cpTWrLfHryax0%>7rete^R zl^ErbZZ_q?x`ew#PrNH!MpWS*lD$krvMHG!9s@)@h)NN;YsdqR*53@P`?Ki5B_Fbq z%0k~G0CUK=oXbVU-A1yUkP2JDOD@!NlhJfurPM><-vFBkf+$JgvmH--)gq3Nn9Ht? zav0l_9Jr+3ywvYf$41Ja9H?xL6pucF9^j4_T8+|phxoa%7 z7Ov_b3gluCY4w2V+k_^(vk^By(b^@FUV#YM@rI#kh?n3fmGhbi2@=T>P*@TRl1RdM z^xHwTfCMM>6tK}@5j_jTK2q`r*uYV-ocH0$RiYQ?RY04#K{$aq`4NPDQsD`pB+ct>>dq#xf)O z%Bug;BzfIEm(v&_f|7U2!2uW!6X+L!7@# zM6MQp7`eZ4BgsTJ*<&d|AgF60J8}o5*dT~4>Tz6`FY21}OLT2w)G$zqz?%H=%jxpY z+?OmxF~6|M_jp2EAr*(3b%U$Svd2fH18aQI)JEz%$`foG|I`22cOJX!hXbN8lJKE; zZZo+SIC1*lf=s^WJDiv4D`y=~Was&~X*LFsg#TF>qNl1G%z*=X?&z^EG*`}dlH;Da z-3awg>a)qyxRHoS9xLjV{Onw1Nx=T>$?-OOeupNo84=7lncD28wA8drYL1ulniUmH zf#rCFNm8y}qAdD@!exfskN&WEDk{6CzY>Y&p}b1T^N7B1Xa%jV?V2C!+a|H!$Gzmz zpk$X?laPHVt+R5hK!u<3LjDRY&k4U}z5p;U8Zs6kbVXaIk(j;seua*TWK4RM>r} z3$aozx-l0d0>msB6MXaSAntI1Qhb*fCc9e9b2H1ln5aN9zQwoI6`M~$38gya{1vZ) z;R;(;S3>`W-^~pY{A3gAjGx_ug=KR&V9BhL+4&-cHeK5r53Fr}1b5fDzS8Wu#e7gL z7%hX-1oIn)3u(vQ?k#egRvcZyj8%v8Woh;yOE3?g+WmHT37mrn?g}kyY=BulZoTU}WGfkZp zvL2FOQ>%8_8-)XUuf;TraF_DUo!Kh}adkSqp?AkD=k2`XDnr%HWQQ{}0YSBR)yf$; zjBdt^0EO43U-f^&a`Q9Z$&pEG%>U^dnY1yqocR)kb<^y-w0aHhO3(+=z;6@BH`W9H6g%CyYg#LAy(BDm!P*&%I;o@vb zk7wk>WV#qq$_neo8&GKIXZ%Dj7XV9+WC_aHdV$G$du&6*obO0GQ&LZKC5=RQ5epSQ zv?k;RakT!1SEr@R%(o>or((jThVd3=d^bo2KD%gPWi6$zqvdK{n?DfML$M( zS51*Xw>Fto6LEZnthPBKDc6QjGsD*ERgHvA?Xk9tLx53-=^>&U&#vq?J?MAb2fNrV z8}yUW^0uqu3Rg|&>mXTV>ZtwB;ylG!Nk$@F>y@ADZekt#CKN4DjXE#5W1;b+-)e3! z*>jWco*(z|RVaQI{U*q2hx|`77f#4_+EvHDpUNjG+V4NK(!uj%FUZNt5Vl}k*Uk_% zU`#gzc3yIhckKj6^gj3J{e+P`34bYRtQ|k zb2y?&h|pp~oaQlf9s_QPNjh9`m1Jkf2)GSVhoS+{(6wcevgnQqwU8J$WH&c@p*xik zU{c1UcD(D&P+|IL^+Ec+50!H`>jSs4*i4qmSO6?W3D0C-?h#iGx7pE5lSh<|obNP6 z@PtsISc#I%069Qw%)qAB!Y$$liwecm{yQ+;2MJ<$4~u`;oLv_E;(pq7CoIvLme=kG>v-3L2Y03%mB_D z{+(wL#!*gY3_csC5kUjDY&05$iJCm_NvDhr9kf7a4=4e67eQ>OTI-lw%2O0lRp+zU z^C>?o@J{XpM6EVo*GrP2kS6I8laf~>yO$(*{pt0`)I&C-Ho4s?4a8l7x7x4peNI;y zOo3x}{G^y@K0<1hUVRAe9*W4t z11M3Hq4elS)(EGFk=9HzR2z>9=IVKf@8#nkEbk)zbMwSwb}?M2Xk4x3)SF0r-B=c` z@P&5MGq>;6+JHdpJEZQn&(PluWGW)C10H_1ogiNdVjqn+k|U3|3Ctt)rb{{#gG_$K zhjPvBo3HB`Gd>x_YgIfwR5eJdhJ)4kbosA5TMKZkHKS)o6kt{pg4?X4_+7~ zzvO0x&?t<`w}y{luyUV$J{fy%=$G zdB-)M!ew%(;baji3C($4fs(ern|C+bsyYVQ452CCp=%rWeLcpPzv&=KSrY93wPkgU zMPZgpqKbUAJ!sDFn-#J}afR%Rpe&H2|R!Ft4wZ`UNXv)8O@#v{`nSz}>|{U={T!&8nE*|5X_ z_OiBz(EBV4_SLInu0TDn*OKQXRt!^^Pktj>=_J+hBk(-mnM8Gfti)@8UjZ@14=w2W zUZ4VOrW{Ww3(7+xB#Y^QfduSx8zY3ay8r#H+Z(Dh3sFyHkW2^)-?YTF#)pr#WHZDU zNZEn+3Klk`AWD6*%FQNpG6+ve>V1rmk>#DQ*2UX@PBQ4|HLsMh z>DgqP?sZPFIVx}qp)qQ{2RWHD$ad5Y5Nj^s%5C&fyyQVtMBkV@%s2@kxiw}GmBZ!E zKyuVG)9EqcWrIn5M`FG7C35;PF)JqDdAgAIJdn30^xS`z)_DS)VX>`3rSPzEW0{pM z!a}3G!hLSP!){E^dbOsFe-WyAlJ&vM@xO$gbXu-lbB1s0loeLM=gZoQ%kXX)`KsMF zJCB#7wDt`NgY=ub5fo%A5G4P-xFXjUb`Fwizr@d;dZ-CC5zL@LGRj~&$r49| zA=SCA&GQu=D&agZZ-2I8X3^7WixIoqU^?NRCLP3VMRvq~nBMkzL*V8US!o@b_vk@G zV_Jh^i@^9Rn#`$hAJo%L5O|grIp34?e1|a@DW7tP)z8h)NGxg%d)mr{DoxdIindyB zQhQe5*9V(_FT%)Z5*B@9HqA0T(Ok)T4>zM{mf#+3)m)+djyt@p{~j(T^mdx?>Z@i2wq^KvFznb5%N=({qL$vlt(eCBKblUU3bW8lTg^lk) z*^Kc3;(V2w<;&+P_SL)GauWm-4AS+mK6YNAe1;_{g0f*Fl1Y@Sf=x;>mq@@mnq^6S zSI+g7Yi%~kL^PNJra~&PaG;o+za-%yZK|wT2!cA^wtqq~mNf)uOwgyHQXomAbgwAq zNmUe;k%PJtHH%Q+(Zos%0H4)do`iR66Qfd|B*GZDOjMf#S+;OChrr(NC^y_gT4tEH zVgp$+Y9ov#IC71&-zK%_dSX8r`02bS z@K}qF_I7BHmh@uSCPnJaOd4m7xx!mbeMpaD|2#vBDK_*v7?m|au@5C};;7=Dk?^n7 z6Xu)0PFxUiOe%{;0J^%6#u229lUfUhQ+`BJ7h%HH0=#?cJ=$$k>?qNCNP7K#D=o%b zJB<^SKUQt<#~tDtp7SONQ7XPfy&3SyBqhFJ`m$UtH>u@B-jta`Vs7=RauklMb`C|XktB`f_O7^{iG54af8%vlB|JZ$yrS}lU#fj z;1y+BdUFs~k5Ak-^U{zZ6Bg*btGOIa(q4Qd)>65t(_VmzqE|dYQ^@+1&y}W#%a1Ad^f^&qsMt(F1apcj^=LcO_Km8Fi zaaQ7KE1s+w-x+#EJC&z-M3!EqT%{y%Vs78TNow104uCZ9_QgDT!Kj&&qBx0;&=i&@ z5yWhqm&XLb6w+EvTK?5(+{fu~xiO@=4ZsUHf(%!Kx#KzXj`lz9z6n$cP6IUQUe7da zkizu5q_V&jwAl9;JC8hn;#pgBtm-bODBLCV9Oc4llVE4Kn@Hy zkP0$n&QyiyR)o_Pv%`ogt!R+c44999T~MdwAMJCQZH5orIC{b74S?dxjH*|f8&{{O zPY`|%Bx2UclW6ciI3m{^53$=9~r0i9=>&tu-s6{w7 zwD8^G)j-MkS~?$||MI=p(Z zXIk<#QGD++9}mSjFClGRFQ;{FW6L}*Fh8Vi6q=(nj_74r(6E;xE4=%w%Y}ck2tn$; z4j$>Uh?Yw$x|WJ;7pi#_+gm~T%*wTMmph&a%kw~c*mtgQVJMF|?MyKQ=eK}d?Esfz z466d8DufeMn%P_5uNh_kGPa@ZhG&J}?mcyyoslb_(<~ieYKq<`PDzAl>nt+Wh=OV| zJ-PHQO3i=2LfC0yWs`O!G>);^A@bvr9m{mQE)|ETxdnAC^Q`VZiG z($+;v916Ftv3{s%pdm-*)V&T>tu|3eOHK4}XWC+Y>Z2!cn+&P@yG?=?I6hH@Y`Gjf z$NDs#vINz7DarT}AKlGYN2B_wo5S9y80MG_}0d{)yOu6p-N;@(eiALshRu=(N<-(`Vtpv0IS9 z`vvZhGZ^_5I-B4%YkTu&+n@T&r7s@GWlOrRhUR@rS?5hQZ1^ak40b*R;{`@4V8+E;>NVc(%?gtF@~Sq2?%8ka3ya@waDFbsuGB=kO}8keKs3bb8I zO^9SmhuPUKwEpV(v@L6DIe?C20dFtKl`n)w?S`q^p6ndG?OH09!UcgHYe2R(be>QJ zR1MM~CJAz`qKg$%BJc5pzQ}92kURI~P=guq;Ihj7y%>X<+8GU}L)JnUh+`sY0V_WO z4^B=Rrf`s?u6vo)0%ifxu2BU=H2?p~uM2>H|HOIP!f68J(f$L~<1?}gV&x=T>4H=i zULkkd8Q!T`&>nN?iMY`q;R$Hu8EN5~dOPt@pNOr(!rhDaE`!=GK&lS>4MV;((UEy8 zT;-70V5n9%zoMs6`n+0t#yDZCzBEv5Ub+k6ZO&=DO`>}!L7u+)$|!nUNsljyC5i2s zxF{b9YCOxFq{s2iVbu)wCqKWKpSz6+)ly_%N?g1i&kYZc9hQ1DA(4kW0zeZ6=ZS@9oP!Y3K^tGCj@PX z3BWZnLJJ^`qMuI_QHms}l*jk!S_sbiIY~Y zUGG(s`Bc$+lA6ntwp#Oo?>lPCe|Qi5cwY8_rFTry#b3**z1MVa9iSgafsBH?9D=S8 zaD2?$&CjmkQUP_oS0c;f*@RHqEv0Z-}wi3%yuuE zr!PiKcc1WPx+hqBk#yKfwDv9eeAG5%tK~UQ6d`3{%6?vLs<`+yD%?=T#izO8Gs7!f zB4oLj)0SYf{dD!oGUJ@HZ~D|=|1kFGiSUaZL?v;lXGp_b z*l1@Ee9K{Ql2+qn`p7M`64aVccJ=t+E4yoz%R?Q&||*X@aG9nmw{ss`W>hTKkdaGt+)QLU7m>Hd}3-Ke~F~6yx^zs2?MO2`S+o z;>$C5Hvnj6C;N9D2L!t_D9`0+hYcoVYG>%b-1!}f86wLA1Z_OSVsfW#gBvF&YSk)w z4h9A)7;t@)#%5t*E&e}bVE zayBGgnP%-$4$HhmR6){bhA5A|O4~q_?Yt7gf`hjKzb|0VG%$fmZ=x{bOyk&xY+8XE zJ}_0fv|wPpMXutg(l?U&4l|Xic#nD)4!X8W??6duvRh6<7iE;Sg5LVw7FBco{~c1* z%*GG5$ogk~n8w9~@x9r!W{YIXn0)EB!|9z>$zy#`p^WoFLvAcIaM26sGykmr&f~;C@4-6ohDQ*l-hOJZOO1@$+reoggan&%$t_hvFwP zTyOmxMqHC_}c$Q%sgWNu4je7|wf`(!bX*r1|vj%2~~oNHsYcWF$6Q zb<8i&6bN(hQSoEI3yl*PA`%$zExhrruB<&10U684LLo`GEzo3S7-Y)~;Jle6A%xT= zR2{KCsGca~m?b%!>i}o2qnYSj*c!fEBpnhxDdDa!?1~i5(D&Ed{O?$kZy`oe75LeB z6g@ecI8t6Yk+I)4RkA4>cjiB%V%6V*gQ4^-`@FLULvv{j^^6RY{K5 z%^)WlvkFfx3s;lFt%~fJyCWx5XH}~F5$Gw;!!dxfKIxup0R(oGZJ%``nWk2c>KZcV zN>c-Z6wdFapBa&IF~Yy6v=8Ub4llTx*OYEN6aG zl-VLU6KIjpeCz(+0FDk5#O#m<{B+H@i3s|bn;2ClFeJ)UVA~w{VxMc?W5<17k4ss} zXWOAMAK2i^^}-|zTr^wu%U^A$ZFw5#98Zbhm{6QEpmKa09JcBnnhvsN9~1^|od}Z3 zMXlyCD$5-Vd^BI*as8I3$)HCG8bl0XFps16?}cZR?|N27b*Rx1gsz-uEpy(d#q?0@>j@VV&)Fb4vbEU6}KYdbO}w=Bq6!Jv1% z|05+^RA+^01VMQHgRT+QLUljT|f61E2h&F_4D z`OMlq;|(U)++rggaFWu(qW5KZwHsxFGWO(l0^5}m)*+bRW8hnalf@X|k`(+6&QVLiA4* zBbTd9OMlh(0t5E4Qc3$M$M;IJ?HODLV*)w@5U zVhjOlZsT!M5K4Sjz(gZP()+z*jgOHJY9n-_J)B21zM+`_I2}3$oMoI;#0gGJICXZ& ziy&_;Q-~41b6qx3R)9y#k-r$MEE^Fs(U?;pls5twn0NP)Vl%Fj$+nLLV^SpM?CTx|2neCI2kXxKd>M1aNcaMJoDm%ao zBw2iV!9VIe4_F>k5MM}3<%%AXRu+}R06vJGGpK~-n~#aul&yUv4QRkc>&fvoo}gmN zNj6RfV7xY06+SRRmG4jYkf^Vc)-e3K4mNP7m7 z-nMf{+T)dlEBxe<>!MX48CACO0#i~Sj0Tdg`HV!n2jj&PUag!)0<)g7uCGT!c}kpj zHOV7e?L~WmB%w3KKtL7u4JI3?QDi*er=IjBO;s}M>-V}mD%!ceE>fA`>TLz6hZH)xKlyMRQ(7izoCJdgxXxowJVBg(Z4-;buOyJH75Ntmk}IK<NAsWBRRd)ai<)X z=<&v(kb0d;lc*{WufvD|K$ziW(a<#0ta7=a{b<3!C@BY0q|JJt9Q>?onjR|zjbG$V zlx>tdmVgXRwIr({C&8qM`CqnrYK6DJxDB4M)#X5wwYD2GmiqB}Bcj<3}kyH%$ zkMn{s`iu=Z^k;B9t3tJ&zkXlh`DJE4&k=JPmr&m2yFKhX0~vJ#eR-pJ@yv+U?wfJlM_)g1u6Jn}s1J00*`OH;L8K3pPGvtv5S{)S9 z?ea2`-HI*4$kOc8wRXkuU)tX6`iO0Xn8Wb`^583N4vvEWO^Z zg6uSX`5n`d_8EOhFx@Kq#7WgfuzLlf*ev0*PBs+o*?BkQRGskXe)FRgyZ>06Vhd7G z^>}S0w1X)vX?w%KkQfm^Vp-Pvc_^c@Z-QX8FbLTgYcSoPZ-7|*h+sA9Hx;~O=08`& z%(d{9$_izX$d{I!G^X?0h>YM66iAc7gQ)L|mVB{FK|4p4LENwnmjpLTbF%mWDR15T zAUHzDU1wyK363Yc(=#hDK`fyVVF`+TC=D>>t|Xj!jYHeZWF3mPO5tY)Xl|HeN;}z5 z(zaT+-X_eIB5o-48jD~Llu5<(E$TZWmy+kWAJX$?cD}t*PI+SeSq~SABxVW~02%xo zuT0V`Mmqs7v|=ujNMi&bdhi6tEz4YERGvqo0)~LX%Sz@!14Zxqm5~Zyd?3rr?)}vY z4~B80B&BO{qt~qE)kzK;XO_B=Z9@@oFOVhYcjivhq<^YXr3jZwSy`pWLrl1o5V2@_ z;!{1sD>VKP{rsBoLJHajJ%i`vCdAZxTZqRY@CMp`_8M`o+nqYSh=Z;Y4t!T7g|1rj zfSt7?o-A(n;@jp@@cuWP+*C%U*aXqq&si1VR8L23=;I{{_K;iKV+_WW_-oVB?m*~>1=JTY%_19 zyD-1_^)!$60m&EcLSQ0I3F@hAHW-Zs1(Uzv%}(6e9HtU}w8$#HHZ-zJ;Pv0sQ-0xoRy;BBG^F?)&C`5tz3j-US zp%zec0$03)2xOt|=SlxS>4Vm3Fr?4FWVkuB3w{yR#hrItIwVjC>WX@zl zQ5g=I@&pKnlfe0RlI(61@nuNm3Su>zQ+KCw%IMVEEc-T6===L#aqGaEaWjLlm?G`M z)>@g-+ULC3c!~R_9G1J7yYhFQ@%=?iaj7AR`HoO;T~U(fOL@%sglt&5cMVP!QrdVnH;40&bBRYwOdj1`K=o>huE(cc6cBpQJfK28%f;M9N z%U;@U?d192#r6 zxTY+dzP#-ktOg$P)T8~-+vr#H*k;h3ELXnaArx%%C*ovs-t)K1-iI{(<&X2EycbwG zasL|ZQCLk-EthngB$Fc%UeAOSZQ|0Pd8K*bzdV{rHU}eMixr*?jeCYydkI;2W}D8` z!Q^n(a!#yxn$8-NYm`q!5AH8m9yJz%VRlV^bsIiIqNs1}F7a$!I2)A|hXzbdX0kaa z(Z;5JeCIU_JHhe;7L#%mSJ4%Z&|0?`jkgrly4aJ5lw|L-zDy?>2=QT@D7%Z96 zfFKE+7rG{GQh#(xOV*zM#t0SaGU%v&kEGr&7)};NNDWZsR=aWH0F1w^+WB&b=!3qN zVN8a2c6VxPxOBBYMjTWn?XEkk@gK9*toC>nD&%{_ps;0wRB~`+vT~inomfRAU*0pP z`N+on;+i%>H~b2Y@@`YV%gy18mv~oL;aZa;RewNbgLxhaX9z*RATZ_XZF0`2{cOFv z5H9zUf4JiI5++Dq})?O|XIlXyiFWor!o8&7WN4 ziM2fTdE&v8-5_qNXzbSmDx8^{!3l1+$umEfUC?f7=h-L4X1An;w|H z+vrc_@vbxvhQCG-{-$y}rH~3=Oxb!e8dfDMZ7BQG5OsDkPU=C3X$aRX6`@G2?SiZZ z#67wYxWM)Yl<1Fl-f1D~gAWl*hq+;DoAIv}=(s@;A~GOrO3&S!3PlFsn$tY`ld% zb%yz-yqkyCP*mPI%#QQUV1i(HmpkwZ2uqwQCO?tX`4rR1cmEX-VCfs;H^%}JFq3C| zDFfw`Ho0ar>phcel@L5XYFGFkB?J~8?t3T2p*rVqMkDx)5^++^wtmtVh@GR8z7T4*Hw3u}$^`96p3sW|nzP6$G#pAGa=koqtQ{*j-2 z*8EyeRtxKQo}Oq`muTNA6Cc@g^ibn7ck0fpx|+~?aorfP{bZ`B)x$rIukWhhj}B&! zJk&;mG{7GJ7ayY ze+HZA*Q5G>NKG?-W^*uR89Sq0dJxmPq@*^G(X*Uxrx#wmv-I7V*#oSzf~Hv1+fY8Nnkz4G>3lyTiiy-?R@Lc0!8c%uz?e5dqr(ye+K|v$JE7D<6v|jN z2ovIaczc5jXHmU4>8-Xf;qk-l$^Ui_%Av(Q)Te}^u5@iVL-8ANdbm{D&n8=ip+^QT zI=F3+;$wY92zjfy>>4mm+RTE)0#OCdno|C_g;?{DPYUpY5=r4F0uDSEtK)y&M_L5f zq9&BD6U3~8MduJ6`rrdxe)?uKqLg!<7sEKaS2ks;R5(;^*EZBqS1I35iOCfFi*%s8t{;c!`1_1p|tu zf)H>l0*0tKFn9w*5kw*)IG~0}!L}MyCP9oM8k|ZiYSdU!f>K_j)&Uf%{T{xx`bXEQ ztA=pzInS{7ZbHX~?%w5jcPP_-8Ac~7qQ7Kuf*j9hP>P=QIx78_Ix z35+HT3TB3SeRS(d&bSVt!hszjkFtHiZqb}Mkn2QIyAl7PdHVxk1>=2lDi$~3SF^Bi zHYD|GO7K3t6l5w}_#!J~y{*ngqBhf~`@h&w53W@7n1d$YzL)KGat76{XE#;*xL{q3 zA}2>W5rM8vJY5Lh6%!13VqqjLJb0!70U_s4rC$2I+ROiD#w2M=8xD=yz-+%IbxUrVV)2p160NczWI% zZ$0IyjHO+KC?+@4uw`&P^5i2AS!$A}YyshI{_C~k0WY_Q{3fYWKSc+*Ru<8iYy{j~_+L?p6lBZ!&l&YB~4ZZPkAJZ>rl?91h8|_0kRl_nKj$>5O zX?`Os8}cTERJtQznk+~&5S3s_;H8;us2s9UBlz^;5JUE)D5^BuH6^CAa*dP?Y`9Z`4Rp=WASi&<1$$GD+qIE{ zCqoCPg3DJZfY{(>xW816BzwthD0iS*c7y-msDr|`vLD8c3K8;igIPjI4; z0PjO2vWcn(zooYzDLfx><_K%)9osF4CzE2b!j%@SnhL?e^( zs*g@X*!7|7ikL1quNc0BFQgr{fajO6Pam?aLePvI(}vMt#fN2^fu!*mo8a%J3+pz|dXd7sX}d6m2lGS{rTcCZ zntfofkR9ywPzX_9g6Hqn!Iz++n8y3EwxGS-@ls&7js@emK8MZc3`*QVf@q>TVhpYiK&=%ywO8^_AF;1uftTzo*Igl}fuP z=vy22EjKS#*H9D6l6g63MtOHixvNMjo3>{PjCkX9n;RDmyS8R2kgIC19o z10Jqd!hW87*0pBEh*}sKAAF0d9df-0~ z{eP+QUT-&WYno`8?#ALV9)gyKAs0x~gh&`}+DB$F?Wv)(55CV=u37@ogs(x|n5d!D zLNh4yjFn<_w{lk9)GMqL&5PRhL7yBu5^E|kawN3J_9c;Dy9)h?$ts? z(2xi&KL{m(Cq5S|k(qgj7B;eJt;zy9mdRi*`GQQKrPFA!I3OEXvgpM^PuQw2V#Tqk)vR=ansd{U!inSvgCaEL@xTN_)n?f?MHtjXaOkR;ApRjQ zahM?yAQ{pj*L9xoGX>EQ4_9wM5qv3CWFVsvbh;D+utQNq2Dtu)1xlC57=?ihNoU2W z&F`sX<}5ZWxd)))$0Pe;HfE)zbvsyFWooG3f+NT8n*A0kZrDbR_0)AVz=xr zR*hM=P`DZ#ZSQSMZmp`#KA%`1>P(`zLfgf2jaB!$E(>s269)zE!3NN~2jvvemK z$4X~XhiFdrevJU`VpNV*K?)CN1Qmn%pS{S;)U5&R8cRkX_`d)HNQ^RdQ3z?WO$nhN zm`Sj`RG?CeJv69g6aetP<-FtD&!?CgC@M-`8o ze6kub38_ZdAQz$aWP8&MmCP2U9*<~d zBLc4OF#92Q`>-CxC~kgLI>^C3j!Uj)ZLEHrXTTC=P@n?biW+(T;NU8N>>5=gSa4r#xObza}-q*4QJ*P)1T^|>KGo3XShTd6Pe)%vb5`I>GjJ@7;`4+YA*CE@h zBL_H|ZLrX=$&1pM=|~rtgeh!aKJNwjJ?&9GTyw`j(mNQ^O&3;Vn!mT)BK`o+cdV{c zssFqm);fL{1+0_SUK%=SelM|qI>eWsleX%z>?aG^r@x_z}hskAL0qFXOIR6 zKF+8|3Z?D?v{1^y6d>8}CV>YvNOd^R;v3IcsTq6bS}!1A7%8GMiB3+-#EtM@#<{dQCw+5~xxO~=w_3;@ux4>^I>ufS z9`aIGX;rx2chL~fO{08gAEfu6H*+MP?ig+fa4_mD`$dAHh@8wnyB$EU!muG@6xF#) zW8>^tjT8l)+PI65W+>mf8&Z|D+{OQEBu)yM&R7Cc36%-6o$eq*)Y!^03k0V9zKz_Y zNzU{v*; zFizcJFSegL3{DE@%}kJYp__;JUl4$BkeG?*0VsYOr!WcaV6iEQ2UgF*R2h87akI^&7DTayS{Cg{fGd>-I+`}Kg~%~;safUV8r z5;>etsiX!J?W_(uJo|&hX&O{l@xXEFr9wsqFf=}M%cMsk6I&L+1>dMT$eO)aIB|y) z&A7!$k)H`xA%U`%avTKazsYTN5zVTJymnB%nU!)}HIXFEJuV`G?xQ;I*lbqMi~#1R zs7uLZOYq3Z^8>U@fI9K)4%+IAdVt3M$KE)Xn>W0Z`?nR)sWLJsjB1A7!jq0v35L84LZB}v)$vgERc)=w*GWoQbP@vYqg7`Wmgs-y zM_Ae#a_etgXKhI7J^%Cb68ErO-!S|_2H#}LBIV2@BP#Cc$Tg6Sv~{VivpsT|`B zGHXDJ;Srmwt@s9@tdvM>RDg`|Z=ZvBlMv62#Xi_6Y40ZvuflB%OFF=fJm-e6~A+A;qg& zt8B=eFgd*RS`&>#QWsxl1SX>lGRM0Fe}B;lCWaF}&!7(T|863V=CcN1R3k^6dIXMF zLkqUY(S(a&R));FXWn>0a2RG7*R;)9Jbk)QKw}2=M-wnZen6T z7}jWU%NMTt9YPFP6U-3rCAdxjlyco?vQr_J+)d)zc1PK70m1H>Aij(<1f?!Wz(Td` zz#-RBw5J+>cCB=nV$k@;#%cEGx!KD)vlL%)ZM3-(*5Ew2+avqAJgrH||XwbbVV4HISBBx|g8Q*1y6=Vc=#ktq1Koa3Y~f8o3Fd_p7%by&zFNkl!Gjg%p< zMK9B#90Y|bla)7YpqlB5MG=}4-DYj;#PBCDrh6a9=}rR{44h4S4maVN#u$&&K&;wi zbDo|`zd$iE+dLe6VKM_+)uxO{XW@azOTgr9YI?wFnmIAT+Xr7umFG3N@N^HM5 z7t!qT9#Se~K>Vb9p=6*#VMLdY1nRp;rJvs2n3sN|r!Y4pf!>5vCNxcDQt`>4lHAaU&(QX zmF){nzKuA$*K|S`iJ0Y14kKJ4h!C=;LI#KF3OG>1GO`=3^MS{^+8FN*vv?t2E%`#! zJ2`Zl4@AS1jHHf9sVu{kvu(1y@Hd0&&9~fo6Jyk2Yd#8hY7vYNK1}Ncj)f3c?<|oE z5!2tjh9D6*nSev+DdQN&dT?a>0&&Kvm?wHMC9AQu(&V58t5UIR2P`olbA-W{a4{FD zwM%Fd+D1d>acX-Rn9fyBLU=JKeT(%&j7k%1+m(`2?Ltsgz!DdU8ifQ`2~PU~7_XSj zdSVqSf>n*9Zjy#TFYP^!zDGoG7mIIpmu->x0SK78<{F(paxHe zlsuW(RhK==H!948`1H+X(xGu0G|S0RuzyL}4*0g#_*!K6eSg$CC||Yvju4ZOrG2Y% zcsxP>7)b=vwrWr#Z(t4zvp^Q9ylw!0w38}(B2o*w^E#5d4;jWtRiMV3m+wCS(<=td zk}Fw?Q81e*bgI@08LD(Ql3;RXM7ipi?1enw)%kaab}$*rC{xJ`YC{1Y%Mi&s9&eeQD})9-?HzD~2RrIxe{W z!V%;zwhxNdpU`PM3AybZB+=0`uETSO+==lnF41OC=}guOO)1WcY?MajdHWJXzjH!2 zBPD&$R20efyR2JS?6OqOO^EJ&9hShpOB*%w&fVJ)VWV}t8qmNIu-w`k`o->&hz4O# z(>#mzb4}yUr5fOpKcP{Cx}K{Rp$0)=d+SwB!cDDlI+w1MJR@zm*gP(MZeF~P30>ai zJg=NIeA7OR#U;4K$o5{{wrJQLTNazqUEgWGaThEORVId~B?RN(HZv1F5M6_4I*@V! z0d6ig9S2^PBgniFOCd)wgh!*Lq8}#hbZk&ZBwQxIQwpUZWHVwQjKUe2Pl`%O-XL9G z)rRZD<_BMi84X4dp~;s5PRF)8U56i(;XU~Y3V!YA>=3DBVkh=2x6rKF}N|H zHA$i$!B#TeUh3#7z6GWke$kM zGpWNO&?}=d? zP&n{f%$ov1A``Mi%96vZQ7dCa3cX1fP?~{FLyE}eq%kl8%Fy7>z!C}ruO-CK%UzIW zANr%aw4dfQ*E$>TQIpvFaio}1E45O*BWOa=qFO(_brJ!)dqOn{6I0?;K)s|A-}Fw; z;Y2abn-VxefpYtz=Z5APy5j?|DPU^ARLNJvO3^euLIe6rwSvZ@HnOW zOt2vmnUoUP)WESqu0k+ufR3YuLmS)0L#lUj!yQ#4%TSi}QA(|=E2=c#N6J*2M9$VHGZ>Etl2xC3SL0D&duYjZ;Vq^zA2wL7% zi~{3*XkqIpO)^$95B^TcI~cfth(F6%3?E!#CtTI>0X~WAd!~g!kS&E%lT$VxzCMe? z&-$fhsQwo-_}s^^9bmN&tPK#l+g2Fp;8MNXXaa}m7>drRBesLd9Rn5uj{;J{Hh3}R zbj3RzV%Wv~TPGBOeg^1^vz>%%Y=6lDQ+jx2Hejo%tT#O=y5z!)sYrAg_@wp5Q_{`vBJ$V=t{NNVCXPz zaTAs_f2|9OkL;)Njqvm#K%vAV$Ua#|i5+m2Qw`0^^9+?u9xVv`Q4#hZ1jUbp$i)j+ ztkONh=#HsCf9Z2s?iyQ7rPnUFdnZTw%<6L9^Cnj#ZJ5?gdZ892>?Ll5n=UJk_Hoe7 zLsq5%Z}24ElY^ZuV=M(7u*pMBi3P>edE+~;il&dXrj+0lwwg@;V`rP7? zeu6@}Yw?7&WhjHh&nTFlD2Uf4Qvz2Q)6|nbW7w58IsRmOhwWlLqxf%Lck6{5tNIUj~oC%P--4X zToQtrB1r0$u=e{kD+55}4O2Hf0c^FD%)vUi@ajm2K>|zT{s53+fut1w4-p&b4;7WCy`;q0}2(4D5<9Qn2srG?`wC4s@x3G*pmp=$&AA$=4wr?J} z8?*8yS;n3FQ6i6e!%L=`5@LeJbRU z<11Io$Ylo_SF7{l6tv7t_{yczN?cnPO0e_}xi^{QB`C_=<_e-{N>>XBmEn*G0@0!g zIk;PWjS;B_wY3Q$>BzEnJ1UQnLL#&-14_avC!xWO>9io1siouT9yF#(2rR{6oXZ+! zM7No|x@Z7_Q+n8xfG?OGXeenGbw-tQS*r1y2F&A_Vkeg}HY+hF8b3WH8TP`Mkt#IGjoj#U)pR1?@mk zUOyoEKn_dn4*aoCLeGFfHScNEbp8R^7YWUNJM&o7<{FUWT>=knEEr$Hk{D)hSdWVk zjIKJ_0h)$85oHtJxky9BZZF$=63w4fT}1Va>n;1?8`$QUS(e}_$PUi%8@AOaNKK_j zQj=CU<4-$PXldhG$7?)5td0xPno7xqCqw&zt)8kunNNzJ<<2xr{BH6QKt-TwZ6@Zj z3$?KQ-*c&pXF@*2%Ij9jL{?o#;%pJ*8i#Dfnki4?2BWW=(k{AP>s~#;0_uWg+-4xN zR&;Jd0DN?^=V+>y+Z0cUAL9o!F2O@Zm@K&5^Md%P39 zLr%@uJ>{VIqd?1ZufEcmM4t4m27Q~G9&;H>`~F?m8Se_plCF9zTXOL7Ep+_$ro*^= z!97)1ikTYTDqxJzg{|GII|v*WjKUTRGP4($#`|B6keVKu^d}G=kHrF-lB=~QVaOJD zhbKx_$DE~-Vk)>EN&IOMBd9;LmXh4;)>aJiotUuv29d%aT7#Amwh2FwwCb`76!B`J z9&vp;Hi0717}0|437ppxX08V~E8j-xy#!#KJB!Fjhi#(EN7!l&xNsYASY1b{Xz+$& zFuk);in}}wtz-&(LUsA55+sgEy4G$;5ps$f$+VBv)1f8>wW4&OD>OLCB=3M9)(y{SlJ_+yXn#mFeV?T~Q(!he!OYPaZGu1< zq_`<}ze8#WsFbKyyvUR$4;bTRCQZH7mKDZR=6 zyQ8gr@u0w%72?L8u=hsjh1R=*udnM~o{2x1^G|1fVfdE$DFG{lJ1y=CC8KcOl@yNQ zT;NC4+K_Nu+L{0Z1e(1C66HL;EEs-5-APTCnNE)IJPhYSeH7g-6gy9l%I&7eA*-5G zVYnjP3&eB1G$B%r;1ndrT#%yimfAnMkCT)_a#Dl_h=CttQR5f*McQYqMAX_8f(kML zAkI?`G}he&{t7gT?ci;I8cU+4<<1r^JP_L<(U|10!NF@#BiZPd%|L*R!V!L42ge-* zpUWsRwA`6)kLT-YpCOAt`O78bPmW*W1b$;`%;Bc-63uJh^HkW5xVFX;n50kD4b~Rk z8lk3igp0#&h-aW^*}i`KM-tX55^+LP)f#Ud`v=NLM|O z0_T#97(fKlle)`*Q27OA9VeI-a&J8e7W>xTWs0*29@9+Wlr^ZhD?aqeRSTVg=A9c% zh6@HDBVF&B30i`Wpca-W-!zS9VhfEk#15wo%_MCSM*|*xAaPKnKkL!ncMu57DtYCd z_3(PQlhH!gY;l6*h}}C$CeV*5#s+&a1xD?~m7mFB_qo|P$v2qa%PJh*A5c|CS%KT{ zV9>mWY-YU~;B^P*?y2>8VR5^ehXv72^)#}6AF@Amv9p-LX~0+(s(Kjaf7#=687AnR zKN*mdJaQW=Q6lW*n!lqcYZk%c&A<%eN0N}Tela5(x=>_X*^`)QC-mudzNaY$I=tI} zB4mk;k$1h8a_pPoSu;gk7UrrM|eM-^>k>2#{0qsmnL-wDhq%D;h;7dbMzU zd1O=+zL(E*-Gj`on<_}k7JsRd)$arLjCcZEins!a*nYcnL}+k4q(3`?`Nv(#5Dt2{ z8_MxM!hLc_AFCV#Pidze1MvUM=3RT~@3O~BTPqu%f%2d%VLVL08Ovv{`1(&G_E>fk zjx2ls5)&qz%?g z1tA(J9To*Ib_5tB@)YbR)Iua(3UcZ~QYaw1ugnP9iVrI1xFZ6F4?=F1DN;E{gnS1; z8zSUJC4{td5djCmv|dz}t`l&OfLxi!BBvWa%nE3F?ImjW=#8GPf4{%w%7nKOwHF8Gx;ZZsuKjiT)w}Ic#}EITQ2Xi0r!&8OI<&Uyp3kZdPPNph9iAq*v}qR4 z!4_voJB;r)m%GB9i@L77()r%zJ<^)Yf4v2dMG726R$yOg?FF=02+~AFU~u+@EP>&N zm6Q@xP+XxNSBc>V!~VRwtPu1Rh~}vKB0=2gD9j<*$o3^1)cCj=nP8Kf0BA;CEL1Kw zmYoVN^dk_U#Uys?6%_0@tqsuda3M@|Ar*tLECbz&qwui`G$yn$EudINZ|p5Pp&Qed zZ&U_A(SzZNP;g^I9ceVbM`}0^V>H9#ausxY1gkCSwNh?YBV?xR*9l#sQ#!MymBRpS zhYW(QY~B|g4TB*{{dEhUxFMTbJvPAF$Te3KUZ3ll;^E8}vaXJ;xM`ePfx>v)vn6{qy2o*9AvR zg$vc>zy&{WYis#+OzvrW6$~@oRwR1Ff};W!N-`mcg$2 z&><@_H^js${twMcU;<0WT?)USym$n=0aT%WKw33rEHa_qciwr!c#P!j(paE{4XjfC zp`%^J*~504XW$q3t-8_Tu!+j>SR+DnSO7Hg9KYi3u=&VLF$VKe<_ub*$#EzSS;-U436oA&N!e*16ttSJ2SQ*6zLkG3&g87uEU zusxZ4`O3VyBjZlBPO*Am>2l+=-|joO#?x;wgh<^Fx%FBunKFo25y=`gYW{!xte!{! z^r1KOSccN`O4hwf6xwIUa~hMPh6(M2Uf?{(0&uXrNdWmLLb5PK!bBGc2u0YONr0Ig zx4Bj#be<5dMaaQ62U3`cG(AESh8Y=USkl!H^P4q`G5#QoXS%3dJE0iN(IO5v0?fH0 z1Q1BeSQ({QN}Lv^kp!E7$3#K&5ZH3JN(}sm(0(B>3*(z*A_PemACM$pJ>hHi>H}qy z%m%E~x%4R#@BlEYZZS~nb%9#!K5Uudk*Y+UnBSm#Y(~3PN_0SEl$i#oR)gNV?_mCI zYAVtYVb~77O`(ok1K2R1t@6>*{A?nO{IA> zEiCeNmx4CRaj&+N(}W;^iN#eR3kO!U>-Tm9M5B_fpSxIlQP}u}4t%veaaos2Ws=)$ zF#WOvK&&4U34|ECx1J1H=-2(z4HIOcMW)z*s{UzM=5$`$iC(kA@0NYL!DV4swrgIJ zE{=B5?M^u#4q80oR$HZQsBmrEoa%3`oAjkX=IWF)(IrpK13xf?iv)htz9IlQ2 znnjRF&U$d! z_aN~{DsPaIa{HaYs)+W%Dem0_qBI+N3B?3fvB~{PAC=FW6oq+x6z~n@d};7u@EAi< z&8AqnZTqOYOp1>x8IeP_8XC!v(_JvP$V|8+8yMsUF{YievxJ;v1ahyG;@g2gyXl?d zM$wKIafv;1^T1vqW^lRYuoQ)LiQFZmJ(9$}R*G76s@I)>x*`QoN^634aurO0g z+z3P$Ql552C}I-zU>?leo47^P$eeiX%aZ41ncdGMN!Dd^HmROP-EDE%k^V4pp-aJ@ zzy7F--o%ewd9PG(bX9)Fw-J+?=J1!ORz@7b+4u95F~n|=?SAMW*`&5~IY zw#2jP#iyJ6g|l>B?V+cqCw&+C)4gGz=-0;dC0`%CK9>@EcmJJfEUSX+pC`<{2W-(|3h2vlhkB6^T9F4yR(pZjOsr(NU7^YkBcCPDZmSb zu}Ir?&=GV01{(ARrLow5BbNIt55qaKJTy zrS}#9elfFlsL_xZO-y1y^&@hU(WuA+*zi}mq}v1$M+L3u0B|u^;F7ePQ(!1*jaoJK z`YTNV3}(m{5&BG#f-NgGPX!Gv2Ek`^haqz$D3DQPC~0w1Iw*=2)~rD>Hi7M5Z)@6M zQg~lo*vIkv%rQ^CK!xCFvP?J1O}jR2pk+V9I?30tfriLXAb%`vG_ru80P1+8s)dkP zbLm&sQiL3R(jA)InRVa9$?7JTw@hh^^w=r;og;7%zM=JjA`v?TYYVn=QD@7 zVYv?`_S)P}a|%vrI;y(9;&h+wxVG5M^Xr$- zd1N|u=*#neEjzz`QMRvbiE4X|f6(!zhfY3xY8x`+^ZF%n zMPbn94-2qQ>B~!ck~yFFy_e>b4^ zc}{GvasB-ZP2_ve*>S?zo4wKAw{}sEhg4eEJpAj|BCHP&0he@)u{=6}wS|LmMX{a-_G;x?W~SAOL{Y~oh$Q%$M+4l;c=56y3c@C}?eMz-SuIq6T^IVTGZ>88)#HHm6U1RTMsco;j^+ zk;&q48iKm>5m7w9NM%S-PU>n=LnK+f6GRmX)My|&;1<#-74q@o>7q#mwHcJ-#DIrG z2_--9-mz?V5Fc%$agzI4a^6OH2#v(j&w8wZqfu}uWbq{Yo!MOD9AJ9z@rcXH*;mS> zt(xZZfY2zAP~F_5gaAp6k$ow5${_~Mk3@Ffex&3{USaPSNmh({ji|+nh&GZ!k?{m;wsj#~eOC*LS zlaa9K_r4Xh%~sE$gsh3B?-kiWMW9eoQB65~0|44G z_r?u)E2*t28$1Vg9mv4~0|AX`I*9iH)#?VZX7Sjf*J1g8R(5BqHGo%v!wI>ANef#C zwQ~qLBYH`-d+dPcumeTL)PNYz3UYMlS}lS6kajxksx9`w+>FU493Yf^2?Cr>uVaI4 zw^&dh#oMVu$ZB(2vFruZ?14A3On@D1*`u>EL}^ebagz1#W4 zKQn)}b`CxISK-jSb1NHm|I`(}cH)D;kbQN@>A%@sKm1eoyCsKrboCc?O}W&a62S zyEeD2^6w?z{gpU+;zBg{`m*!|E%HOQ&sNmf)qMP`)%`%a;_c@r57tIs><@Y$vMS`( zjms8wMN?MB7hTevy!Kr5XdskHAa;;^W^YmR`A99;`l)`cZ3krbeywY;bzWUKdZk0W z+5oAEUlIrNAK(TaEF7Q?N(SKfAcM*4XUuzC<4mK*)c|EQ3SI(n7HV#*M#aFn)48e8 zX;h-fgA&p{MMl$y?NkQ9`jx}<>WTp5Blw@)Ct;23fG`;SInlHn?AOZ@cm2MNax`NO z^W-e0j6wClE@1o9CDVGxC85$`8qN;t!2hLnAJ>5qj5|H;M!SJz^_xRW1%rTgMyUm9 z0va36g;x^60Cd6zuW`G>{XW{w2nDa%`SUPp`Bz6qL^wl;2shP=^b1qOgmEJe#=UPP z%`bf0DEj6q3EEUmn1bP&6BY?gWg@|sK~y@_)8GQfGI|Q3fk&=;CMyA(9EaSggRDkG zw~IZux(JVfZ-aMf!Lz>(M||+f5@99dyegEVsHpkf|I?%p0FbN_6rqk{>esk>_R0?8|2@|_z9Y-^(O=Z4sYQ1JT zlqzM7_}jIUAFZ}Y`7ZZSt>fz39~L}*5V4|S@73^qj{o-eJ$?DxxYHBkp5TKr!p=?~Vl3ZCxyWAFYM|9-Q5r}|)6Ugzk7$9LC{dsyXE zw`AAqr@ze#SB0++$vw`@dl{J6pY~jJrR(2d-{a7Gs^By{5Eja zcRllec(LKZzFMz^6OSMckxul*JKUfvgvY+bP8pQWl7 zx%+;8u{u6)Mf1sHaoP)Q4~m?4M;9#o>r1%e=DQaM`FEq%$$wb)uJPB?UkUQd`fhkK@~Vj$(i zpXJGqa}IyG@Z!^&igl|ue%Ez()<~nv@|y6xyrs)`40@#6X{uiS-l(XXcK*R?FTZAM z|JTu$7SkV8Fn(?@)VHkgICR?ie%IT3OP9^MdF^PywUgIJ?aoWv?q7|y-(C4jdExpa zFIL;KRrG8 zJo%4T((HKu<)?p%|2E>q?)yR4Pkns)dGNC5#Jc_s8%CB|uT|W>5Z{&1wQ2hm|FjPk zH6v+1^hUrf-g@-*{o3VQJD-LeOVa=EyYV(9UccPYW(%s;Hhuicdwci$tq~7?HLE%M z@3EF|U+nFP_pjT&^5}z@gC8z&onLI2zC5mQ$-SF5KW1DQ6@BzuEl5hMd-1mGZBh92 zz^NDK7fg8KV|62NaG>OY?f(|v&FEa;`zeldW#~}odu_&#GUJ^qQ+{dnh_Ac*!1~o- zTzSTc%L{+o@aEj9uQ&b1&Hi7oWPIY4Bfl$k;q4EX|K(dhI_1M}<36o8!5)8Z?+-Ok zYkNQ1o^7m%aVu)KyY!n~+gH}Kzew5$(`wx7)3x1ncm$Bz@Tk$Oa7rh+;=Mq=&nxaiZ-fZ*4tAYAppx=r(EhCol z09rF^R=Gm#dKT_sAKB8l(ftbvF|?Xk?2!AolQL>g+rs*ca%UY~h@5;>uiDep^eJ04 zP&*q|e$~+Y>Y2to@X94MF^fF05ph}Z^BX@AEd2r4Ul+9&C!)@~PS=X$|xM01j`Bty2i=Gb

w#*On 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

2l^TfcEqK>*Km|XpGxMXA4vS0-) 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�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�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 diff --git a/dict/admin/src/assets/bg-login.jpg b/dict/admin/src/assets/bg-login.jpg deleted file mode 100644 index 26baa6974ba14fc665d0450d1c9aa101e07f8fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66953 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

(iK{r7oPrJR0WB8B2 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%0DQu~0zza?GjXUvO2{O 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 aq3ErY@aNwsUp)R0038hjb^J}osQ&_rn9h>` diff --git a/dict/admin/src/assets/icon/forum.png b/dict/admin/src/assets/icon/forum.png deleted file mode 100644 index b8dd2134eba975f0a46cbce905334182aba28afc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2979 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 diff --git a/dict/admin/src/assets/icon/openai-avatar.jpeg b/dict/admin/src/assets/icon/openai-avatar.jpeg deleted file mode 100644 index 7b46839fbb534396845e4e0fb99acc24aa3750cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17990 zcmV)gK%~D?Nk&FKMgRa;MM6+kP&il$0000G0001S0RV9U06|PpNOS=J00D4S+fH0v z36W3CEN?A9AcX#rH#tam?2v-AQipuQ<*1-{hI+U)71;e@&)&`pQmq{Zg)(0ODk?Kw;Ys zDBBE}Z1W^e_cilPSHAVex4HApd-yN>7yb+Xh5y2T;lJ=-_%Hky{tN$w|H6Oazwlr9 zFZ>t&3;%`x!hhkv@L%{Z{1^U!szUl%-nDNQ?R_f|7* z1XfTuAf!Y905G2bodGIx0dfHV001R7el`rpaLyI|gZlUCuY+VU=wIN!wf|oJ-TjOE zzt05``M>Hf^#AN%)PJ{puHzH1Jnj51@{j93!*`H!xmVHV40sep71NiUqzwtlX zzimIffA;zR`?rBl*uTYl0Dma{lm4&!*X>vOpZ`B+zp#IY{`3Aj{eSmQ|Nr{_9sW)I zgZzK@|MZ{i|GNMG|IPXZ{8RZC_OI+;#vbZ4(-8 z5~V9jzQGFr|Kv1Fml6G7Kd>xUvXyjJX=gU51i96h?GqYp68TY03JBR;n!W8d4MuxI zU6+MRb_at1Rx16XLDSU-{%%YX=yX~34-#|VaU+&GvR9>Jb`MA#&*R)EO)-XmN z&0Za>qa+)}%*|uBeB*rD)tdGdm`0rr#8@AsvZOiAghe!W2lR7s8b2mCy zo0XMck`d5*Ns90*hK~kW{Bc0Y1co#^w*^Mf<86!d5hq8XEJWYLz7yvy3crq5B9j}Ss78ZQ<);gM-nE#l7kP1oIWbA9hE2$Scw zQzXEL&Yo)v-eO%^X`>c)tEv%GJj9*%w?uOkG1(uQ(Zlb=h@$9C_7QnWVxRQZB2PZ{d#gF#!f0Re;s zgzN;XpzyNO8Zb{5?gCX26aVUSPICJ&P&{LX{MBg3e*EFV(tY#oBcUaXt~tX4D#zxU z+@H@nX8M!R1|7^?GNNLDBHaMIXesN>Cyg4?lr<`Xjo@X2aXZrkn%xRxlxWfN;05>% z>=k(zXP3YXY}Y`{PsXD`3RjrL_Rv*X!`JUjm4;m9dBRao%-QPd%I)F(!_2Ac6k`;8 z@&D2%YWy6|9$MkRl&}4^=0+~YZEk!jN{J_4xQ+O4ZM`0HP6RO0*Bls004FMI0F;7%h~j0n1AT<)uLR{M@N>e5daH7AFbUtW$;TMk-x2PPEBP* zA-~S#xk0aE0e+H=8H+C^X5i)xvkQF7G^+Xw1Nu()8O+J=OG+MF%FYV|4Ti=u2_av* zMwcD20C6L7H|4LZ@A|Fu93wudekD$IobTT7m#~U70<(b7iOnb#dEXFhm_<)UE-@S; zllhchq;9?8I}EM|0{ecVS+379fw^Xa3T7YG@EAzeEl1#CJ?W=CK@r{o%q^buu2$Z(x#&qXB^f;~Oo!t`*rfC(mumeMzQZ@4$W{dqd@e)8`1*QEsn`tyyEA3}HHa5)kJQup7SBfSKnI??n#bex z<`D}4dTP)sz~KAJX>Um>v&+wgp|5*5;hKJUM8NB`%!0tGwd9;pSPiW1Ie3Erx#{vUlfH5KFuEfumD_Hkyxl`Ao=D0z z@ftm>d==q1RVKbreXkJ*&MZ#Xy7^VWJf-k7CTl(1;XX?8pElGP^l3z1uk8WbrD_xM-wb0?|A|&nzKJupOLJT=jFh4;bC1r zuw3;U4yBqNJ0U$Nm#4(dBDJ;GbK7;$g|F19Mw^+D;AS(@G-1hEl4=u9kN!4+BC91i zI0=ZZ-Q^G6*~f8d*0Zig!-XWm;k<}`AqF9oKH$EN?nY_RJs9@}LNS4yxWQLr{WqH& zUeEQF)vSZn1$KYXU{8IwD@|t|6}IRA(Tc=w2pQ7q@Ms5P(%0>z-O@ae9X0I*c?Bpn z*93zku}wIKjQEg&dt9qpzD8U^55)iVCwd{~3j~)(F{q{nM}FjR?llA8h`rKehFYitNdWRA#s#Z3_CT^(Ye<|CDKq}_JC_;_}<+tGY?&RKwF z_9&uOkx)Wl1ow3r@UUReu1_cuREa86MWvGi0Mg!oy-?(i7@f0-E-kCQ4gtVvEQX(l}fb zrT2_bytWMcklpQa3~n$$;m~)o$l~*ILk>Ns=+ljqsdef_+UB~>do`mw&xk*xuF1(!nl+2()03H>a0G&>yz~kL6wj)a83@VL!bMtutJWU@dPK-wC){v5!k! z{;r$0!x*wvCajK~n|Xt0%GyTFA!ZMTX}AJ=Tl|%mQ3$P(KNccpOEJuqaN`qzbt}o9 z_NxJ8xeL7dHzADIi&z)!$f{44b{Mr|Y2zjW>wvJr69_Bk-UMt5`u)HWk7Voz{f%S)eepuc~Mcm}#^WyhAZ5ncGzno{%sCVKm|K4(jAz zq9exdv2RGu%|PKt4O!ysZ!yN4Fohq`(5jKs5m%DOAK34q^Dif04%+vHzb-y-{4T&y z!St$*RXvuWpsc5IZ5lDRai)cg0S~abpCE*H2soc1RtZMF*`EdPckiiDj|P=0Re_fI z^FBjn0N)tx)Ib_h^YuSzvG{h7RSELe0v8)yBsK!tP4uY14qk;!1KHTI8FMC z_o412YZ-w2hDdJThuxsf0}}?b%lT2HU`*4I??V%Yi+wDed$IJOsxFEn{a4 zwqY-4r|Whl5Ohz{uL-(6i07&M1HO$$T!KA>f@w=_8p7b!MI)~p0 z7u{Z{BP{X5Q^okQbS|hQ{CYN{pecI)7<^ex82B#=(72*H!$W0!R_5XSM`q|3C+pA06Dt-N$#4L`N9LSE7wyzlxqeL(D*L+hj>Hg>jn|c zE`C5_J%U9ocL8}I{ZtnotZz7-FOC}3D>1)-d&EhYg;~9k4T?>;1Q90Yt7XrVcsx8> zV@Bb$ZZ5`6LijV8S(3;^;t`R7F1Tt(OiiZ2sQf9$ik^lEYT|HtMxJ%oV&NcL_9mC0 z6}1iQw1vPA0L%@rDpQtAS8%|e-4(~y8Z4y(JnEP0-L>yBO8zNLs|m+6FbAGQCUh7i z(5)n)F1zod5y?+4n#nFXcnCdAyagdLmI|A#CXO8!zTTP3$+Eb_F$kLR2LntCLh_c_ z6_^g!6%UWBhT{5DPH-*8_e}=`y?NE!*n~Kt?HbKFuQWq+m^xNfmNz|(;{sr5CzxGo z{Bk@4xL13Bg8R6<#v@Wl6oLq*aW1+rQZe`|FtoSGbF4_T`4wUzNKQG~Fz{wlL@EH) zQW1wc$^oq|ZM>erFx4IyAkGgVSmMgD<%@SLL#q=lgLPD0QwgL@prnNZASez|@mTrY zd*jsTfRRlW_|vG&yiUf%C`3Sjz}dyVq47C>PGlJx$)7G?!svK@)rso!b}UMSF6ff8 z0`hd_%xjN@rg=)9P-Rx)`qm_GkJ>vO5_|G;k= zfYObt60EEIbptp%LIfuR0FQR{anKe(oWcXtkGA}kW>NeT@GoT2>XiTwp8xr1pDf+# zg|*TjgHC+ttkKkFA~h`1s$oy1lIaG%$F_x+QBKA;sX*TjnUE6~5KeU7d3Zc|b`rC^ z2|X`C>U!10{c0f4C;4P9bA!<$xOKZ5MY9s^koX5lUS-#oLJrVZ))#DqfvV7bC!9CA zou{0ZbGYaVbs~F(KbGCuWx+Hgg3kmC!N4R;YIB^=@x2x`w9}5^wqNl~7RJxchz=14 zzEelzp0w008;Ws5&woo=ow8 zRK|;VDs4o#)4T5RUBcU}R*FO#5IkQ8HT#xVe^N zj@HhDSxnlU&Dw2Cnl7#|+w6EcE1@2^QmS~*S*VQ1y_t7kqr;|p>J%jB&c8|k*7B<% zHsh*nh-(qav_0QRi0RyH->A?6BdmV7@s=;zT-pZ&9XCZ;JC%3)eg(2))(PcJZiZ)z zSGe|^%8ED5xyAuh-CHn}hc$xGICoKOY3-*{x@L1MEwcrB8%k2;jsg!=s3Oc@L==$2 zCp%NpkVhEGfCf*gw2wfxdUuTevX;qE&nb}OCfG+tqfce4p1ap&Vn*B6I@0ja1E>I& zKB~~0wzJNrO^fiE!i(8=^frbx_gfYc=aXVi_j+1c7594QA_ZluBO?#rPbFHTUK=N> zn!q+Yi{$4fmF`6L6k$d8$@Lhh5KjWGlY@d0;SKme)w8spwvK7v+NH0!wA00^A>`ovYL%wM>)bpc=Be`eVy0(n!wfcCP@b zg?!xj8Qmu{Lmg;p_41)5ltt51@wgb%htQ%Tbud(NzL(-=GCN;QpPswS!@@*2B`Pts zqH&w*>l(kLvsgRoscHrwMP8LBo9PGU!SQPoQy(kZg7S;HAa#n_Up1~oM(lGbEzEbj z!%x6uNppjmSiqf6&0-n@Gd;CN)|{@Nl1TG@(5ZlY$;cbWXzz(D4O#C8m|Du~U{0r? zx|P^;^;sQ&X)F2Soh1#+3JB`wW5jCuo5bOqonr&m+GBI8Y*VEZ1ET;s+Ay^%6$LY1 zJ%q5>6Zx3QUCsYWXDB>_v`NoGo+kkxEyrHckguEv35GL(%sRm<=jqz;P6L zOZ0Llj+=)*rVmk4SS$;iHvZ!mHmEKaR3hbY{U{GG%S3=lb&|Gq&ewe>9+1N(wzv}N z=eTGx!egu`jiK9ep-KGb5YQeqH-9T8tg{yCzq2!*AS~3QVBUGS<(YkyiJb>EA#24} z$18t`Ra|7t&Q|Tg!ZRHLaNe_Ru6uy!G zS0X(zpo+PN;$OD`Jd7+J_ern-e~nJ4`4k-x@J|Hs_McaicEH;J>5DyltJ?|2bBi|Y zD0$}D5Oau?hXul2L<5A>s36$!LL0&q!4P%g^1*rz3c)!+lRkG)9}qEaj!lL`iqZ}; z?X%%TO1C(=PeP62`2oGuK&u$n;+H7`+`kBnM>G-~85V3Jjucb}VF#xR*tGuTJ;EVb zXT>sBtA3Qcl|0yzG9Qj)r?9FQU}!^560iz@Y&M8a5UtRw%!%CI!wiROqtQS}IqHT6 zm}_8LV2R|T3JXYXr+ANAX0phH1keC6*{qY%eV*w*)(jOJ@n_{1Cr5oIz%d(6NV^1s zG9GHCllV&L@3eLd6xZw6ShgYks43(!wfd8;qZ%#}wW;l9HSTv(*aWde3Qsx!ht3+g z+oJ3PKJMxGk0No0B?PKQK$;=FiJ#&Y5&JlHbPFmeyH*T;sIits4_{Z)KMg>1QoPyz z>nUu(dM8SWJO24ZsM%^V6@f`7ZLeVUOP^6DxRChGiw6W+X95!Dt$Jw(+9Y6z>SIR$ z9JmbDq+^y1R%1e_v@6#eWuu~|y|KYhi4yNBC3%s3_&R7t{l8LV>~v2ht|z%SW`t-3 zjr$q|8CiqNhOhl0XG)1R5iNQZXUls@WD$NVeT=DaKces{9q$W+=iCUt-PM zyO7IYz1|)#6m7_4#?KCnD;a&G+iZ>3NBgJyB+WjQGqe>WUG=A9uVlxP@aMeo2)OqR z*+p=Q>O=3YRwyGr4cADbE^PheDxMLM)*nfE)zN0N0XcF6aUR<+$n7f66li=AwUkNuy&f`{q{qetAwYsTg2*o_ronU+HcoBHh+ zc7Zo5MMV*&XFK7u>v+UKwsGH}UPF=ely6k55&YDlKXd-{hewmCL6c9mFr@}NGnr3s zvyyXKuc01J<3u~qpLxAAWk*aqLQ?2JWx)T!FCi*GDaDeod5G1<$W|}6Hlh{`D$uH)6UXz!7(MR#h2$=Ue zg#$LZcI>rDA{FfG5NgByw+lEK99_6uSm^$!(arAZVLb2=3F@OWBt0ze#&MGcVCDap zWovd}mQ%{tK~HzGhZhmR&3jHt>COsiP7L}MSQUOmX$+_D<%%R+%F8xXROpg~aj@~Q zFX58XICCm0g7>53bBM;jqhSxacz%}fUP-{keah*--QgIY$%>^lmC8V%u8uB;uYwFc z2u$#;YD4RD*8gsV3rtsv4ZlBZ>;0i6d5B&#s^y< zrx`pPKUCsqkIM2C*Momk(sC$M5oZ?;p*l!!98wTLz{{t}Au%3+03iXBGo1%IsL@0s z&01=b3`DYJE}E?9S(a;J()eA!efcddfhCZ9!!QWX#%IUPg#IG+XnfqXQ>773MH2h# zX3V+v#P5J6@SJZ&7hMJra7=xRUwgfli!IYfFmue52QsBXLrrQqkal1k))p8 z$vFmge4x3>RuTf7&}(bb2W`s{%k_LVh#&-~NPpltF~JBoZgDK7 zt^p8VI1)cmf^r3wMj2~!Q9p|o8(QDYKlUH7Hbkzh=<8#5T@qn* zQ~)EJ%ppBd3zG@o~@a(uKIQu@H@()E7HIDXkc~599xOpIX2a_N5 zYL4S|nCCd`)0KlK(ei%h=BS=iZ;Vke8*MGGMAb^08Sb7NT-Ua=n7in2@{~8wb!>B5 z);?rJ^Ck4Ss<2dM%))l@^*-HGvr+zm!i^g5C0K5yXn<7o*Bsz=_Gik`T?rTy6=!Fh zCbtFXEFpH46jd-PeX1T!t$wv_6BjuPC=DBByt@d1cnstJebQKL&>EuOW(hTfb^p_~ zL6^Y3SI3JU+|4I>2oe6z9qgAA*Oa6y3T8Y??9|HPwrye(_UiLMKc9>TS^8tBVK$Y= zet(Z~A_+DUeuk%qi%f2~raZQz`x+W#*a-hRyTxxB5u~g!&7Hamh?>4v?h$Kra!HHp zS6Qr-nr(TejVt<|R9o4NVIrD@ZrZAR_vMT8ftP@GX7Lkga79a35_(IbJnMjHf@U$P z`EqQGoNd+M+SYqeTI9+xO{`019T_+~I$IrFo+o(v{AgaY(H%4mD+HFijB~yd$3#nI>xcPE_ChX!XGH5t!tn#ARP4q)|DDRN{t0JD z9ZSPd? zQbM1G=n{-v0cWJ32l2ui9We=yg46g)4(-s2iUo_02k^y7&ttHi|C;!Uu$a}07Ve** zvXK_Ia`|TS$p>GnaaZ_ZH1Tx1R>qP!lXicD?!r!cL48Di zyCX2=q)^DdmDN=YozQZU(OCcw=ZfHN+QrNdh?k)TNgy7ahQO(P96U*`kOyCJve5fg@f)Q z?ADqhMN9{_ftX&w(KRd7j5@cR^r@IoGf^?RZyFYPFud%IYpbmC;THfBW!#AOE`b=>tf6 z2*`8@b;?r;z-7uqR9D7e`vLL-x9F0Cvcn+TB zq*yYow81K~ofhvBNWD2D*_U3p+YMDkc_oXEbnSi9>^}}%VSA(wF_x3>vv~32Dx{xy zY5@CtVh)xe!vPKS*voV{Mdx-bz}j0i(qFQ$z(jVfqG~I&&f2-JHe>Cc+@NKeS_Q6J zaea5&%F8qqqo4U)Sbq2s+|0e@UR@hqy@zX<`Xk77j!uTJA{tKIh(-m`G2s zzoU!`LtEtZP*KtmT)CnG2{U>^w_C*-IND~{C!^zLEhY;<0EoP;kGObH+T2eF2$aq%7a;_!jSsP|1@#StXMAfz(LB`uYl4;&?O?7of$Ls@5g)rZ@WEmrQ%CWIQ8T>8x8jp2G8wJ`ji zHi@9ktwpomX>DoLt|v9)L#)XD=7+W{JAAi=7g3HZbJev831EGv-)m{?Gu{^Eo9msS zIWWyC4-VV(`g3$=G7t6tMNLB2;;eN0K~>~DoX?1l5u(ZKh*fnfp=|LIk;@NS_wS#b z+Q7>ZJ;xQdn(9a|9pC1Ol{2su)>Lif)233JPFz}i5D(fQ{B~;WTT87ErkT;Qb-F0z z*$;@h+?-{bfYClv=}>r0fOjiKzKeU7z-9f5P{PIAWU%0eQUJ!J!$=aK?}YpM+BcnE zBEbk?oYTcTIo!B2ZdM2i{c84FH4OzPwwkciH8B3aR9maCGE~yMF6jhSpb)QDy_A^$ z$A-!{;BGlgU%`ALkA?GuqV6AKA&qw`lrG9q>s4Q_L(jh{(M;fYl zai+~w2|YfF&SWEbNN!6G)7(28fS*-mP*5bwS__0%WKq$Q3g!M{(-p>U?kj#r8J`R( zG$k#0j(dB8qCra8HFjZrcY;#Z^_WAM+sh>$$O664ceCGReh;t3sdD1a^qDUHd>Cmj zw`yI@%>yxKqe?O;52f@vAuna(?OG4NOISz8-n=8h{5Ylznf&;1Lzrf}wQYG^`yLAc zRB}UgbU6;en4f8M`9PfyK9adOxxc@R@<~H@H^le@C zE8hKCO{y~MTNiD<6aS}-OFL!b9{eLb0kc_oLL0^o+T!ZqAD%xy>l<0Y zothp|RB z5qkD}aSK3TVaUh;IWz@5B*Fy(Wp%PeK|FU-f3qx&!Z<)(8wK9f%(P6&`?_Sx@2K(F9H^dO&E}P8s-k* z1>SgZ@_7qe1uIJ&U=uR!kD2_8nrj#YVBOP*n@L1`VRmg zYt>Xt{Mh+-b&~N$R85aI{?;l|q|-w;!zsl5ctXh5wd?tm?z_n9ITjzZxaC^tfNX^j z=<)ow@}s?2rNfCbPcbk1&EMw)#h%VqDS3yBDxOPZsWtmjm(MtfkZ(;XcVSq@rXeZ|WC3BKey7zJ=0Pf0jJII{u5< zPneLt-B;tlFqS_UA53E3mMJ0B*-{1{-kDE^K_c%Y?bBJiHs=H41x{qujFNfBZav-2 zyamAz*YE**Fq7C!Bm&f3pmJw&TMSfgSLcAi=o4z9X^by~%Y4pp4tZtn_f8JTgoXnQ zFeLSy6MSEpqZtJ3a%3>nIHl(n9DLc)00@;a%wF}=p31_@>9pSyaG&zThYS#N0k!zs zW-@+d5CAFO>|<56-z1cs>Og3RBDp1A?oR8OOqdmb;BPW=Lw|IT9=`Db{vd@Pxd_xj zSUmdi`W|G7r9skZl}-0LsZRczOJ}(YI8E`phpg46+`uA+Q_@=RUkvumjyk2(NI~u z+Kti3-h3F5Ey;?|BFrfZ7w2`{%ttT47| zdJJHfudI+%@nrgIa8SXv{P3cOEZtOs#|2lGmX5sn<61 z)XNN{$Tj|xFkQz<+K%Kf7oZ6T6ozw~R)U$C&$)`tvKk4a@*2w1fr$1I z=4LR*3Tu!OK2D;Gk&+z-c9dRJ-CP6MT+^nto9zIO2xW9)!ua5C29$vA@;4gRKR4M4n zv}x=96F9#%B->SK9&rpG>;6%CXZ3v*FdzZ+|5NRVg*N*YhfCh3I@BaM`3$;R9gBs{ z3>LR4h1R1cVfOrd9>2m9(x{+YzJb3m;69kKK99IZm0i~6ZLBGvLEySlcSj~tVoMni zBS$HuQ;)FJz3yu_N4ow`?ky(RKj@;INBLr=T!k?XQkCofXxoWV6$oP8!PX8`Gg3up ze09A5ut?w`qikg%#>~6*&vQ`B1*^$OrAYdKW3nmz`GLWC3E|BPYYxe(KkM0ZGSdLP zp~nP9)^CMYPR%{3#rr_sUrl0XFcF>a^*>7xCo$Xo!tnvfcvca9*vI?9VsPm80ZRj&k% z3U=K|Bq!7tFImV7*6eJf8J*|R+meSti0*9-0AldH?x3t3>@ib~piDZf#KvM%=BhDi z9v`0p~ep~d`UebzLjXWq-(RxsRayIb$2cJ zzH>bkD0=XqDX-e4Zoob0GS1n`%BIw-VPVup^z^taS9=o7%Cb;eFYW(>#@_8qEh9aJ z-i&WD#`55t1eP!cv(C^T{k)yGVWLTAT{~sS{Ds|zKV;P3P4?rOZ3UVtTWSGzP?-u> z$Lie*0jR?x3wCp{P8djFfc&1g22EfdMK0;I7*0UeAw}qtF+8JY5vM!qtxWd1rgCt^ z6(V<6C9xXV*EF9$G15zcF*Jk%M&!_nraUp{G8Eh09*jmPvq! zTIRRb9`~0uTX!ci>A7A2xR$^ucR$E;d8`BwK7)7R@s>E2{im^Nf09*7@<-2t&kf^i zTX(0Q&n8@<7aF&JcpBRH4fY>d;RS(0usBI0b!kD4N0C8$m~o%`JUsIt2Y@M*<_4AS zSh-|H9EcGq_`QxMY&P`b>_-Iy+GthvT}M^WHyj3bc61ZwzV5w@AK$6BqTh7sO`8c} ze4u2#pdkPN&~y8Y%A?6zk<*$AI9g;m(9J_{XvJ>eovP0#n)wY=__SF?@I&E00#jl9 z(|`3kB&YP*K-Y2HqeT4B9LI1(^I}IlYv*69uoABKIsBWwEN&R&V*YwZ5F2|Dh8MYnz-^N;<$Zj}zl0C|Xy!dIYKv1} zm=k)nDHcXbb7%3 z4}okxy0&=R`o$8vi*jS{p@OGc;(%GUggl@^^BFZ6OFF=DvSTItI%HP9;e6=Zg{ZK_g|1pu25;I%N-GG>E%Uh4iLK$Mz4DR8dmVdx?n(=7U$yzRUPpRg*l81Rd z>$Ch`{hNSE(NFzdw`71dINTRV;~C^p$O)Gv6SgkxW>)4A>wDF!;ke*DX1>(>Nkn@? zQ4GbI9JT8AWfdx%2M~gH+kqUK;F6}zex(Mdl~MR2EtM2Jhn!{KsnzwLd7&3E*PUyXuv7Xzw!re8Cp*0rpkfs#fJi64>fi=iB~}U-KfIh+qLjfy8lrUglknn_)N8 z7)9~_^z$9DY883Z0Y2TLmEluCIoqsZ%17waUdwBoe}2)o(u`1116XzL`l9jkx7N3X ze|Cenfr!{1@3eg$vBCD|F;52r2)Ls=w2SktwJ-gD=Od?%>nSlfON_oH(Bl6;2o=@yotVpHkQIK#gj>iU;2?cZUxqCFV+waF=6&=r-PsC@5d?*0WY{c;8&I0zNJOZMdF-94vgP4ow6F z*i_@_r|OdQ&7r#AY^MK>&UcCGD^XCcxhk&z`!=_d|(4R z-CrDY3!&tDz@Dwi7U(3d88a4YMa|jxRBVN7GVNEq*aGk{nwLl1C@hPPGU+$kNDa&T zj6tAq^^hCG`LKFYo8}rzY@G$_aSLg1FN)3!h0`*z5^J-SHG1|ND+M%>rnS5DzaC09 z4mnRG9LNW$}tjtwMN6k4P-#wBY@bE!gngho1NpS0N)Y2zYY_gb?!f5nS5m#1Uq zN_ZHe=u>d?Aqmgvmn2J(-mQd@`p)v8>~nT)R0D;%Onsjhkg8vtHJzgcoFh_$&1{fD z*6C2))aH5xoFq?PHxZ~~?82+Bz4k$9*?p4RZp!n|QK2NgeP_KV9CrtmbNrt0ZNM)^)hojn+&*%uc`0e(7G!N$=Cs@YE3>pQ0qP8 zXzBD~O6mwb^1~-TN;0;Wf1ke(p@ro;h9yE^T-~GV0;hc|{g=elbtg--&3%lK4oSHs z2&gVMh4UE}5s6+ex2J5So)u=oak10P>dD!r|Iq;cqteJ;Xjg$G8c~~fL>uo@&@?+2 z-FMW(EM@$(uXUr!hk^3c0w7zY)z&Ap7C`yiDb%oQUfcpj$^zCe?Iq<B{*+u_;Dt6C1A79>SEj5tzgu(lejWRk~>0H!oJIT(LiEeC~bT~fM8eCr!0$ZK{ z;)>x;FT%L)Y6YIaFy68e3v($nU*fhX{zpDZo9KEs#XK;>lEz}pxY$v;pTTn+tAy(HF0eg8 zILyHA*^oP_Uy^eat8m^g+y_-e5{*LddU~1x)&0K`bj5* zRQ}}%<@pr9Q_=MdlJ8;GuX?!zdgfcD1|q0atd+W5_3J<`WtP!Cuf{S~TR zK+FD}sy)gRZq=IhD1`EcT8-vDEkut*Ht~M_SO6oFB``5;j+SjRVS9SaaSmJ61DjJB(D`Ag-Nl1*+#p+l3gPL?@Xr=2T zvEZjuTHG^Wpx1*U)Vp5}YSh}9-t(d$6D5yvPp?1LOWFepq*vpE>HY+_TqR$8xgMH_ z&m1{c&M$^wWn!a2^^nE3BH(*=%=Z7E9Hc)+U$3L%M$jEsjr8Q~Y~x}b-dB0WD_q)1 zoYGe#^PVu9ZTEjL@aHpwk^u0`HVW^4z5xU3<;<%~7q`(s1)sp|o6Vt4Mib4z>2be5 z@Cfv5gMu4KbX<>kY}9y}DxT~hvDLokNqS~<#@DgJ1@UNGaJnr`U0e{FR~Ivh9wD0B zn%@zxo|y!Ks9+3q=TL`&^zi+V*@!P>t?n5!)~Z&sg;$e@D^TGq!hPo9eN|$64O9B^ z5A6PAmHe;2rT#4w%+hzSE;TgiFB{@N`SDl%CJ-2q8^a(Q~X`q@#j%JMEVCxgvrk7Dw$_Djd2N`9LNC?r>h`INAVGumL5M=a&>$ub%QdD}+ z##l_ab)XVV%=!VzopIe%N34u$iuNYw5OQEWvE*{KnJbNf%ab6{#hB+Cv0DQ zN@_<-1BvPWFe)w5s=))9MfhL-vBFKR3=^)jD=gl<;=`E!>W^p4R@O0mod?#dCZH8& zR&R0e)vz&raIPDBsI;>N5#Z@x>cd+o9`oRSK|D^)pS2HS2?94k9d=uj(% zdlpy`L8`v;Dl6W&g0hx4?7)dDa;zxk8oYUz0oA_tzfL%bm}sPH55Tm4L(DFwKJ)J z_|eP6x#By7kt|++uwkHH4(*#&g2e+p3JN;6JfUDCwfra55Yz7anVVMxh-OmVHdI|_ z;F9O@XV#7*D0dzN_!6gScq`X}?hGWAt-od>EZa%yV?0{!{}^&Yt}A6Ae0LVNTCAO1 zMp}gFItTPGo$G|-B6yXSxKj}WwqMZ>LG$rkLTK5N){^p`iBf^-y9s_++6|~>p@mISxa1+a*Ix_m22MajH`UEbeR5t=aM(ADGPAG^OFs=5 zuqmB-09**p3r``X^pWlDDlWi|q0huPE>{?OP?oiC!0TOB%@pQjz$!+Yxba6wHD^Wx zzME`tfK5-rG!P!WlthG6|HlS*0^-+Xld8j+TQO}F!1aQtcPB%RS}kBeo_2<>MmdQ2 z&bF1VSI-%MMJr;W`})O%A{&EyumG!XF0uN)ne<}Y<$fR7T+ffH%-hv|G&)`nmG&Kq zN)ehHC$B|)fhe63fl3dOuGhT$uTr=Z@1&{FQM&dDZ0nBh={|b;F|AH*_yWmaBf_?g!As3K4g{*#(G57n#@p>*XBZDEWC~pTEY5@f2HSSB~Sp%mBr;;(BeQ2p?A4 zYMZkGd%o8lf1Ui-H-E9%bpRi!NTk9!3x%^%teIfK}h?gjdtcm?^PP2j%zPi2Snx3Wzm)QUXR&*Ch5o*3+ZFzm& z2t#m(D>cJ$UQHTji~s-!r-kTG!*Rpud9So~Z)FzVvN^Ic0Mf%^kyea8;PbuLt;STH zzQk~juRnlxa2kxti^|;9!ATYEI0!3U*ihFl?(IBk(b)YRyo~OS8XeX<+HJ7B`twpv zkijBBlk9m7y9pBYiGZb)WSZDQtxi`|m9_Ivh!An?KP>ty)+Zr%W)_E2Gkw+K1WSn> z%H`o?uTrw?h&M#vB8)k?udZ?uY7&bUtF?7$@W}M;9|-?t;7nJaQ68tn8@FHey)_u( z46&v(5%d?DN417(M+NSQ?(DJo9~4<4ntwF?Wh@)u-yAnjexeqWH0%h_=Kfq}F=iyZ zs#DyfN&WPzUF-14=fKOk_0`r%=hZLJHc?#EQ$hQt+-E zSG@EBIqR2Dd?QWqR?<3J@JeHQN79s=)SBxFaZ}^~^^aLko>G$8=zz}}3Gct`L~z$R zqs-d#1eVzbC0G>CAd2!^;?s7}U6^3E{i)A#5~2epd8&0I@ zcA$N~t4~&@lSL5&i$Nw+gE|4$LLq_yHQ{noktyv&#tshzjOYO*kws=tY+)p!y>LlH z*N*?3Jb*6%00009JcVt7Ps9Sza-~?k-{tlNvx;zbCbrSv?~5XWDWFjQ0AoQ=$B>2} zlHOl#5e{--+3`EwCurZbU&0D?|1hxZ%Jyqc5_8S1VNoO+2+kU>d%d6$eBlU&00AeY zW{XT0mBO&66mVm(N*3k1M2jo`(Md`JKXGenH3T9*abEfu2n+8L6t6oR&3 NW`FPx{LP>`)w%xunTd74CkUcg6h)|lj}eifki@BvYnP9@wAAYDy|mZb zmb$DjT4heOS#}a+iP~B(ZLzk+R#!zUwXMDNQO8M!xdJ|*_&_ODUMdO&q=Gmkf7hQ( zoERoK`|N$rNy6k`i#4p3z5nNT_St9efB&0MqkioH>etrSj7JRs{Tu`}0Mr1`&ppu3 z&999BH30N;5A<{MYa>7n0R7wp{oMT82v7q+KleaCH@`Ll)BwW?hCm8~(*Yb% zM`#4lAl9cC-PC{`ji17{8RM}TMBHDzvR94(@g$EtAiZ?-c;Z1e|d;FEyBXDNJR;g#?`Bo5wyWsEZg2(+zkiGPycOhpGcWJjq{U#xwxo zG6lU)u>|}H!2H$_JzPn8+38Xh0El++pg;;&fpMkEd)&@wkAGiHz}+7OaaWWm?XfIl z_7x3)*`2)q?i6kS;d%i38e8ip1I9)M=0w6Y$4{|NWmPNy+7f&X0XG2{BxH)ro+=a0)Z67Fwpu!;5|u1%P;hZ)e~-FAS|9 zo~>4hW>tzl6#;;@c5X%;<`SW)QXJ!@9t=EDPnbS4NdNFsjtcLx1E8&wzeQ>ML`B)X ztj$)c!{x10=#g^TRaOAR6MQEF*Ob!%6(GB;uY|GyVCn*{KY17)1aNT$1fcvXFy>le zk~I$B$#($EO7g+Xc!Yt|eYdu<1^(6w(WQQ?=qmu?2_C}PCDYUVHnd9QJ!*yMLO*r& z4FJ)0J}6L+$7{j24X>{t@C^X54t^Sh7F+Xc4a5V#u|o7;ez?LH0K}5~AQ)fr!=SxL z#+_D(JYN*^8~|+zzKwtxdr@G}7yt$|AoI674eadB{*(W^N`z~yApOWyo(0T21wg!m zFK5Efy)?iN-V*51gMecP1EU8Qm-y}nz{~FfZ)^qL`Il>&onwVa=1!iFX8^dRgPZE> z@EjO*o@nj^)BW}VnuY;QhXL|`C$#FHz_Pai`D;jPyHgk+ZJ|wueERI}831A(+y%lU zFO>F!XK;jG;0tvV06e=MShvkUYsLaAOqUpNDB9H%0K}5q28QK@!hY~P>lk3d;qFOF zGw_$c1Iykq;7RzV6{L9v9Q+vp;?M9Tu0xmGiu%D%o`&x<0|NuzNK38(l54ejZ|80t z7deAAXmjYJqw6C;Ji+bNxXfEm!1pEtGk_p0Bg4Dg^;pIr(f0U-FGin&5b4a z>j3U?Q$as??Nbk2I|&dFcul+0!2IRFM%}N3I-G4yp(owa(^ZpWNq!TIBi&NY4?g=g z09Q=}0zQ7L$i(oWm$j`+SRryPCEhgv#5!2AcW>1;s|+3GT|a#SAR~ZNk|%iW`@sJD z07o3){4-Gip!YrkD^3Aq1W={-cV$26 zUf&GJ|MO}1{y_LB;HZPtxEYNCjHOnXT-i}|1pu)GUkl(4HPg%A>Y#mrubvDHa4_3{ z?yYR_3j<$h&7>oMmXT^U-nSfB|Grw=!d6VUC=#TFdcAvlxdVU>UIoG^Q)T?ax5Am_+ZO5XA~NHyNSLlR@t@HvAllAH1nRNQL;*kgO7Jf_4mjAs z=|bHnKWC3jF0WJA3AuZT{k)=tkKVIFWHj+M0zl9Cy*vE~qOOdg1GB-GcfTr`20tg~ z$_c=MHlVxrMT12lIorqhLTi}*plVxTJ0k$Zlibc+x!Jw)#7`Xy95O)NJ#GbGB>qnm zFl@ilvQ54OGMov&u!3~Cx`m%?sSSYW<2*Fbh>f~}{pfe`@xYi82^@twxEXxm{oTp- zD~vJ;l*ynr5jI*u8m8M{8vwCRz6@#HuPfN=ezKn*bg(GxcJO81ak;`t$2*_RrjwZv zr!XnfLeJ{(&<8+*Wz$DCe=3gTsh6i;mD~=#$UXZQ;8ca2f_PF@%i`^rF*6b-tz~!< z0K5X=ICJ&gOUe(67Y#`c+eAWiz788L0Nl~VgLdx5 zW*vcE_xa2r*;&5|c@g}>`jI{p%y(o)^sD|2a9`DU6J^(3^I03xC%GKnGt9!VjGa z^P~MW&Gwr-tG56TzU00(|9K*Cq(p;ScU!MM7ya>o&w}{iYK5{xa-jUS;KwEp`yIVtal~Z5p z0^lVA#yS<|b$b;6Nbm&&eUYpjPAicoaC;Z9t6(H>8vLbi0Z*>>#1mSlinRa`OYnOD z4)Mec1Ewkf_|4ydwM7nT{KqI@e2EFhbrhID}nu$zK)yuY*9W@E=i3MM}atQPBzXSj5SxZ*|z#m=% zUV680JyZhv`<1{eGX4Qj`QngvAMOU`F3tY+j2IiOu=70u#{h^f;-P_*f15z^UY10T zAp`q%-I5K!Q$5x8CJYD8I=ZxrpMN_Gn!f0?;lP;=`b*lEq<@tn8L94D25c)xBJ}_W zJFE~D@ltVV&H>QLhX>Md^>|V-_2fjZtg6Y-UyS6vDm!ZObVT z3_k#vW|PH}-~ZS_+3n_Hv}Gso@Twxb}1R51{_MiL*u(W4Pl1&)dj44H?6T!kAyuDx?qwZI z@P_~#6uqs~yZtUT!dqk}z5ngT$(m1u&y{+^B(823L z817VX#vEs{}3MxRO}0>052BFDu!v;YuGu#_qJ zrCUxoe++Pf!ugh!o3ih4w@Kw3pU5oS402l!6MmFNsP%MmoMNg4fLTc%pJo^wYwR^u z-p{h8Zdas1*83k=VRVeDPyb#p1{kLRKI#0|H-N8A{Vk)In{*(ewyS&`c(KUpy(h8DdD(okP=m7vgEXfHl zg1S2A`h9LB&}_4OVfXE>ql42=PMLQUZa?eD^`Z|m=10PM)x)#_5KnN7fmTz4R06SR z9nj%8-?g}ApFcKR0#=o})&bABC|^~sYCB?ly){htsrwxD~wDXyD^)N11CR@Fw z3NVYZe|!yCQDhI_snK>>KZX2cu}Ox0_AZgbsR?_uPcx3bDNI_mMzjGSTEvpP4Ge`W z_~JHRdIB)grm&J*!>{Ubt(>;9u_Fl}#a0fDBj*MK!ZIsJ3a1eJ7G?^7`@y)(#155D zFiH53#19jaL=Q>$P$ek?w{T@|wvlQ-zuPgPEfOTTV_A!g01!{`7a4d+OL9*qm8VjQ zEdP0xz7&;-WU_ss7Q*7z4Ar?=y?t70>fc7{a(dX^7v#ZmQ5d> zoVu2yfJvXWcSNp*WbZ6^*_RY9b)|~5B;fhh5S?nm$Q%F(z6*fk0|_~$rFw^K0o&1Q zn}FXrTm=jt2}~Yg$GP`+Db(=5-?ACURYKQUAu=k_;|2gu0bo?BOsZ+A9H`7s{jv*? z>;%f_qDnH{OA+S}swepA?j0BsJ%^0$Bryg+&uicbFtm#ns=Nkrfoy*hSh5~S75OZa zFN)?*+kaW)14F8R%2~Y~hLt*0!RAuCpIRZBZpzCQ0K_}_0#4&mU1cQuR}w%~@8yw6 zn#>Die?b09?%<#S*{oo@HHAVQ^RtR|^)E-i6ywC3!?eOwwkrV0i~1mLr}3ON}C zbY&FwlS!r2>9afe>y|th`M7qmq-y|(cko3__?@ni^7PAGKqU=aS4Mt63A&uqbN#MA zH=^X^?iv6xqd*5g0n(ofNNrtN81kCroZg(S;`0cvhX0|Eo_ifP)ooYOmR zG$2*C+@R&}0FN0gC%d78A&*5?h^83w*rU7aBY;R~>)=a>@LN-5O|EXu$#(GyS5tG0 z`V*nKHAst%nDo)v698mh1qq%Dz<8lTc;$c~mp9uLUzYYV!+&ivu<||qi<#VZv=KkT zjaHCm8}TU8*)srSK#=66U>I#y6zVNCc;zPV%oXl|o-5o_Jy*Ez1~$A8NEtY}pKq@q z#zHGh7kOoirvSJ$$tR^4QWZy`Zl+fzRyE&MjSXnN?z3j={iQtMDF8(9tRzoOGZs{J z7|Nr3n(8s7bu#_Gm*PDKK+k-js;-su(&4JS-Mk#KtRp~9c&vllK-GJtylUXwXvb+> z89AL~674zpG6H-If+WuY<9g4ns%8O%8CH;P_saxd0U$=j6MP#3GyF2Js^lV`Ukb9tqJ;Jr=VE`?3I_2LxAwaJSzESD?IZ0xoL}QCV(Z zEgJwbuY)9?$BbVAaB#O*1%^;pCB{l7OpAm_Dz21;$_fCncvd@)N;hC07%gS-K)Hkx z7IX)2MYNfGExTK2ZrK6w@fSjZ;{axsD;|EzWy1B5p!3TeywI^?0FW6Cl6+>0F^2$! zYnQ!nhqpW#csk9PadVhn^j4BO_lg3*$D=_9e;vri{J1`L8nRFVD)u-|MnJrZ0 z4iY;q<^R2^0g&&$*`0iNcM2^;m<(Vd0Zr`QUWb&5kRl9=iP1@QXrCFRE#(iNxdwX; z0190ZZRdsnFb)BXCg5mJV+0t(Kp32Uc WMN-V-hi8TW0000V43gf;uum9 z_jayfmS~_z+j-wBtSU#VTNh1GWr^Q#LQiMQh7FgzYVw6&swF5#ED_-TK7sYbo>QzE z8eGSe^c+mWn>dmt&OBLo?yvsmn`!Un{IB_c{Oe2(&tvmFg*_(UoA;ELQB9ALN#Vc| zPM@0EJO-8-7LA?j&+|4g2&)@>{JN7-AmI^<+CDpT1}2|52aa5S&gRh2DLmuHuR9DJ z20aIsKRb8rYDt;7>h0}0ztes`+hG3TOTF5Mdz)nEN5;kP-c-2f?~=bZPyRONHB3%> zALsS+z?nQ=$wQkHS^SE(P5*qg>S}pXKI1+)y`uZmKgCosZGO5deEVKGt4uLpuWdT} z#W;Tnov^$+fBmiNvFFRV3V!9h|J6VL=h~UM<$HV9dkg;fV4MH$Uc}y?Wr3^w826cM zm(N>LqOw&gu}bj7G`X|W-*Qi9h@XA5*!$a#>n?JalqOtSee?3SM*oJxN3D%-U%b_0 z@|R;t|K`-{hx>0>{pWh|>&yM`m(%tiurZy|uw9--!Yk%YC5wQziWMJ|i?I0Yc7~)@ zm*b8N8IO`a3plKq@WO&az&9pGj;TXbNS2*(QD^sAXNHYViykXDm=tcTRhZFJA84a8WRu-+|$6otu9?cXYY3!$+=DY#jm*=FWUOC3f=5 z>B*|+V|nzEv?Ef1$FP0+QSrGHyo zkI`@b+t~jfjrW^we(SyTL4YQc{J!UB?@F&WzaPUiN8S#S#I|x4w+q9Pn7Xw+^Pft` z>&wrsbF8tQ=5T-h#V=wHzWZ({*I!zbkS1QYsV8=7X1$=r*_(0a!e58RYc;c2)W1Z_ z1ZnpZZOpkEzfXJnAN%h?Q`?(U|9UtLyR8f(IDi|IuKw zV65sdX8yrZ#Qft&A+yELogkh7c3$BggT`0+4Tt`$lJ94@8vY`hfwAV#D*Ik4vHx;6 YJ5|jOTjzKdSZ*Px^LPY#00URV(%5BSg<2j5G%IW5z%1pSW!{2i$u}b0(R_* zy^9SMd+!SN-X(UiM)T9z$MX4h&Y7LEd-vXxZ0?u$W@e}ScjnBgJ7_~|Jp((e_2@T) z*9HJ<4uTB;HUL=j8Cdh-Z+3tU0M>j4)_nMz9bf~1wVHt)C7oeA&)+5eNz$KtzbCK5 z%q(>W*jv&?C0%UGvrEFF0)X#I`d;|uZ=R1x`b$DPvo5+60PH5|`jW029=`IL^gc<) zO8Tgz&)0lW?Y37L09TcCqwwrmd!i!kpCIW20T6&epTp;l8%=2(!gBKvfpzDz=4wPB5AK#&YrJR-|7M3SH3FkO3f7j`$;-j z(v{myMfErRRMN909Z~&F2``u%04^=*5J`7T7=yRyA0@%Cog|6ByNCNf@_{o++PU|8 zNlEASHl9%Kcu7wUyh1{?Iz{IMfJcPIKTCn3{zB3RC4EBDiQ(Z3OeN$70DX-b zSbC_Ww^i(KwCSkP1GpeyTu+W8#^T#xQc@W+uND z$H9FiJu2}wfkyJ4lGqWdQ%e9`P|{~5ac+9)I7x>~;&)XErV$XZBc#y%B^{YkVNBUp z0JvJXl6m`xy7jSvLG;#{d%4?6IyCWEp!{Jq2i5`rSCI6Dgh3!fe^ASFFrja`Mb9hg zS&{&QmtZW9@fJ=kR~rCu!w6!Kw0VeuviQIB6kg#nPYSz%cL>NFkZ%;HngBpR^2s1Y z^K|?Pk{<6VxR5f4yI+# z>4=~E&+jDtzW2bm{?;>yLS;DPF=n+0l`?!%5h@LUJtU!&@hC`O5Pwi)6!At-^KuR4 z!FG^e{>?+5mW28i`Ndl${nJw^ql^~>_mK4BjQ4D-S`q+!&F_(PO-IK#``+y+ms14Y zKEjmyWhk5a@BdmjuU{tVH#r@P)J1y8HgD|&e+WkbOm-HP1i;fIJQ+s5Y)W)36K{#6v8!W)Fg`*pKW@HVB1 zzHkdUztJ#ONmxcDQ!W5t`m8e@z4iggJ@Z$<($~Z6(NFk;Z#bJikEDBruL~uPMK28H zt#YaVkImrIjY=?$H&1Pt@;LzD%JL=S%td0wy_RrRnX#@;KIRGA}R|0BHHp z_QeR*E-Ky{bPdDyAGqzjNO+R38oC10s#%G>eATq*MSP z&%Z^aRrmu-Y-x7NC=fe;KWxY*a^Kz6x2|MKjM#`ydDQRdXMSw8oeBUr+?cr+3|i^C z_tr5ms3GMD07dasn=GjyOeoA~O@a}Q8I9a6#3qXNAq4=IhYyi1JeIAwlR{{hGY&L@ zd;rJF+VnYEdfx!zi1SR zPC7)j#KHadAqHoWhsY(5NCChrB;6_U!rJHFSiqF7XPv(Ui@bR0mu{y$1aSnoiV-&j zbTWgK0)Q_Yo~B3d$6< zuzK#6;#G#RjmeC9cK|}2umfbBH>F@dQ9G9p=2$k97Qcp(#KA$tel z?1u*!A}m&hgfkPZSJBtvyonOV5^}jEaD{sJKtteUn&WwQ04t(b%X6>L+$A+*owYQE zh#V`WmW0J{%*n=-2zmivdHWLX?a3`i-tb+X#m7~PWEHg(KtsdD4KK#z;oyo9OZE|f zh7U`ZA=0p(d4brwy#TP3Ku7?Q1TKZVix1@a$&c&aT#IxBEuw*9i9D#{rOScF$G*-uRp=M0rlCOat|3c2$)6Heo zd;Ms34P2@q$P?QD1s8gNrg8k8U~47_TB0bJC}kM2#-f)K{DG(@bB$xzOccCCWe`E0 zP^JvgKZ1BSs!w-*skMqVQwA+f9c(dAELiP;RwY2uOdU*Tmt+uvUIWHu_Ti)E2`P5h_)?FWl@u`r5J^B?~gfdl5^0b0i1ewXl@ib7qjr(i6@v+EKy^z zIJ~(XHR?Av3!jT)NbbB^cYkyN-biA(eaWfc+%bgC&cQV-XVR!k^bn$O4iOT+n1(I) z{iW(RcMYTCmQtvNb7<}a#`GFQ6&aKDGq+Ev^)2TV+N@-EID z!({H^a|jTTJ9(=PfJp;HF!@u5h$#VpSR1j}hq>=AQGe19F$}CF&avPHe ziSmSrTelp5tpH_3CZQimUfN!pz^wzc0yW{1Tr*H)s|lamdu9Si(tXvOg87_Vf2_wc%G10ZI7b2ei zO%e$rNor9#*~8fW_3Ody~Hdfw1F_|O#_j}o@)ePOn6PPqO(mI!wBb) zG%97LNhZl6$B00eo&=aF?;Trq_DQ1{n5AB&OzpIBo(U#PIbr0YzH*@<&RnvCOii;- z8`n*cWnx7+SKz{mGme=T?q424*AB3!q?Jh=$s~Eyla!m%($=zQ>MwTkeY!AGRxWic z97AOLY%K~VuK)?Hi9~7GQTTSgsWS=m4H7=-gu=S+;icI7x>~;&)YPS4lY3q^7e)b9rR#LAL|| zV}aYnHEZ9*fw2>iu&Q=O(8O* z4X{Q&S`tyP=Sq0)@U`=#Z1;=@hfj1C&G?@w0MIR*6?trEflm%V;Qn0vT9kn*!pFj} zAqgGhV9FPd^-t4qbW;L=x!x}@da*>vu{9xr7x8@1-kp%Kcw?)=&tQp*$u_@i`(ub) zhq$dbr>OzJfCrs3S^@UjfeD$%2CAG%! z-*)E!fNp>oiyV?Up

Sqxdaw^+XWGGlqfOB}g)nW)hZ_v@oTzf*mD^FmI&Xos8xL zfNnPc1hMQSV<(H8!yFSQN#gJBA^RrcSkl4m-1}wGQ@D3;zm5+Jf2_Ac&2n=CKsQ!+ zgM)*AVa@TkY?~bjRqhcjUuwN;t^nxzePFmw?PU#Q#{Z8NkE<(J*jRYFNro_Y0Cbar z%z*1vssL${NewSWr_n9^oN^4DYED)K09~h1i2?$+Z~mSekvW{Ry?f@?zyIscssW%s z0000Gc=nudreQ3x)LEHD@6XjL1E4>S-9k!tu4z2j8rCE-q_N-#qFP%K6&=@70I+pZ z_LhWS9pc&k!@b^1h@27BU@FFM_aLWlX~^pB@2GN11;Ef`aNlQl*!qxP4|xF0TK5Y8 z7EkL2fWHs$YNS(2TmEQnhVGEi%oDBd{XKZ2RHvm}Jf~F2<1Ax>STUhxG02a2O isl(X-Aa%wTR{lSUZ_S@fkBRdD0000#9+bF_QrRC^giT4XzROe?@}0?%i_MgVzA@ zGEh?lRbTIH06+uPP<~|O|9r=SJoVOO*5&0Uq^GBk!s0*F#Ex4+Ao?GC?)b32K@DX8YteoJV+iw)>Id3dCiDqp2C2?t)& z(Rwri*}cjiZY~)KCmaaGD~G^-z>5Fw5m;M8*X$n>0*dEj;$`3pMkXUBC@RE1e>4Ps z!0^JPX1TjxE(drd0$fygAT?0UGYuDFq#)7p9X)KhA`?;K%_VD2_p0g$w}q4`3gBg! zR2pE#B;p4i1l&>Ce1cd^`}T6{bJB2vP9-U@;q@V9EC<08we~)azx$%PEWY1urSy?} zAB|9lcNNe%^?xO+hOU2Rp4+Z<>J(BAo}TjeXzq)beau4%qST~RDmXrK=m`*v`yYa^ z>Cu7?78MfbNLg6@$MpCG%5I**#9ih-(CD+p>x{-cjV&(T7 zuQD(Fa{k=4AY||vgsr%IiqlZ(f@3>6;Z~$91xlk9=|5 z(+L&{fST*d(+Pe6{~ouH;v2D}hAD$kbA|oOtP<|+XpkLE9C>Qej%o>i>rhe z|IV+p68PW?9t1Zcwz6_d_Mcm!UR^>*!sBz=9JdLtWqo&Q;HXTw6+OtxJ)ky2w~*?s z?8p3PyCsm^g%*_kZSe~4De9yem1gg8*s?gwHnOvh?S*o;LC}fn6G*cOTJ1v$BHVU@ zqvY@gg^cznBgr#SMgYIifR86imU;F2x8HuU*<@X%!I>DqP4; z?4U}s&L*&hJnu-;TVf9<1Pf~#Gr^WredSOX(9U68ROcD0o@uDAva^SbR>e#Ue>u$& zT0X7K&(hi^iGM$_VzuB9({z(Eyjst-bG|C^$mP77IZ*>kW#gHVvUtYDG z`)00(Nd|8&W_Vz^7Nrz7;5MEwRfPsf(D_+(Yf_D)=5P927SuE4QM4RTj7zIuUFr~p^3O9L#LAgneyqI;1w0zlg2(iT-4XBKzKQ8~$Gc6S zb{mzw_GcR(=m+@w?+~Gm?99=;sZ~AeM{*)8wyT2BnLO&%SL?Ja0{_gyM-d!9Fe3-$ z`P70|KLv#4R;F?d&SBg43T7?-{Hs^#-IDZ>9+ct@95h>L=FlA!+fPt(h*PjlR7e>q z0o*9sWD4ycUNB~efY{;*A=+hQdFCymw?E*fbjmXQByQI1r~6{oBS$;!r!~+|#79ru zJ~4tGgH0FV%O)2M%7Lyf2Pl?el>r@j;$7HkS^@2t$#Xq(TT37bV)wj3n(rsLHJoab zT^O@QyF_8Las#--TPX9U^7r)=T=NBlPZieT`PF!wxVA7MJhh5c2LCHvdC|k|Hcyu4 zzwl8`4@hu_o$Rve9il}K_7{4!?-X|Wzc{nWVMn{c1G=tTya^(0ndTpPN+^_hN3|=&U0%P1cao>Ds&yFy2!?#PXZ^KUyFG z6Ps>N1t~Jv>+#=1V@?{Ekp5v@p=dvkh#E7D zH1eruDf7qSqnJxlIFs=bq!pSxLwkcX589v=&ayd5f}Izh?EM=V=KBLD=IMVs;UlH~H9|WK z7Pq+RDB`g$;-V{B_Y@+J_>^>6qlckOP|$|~!x4BKLs8Zfy+>$*It|17WvqPt(1YX5 zGe(rB>~LBBZrLMY1gH;Vmg74Ns>^|yxjL2b6vVApkN?@`Ot1U679;~5CC#~Cots>y zpdYNFZxF%=Gj~1ST64TNTy)z^;<5VW+_J9GgR5JN-!z|5zFd?biH9nzmMuuby%iq& zTThQIIB11wn^ejork=klZp}Pt)8-(2*Q8<~M#=5KtbXc171LnH`*H_3=C}oh8{C$2 z+_aXbW^?zqLcY#MJ9Iw&x;u6T_1<_GfsJDwzgktYS!#OUY7sRiv_FMNp~XJll@vU0 z$zK_8_u(f+wQg~|R>`@6?Xfh22%nVoYwk%Ld&GS4qB9t1)*q&3 zgwfoX#MR}7S}1;rs2V&tEUqPcXHGesZIU2|i4RW7#65``5-I8l4w6o4FU>^9-{!Fm z{H=?s_OnI#b^M}@o;ou#%Jqd>TYaFw4nQ!oe_JbjYLxp2otupiEJIGKbSrjRW<>|Z z`B})j5UW*!gD!^g$63dfJZ982I=xXMBTts8Ga^pYm%WsXaqs8-W#$9IioZ?im%CP- z`FyQYW{+3rk@rHglLa!xI z`OK^1^=8YM_qxjLo5=)-K8Y_SMp~MbhqP1pyNJKPlD3IFiP>B_`j?y%lBb;o8cmKT zB6*5G*H+ub*~%Lvb}OSdz%Q5)<=}Xt^Jn|jy&@x2cXxQ8AS(W@f-Bv`C29VbgnKw- zWy)Y|WMvMjv95RTWmZ~LR?pH!VpTM1>8sfq^oCq$0Pc4gj*!Xe`>fseYC+tvfTM^p zR8LWM=k~=HUP_Q|7`3-|5>EWcPWF?(Z&cp-l5yo)*s8q9#g`jDWIdhw5*-m}P8Frv zWN8>WlXjwM+4!5jxeoK#i+X&USaG=nQT3@0Wh3?Je3MHMVS*ZzHBxzWx@whEccHaJ zNe`A@0sONty5gyK-iLFDQl+ksFn?Sl`WV5PbJp}8XJNu>-9^yBY(++Xpd6M7YjH0H zB`>;rlSS%%2aClI#-Jd1({ESRD!>1s(0r>$ z&B){5At;{Hdw99pWl|;NRd9pg7$55U{z#-HD(x-OY$Wp{W@?iG6MNFFU=6WhMs1`; zln7f2dvog>nXneDN{_Y~_-jg3rjwxJSFYB$JYCzmgNq9qRY(fnEjd?M1(Mrh@}O+R z;U$S#M-ljcNCQXI51$gt!@Ij?jfAtc_|o#`ke`1*r#q*cr_a7E)3EJd zxgn=wpVRqFEiw?F5q8Q%yX!musmB@E^n3EelD$=Wdp`GWg#Uw^`P9K%X6R4P6UU!Y zQGZ_9@ato>BZs_VIvUK|s>ot|G|E8K?3E#zlTSu^h*29Y75sF`uu*CJeGLu%nHln` zB3pPGFbZ5P*g9e5(`*{;*gMTTxo2^rzXER+^j<$Sv-P>ph`JtzWjnh}<)a=AZr?HZ zh6goPOfGR+QS`A)O%Xy)ibBa1kFvxfz{F}Qwo7)#>0n%{~>Q3 zojC5Mh%Y0lm$CS&I3=ja8wyzGG)&dUO>%k$`w9&>b~1M9%efgzLJwYJ#U9 zrA_6F#S`QBA-6)*cE$3Z@23Uzc}yo1!@KlR|8r9G)DH8M7}oX7jbd$%pmuX}3=1#@ zj@6WU9yATf;e+216Xc-?pE?c#AmCawJv7(lfJ#QQJvp84gLUt zM5xmLe5LkU_{kmAS4iHBm6xjG@x2-2k&i;RF#&Ip_hMS1z=-K%iotj{t@4#k{-_O9 zj?^~nxyWw_c&6&<&L^74u8Yc( z$oJ%b>RkBg(b$B9f1X%o7Z$2XHH0nlOvwAaAMkBnmbaNk>y41TqPNAd-hDkwA#n!h zetuS#(DQe+CQ$Go4$~)7+h{lvMQussxvD-HoR+`xOuUBz{Cpw$z2x=AW-qA7!6_|@ zJQo%7O1hl|0Sn62x*bvW{>qY1FGvS{M4N4&1Mu+iKKpR*7L6!XiR8`oX?OZx2!OYK zSuWBa$T!Qfm{uO`_`nT-4@s`no!3!Dvib*i81Q6nMJ$nnQMNemP1XOe;ki6R^!iZe TwB^)wGy*hKbd{?Vts?#lXwpl& diff --git a/dict/admin/src/assets/img/app-ui.png b/dict/admin/src/assets/img/app-ui.png deleted file mode 100644 index 09256bff68153c687ddd90f67c679ad49c38cae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19578 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 diff --git a/dict/admin/src/assets/img/circular.png b/dict/admin/src/assets/img/circular.png deleted file mode 100755 index 12f22efb331c667b900f045b3502818a05a3b9b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2374 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%0D@=6&x^7=3|6jsNHw`aYL;_Sd5r&pIh+&Yqifq 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 S3p!Ge^XCk8vd>=o>wf?#G^&{Z diff --git a/dict/admin/src/assets/logo.svg b/dict/admin/src/assets/logo.svg deleted file mode 100644 index fb8e867..0000000 --- a/dict/admin/src/assets/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - background - - - - - - - Layer 1 - - - \ No newline at end of file diff --git a/dict/admin/src/components/ByteMdEditor/index.vue b/dict/admin/src/components/ByteMdEditor/index.vue deleted file mode 100644 index 5193689..0000000 --- a/dict/admin/src/components/ByteMdEditor/index.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - diff --git a/dict/admin/src/components/ByteMdViewer/index.vue b/dict/admin/src/components/ByteMdViewer/index.vue deleted file mode 100644 index 22e95a3..0000000 --- a/dict/admin/src/components/ByteMdViewer/index.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - diff --git a/dict/admin/src/components/ChooseDictionary/index.vue b/dict/admin/src/components/ChooseDictionary/index.vue deleted file mode 100644 index 65b24dc..0000000 --- a/dict/admin/src/components/ChooseDictionary/index.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - diff --git a/dict/admin/src/components/DesignBanner/index.vue b/dict/admin/src/components/DesignBanner/index.vue deleted file mode 100644 index 1afeacb..0000000 --- a/dict/admin/src/components/DesignBanner/index.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - diff --git a/dict/admin/src/components/DesignHeader/index.vue b/dict/admin/src/components/DesignHeader/index.vue deleted file mode 100644 index a79c789..0000000 --- a/dict/admin/src/components/DesignHeader/index.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/dict/admin/src/components/DictRadio/index.vue b/dict/admin/src/components/DictRadio/index.vue deleted file mode 100644 index 5332efa..0000000 --- a/dict/admin/src/components/DictRadio/index.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/dict/admin/src/components/DictSelect/index.vue b/dict/admin/src/components/DictSelect/index.vue deleted file mode 100644 index bdcc5c8..0000000 --- a/dict/admin/src/components/DictSelect/index.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - diff --git a/dict/admin/src/components/DictSelectMultiple/index.vue b/dict/admin/src/components/DictSelectMultiple/index.vue deleted file mode 100644 index 5daaafd..0000000 --- a/dict/admin/src/components/DictSelectMultiple/index.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - diff --git a/dict/admin/src/components/FormSelect/index.vue b/dict/admin/src/components/FormSelect/index.vue deleted file mode 100644 index f13dc4c..0000000 --- a/dict/admin/src/components/FormSelect/index.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - diff --git a/dict/admin/src/components/IndustrySelect/index.vue b/dict/admin/src/components/IndustrySelect/index.vue deleted file mode 100644 index ab49a04..0000000 --- a/dict/admin/src/components/IndustrySelect/index.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - diff --git a/dict/admin/src/components/IndustrySelect/load-data.ts b/dict/admin/src/components/IndustrySelect/load-data.ts deleted file mode 100644 index 88ef030..0000000 --- a/dict/admin/src/components/IndustrySelect/load-data.ts +++ /dev/null @@ -1,25 +0,0 @@ -import request from '@/utils/request'; -import type { IndustryData } from './types'; -const BASE_URL = import.meta.env.BASE_URL; -let reqPromise: Promise; - -/** - * 获取省市区数据 - */ -export function getIndustryData() { - if (!reqPromise) { - reqPromise = new Promise((resolve, reject) => { - request - .get(BASE_URL + 'json/industry-data.json', { - baseURL: '' - }) - .then((res) => { - resolve(res.data ?? []); - }) - .catch((e) => { - reject(e); - }); - }); - } - return reqPromise; -} diff --git a/dict/admin/src/components/IndustrySelect/types/index.ts b/dict/admin/src/components/IndustrySelect/types/index.ts deleted file mode 100644 index 7c49435..0000000 --- a/dict/admin/src/components/IndustrySelect/types/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 行业类型 - */ -export interface IndustryData { - label: string; - value: string; - children?: { - value: string; - label: string; - children?: { - value: string; - label: string; - }[]; - }[]; -} diff --git a/dict/admin/src/components/PayMethod/index.vue b/dict/admin/src/components/PayMethod/index.vue deleted file mode 100644 index 3f810e8..0000000 --- a/dict/admin/src/components/PayMethod/index.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - diff --git a/dict/admin/src/components/QrCode/index.vue b/dict/admin/src/components/QrCode/index.vue deleted file mode 100644 index 369a404..0000000 --- a/dict/admin/src/components/QrCode/index.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/dict/admin/src/components/QrLogin/demo.vue b/dict/admin/src/components/QrLogin/demo.vue deleted file mode 100644 index 4127c52..0000000 --- a/dict/admin/src/components/QrLogin/demo.vue +++ /dev/null @@ -1,258 +0,0 @@ - - - - - diff --git a/dict/admin/src/components/QrLogin/index.vue b/dict/admin/src/components/QrLogin/index.vue deleted file mode 100644 index f0d8397..0000000 --- a/dict/admin/src/components/QrLogin/index.vue +++ /dev/null @@ -1,312 +0,0 @@ - - - - - diff --git a/dict/admin/src/components/RadioGroup/index.vue b/dict/admin/src/components/RadioGroup/index.vue deleted file mode 100644 index 1deca38..0000000 --- a/dict/admin/src/components/RadioGroup/index.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/components/RedirectLayout/index.ts b/dict/admin/src/components/RedirectLayout/index.ts deleted file mode 100644 index 6c4def6..0000000 --- a/dict/admin/src/components/RedirectLayout/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** 用于刷新的路由组件 */ -import { defineComponent, unref, h } from 'vue'; -import { useRouter } from 'vue-router'; -import { setRouteReload } from '@/utils/page-tab-util'; - -export default defineComponent({ - name: 'RedirectLayout', - setup() { - const { currentRoute, replace } = useRouter(); - const { params, query } = unref(currentRoute); - const from = Array.isArray(params.path) - ? params.path.join('/') - : params.path; - const path = '/' + from; - setTimeout(() => { - setRouteReload(null); - replace({ path, query }); - }, 100); - return () => h('div'); - } -}); diff --git a/dict/admin/src/components/RegionsSelect/index.vue b/dict/admin/src/components/RegionsSelect/index.vue deleted file mode 100644 index 47fe28e..0000000 --- a/dict/admin/src/components/RegionsSelect/index.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - diff --git a/dict/admin/src/components/RegionsSelect/load-data.ts b/dict/admin/src/components/RegionsSelect/load-data.ts deleted file mode 100644 index bc7d756..0000000 --- a/dict/admin/src/components/RegionsSelect/load-data.ts +++ /dev/null @@ -1,25 +0,0 @@ -import request from '@/utils/request'; -import type { RegionsData } from './types'; -const BASE_URL = import.meta.env.BASE_URL; -let reqPromise: Promise; - -/** - * 获取省市区数据 - */ -export function getRegionsData() { - if (!reqPromise) { - reqPromise = new Promise((resolve, reject) => { - request - .get(BASE_URL + 'json/regions-data.json', { - baseURL: '' - }) - .then((res) => { - resolve(res.data ?? []); - }) - .catch((e) => { - reject(e); - }); - }); - } - return reqPromise; -} diff --git a/dict/admin/src/components/RegionsSelect/types/index.ts b/dict/admin/src/components/RegionsSelect/types/index.ts deleted file mode 100644 index ebf2eca..0000000 --- a/dict/admin/src/components/RegionsSelect/types/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 省市区数据类型 - */ -export interface RegionsData { - label: string; - value: string; - children?: { - value: string; - label: string; - children?: { - value: string; - label: string; - }[]; - }[]; -} diff --git a/dict/admin/src/components/RouterLayout/index.vue b/dict/admin/src/components/RouterLayout/index.vue deleted file mode 100644 index e304b5c..0000000 --- a/dict/admin/src/components/RouterLayout/index.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectArticle/components/select-data.vue b/dict/admin/src/components/SelectArticle/components/select-data.vue deleted file mode 100644 index 901b7c7..0000000 --- a/dict/admin/src/components/SelectArticle/components/select-data.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectArticle/index.vue b/dict/admin/src/components/SelectArticle/index.vue deleted file mode 100644 index f124514..0000000 --- a/dict/admin/src/components/SelectArticle/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectArticleCategory/components/select-data.vue b/dict/admin/src/components/SelectArticleCategory/components/select-data.vue deleted file mode 100644 index 4a6017c..0000000 --- a/dict/admin/src/components/SelectArticleCategory/components/select-data.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectArticleCategory/index.vue b/dict/admin/src/components/SelectArticleCategory/index.vue deleted file mode 100644 index 373dda7..0000000 --- a/dict/admin/src/components/SelectArticleCategory/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectDesign/components/select-data.vue b/dict/admin/src/components/SelectDesign/components/select-data.vue deleted file mode 100644 index b4ef42c..0000000 --- a/dict/admin/src/components/SelectDesign/components/select-data.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectDesign/index.vue b/dict/admin/src/components/SelectDesign/index.vue deleted file mode 100644 index 592dd0c..0000000 --- a/dict/admin/src/components/SelectDesign/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectDict/components/select-data.vue b/dict/admin/src/components/SelectDict/components/select-data.vue deleted file mode 100644 index b2cc7b0..0000000 --- a/dict/admin/src/components/SelectDict/components/select-data.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectDict/index.vue b/dict/admin/src/components/SelectDict/index.vue deleted file mode 100644 index e01545c..0000000 --- a/dict/admin/src/components/SelectDict/index.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectDictDictionary/components/select-data.vue b/dict/admin/src/components/SelectDictDictionary/components/select-data.vue deleted file mode 100644 index a3352c3..0000000 --- a/dict/admin/src/components/SelectDictDictionary/components/select-data.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectDictDictionary/index.vue b/dict/admin/src/components/SelectDictDictionary/index.vue deleted file mode 100644 index 4c6dcc7..0000000 --- a/dict/admin/src/components/SelectDictDictionary/index.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectFence/components/select-data.vue b/dict/admin/src/components/SelectFence/components/select-data.vue deleted file mode 100644 index 0f78932..0000000 --- a/dict/admin/src/components/SelectFence/components/select-data.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectFence/index.vue b/dict/admin/src/components/SelectFence/index.vue deleted file mode 100644 index af87f1e..0000000 --- a/dict/admin/src/components/SelectFence/index.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectFile/components/file-record-edit.vue b/dict/admin/src/components/SelectFile/components/file-record-edit.vue deleted file mode 100644 index e9aa785..0000000 --- a/dict/admin/src/components/SelectFile/components/file-record-edit.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectFile/components/select-data.vue b/dict/admin/src/components/SelectFile/components/select-data.vue deleted file mode 100644 index fb05025..0000000 --- a/dict/admin/src/components/SelectFile/components/select-data.vue +++ /dev/null @@ -1,375 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectFile/index.vue b/dict/admin/src/components/SelectFile/index.vue deleted file mode 100644 index 4da13ae..0000000 --- a/dict/admin/src/components/SelectFile/index.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectForm/components/select-data.vue b/dict/admin/src/components/SelectForm/components/select-data.vue deleted file mode 100644 index 8395752..0000000 --- a/dict/admin/src/components/SelectForm/components/select-data.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectForm/index.vue b/dict/admin/src/components/SelectForm/index.vue deleted file mode 100644 index abdf6b8..0000000 --- a/dict/admin/src/components/SelectForm/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectGoodsCategory/index.vue b/dict/admin/src/components/SelectGoodsCategory/index.vue deleted file mode 100644 index a55f356..0000000 --- a/dict/admin/src/components/SelectGoodsCategory/index.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectGoodsCategory/load-data.ts b/dict/admin/src/components/SelectGoodsCategory/load-data.ts deleted file mode 100644 index 88ef030..0000000 --- a/dict/admin/src/components/SelectGoodsCategory/load-data.ts +++ /dev/null @@ -1,25 +0,0 @@ -import request from '@/utils/request'; -import type { IndustryData } from './types'; -const BASE_URL = import.meta.env.BASE_URL; -let reqPromise: Promise; - -/** - * 获取省市区数据 - */ -export function getIndustryData() { - if (!reqPromise) { - reqPromise = new Promise((resolve, reject) => { - request - .get(BASE_URL + 'json/industry-data.json', { - baseURL: '' - }) - .then((res) => { - resolve(res.data ?? []); - }) - .catch((e) => { - reject(e); - }); - }); - } - return reqPromise; -} diff --git a/dict/admin/src/components/SelectGoodsCategory/types/index.ts b/dict/admin/src/components/SelectGoodsCategory/types/index.ts deleted file mode 100644 index 7c49435..0000000 --- a/dict/admin/src/components/SelectGoodsCategory/types/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 行业类型 - */ -export interface IndustryData { - label: string; - value: string; - children?: { - value: string; - label: string; - children?: { - value: string; - label: string; - }[]; - }[]; -} diff --git a/dict/admin/src/components/SelectGrade/components/select-data.vue b/dict/admin/src/components/SelectGrade/components/select-data.vue deleted file mode 100644 index 20f2a6d..0000000 --- a/dict/admin/src/components/SelectGrade/components/select-data.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectGrade/index.vue b/dict/admin/src/components/SelectGrade/index.vue deleted file mode 100644 index 758bda0..0000000 --- a/dict/admin/src/components/SelectGrade/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectGroup/components/select-data.vue b/dict/admin/src/components/SelectGroup/components/select-data.vue deleted file mode 100644 index c8b4098..0000000 --- a/dict/admin/src/components/SelectGroup/components/select-data.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectGroup/index.vue b/dict/admin/src/components/SelectGroup/index.vue deleted file mode 100644 index 409b710..0000000 --- a/dict/admin/src/components/SelectGroup/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectMerchant/components/select-data.vue b/dict/admin/src/components/SelectMerchant/components/select-data.vue deleted file mode 100644 index c025075..0000000 --- a/dict/admin/src/components/SelectMerchant/components/select-data.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectMerchant/index.vue b/dict/admin/src/components/SelectMerchant/index.vue deleted file mode 100644 index 69cc753..0000000 --- a/dict/admin/src/components/SelectMerchant/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectModel/components/select-data.vue b/dict/admin/src/components/SelectModel/components/select-data.vue deleted file mode 100644 index a83555c..0000000 --- a/dict/admin/src/components/SelectModel/components/select-data.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectModel/index.vue b/dict/admin/src/components/SelectModel/index.vue deleted file mode 100644 index 1230694..0000000 --- a/dict/admin/src/components/SelectModel/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectModules/components/select-data.vue b/dict/admin/src/components/SelectModules/components/select-data.vue deleted file mode 100644 index 198b727..0000000 --- a/dict/admin/src/components/SelectModules/components/select-data.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectModules/index.vue b/dict/admin/src/components/SelectModules/index.vue deleted file mode 100644 index 42b4d33..0000000 --- a/dict/admin/src/components/SelectModules/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectMpPages/components/select-data.vue b/dict/admin/src/components/SelectMpPages/components/select-data.vue deleted file mode 100644 index d3042c7..0000000 --- a/dict/admin/src/components/SelectMpPages/components/select-data.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectMpPages/index.vue b/dict/admin/src/components/SelectMpPages/index.vue deleted file mode 100644 index f597387..0000000 --- a/dict/admin/src/components/SelectMpPages/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectNavigsation/components/select-data.vue b/dict/admin/src/components/SelectNavigsation/components/select-data.vue deleted file mode 100644 index 2f7d983..0000000 --- a/dict/admin/src/components/SelectNavigsation/components/select-data.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectNavigsation/index.vue b/dict/admin/src/components/SelectNavigsation/index.vue deleted file mode 100644 index 207f71b..0000000 --- a/dict/admin/src/components/SelectNavigsation/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectOrganization/components/select-data.vue b/dict/admin/src/components/SelectOrganization/components/select-data.vue deleted file mode 100644 index 341e6dc..0000000 --- a/dict/admin/src/components/SelectOrganization/components/select-data.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectOrganization/components/select-organization.vue b/dict/admin/src/components/SelectOrganization/components/select-organization.vue deleted file mode 100644 index d7399a7..0000000 --- a/dict/admin/src/components/SelectOrganization/components/select-organization.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectOrganization/index.vue b/dict/admin/src/components/SelectOrganization/index.vue deleted file mode 100644 index 1ddc325..0000000 --- a/dict/admin/src/components/SelectOrganization/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectRole/components/select-data.vue b/dict/admin/src/components/SelectRole/components/select-data.vue deleted file mode 100644 index b46972c..0000000 --- a/dict/admin/src/components/SelectRole/components/select-data.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectRole/index.vue b/dict/admin/src/components/SelectRole/index.vue deleted file mode 100644 index 6e4f84a..0000000 --- a/dict/admin/src/components/SelectRole/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectSpec/components/select-data.vue b/dict/admin/src/components/SelectSpec/components/select-data.vue deleted file mode 100644 index a5fed56..0000000 --- a/dict/admin/src/components/SelectSpec/components/select-data.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectSpec/index.vue b/dict/admin/src/components/SelectSpec/index.vue deleted file mode 100644 index 459d0d7..0000000 --- a/dict/admin/src/components/SelectSpec/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectSpecValue/index.vue b/dict/admin/src/components/SelectSpecValue/index.vue deleted file mode 100644 index 6b7f8c9..0000000 --- a/dict/admin/src/components/SelectSpecValue/index.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectStaff/components/select-data.vue b/dict/admin/src/components/SelectStaff/components/select-data.vue deleted file mode 100644 index 4756bd1..0000000 --- a/dict/admin/src/components/SelectStaff/components/select-data.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectStaff/components/select-user.vue b/dict/admin/src/components/SelectStaff/components/select-user.vue deleted file mode 100644 index e1776d4..0000000 --- a/dict/admin/src/components/SelectStaff/components/select-user.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectStaff/index.vue b/dict/admin/src/components/SelectStaff/index.vue deleted file mode 100644 index 8bc7896..0000000 --- a/dict/admin/src/components/SelectStaff/index.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectStudent/components/select-data.vue b/dict/admin/src/components/SelectStudent/components/select-data.vue deleted file mode 100644 index 04e9079..0000000 --- a/dict/admin/src/components/SelectStudent/components/select-data.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectStudent/index.vue b/dict/admin/src/components/SelectStudent/index.vue deleted file mode 100644 index 4858056..0000000 --- a/dict/admin/src/components/SelectStudent/index.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectUser/components/select-data.vue b/dict/admin/src/components/SelectUser/components/select-data.vue deleted file mode 100644 index be956d2..0000000 --- a/dict/admin/src/components/SelectUser/components/select-data.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectUser/components/select-user.vue b/dict/admin/src/components/SelectUser/components/select-user.vue deleted file mode 100644 index 09db656..0000000 --- a/dict/admin/src/components/SelectUser/components/select-user.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectUser/index.vue b/dict/admin/src/components/SelectUser/index.vue deleted file mode 100644 index 63e0287..0000000 --- a/dict/admin/src/components/SelectUser/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectUserByButton/components/select-data.vue b/dict/admin/src/components/SelectUserByButton/components/select-data.vue deleted file mode 100644 index aaf1ecf..0000000 --- a/dict/admin/src/components/SelectUserByButton/components/select-data.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectUserByButton/index.vue b/dict/admin/src/components/SelectUserByButton/index.vue deleted file mode 100644 index 0f9dcc0..0000000 --- a/dict/admin/src/components/SelectUserByButton/index.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/dict/admin/src/components/SelectWebsiteField/components/select-data.vue b/dict/admin/src/components/SelectWebsiteField/components/select-data.vue deleted file mode 100644 index 6a5c489..0000000 --- a/dict/admin/src/components/SelectWebsiteField/components/select-data.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - - diff --git a/dict/admin/src/components/SelectWebsiteField/index.vue b/dict/admin/src/components/SelectWebsiteField/index.vue deleted file mode 100644 index 4c2836b..0000000 --- a/dict/admin/src/components/SelectWebsiteField/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/dict/admin/src/components/Simulator/index.vue b/dict/admin/src/components/Simulator/index.vue deleted file mode 100644 index 165fc3e..0000000 --- a/dict/admin/src/components/Simulator/index.vue +++ /dev/null @@ -1,510 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/components/Tag/index.vue b/dict/admin/src/components/Tag/index.vue deleted file mode 100644 index 97c5f72..0000000 --- a/dict/admin/src/components/Tag/index.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/dict/admin/src/components/TinymceEditor/index.vue b/dict/admin/src/components/TinymceEditor/index.vue deleted file mode 100644 index 7c580f8..0000000 --- a/dict/admin/src/components/TinymceEditor/index.vue +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - diff --git a/dict/admin/src/components/TinymceEditor/util.ts b/dict/admin/src/components/TinymceEditor/util.ts deleted file mode 100644 index d5c4127..0000000 --- a/dict/admin/src/components/TinymceEditor/util.ts +++ /dev/null @@ -1,350 +0,0 @@ -import type { - Editor as TinyMCEEditor, - EditorEvent, - RawEditorSettings -} from 'tinymce'; -const BASE_URL = import.meta.env.BASE_URL; - -// 默认加载插件 -const PLUGINS: string = [ - 'code', - 'preview', - 'fullscreen', - 'paste', - 'searchreplace', - 'save', - 'autosave', - 'link', - 'autolink', - 'image', - 'media', - 'table', - 'codesample', - 'lists', - 'advlist', - 'hr', - 'charmap', - 'emoticons', - 'anchor', - 'directionality', - 'pagebreak', - 'quickbars', - 'nonbreaking', - 'visualblocks', - 'visualchars', - 'wordcount' -].join(' '); - -// 默认工具栏布局 -const TOOLBAR: string = [ - 'fullscreen', - 'preview', - 'code', - 'codesample', - 'emoticons', - 'image', - 'media', - '|', - 'undo', - 'redo', - '|', - 'forecolor', - 'backcolor', - '|', - 'bold', - 'italic', - 'underline', - 'strikethrough', - '|', - 'alignleft', - 'aligncenter', - 'alignright', - 'alignjustify', - '|', - 'outdent', - 'indent', - 'textindent', - '|', - 'numlist', - 'bullist', - '|', - 'formatselect', - 'fontselect', - 'fontsizeselect', - '|', - 'link', - 'charmap', - 'anchor', - 'pagebreak', - '|', - 'ltr', - 'rtl' -].join(' '); - -// 默认配置 -export const DEFAULT_CONFIG: RawEditorSettings = { - height: 300, - branding: false, - skin_url: BASE_URL + 'tinymce/skins/ui/oxide', - content_css: BASE_URL + 'tinymce/skins/content/default/content.min.css', - language_url: BASE_URL + 'tinymce/langs/zh_CN.js', - language: 'zh_CN', - plugins: PLUGINS, - toolbar: TOOLBAR, - draggable_modal: true, - toolbar_mode: 'sliding', - quickbars_insert_toolbar: '', - images_upload_handler: (blobInfo: any, success: any, error: any) => { - if (blobInfo.blob().size / 1024 > 400) { - error('大小不能超过 400KB'); - return; - } - success('data:image/jpeg;base64,' + blobInfo.base64()); - }, - file_picker_types: 'media', - file_picker_callback: () => {}, - - // 添加自定义样式 - content_style: ` - .text-indent { text-indent: 2em; } - p.text-indent { text-indent: 2em; } - p[style*="text-indent"] { - text-indent: 2em; - } - /* 确保首行缩进在各种情况下都能正确显示 */ - body p { - margin: 0 0 10px 0; - line-height: 1.6; - } - ` -}; - -// 暗黑主题配置 -export const DARK_CONFIG: RawEditorSettings = { - skin_url: BASE_URL + 'tinymce/skins/ui/oxide-dark', - content_css: BASE_URL + 'tinymce/skins/content/dark/content.min.css' -}; - -// 支持监听的事件 -export const VALID_EVENTS = [ - 'onActivate', - 'onAddUndo', - 'onBeforeAddUndo', - 'onBeforeExecCommand', - 'onBeforeGetContent', - 'onBeforeRenderUI', - 'onBeforeSetContent', - 'onBeforePaste', - 'onBlur', - 'onChange', - 'onClearUndos', - 'onClick', - 'onContextMenu', - 'onCopy', - 'onCut', - 'onDblclick', - 'onDeactivate', - 'onDirty', - 'onDrag', - 'onDragDrop', - 'onDragEnd', - 'onDragGesture', - 'onDragOver', - 'onDrop', - 'onExecCommand', - 'onFocus', - 'onFocusIn', - 'onFocusOut', - 'onGetContent', - 'onHide', - 'onInit', - 'onKeyDown', - 'onKeyPress', - 'onKeyUp', - 'onLoadContent', - 'onMouseDown', - 'onMouseEnter', - 'onMouseLeave', - 'onMouseMove', - 'onMouseOut', - 'onMouseOver', - 'onMouseUp', - 'onNodeChange', - 'onObjectResizeStart', - 'onObjectResized', - 'onObjectSelected', - 'onPaste', - 'onPostProcess', - 'onPostRender', - 'onPreProcess', - 'onProgressState', - 'onRedo', - 'onRemove', - 'onReset', - 'onSaveContent', - 'onSelectionChange', - 'onSetAttrib', - 'onSetContent', - 'onShow', - 'onSubmit', - 'onUndo', - 'onVisualAid' -]; - -let unique = 0; - -/** - * 生成编辑器 id - */ -export function uuid(prefix: string): string { - const time = Date.now(); - const random = Math.floor(Math.random() * 1000000000); - unique++; - return prefix + '_' + random + unique + String(time); -} - -/** - * 绑定事件 - */ -export function bindHandlers( - initEvent: EditorEvent, - listeners: Record, - editor: TinyMCEEditor -): void { - const validEvents = VALID_EVENTS.map((event) => event.toLowerCase()); - Object.keys(listeners) - .filter((key: string) => validEvents.includes(key.toLowerCase())) - .forEach((key: string) => { - const handler = listeners[key]; - if (typeof handler === 'function') { - if (key === 'onInit') { - handler(initEvent, editor); - } else { - editor.on(key.substring(2), (e: EditorEvent) => - handler(e, editor) - ); - } - } - }); -} - -/** - * 弹出提示框 - */ -export function openAlert( - editor: TinyMCEEditor | null, - option: AlertOption = {} -) { - editor?.windowManager?.open({ - title: option.title ?? '提示', - body: { - type: 'panel', - items: [ - { - type: 'htmlpanel', - html: `

${option.content ?? ''}

` - } - ] - }, - buttons: [ - { - type: 'cancel', - name: 'closeButton', - text: '确定', - primary: true - } - ] - }); -} - -export interface AlertOption { - title?: string; - content?: string; -} - -/** - * 添加首行缩进功能 - */ -export function setupTextIndent(editor: TinyMCEEditor) { - // 注册首行缩进按钮 - editor.ui.registry.addButton('textindent', { - icon: 'indent', - tooltip: '段落首行缩进 (Ctrl+Shift+I)', - onAction: () => { - const selection = editor.selection; - const selectedNode = selection.getNode(); - - // 获取当前段落元素 - let paragraph = selectedNode; - while (paragraph && paragraph.nodeName !== 'P' && paragraph.nodeName !== 'DIV') { - paragraph = paragraph.parentNode as Element; - } - - if (paragraph && (paragraph.nodeName === 'P' || paragraph.nodeName === 'DIV')) { - const currentIndent = (paragraph as HTMLElement).style.textIndent; - - if (currentIndent === '2em' || currentIndent === '32px') { - // 如果已经有首行缩进,则取消 - (paragraph as HTMLElement).style.textIndent = ''; - editor.notificationManager.open({ - text: '已取消段落首行缩进', - type: 'info', - timeout: 2000 - }); - } else { - // 添加首行缩进 - (paragraph as HTMLElement).style.textIndent = '2em'; - editor.notificationManager.open({ - text: '已应用段落首行缩进', - type: 'success', - timeout: 2000 - }); - } - } else { - // 如果没有选中段落,则对当前行应用首行缩进 - const content = selection.getContent(); - if (content) { - // 如果有选择内容,将选择的内容包装在带缩进的段落中 - editor.execCommand('mceInsertContent', false, `

${content}

`); - } else { - // 如果没有选择内容,在当前位置插入带缩进的段落 - editor.execCommand('FormatBlock', false, 'p'); - const newParagraph = selection.getNode(); - if (newParagraph && newParagraph.nodeName === 'P') { - (newParagraph as HTMLElement).style.textIndent = '2em'; - } - } - editor.notificationManager.open({ - text: '已应用段落首行缩进', - type: 'success', - timeout: 2000 - }); - } - } - }); - - // 注册快捷键 - editor.addShortcut('ctrl+shift+i', '段落首行缩进', () => { - // 触发按钮点击事件 - const button = editor.ui.registry.getAll().buttons.textindent; - // @ts-ignore - if (button && button.onAction) { - // @ts-ignore - button.onAction(); - } - }); - - // 添加菜单项 - editor.ui.registry.addMenuItem('textindent', { - text: '首行缩进', - icon: 'indent', - onAction: () => { - const button = editor.ui.registry.getAll().buttons.textindent; - // @ts-ignore - if (button && button.onAction) { - // @ts-ignore - button.onAction(); - } - } - }); -} diff --git a/dict/admin/src/components/UploadCert/index.vue b/dict/admin/src/components/UploadCert/index.vue deleted file mode 100644 index 12bd096..0000000 --- a/dict/admin/src/components/UploadCert/index.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - diff --git a/dict/admin/src/components/UploadFile/index.vue b/dict/admin/src/components/UploadFile/index.vue deleted file mode 100644 index ed26080..0000000 --- a/dict/admin/src/components/UploadFile/index.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - diff --git a/dict/admin/src/components/User/index.vue b/dict/admin/src/components/User/index.vue deleted file mode 100644 index 7ea6327..0000000 --- a/dict/admin/src/components/User/index.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/dict/admin/src/components/UserChoose/choose-search.vue b/dict/admin/src/components/UserChoose/choose-search.vue deleted file mode 100644 index d4498b5..0000000 --- a/dict/admin/src/components/UserChoose/choose-search.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/dict/admin/src/components/UserChoose/index.vue b/dict/admin/src/components/UserChoose/index.vue deleted file mode 100644 index 17ff8f7..0000000 --- a/dict/admin/src/components/UserChoose/index.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - diff --git a/dict/admin/src/components/UserChoose/types/index.ts b/dict/admin/src/components/UserChoose/types/index.ts deleted file mode 100644 index 27e3a37..0000000 --- a/dict/admin/src/components/UserChoose/types/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * 搜索表单类型 - */ -export interface WhereType { - keywords?: string; - nickname?: string; - userId?: number; - phone?: string; -} diff --git a/dict/admin/src/components/UserSelect/index.vue b/dict/admin/src/components/UserSelect/index.vue deleted file mode 100644 index 7acbe43..0000000 --- a/dict/admin/src/components/UserSelect/index.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - diff --git a/dict/admin/src/components/UserSelect/types/index.ts b/dict/admin/src/components/UserSelect/types/index.ts deleted file mode 100644 index 27e3a37..0000000 --- a/dict/admin/src/components/UserSelect/types/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * 搜索表单类型 - */ -export interface WhereType { - keywords?: string; - nickname?: string; - userId?: number; - phone?: string; -} diff --git a/dict/admin/src/components/UserSelect/user-search.vue b/dict/admin/src/components/UserSelect/user-search.vue deleted file mode 100644 index 6d8b298..0000000 --- a/dict/admin/src/components/UserSelect/user-search.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/dict/admin/src/composables/useSiteData.ts b/dict/admin/src/composables/useSiteData.ts deleted file mode 100644 index 62e29db..0000000 --- a/dict/admin/src/composables/useSiteData.ts +++ /dev/null @@ -1,101 +0,0 @@ -/** - * 网站数据组合式函数 - * 提供统一的网站信息和统计数据访问接口 - */ -import { computed } from 'vue'; -import { useSiteStore } from '@/store/modules/site'; -import { useStatisticsStore } from '@/store/modules/statistics'; - -export function useSiteData() { - const siteStore = useSiteStore(); - const statisticsStore = useStatisticsStore(); - - // 网站信息相关 - const siteInfo = computed(() => siteStore.siteInfo); - const websiteName = computed(() => siteStore.appName); - const websiteLogo = computed(() => siteStore.logo); - const websiteComments = computed(() => siteStore.description); - const websiteDarkLogo = computed(() => siteStore.logo); - const websiteDomain = computed(() => siteStore.domain); - const websiteId = computed(() => siteStore.appId); - const runDays = computed(() => siteStore.runDays); - const siteLoading = computed(() => siteStore.loading); - - // 统计数据相关 - const statistics = computed(() => statisticsStore.statistics); - const userCount = computed(() => statisticsStore.userCount); - const orderCount = computed(() => statisticsStore.orderCount); - const totalSales = computed(() => statisticsStore.totalSales); - const todaySales = computed(() => statisticsStore.todaySales); - const monthSales = computed(() => statisticsStore.monthSales); - const todayOrders = computed(() => statisticsStore.todayOrders); - const todayUsers = computed(() => statisticsStore.todayUsers); - const statisticsLoading = computed(() => statisticsStore.loading); - - // 整体加载状态 - const loading = computed(() => siteLoading.value || statisticsLoading.value); - - // 方法 - const fetchSiteInfo = (forceRefresh = false) => { - return siteStore.fetchSiteInfo(forceRefresh); - }; - - const fetchStatistics = (forceRefresh = false) => { - return statisticsStore.fetchStatistics(forceRefresh); - }; - - const refreshAll = async (forceRefresh = true) => { - await Promise.all([ - fetchSiteInfo(forceRefresh), - fetchStatistics(forceRefresh) - ]); - }; - - const startAutoRefresh = (interval?: number) => { - statisticsStore.startAutoRefresh(interval); - }; - - const stopAutoRefresh = () => { - statisticsStore.stopAutoRefresh(); - }; - - const clearCache = () => { - siteStore.clearCache(); - statisticsStore.clearCache(); - }; - - return { - // 网站信息 - siteInfo, - websiteName, - websiteLogo, - websiteComments, - websiteDarkLogo, - websiteDomain, - websiteId, - runDays, - siteLoading, - - // 统计数据 - statistics, - userCount, - orderCount, - totalSales, - todaySales, - monthSales, - todayOrders, - todayUsers, - statisticsLoading, - - // 状态 - loading, - - // 方法 - fetchSiteInfo, - fetchStatistics, - refreshAll, - startAutoRefresh, - stopAutoRefresh, - clearCache - }; -} diff --git a/dict/admin/src/config/menu.ts b/dict/admin/src/config/menu.ts deleted file mode 100644 index 7053780..0000000 --- a/dict/admin/src/config/menu.ts +++ /dev/null @@ -1,117 +0,0 @@ -export default [ - { - path: '/assets/server', - component: '/assets/server', - meta: { title: '服务器管理', icon: 'AuditOutlined' } - }, - { - path: '/project', - component: '/project', - meta: { title: '项目管理', icon: 'CodeOutlined' } - }, - { - path: '/customer', - component: '/customer', - meta: { title: '客户管理', icon: 'CrownOutlined' } - }, - { - path: '/content/article', - component: '/content/article', - meta: { title: '文章管理', icon: 'FileSearchOutlined' } - }, - { - path: '/content/docs/:id', - component: '/content/docs', - meta: { title: '文档管理', icon: 'ReadOutlined' } - }, - { - path: '/task/index', - component: '/task/index', - meta: { title: '任务管理', icon: 'HistoryOutlined' } - }, - { - path: '/appstore', - component: '/appstore', - meta: { title: '应用管理', icon: 'AppstoreOutlined' } - }, - { - path: '/system', - redirect: '/system/user', - meta: { title: '系统管理', icon: 'SettingOutlined' }, - children: [ - { - path: '/system/user', - component: '/system/user' - }, - { - path: '/system/role', - component: '/system/role', - meta: { title: '角色管理', icon: 'IdcardOutlined' } - }, - { - path: '/system/menu', - component: '/system/menu', - meta: { title: '菜单管理', icon: 'AppstoreOutlined' } - }, - { - path: '/system/dictionary', - component: '/system/dictionary', - meta: { title: '字典管理', icon: 'ProfileOutlined' } - }, - { - path: '/system/organization', - component: '/system/organization' - }, - { - path: '/system/file', - component: '/system/file', - meta: { title: '文件管理', icon: 'FolderOutlined' } - }, - { - path: '/system/login-record', - component: '/system/login-record', - meta: { title: '登录日志', icon: 'CalendarOutlined' } - }, - { - path: '/system/operation-record', - component: '/system/operation-record', - meta: { title: '操作日志', icon: 'FileSearchOutlined' } - }, - { - path: '/system/tenant', - component: '/system/tenant', - meta: { title: '租户管理', icon: 'TeamOutlined' } - }, - { - path: '/system/setting', - component: '/system/setting', - meta: { title: '系统设置', icon: 'SettingOutlined' } - } - ] - }, - // 账号中心 - { - path: '/user', - hide: true, - redirect: '/user/profile', - meta: { title: '账号中心' }, - children: [ - { - path: '/user/profile', - component: '/user/profile', - meta: { title: '账号中心', hide: false } - }, - { - path: '/user/message', - component: '/user/message', - meta: { title: '我的消息', hide: false } - } - ] - }, - { - path: '/register', - hide: true, - component: '/passport/register/index.vue', - meta: { title: '免费注册' } - } -]; diff --git a/dict/admin/src/config/performance.ts b/dict/admin/src/config/performance.ts deleted file mode 100644 index 14b0085..0000000 --- a/dict/admin/src/config/performance.ts +++ /dev/null @@ -1,396 +0,0 @@ -/** - * 性能优化配置 - */ - -// 性能配置接口 -export interface PerformanceConfig { - // 缓存配置 - cache: { - memory: { - maxSize: number; - defaultExpiry: number; - }; - persistent: { - maxSize: number; - defaultExpiry: number; - }; - }; - - // 懒加载配置 - lazyLoad: { - delay: number; - timeout: number; - retries: number; - retryDelay: number; - }; - - // 虚拟滚动配置 - virtualScroll: { - itemHeight: number; - buffer: number; - threshold: number; - }; - - // API 请求配置 - api: { - timeout: number; - retries: number; - retryDelay: number; - concurrency: number; - }; - - // 路由配置 - router: { - preloadDelay: number; - cacheSize: number; - performanceThreshold: number; - }; - - // 监控配置 - monitoring: { - enabled: boolean; - sampleRate: number; - reportInterval: number; - }; -} - -// 默认性能配置 -export const defaultPerformanceConfig: PerformanceConfig = { - cache: { - memory: { - maxSize: 200, - defaultExpiry: 5 * 60 * 1000 // 5分钟 - }, - persistent: { - maxSize: 100, - defaultExpiry: 24 * 60 * 60 * 1000 // 24小时 - } - }, - - lazyLoad: { - delay: 200, - timeout: 30000, - retries: 3, - retryDelay: 1000 - }, - - virtualScroll: { - itemHeight: 50, - buffer: 5, - threshold: 100 - }, - - api: { - timeout: 30000, - retries: 3, - retryDelay: 1000, - concurrency: 5 - }, - - router: { - preloadDelay: 2000, - cacheSize: 20, - performanceThreshold: 1000 - }, - - monitoring: { - enabled: process.env.NODE_ENV === 'production', - sampleRate: 0.1, // 10% 采样率 - reportInterval: 60000 // 1分钟上报一次 - } -}; - -// 性能优化管理器 -export class PerformanceManager { - private config: PerformanceConfig; - private reportTimer: number | null = null; - - constructor(config: Partial = {}) { - this.config = { ...defaultPerformanceConfig, ...config }; - this.init(); - } - - private init() { - // 初始化性能监控 - if (this.config.monitoring.enabled) { - this.startMonitoring(); - } - - // 设置全局错误处理 - this.setupErrorHandling(); - - // 优化控制台输出 - this.optimizeConsole(); - } - - // 开始性能监控 - private startMonitoring() { - this.reportTimer = window.setInterval(() => { - this.reportPerformance(); - }, this.config.monitoring.reportInterval); - } - - // 上报性能数据 - private reportPerformance() { - if (Math.random() > this.config.monitoring.sampleRate) { - return; // 采样控制 - } - - try { - const performanceData = this.collectPerformanceData(); - - // 这里可以发送到监控服务 - console.log('Performance Report:', performanceData); - - // 可以发送到后端 - // this.sendToBackend(performanceData); - } catch (error) { - console.warn('Failed to report performance:', error); - } - } - - // 收集性能数据 - private collectPerformanceData() { - const navigation = performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming; - const memory = (performance as any).memory; - - return { - // 页面加载性能 - pageLoad: { - domContentLoaded: navigation?.domContentLoadedEventEnd - navigation?.fetchStart, - loadComplete: navigation?.loadEventEnd - navigation?.fetchStart, - firstByte: navigation?.responseStart - navigation?.fetchStart - }, - - // 内存使用 - memory: memory ? { - used: Math.round(memory.usedJSHeapSize / 1024 / 1024), - total: Math.round(memory.totalJSHeapSize / 1024 / 1024), - limit: Math.round(memory.jsHeapSizeLimit / 1024 / 1024) - } : null, - - // 资源加载 - resources: this.getResourceMetrics(), - - // 时间戳 - timestamp: Date.now() - }; - } - - // 获取资源指标 - private getResourceMetrics() { - const resources = performance.getEntriesByType('resource'); - const metrics = { - total: resources.length, - slow: 0, - failed: 0, - avgDuration: 0 - }; - - let totalDuration = 0; - - resources.forEach(resource => { - const duration = resource.duration; - totalDuration += duration; - - if (duration > 2000) { - metrics.slow++; - } - }); - - metrics.avgDuration = Math.round(totalDuration / resources.length); - - return metrics; - } - - // 设置错误处理 - private setupErrorHandling() { - // 全局错误处理 - window.addEventListener('error', (event) => { - this.handleError('JavaScript Error', event.error); - }); - - // Promise 错误处理 - window.addEventListener('unhandledrejection', (event) => { - this.handleError('Unhandled Promise Rejection', event.reason); - }); - - // Vue 错误处理 - if (window.Vue) { - window.Vue.config.errorHandler = (error, instance, info) => { - this.handleError('Vue Error', { error, instance, info }); - }; - } - } - - // 处理错误 - private handleError(type: string, error: any) { - console.error(`${type}:`, error); - - // 可以发送错误到监控服务 - // this.reportError(type, error); - } - - // 优化控制台输出 - private optimizeConsole() { - if (process.env.NODE_ENV === 'production') { - // 生产环境禁用 console.log - console.log = () => {}; - console.debug = () => {}; - console.info = () => {}; - } - } - - // 获取配置 - getConfig(): PerformanceConfig { - return this.config; - } - - // 更新配置 - updateConfig(newConfig: Partial) { - this.config = { ...this.config, ...newConfig }; - } - - // 清理资源 - destroy() { - if (this.reportTimer) { - clearInterval(this.reportTimer); - } - } -} - -// 性能优化建议 -export class PerformanceAdvisor { - // 分析性能并给出建议 - static analyzeAndAdvise() { - const advice: string[] = []; - - // 检查内存使用 - const memory = (performance as any).memory; - if (memory && memory.usedJSHeapSize > memory.jsHeapSizeLimit * 0.8) { - advice.push('内存使用过高,建议清理不必要的缓存和引用'); - } - - // 检查资源加载 - const resources = performance.getEntriesByType('resource'); - const slowResources = resources.filter(r => r.duration > 2000); - if (slowResources.length > 0) { - advice.push(`发现 ${slowResources.length} 个加载缓慢的资源,建议优化`); - } - - // 检查页面加载时间 - const navigation = performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming; - if (navigation) { - const loadTime = navigation.loadEventEnd - navigation.fetchStart; - if (loadTime > 3000) { - advice.push('页面加载时间过长,建议优化首屏渲染'); - } - } - - return advice; - } - - // 获取优化建议 - static getOptimizationTips() { - return [ - '使用虚拟滚动处理长列表', - '启用组件懒加载', - '合理使用缓存策略', - '优化图片资源大小', - '减少不必要的重新渲染', - '使用 Web Workers 处理复杂计算', - '启用 HTTP/2 和资源压缩', - '使用 CDN 加速静态资源' - ]; - } -} - -// 全局性能管理器实例 -export const performanceManager = new PerformanceManager(); - -// 性能装饰器 -export function performanceTrack(name: string) { - return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { - const originalMethod = descriptor.value; - - descriptor.value = function (...args: any[]) { - const startTime = performance.now(); - - try { - const result = originalMethod.apply(this, args); - - // 如果是 Promise,等待完成后记录 - if (result && typeof result.then === 'function') { - return result.finally(() => { - const duration = performance.now() - startTime; - console.log(`${name} 执行时间: ${duration.toFixed(2)}ms`); - }); - } - - const duration = performance.now() - startTime; - console.log(`${name} 执行时间: ${duration.toFixed(2)}ms`); - - return result; - } catch (error) { - const duration = performance.now() - startTime; - console.log(`${name} 执行时间: ${duration.toFixed(2)}ms (出错)`); - throw error; - } - }; - - return descriptor; - }; -} - -// 性能检查工具 -export class PerformanceChecker { - // 检查长任务 - static checkLongTasks() { - if ('PerformanceObserver' in window) { - const observer = new PerformanceObserver((list) => { - list.getEntries().forEach((entry) => { - console.warn(`长任务检测: ${entry.duration.toFixed(2)}ms`, entry); - }); - }); - - observer.observe({ entryTypes: ['longtask'] }); - } - } - - // 检查布局抖动 - static checkLayoutShift() { - if ('PerformanceObserver' in window) { - const observer = new PerformanceObserver((list) => { - let clsValue = 0; - - list.getEntries().forEach((entry) => { - if (!(entry as any).hadRecentInput) { - clsValue += (entry as any).value; - } - }); - - if (clsValue > 0.1) { - console.warn(`布局抖动过大: ${clsValue.toFixed(3)}`); - } - }); - - observer.observe({ entryTypes: ['layout-shift'] }); - } - } - - // 检查首次输入延迟 - static checkFirstInputDelay() { - if ('PerformanceObserver' in window) { - const observer = new PerformanceObserver((list) => { - list.getEntries().forEach((entry) => { - const fid = (entry as any).processingStart - entry.startTime; - if (fid > 100) { - console.warn(`首次输入延迟过大: ${fid.toFixed(2)}ms`); - } - }); - }); - - observer.observe({ entryTypes: ['first-input'] }); - } - } -} diff --git a/dict/admin/src/config/setting.ts b/dict/admin/src/config/setting.ts deleted file mode 100644 index 98870d8..0000000 --- a/dict/admin/src/config/setting.ts +++ /dev/null @@ -1,78 +0,0 @@ -// 租户ID -export const TENANT_ID = import.meta.env.VITE_TENANT_ID || 10258; -// 模板ID -export const TEMPLATE_ID = import.meta.env.VITE_TEMPLATE_ID || 10258; -// appSecret -export const APP_SECRET = import.meta.env.VITE_APP_SECRET || ''; -// 开发商官方网站 -export const domain = import.meta.env.VITE_DOMAIN || 'https://your-domain.com'; -// 主节点 -export const SERVER_API_URL = import.meta.env.VITE_SERVER_API_URL || 'https://your-api.com/api'; -// 模块节点 -export const MODULES_API_URL = import.meta.env.VITE_API_URL; -// 文件服务器地址 -export const FILE_SERVER = import.meta.env.VITE_FILE_SERVER || 'https://your-file-server.com'; - -/** - * 以下配置一般不需要修改 - */ -// 接口地址 -export const API_BASE_URL: string = import.meta.env.VITE_API_URL; -export const PROJECT_NAME: string = import.meta.env.VITE_APP_NAME; -// 不显示侧栏的路由 -export const HIDE_SIDEBARS: string[] = ['/home']; -// 不显示页脚的路由 -export const HIDE_FOOTERS: string[] = [ - '/system/dictionary', - '/system/organization', - '/form/advanced' -]; -// 页签同路由不同参数可重复打开的路由 -export const REPEATABLE_TABS: string[] = []; -// 不需要登录的路由 -export const WHITE_LIST: string[] = [ - '/login', - '/register', - '/dealer/register', - '/forget', - '/wx-work-login', - '/token-login', - '/home', - '/bszx/pay-cert/:id' -]; -// 开启 KeepAlive 后仍然不需要缓存的路由地址 -export const KEEP_ALIVE_EXCLUDES: string[] = []; -// 直接指定菜单数据 -// export const USER_MENUS = menu; -export const USER_MENUS: Array | undefined = undefined; -// 首页名称, 为空则取第一个菜单的名称 -export const HOME_TITLE: string | undefined = undefined; -// 首页路径, 为空则取第一个菜单的地址 -export const HOME_PATH: string | undefined = undefined; -// 外层布局的路由地址 -export const LAYOUT_PATH = '/'; -// 刷新路由的路由地址 -export const REDIRECT_PATH = '/redirect'; -// 开启页签栏是否缓存组件 -//export const TAB_KEEP_ALIVE = !import.meta.env.DEV; -export const TAB_KEEP_ALIVE = true; -// token 传递的 header 名称 -export const TOKEN_HEADER_NAME = 'Authorization'; -// token 存储的名称 -export const TOKEN_STORE_NAME = 'access_token'; -// 主题配置存储的名称 -export const THEME_STORE_NAME = 'theme'; -// i18n 缓存的名称 -export const I18N_CACHE_NAME = 'i18n-lang'; -// 是否开启国际化功能 -export const I18N_ENABLE = true; -// 高德地图 key , 自带的只能用于测试, 正式项目请自行到高德地图官网申请 key -export const MAP_KEY = import.meta.env.VITE_MAP_KEY || ''; -// 高德地图 安全密钥 -export const MAP_CODE = import.meta.env.VITE_MAP_CODE || ''; -// WebSoftAdmin 授权码, 自带的只能用于演示, 正式项目请更换为自己的授权码 -export const LICENSE_CODE = import.meta.env.VITE_LICENSE_CODE || ''; -// 缩略图前缀 -export const FILE_THUMBNAIL = FILE_SERVER + '/thumbnail'; -// 文件下载前缀 -export const FILE_DOWNLOAD = FILE_SERVER + '/download'; diff --git a/dict/admin/src/i18n/index.ts b/dict/admin/src/i18n/index.ts deleted file mode 100644 index 942e33f..0000000 --- a/dict/admin/src/i18n/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 国际化配置 - */ -import { createI18n } from 'vue-i18n'; -import { I18N_CACHE_NAME } from '@/config/setting'; -import zh_CN from './lang/zh_CN'; -// import zh_TW from './lang/zh_TW'; -import en from './lang/en'; - -const messages = { zh_CN, en }; - -const i18n = createI18n({ - messages, - legacy: false, - silentTranslationWarn: true, - // 默认语言 - locale: localStorage.getItem(I18N_CACHE_NAME) || 'zh_CN' -}); - -export default i18n; diff --git a/dict/admin/src/i18n/lang/en/index.ts b/dict/admin/src/i18n/lang/en/index.ts deleted file mode 100644 index 743cea1..0000000 --- a/dict/admin/src/i18n/lang/en/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 英语 - */ -import route from './route'; -import layout from './layout'; -import login from './login'; -import list from './list'; - -export default { - route, - layout, - login, - list -}; diff --git a/dict/admin/src/i18n/lang/en/layout.ts b/dict/admin/src/i18n/lang/en/layout.ts deleted file mode 100644 index 6296d82..0000000 --- a/dict/admin/src/i18n/lang/en/layout.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* 主框架 */ -export default { - system: 'WebsoftCMS', - home: 'Home', - header: { - profile: 'Profile', - password: 'Password', - accessKey: 'AccessKey', - system: 'Setting', - logout: 'SignOut' - }, - footer: { - website: 'Website', - document: 'Document', - authorization: 'Authorization', - copyright: 'Copyright © 2021 WebSoft Inc.' - }, - logout: { - title: 'Confirm', - message: 'Are you sure you want to log out?' - }, - setting: { - title: 'Theme Setting', - sideStyles: { - dark: 'Dark Sidebar', - light: 'Light Sidebar' - }, - headStyles: { - light: 'Light Header', - dark: 'Dark Header', - primary: 'Primary Header' - }, - layoutStyles: { - side: 'Side Menu Layout', - top: 'Top Menu Layout', - mix: 'Mix Menu Layout' - }, - colors: { - default: 'Daybreak Blue', - dust: 'Dust Blue', - sunset: 'Sunset Orange', - volcano: 'Volcano', - purple: 'Golden Purple', - cyan: 'Cyan', - green: 'Polar Green', - geekblue: 'Geek Blue' - }, - darkMode: 'Dark Mode', - layoutStyle: 'Navigation Mode', - sideMenuStyle: 'Sidebar Double Menu', - bodyFull: 'Body Fixed Width', - other: 'Other Setting', - fixedHeader: 'Fixed Header', - fixedSidebar: 'Fixed Sidebar', - fixedBody: 'Fixed Body', - logoAutoSize: 'Logo In Header', - styleResponsive: 'Responsive', - colorfulIcon: 'Colorful Icon', - sideUniqueOpen: 'Menu Unique Open', - weakMode: 'Weak Mode', - showFooter: 'Show Footer', - showTabs: 'Show Tabs', - tabStyle: 'Tab Style', - tabStyles: { - default: 'Default', - dot: 'Dot', - card: 'Card' - }, - transitionName: 'Transition', - transitions: { - slideRight: 'Slide Right', - slideBottom: 'Slide Bottom', - zoomIn: 'Zoom In', - zoomOut: 'Zoom Out', - fade: 'Fade' - }, - reset: 'Reset', - tips: 'It will remember your configuration the next time you open it.' - } -}; diff --git a/dict/admin/src/i18n/lang/en/list.ts b/dict/admin/src/i18n/lang/en/list.ts deleted file mode 100644 index f809452..0000000 --- a/dict/admin/src/i18n/lang/en/list.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* 列表页面 */ -export default { - // 基础列表 - basic: { - table: { - avatar: 'Avatar', - username: 'Username', - nickname: 'Nickname', - organizationName: 'Organization', - phone: 'Phone', - sexName: 'Sex', - createTime: 'CreateTime', - status: 'Status', - action: 'Action' - } - } -}; diff --git a/dict/admin/src/i18n/lang/en/login.ts b/dict/admin/src/i18n/lang/en/login.ts deleted file mode 100644 index 8008760..0000000 --- a/dict/admin/src/i18n/lang/en/login.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* 登录界面 */ -export default { - title: 'User Login', - username: 'please input username', - password: 'please input password', - code: 'please input code', - remember: 'remember', - forget: 'forget', - login: 'login', - loading: 'loading', - oldPassword: 'Old', - newPassword: 'New', - confirm: 'Confirm', -}; diff --git a/dict/admin/src/i18n/lang/en/route.ts b/dict/admin/src/i18n/lang/en/route.ts deleted file mode 100644 index 557559e..0000000 --- a/dict/admin/src/i18n/lang/en/route.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* 菜单路由 */ -export default { - login: { _name: 'Login' }, - forget: { _name: 'Forget' }, - dashboard: { - _name: 'Dashboard', - workplace: { _name: 'Workplace' }, - analysis: { _name: 'Analysis' }, - monitor: { _name: 'Monitor' } - }, - result: { - _name: 'Result', - success: { _name: 'Success' }, - fail: { _name: 'Fail' } - }, - exception: { - _name: 'Exception', - '403': { _name: '403' }, - '404': { _name: '404' }, - '500': { _name: '500' } - } -}; diff --git a/dict/admin/src/i18n/lang/zh_CN/index.ts b/dict/admin/src/i18n/lang/zh_CN/index.ts deleted file mode 100644 index 282e79e..0000000 --- a/dict/admin/src/i18n/lang/zh_CN/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 简体中文 - */ -import route from './route'; -import layout from './layout'; -import login from './login'; -import list from './list'; - -export default { - route, - layout, - login, - list -}; diff --git a/dict/admin/src/i18n/lang/zh_CN/layout.ts b/dict/admin/src/i18n/lang/zh_CN/layout.ts deleted file mode 100644 index 623c3bc..0000000 --- a/dict/admin/src/i18n/lang/zh_CN/layout.ts +++ /dev/null @@ -1,81 +0,0 @@ -const storeName = localStorage.getItem('StoreName') || 'WebSoft Inc'; -/* 主框架 */ -export default { - system: '小程序开发', - home: '主页', - header: { - profile: '个人资料', - password: '修改密码', - accessKey: '秘钥管理', - system: '系统设置', - logout: '退出登录' - }, - footer: { - website: '官网', - document: '文档', - authorization: '授权', - copyright: `© 2013-${new Date().getFullYear()} ${storeName}` - }, - logout: { - title: '提示', - message: '确定要退出登录吗?' - }, - setting: { - title: '整体风格设置', - sideStyles: { - dark: '暗色侧边栏', - light: '亮色侧边栏' - }, - headStyles: { - light: '亮色顶栏', - dark: '暗色顶栏', - primary: '主色顶栏' - }, - layoutStyles: { - side: '左侧菜单布局', - top: '顶部菜单布局', - mix: '混合菜单布局' - }, - colors: { - default: '拂晓蓝', - dust: '薄暮', - sunset: '日暮', - volcano: '火山', - purple: '酱紫', - cyan: '明青', - green: '极光绿', - geekblue: '极客蓝' - }, - darkMode: '开启暗黑模式', - layoutStyle: '导航模式', - sideMenuStyle: '侧栏双排菜单', - bodyFull: '内容区域定宽', - other: '其它配置', - fixedHeader: '固定顶栏区域', - fixedSidebar: '固定侧栏区域', - fixedBody: '固定主体区域', - logoAutoSize: 'Logo置于顶栏', - styleResponsive: '移动端响应式', - colorfulIcon: '侧栏彩色图标', - sideUniqueOpen: '侧栏排他展开', - weakMode: '开启色弱模式', - showFooter: '开启全局页脚', - showTabs: '开启多页签栏', - tabStyle: '页签显示风格', - tabStyles: { - default: '默认', - dot: '圆点', - card: '卡片' - }, - transitionName: '路由切换动画', - transitions: { - slideRight: '滑动消退', - slideBottom: '底部消退', - zoomIn: '放大渐变', - zoomOut: '缩小渐变', - fade: '淡入淡出' - }, - reset: '重置', - tips: '该功能可实时预览各种布局效果, 修改后会缓存在本地, 下次打开会记忆主题配置.' - } -}; diff --git a/dict/admin/src/i18n/lang/zh_CN/list.ts b/dict/admin/src/i18n/lang/zh_CN/list.ts deleted file mode 100644 index 3ac85d6..0000000 --- a/dict/admin/src/i18n/lang/zh_CN/list.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* 列表页面 */ -export default { - // 基础列表 - basic: { - table: { - avatar: '头像', - username: '账号', - nickname: '昵称', - organizationName: '成员与部门', - phone: '手机号', - sexName: '性别', - createTime: '创建时间', - status: '状态', - action: '操作' - } - } -}; diff --git a/dict/admin/src/i18n/lang/zh_CN/login.ts b/dict/admin/src/i18n/lang/zh_CN/login.ts deleted file mode 100644 index 1eab56f..0000000 --- a/dict/admin/src/i18n/lang/zh_CN/login.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* 登录界面 */ -export default { - title: '用户登录', - username: '请输入登录账号', - password: '请输入登录密码', - code: '请输入验证码', - remember: '记住密码', - forget: '忘记密码', - login: '登录', - loading: '登录中', - oldPassword: '旧密码', - newPassword: '新密码', - confirm: '确认密码', -}; diff --git a/dict/admin/src/i18n/lang/zh_CN/route.ts b/dict/admin/src/i18n/lang/zh_CN/route.ts deleted file mode 100644 index 92944ee..0000000 --- a/dict/admin/src/i18n/lang/zh_CN/route.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* 菜单路由 */ -export default { - login: { _name: '登录' }, - forget: { _name: '忘记密码' }, - result: { - _name: '结果页面', - success: { _name: '成功页' }, - fail: { _name: '失败页' } - }, - exception: { - _name: '异常页面', - '403': { _name: '403' }, - '404': { _name: '404' }, - '500': { _name: '500' } - } -}; diff --git a/dict/admin/src/i18n/use-locale.ts b/dict/admin/src/i18n/use-locale.ts deleted file mode 100644 index 010ee5c..0000000 --- a/dict/admin/src/i18n/use-locale.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * AntDesignVue、WebSoftAdmin、Dayjs 国际化配置 - */ -import { ref, watch } from 'vue'; -import { useI18n } from 'vue-i18n'; -import type { Locale } from 'ant-design-vue/es/locale-provider'; -import type { EleLocale } from 'ele-admin-pro/es'; -// AntDesignVue -import zh_CN from 'ant-design-vue/es/locale/zh_CN'; -import en from 'ant-design-vue/es/locale/en_US'; -// WebSoftAdmin -import eleZh_CN from 'ele-admin-pro/es/lang/zh_CN'; -import eleEn from 'ele-admin-pro/es/lang/en_US'; -// Dayjs -import dayjs from 'dayjs'; -import 'dayjs/locale/zh-cn'; -const antLocales = { zh_CN, en }; -const eleLocales = { zh_CN: eleZh_CN, en: eleEn }; - -export function useLocale() { - const { locale } = useI18n(); - const antLocale = ref(); - const eleLocale = ref(); - - watch( - locale, - () => { - antLocale.value = antLocales[locale.value]; - eleLocale.value = eleLocales[locale.value]; - dayjs.locale(locale.value.toLowerCase().replace(/_/g, '-')); - }, - { immediate: true } - ); - return { antLocale, eleLocale }; -} diff --git a/dict/admin/src/layout/components/header-notice.vue b/dict/admin/src/layout/components/header-notice.vue deleted file mode 100644 index 0b1031b..0000000 --- a/dict/admin/src/layout/components/header-notice.vue +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - diff --git a/dict/admin/src/layout/components/header-tools.vue b/dict/admin/src/layout/components/header-tools.vue deleted file mode 100644 index 2dfe6d5..0000000 --- a/dict/admin/src/layout/components/header-tools.vue +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - - diff --git a/dict/admin/src/layout/components/header-wechat.vue b/dict/admin/src/layout/components/header-wechat.vue deleted file mode 100644 index e804665..0000000 --- a/dict/admin/src/layout/components/header-wechat.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/dict/admin/src/layout/components/i18n-icon.vue b/dict/admin/src/layout/components/i18n-icon.vue deleted file mode 100644 index 32a360f..0000000 --- a/dict/admin/src/layout/components/i18n-icon.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - diff --git a/dict/admin/src/layout/components/menu-title.vue b/dict/admin/src/layout/components/menu-title.vue deleted file mode 100644 index 168a697..0000000 --- a/dict/admin/src/layout/components/menu-title.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/dict/admin/src/layout/components/page-footer.vue b/dict/admin/src/layout/components/page-footer.vue deleted file mode 100644 index fdbb48e..0000000 --- a/dict/admin/src/layout/components/page-footer.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/dict/admin/src/layout/components/password-modal.vue b/dict/admin/src/layout/components/password-modal.vue deleted file mode 100644 index 885118b..0000000 --- a/dict/admin/src/layout/components/password-modal.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - - diff --git a/dict/admin/src/layout/components/setting-drawer.vue b/dict/admin/src/layout/components/setting-drawer.vue deleted file mode 100644 index ea2a5f1..0000000 --- a/dict/admin/src/layout/components/setting-drawer.vue +++ /dev/null @@ -1,747 +0,0 @@ - - - - - - diff --git a/dict/admin/src/layout/index.vue b/dict/admin/src/layout/index.vue deleted file mode 100644 index 08a4cc7..0000000 --- a/dict/admin/src/layout/index.vue +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/layout/menu-icons.ts b/dict/admin/src/layout/menu-icons.ts deleted file mode 100644 index a33954b..0000000 --- a/dict/admin/src/layout/menu-icons.ts +++ /dev/null @@ -1,153 +0,0 @@ -/** 菜单用到的图标 */ -export { - HomeOutlined, - SettingOutlined, - TeamOutlined, - DesktopOutlined, - FileTextOutlined, - TableOutlined, - AppstoreOutlined, - CheckCircleOutlined, - ExclamationCircleOutlined, - UserOutlined, - TagOutlined, - IdcardOutlined, - BarChartOutlined, - AuditOutlined, - PicLeftOutlined, - BellOutlined, - CloseCircleOutlined, - QuestionCircleOutlined, - SoundOutlined, - ApartmentOutlined, - DashboardOutlined, - OneToOneOutlined, - DragOutlined, - InteractionOutlined, - BankOutlined, - BlockOutlined, - CheckSquareOutlined, - ProfileOutlined, - WarningOutlined, - FolderOutlined, - YoutubeOutlined, - ControlOutlined, - EllipsisOutlined, - CalendarOutlined, - AppstoreAddOutlined, - FileSearchOutlined, - EnvironmentOutlined, - CompassOutlined, - FontSizeOutlined, - SketchOutlined, - BgColorsOutlined, - PrinterOutlined, - QrcodeOutlined, - BarcodeOutlined, - PictureOutlined, - LinkOutlined, - AlertOutlined, - HistoryOutlined, - ChromeOutlined, - CodeOutlined, - AntDesignOutlined, - ReadOutlined, - CrownOutlined, - LaptopOutlined, - ShoppingCartOutlined, - SkinOutlined, - ShopOutlined, - ShoppingOutlined, - AliyunOutlined, - GiftOutlined, - InsuranceOutlined, - FileZipOutlined, - SearchOutlined, - RedEnvelopeOutlined, - MoneyCollectOutlined, - TagsOutlined, - PayCircleOutlined, - RocketOutlined, - BarsOutlined, - WalletOutlined, - UngroupOutlined, - ToolOutlined, - HourglassOutlined, - FormatPainterOutlined, - CarOutlined, - DownloadOutlined, - UploadOutlined, - MailOutlined, - CloudOutlined, - ClearOutlined, - CoffeeOutlined, - CopyrightOutlined, - CompressOutlined, - CalculatorOutlined, - AimOutlined, - AudioOutlined, - BugOutlined, - CloudSyncOutlined, - CommentOutlined, - DisconnectOutlined, - DingtalkOutlined, - ExpandOutlined, - DollarOutlined, - FolderOpenOutlined, - ExperimentOutlined, - ForkOutlined, - FolderAddOutlined, - FunnelPlotOutlined, - GlobalOutlined, - LikeOutlined, - LayoutOutlined, - MergeCellsOutlined, - MehOutlined, - MobileOutlined, - NodeExpandOutlined, - PaperClipOutlined, - ScanOutlined, - ShakeOutlined, - ThunderboltOutlined, - TrademarkOutlined, - UnlockOutlined, - UsbOutlined, - WhatsAppOutlined, - WomanOutlined, - WifiOutlined, - VerifiedOutlined, - UserSwitchOutlined, - UsergroupAddOutlined, - UsergroupDeleteOutlined, - UserAddOutlined, - UserDeleteOutlined, - TranslationOutlined, - TransactionOutlined, - TrophyOutlined, - StarOutlined, - SplitCellsOutlined, - ShareAltOutlined, - RestOutlined, - PartitionOutlined, - MedicineBoxOutlined, - HeartOutlined, - GatewayOutlined, - FlagOutlined, - FireOutlined, - FieldNumberOutlined, - FieldStringOutlined, - AppleOutlined, - AndroidOutlined, - GithubOutlined, - Html5Outlined, - QqOutlined, - AlipayOutlined, - RedditOutlined, - InstagramOutlined, - WechatOutlined, - BorderOutlined, - PieChartOutlined, - AreaChartOutlined, - KeyOutlined, - LockOutlined -} from '@ant-design/icons-vue'; diff --git a/dict/admin/src/lib/port-manager.ts b/dict/admin/src/lib/port-manager.ts deleted file mode 100644 index 43caf40..0000000 --- a/dict/admin/src/lib/port-manager.ts +++ /dev/null @@ -1,355 +0,0 @@ -/** - * 智能端口管理系统 - * 类似租户识别系统的端口管理解决方案 - */ - -import { getTenantId } from '@/utils/domain'; - -// 端口配置接口 -export interface PortConfig { - port: number; - host: string; - protocol: 'http' | 'https'; - environment: 'development' | 'test' | 'production'; - tenantId?: string | number; - projectName?: string; - lastUsed: number; - isAvailable: boolean; -} - -// 端口分配策略 -export interface PortStrategy { - basePort: number; - portRange: [number, number]; - tenantOffset: number; - environmentOffset: number; - maxRetries: number; -} - -// 端口缓存管理 -class PortCache { - private static readonly CACHE_KEY = 'port-manager-cache'; - private static readonly CACHE_EXPIRY = 24 * 60 * 60 * 1000; // 24小时 - - static get(): Map { - try { - const cached = localStorage.getItem(this.CACHE_KEY); - if (!cached) return new Map(); - - const data = JSON.parse(cached); - const now = Date.now(); - - // 清理过期缓存 - const validEntries = Object.entries(data).filter( - ([_, config]: [string, any]) => - now - config.lastUsed < this.CACHE_EXPIRY - ); - - return new Map(validEntries); - } catch (error) { - console.warn('端口缓存读取失败:', error); - return new Map(); - } - } - - static set(cache: Map): void { - try { - const data = Object.fromEntries(cache); - localStorage.setItem(this.CACHE_KEY, JSON.stringify(data)); - } catch (error) { - console.warn('端口缓存保存失败:', error); - } - } - - static clear(): void { - localStorage.removeItem(this.CACHE_KEY); - } - - static getStats(): { total: number; expired: number; active: number } { - const cache = this.get(); - const now = Date.now(); - let expired = 0; - let active = 0; - - cache.forEach(config => { - if (now - config.lastUsed > this.CACHE_EXPIRY) { - expired++; - } else { - active++; - } - }); - - return { total: cache.size, expired, active }; - } -} - -// 端口工具函数 -class PortUtils { - /** - * 检查端口是否可用 - */ - static async isPortAvailable(port: number, host: string = 'localhost'): Promise { - try { - // 在浏览器环境中,我们无法直接检测端口占用 - // 这里使用一个模拟的检测方法 - const response = await fetch(`http://${host}:${port}`, { - method: 'HEAD', - mode: 'no-cors', - signal: AbortSignal.timeout(1000) - }); - - // 如果能连接到端口,说明端口被占用 - return false; - } catch (error) { - // 连接失败,说明端口可用 - return true; - } - } - - /** - * 获取端口范围内的可用端口 - */ - static async findAvailablePort( - startPort: number, - endPort: number, - host: string = 'localhost' - ): Promise { - for (let port = startPort; port <= endPort; port++) { - if (await this.isPortAvailable(port, host)) { - return port; - } - } - return null; - } - - /** - * 生成端口键 - */ - static generatePortKey( - tenantId: string | number, - environment: string, - projectName?: string - ): string { - const parts = [tenantId, environment]; - if (projectName) parts.push(projectName); - return parts.join('-'); - } - - /** - * 计算租户端口偏移 - */ - static calculateTenantOffset(tenantId: string | number): number { - const id = typeof tenantId === 'string' ? parseInt(tenantId) || 0 : tenantId; - return (id % 1000) * 10; // 每个租户分配10个端口的空间 - } - - /** - * 计算环境端口偏移 - */ - static calculateEnvironmentOffset(environment: string): number { - const offsets = { - 'development': 0, - 'test': 1000, - 'production': 2000 - }; - return offsets[environment as keyof typeof offsets] || 0; - } -} - -// 智能端口管理器 -export class PortManager { - private cache: Map; - private strategy: PortStrategy; - private environment: string; - - constructor(strategy?: Partial) { - this.environment = process.env.NODE_ENV || 'development'; - this.cache = PortCache.get(); - - // 默认策略 - this.strategy = { - basePort: 3000, - portRange: [3000, 9999], - tenantOffset: 10, - environmentOffset: 1000, - maxRetries: 50, - ...strategy - }; - - console.log('🚀 端口管理器初始化完成', { - environment: this.environment, - strategy: this.strategy, - cacheSize: this.cache.size - }); - } - - /** - * 获取推荐端口(智能分配) - */ - async getRecommendedPort(options?: { - tenantId?: string | number; - projectName?: string; - preferredPort?: number; - }): Promise { - const tenantId = options?.tenantId || await getTenantId(); - const projectName = options?.projectName || 'mp-vue'; - const portKey = PortUtils.generatePortKey(tenantId, this.environment, projectName); - - // 1. 检查缓存中的端口 - const cachedPort = this.cache.get(portKey); - if (cachedPort && await PortUtils.isPortAvailable(cachedPort.port)) { - cachedPort.lastUsed = Date.now(); - this.updateCache(portKey, cachedPort); - console.log('📋 使用缓存端口:', cachedPort.port); - return cachedPort; - } - - // 2. 尝试首选端口 - if (options?.preferredPort) { - if (await PortUtils.isPortAvailable(options.preferredPort)) { - const config = this.createPortConfig(options.preferredPort, tenantId, projectName); - this.updateCache(portKey, config); - console.log('✨ 使用首选端口:', options.preferredPort); - return config; - } - } - - // 3. 智能分配端口 - const recommendedPort = await this.allocateSmartPort(tenantId, projectName); - const config = this.createPortConfig(recommendedPort, tenantId, projectName); - this.updateCache(portKey, config); - - console.log('🎯 智能分配端口:', recommendedPort); - return config; - } - - /** - * 智能端口分配算法 - */ - private async allocateSmartPort( - tenantId: string | number, - projectName: string - ): Promise { - const tenantOffset = PortUtils.calculateTenantOffset(tenantId); - const envOffset = PortUtils.calculateEnvironmentOffset(this.environment); - - // 计算推荐端口 - const recommendedPort = this.strategy.basePort + envOffset + tenantOffset; - - // 在推荐端口附近查找可用端口 - const searchRange = 20; // 在推荐端口前后20个端口范围内搜索 - const startPort = Math.max( - recommendedPort - searchRange, - this.strategy.portRange[0] - ); - const endPort = Math.min( - recommendedPort + searchRange, - this.strategy.portRange[1] - ); - - // 优先尝试推荐端口 - if (await PortUtils.isPortAvailable(recommendedPort)) { - return recommendedPort; - } - - // 在范围内查找可用端口 - const availablePort = await PortUtils.findAvailablePort(startPort, endPort); - if (availablePort) { - return availablePort; - } - - // 如果推荐范围内没有可用端口,扩大搜索范围 - const fallbackPort = await PortUtils.findAvailablePort( - this.strategy.portRange[0], - this.strategy.portRange[1] - ); - - if (fallbackPort) { - return fallbackPort; - } - - // 最后的备选方案 - throw new Error(`无法在端口范围 ${this.strategy.portRange[0]}-${this.strategy.portRange[1]} 内找到可用端口`); - } - - /** - * 创建端口配置 - */ - private createPortConfig( - port: number, - tenantId: string | number, - projectName: string - ): PortConfig { - return { - port, - host: 'localhost', - protocol: 'http', - environment: this.environment as any, - tenantId, - projectName, - lastUsed: Date.now(), - isAvailable: true - }; - } - - /** - * 更新缓存 - */ - private updateCache(key: string, config: PortConfig): void { - this.cache.set(key, config); - PortCache.set(this.cache); - } - - /** - * 获取端口使用统计 - */ - getPortStats(): { - cacheStats: ReturnType; - currentPorts: PortConfig[]; - strategy: PortStrategy; - } { - return { - cacheStats: PortCache.getStats(), - currentPorts: Array.from(this.cache.values()), - strategy: this.strategy - }; - } - - /** - * 清理过期端口缓存 - */ - cleanupExpiredPorts(): number { - const now = Date.now(); - const expiry = 24 * 60 * 60 * 1000; // 24小时 - let cleaned = 0; - - this.cache.forEach((config, key) => { - if (now - config.lastUsed > expiry) { - this.cache.delete(key); - cleaned++; - } - }); - - if (cleaned > 0) { - PortCache.set(this.cache); - console.log(`🧹 清理了 ${cleaned} 个过期端口缓存`); - } - - return cleaned; - } - - /** - * 重置端口缓存 - */ - resetCache(): void { - this.cache.clear(); - PortCache.clear(); - console.log('🔄 端口缓存已重置'); - } -} - -// 导出默认实例 -export const portManager = new PortManager(); - -// 导出工具函数 -export { PortUtils, PortCache }; diff --git a/dict/admin/src/lib/port-strategy.ts b/dict/admin/src/lib/port-strategy.ts deleted file mode 100644 index 4cc3da5..0000000 --- a/dict/admin/src/lib/port-strategy.ts +++ /dev/null @@ -1,415 +0,0 @@ -/** - * 环境端口策略配置 - * 类似租户识别系统的环境优先级策略 - */ - -import type { PortStrategy } from './port-manager'; - -// 环境类型 -export type Environment = 'development' | 'test' | 'staging' | 'production'; - -// 端口策略优先级 -export interface PortPriority { - environment: Environment; - priority: number; // 数字越小优先级越高 - description: string; -} - -// 环境端口策略配置 -export interface EnvironmentPortStrategy extends PortStrategy { - environment: Environment; - priority: number; - autoDetect: boolean; - fallbackStrategy?: EnvironmentPortStrategy; - restrictions: { - allowedHosts: string[]; - blockedPorts: number[]; - requireHttps: boolean; - }; -} - -// 端口分配模式 -export enum PortAllocationMode { - TENANT_BASED = 'tenant-based', // 基于租户分配 - SEQUENTIAL = 'sequential', // 顺序分配 - RANDOM = 'random', // 随机分配 - HASH_BASED = 'hash-based' // 基于哈希分配 -} - -// 环境检测器 -export class EnvironmentDetector { - /** - * 检测当前环境 - */ - static detectEnvironment(): Environment { - // 1. 检查环境变量 - const nodeEnv = process.env.NODE_ENV; - if (nodeEnv) { - switch (nodeEnv.toLowerCase()) { - case 'development': - case 'dev': - return 'development'; - case 'test': - case 'testing': - return 'test'; - case 'staging': - case 'stage': - return 'staging'; - case 'production': - case 'prod': - return 'production'; - } - } - - // 2. 检查域名 - const hostname = window.location.hostname; - if (hostname.includes('localhost') || hostname.includes('127.0.0.1')) { - return 'development'; - } - if (hostname.includes('test') || hostname.includes('staging')) { - return 'test'; - } - if (hostname.includes('prod') || hostname.includes('www')) { - return 'production'; - } - - // 3. 检查端口 - const port = window.location.port; - if (port && parseInt(port) < 4000) { - return 'development'; - } - - // 默认返回开发环境 - return 'development'; - } - - /** - * 获取环境建议 - */ - static getEnvironmentRecommendation(): { - detected: Environment; - confidence: number; - reasons: string[]; - suggestions: string[]; - } { - const reasons: string[] = []; - const suggestions: string[] = []; - let confidence = 0; - - const nodeEnv = process.env.NODE_ENV; - const hostname = window.location.hostname; - const port = window.location.port; - const protocol = window.location.protocol; - - // 分析环境变量 - if (nodeEnv) { - reasons.push(`NODE_ENV: ${nodeEnv}`); - confidence += 40; - } else { - suggestions.push('建议设置 NODE_ENV 环境变量'); - } - - // 分析域名 - if (hostname.includes('localhost')) { - reasons.push('域名包含 localhost'); - confidence += 30; - } else if (hostname.includes('test')) { - reasons.push('域名包含 test'); - confidence += 25; - } else if (hostname.includes('prod')) { - reasons.push('域名包含 prod'); - confidence += 35; - } - - // 分析协议 - if (protocol === 'https:') { - reasons.push('使用 HTTPS 协议'); - confidence += 10; - } else { - suggestions.push('生产环境建议使用 HTTPS'); - } - - // 分析端口 - if (port) { - const portNum = parseInt(port); - if (portNum >= 3000 && portNum < 4000) { - reasons.push('使用开发端口范围'); - confidence += 15; - } - } - - return { - detected: this.detectEnvironment(), - confidence: Math.min(confidence, 100), - reasons, - suggestions - }; - } -} - -// 端口策略管理器 -export class PortStrategyManager { - private strategies: Map; - private currentEnvironment: Environment; - - constructor() { - this.currentEnvironment = EnvironmentDetector.detectEnvironment(); - this.strategies = new Map(); - this.initializeDefaultStrategies(); - } - - /** - * 初始化默认策略 - */ - private initializeDefaultStrategies(): void { - // 开发环境策略 - this.strategies.set('development', { - environment: 'development', - priority: 1, - basePort: 3000, - portRange: [3000, 3999], - tenantOffset: 10, - environmentOffset: 0, - maxRetries: 50, - autoDetect: true, - restrictions: { - allowedHosts: ['localhost', '127.0.0.1', '0.0.0.0'], - blockedPorts: [], - requireHttps: false - } - }); - - // 测试环境策略 - this.strategies.set('test', { - environment: 'test', - priority: 2, - basePort: 4000, - portRange: [4000, 4999], - tenantOffset: 5, - environmentOffset: 1000, - maxRetries: 30, - autoDetect: true, - restrictions: { - allowedHosts: ['localhost', '127.0.0.1', 'test.local'], - blockedPorts: [4444, 4567], // 避免与其他测试工具冲突 - requireHttps: false - } - }); - - // 预发布环境策略 - this.strategies.set('staging', { - environment: 'staging', - priority: 3, - basePort: 5000, - portRange: [5000, 5999], - tenantOffset: 3, - environmentOffset: 2000, - maxRetries: 20, - autoDetect: true, - restrictions: { - allowedHosts: ['staging.local', 'stage.example.com'], - blockedPorts: [], - requireHttps: true - } - }); - - // 生产环境策略 - this.strategies.set('production', { - environment: 'production', - priority: 4, - basePort: 8080, - portRange: [8080, 8999], - tenantOffset: 1, - environmentOffset: 5000, - maxRetries: 10, - autoDetect: false, // 生产环境不自动检测 - restrictions: { - allowedHosts: ['0.0.0.0'], // 生产环境通常绑定所有接口 - blockedPorts: [8080, 8443], // 避免与常用服务冲突 - requireHttps: true - } - }); - } - - /** - * 获取当前环境策略 - */ - getCurrentStrategy(): EnvironmentPortStrategy { - const strategy = this.strategies.get(this.currentEnvironment); - if (!strategy) { - console.warn(`未找到环境 ${this.currentEnvironment} 的策略,使用开发环境策略`); - return this.strategies.get('development')!; - } - return strategy; - } - - /** - * 获取指定环境策略 - */ - getStrategy(environment: Environment): EnvironmentPortStrategy | undefined { - return this.strategies.get(environment); - } - - /** - * 设置环境策略 - */ - setStrategy(environment: Environment, strategy: EnvironmentPortStrategy): void { - this.strategies.set(environment, strategy); - console.log(`✅ 已更新 ${environment} 环境的端口策略`); - } - - /** - * 获取推荐策略(基于环境优先级) - */ - getRecommendedStrategy(): { - primary: EnvironmentPortStrategy; - fallback: EnvironmentPortStrategy[]; - reasoning: string[]; - } { - const current = this.getCurrentStrategy(); - const reasoning: string[] = []; - const fallback: EnvironmentPortStrategy[] = []; - - reasoning.push(`当前环境: ${this.currentEnvironment}`); - reasoning.push(`优先级: ${current.priority}`); - - // 获取备选策略(按优先级排序) - const allStrategies = Array.from(this.strategies.values()) - .filter(s => s.environment !== this.currentEnvironment) - .sort((a, b) => a.priority - b.priority); - - fallback.push(...allStrategies); - - // 环境特定的推理 - switch (this.currentEnvironment) { - case 'development': - reasoning.push('开发环境优先考虑端口可用性和调试便利性'); - break; - case 'test': - reasoning.push('测试环境需要隔离性和可重复性'); - break; - case 'staging': - reasoning.push('预发布环境模拟生产环境配置'); - break; - case 'production': - reasoning.push('生产环境优先考虑安全性和稳定性'); - break; - } - - return { primary: current, fallback, reasoning }; - } - - /** - * 验证端口策略 - */ - validateStrategy(strategy: EnvironmentPortStrategy): { - isValid: boolean; - errors: string[]; - warnings: string[]; - } { - const errors: string[] = []; - const warnings: string[] = []; - - // 检查端口范围 - if (strategy.portRange[0] >= strategy.portRange[1]) { - errors.push('端口范围无效:起始端口必须小于结束端口'); - } - - if (strategy.portRange[0] < 1024 && strategy.environment === 'production') { - warnings.push('生产环境使用系统端口(<1024)可能需要管理员权限'); - } - - // 检查基础端口 - if (strategy.basePort < strategy.portRange[0] || strategy.basePort > strategy.portRange[1]) { - errors.push('基础端口不在允许的端口范围内'); - } - - // 检查租户偏移 - if (strategy.tenantOffset <= 0) { - warnings.push('租户偏移为0可能导致端口冲突'); - } - - // 检查环境特定规则 - if (strategy.environment === 'production' && !strategy.restrictions.requireHttps) { - warnings.push('生产环境建议启用 HTTPS'); - } - - if (strategy.environment === 'development' && strategy.restrictions.requireHttps) { - warnings.push('开发环境启用 HTTPS 可能增加配置复杂度'); - } - - return { - isValid: errors.length === 0, - errors, - warnings - }; - } - - /** - * 获取环境统计信息 - */ - getEnvironmentStats(): { - current: Environment; - available: Environment[]; - strategies: Array<{ - environment: Environment; - priority: number; - portRange: [number, number]; - isValid: boolean; - }>; - } { - const strategies = Array.from(this.strategies.entries()).map(([env, strategy]) => ({ - environment: env, - priority: strategy.priority, - portRange: strategy.portRange, - isValid: this.validateStrategy(strategy).isValid - })); - - return { - current: this.currentEnvironment, - available: Array.from(this.strategies.keys()), - strategies: strategies.sort((a, b) => a.priority - b.priority) - }; - } - - /** - * 切换环境 - */ - switchEnvironment(environment: Environment): boolean { - if (!this.strategies.has(environment)) { - console.error(`环境 ${environment} 不存在`); - return false; - } - - this.currentEnvironment = environment; - console.log(`🔄 已切换到 ${environment} 环境`); - return true; - } -} - -// 导出默认实例 -export const portStrategyManager = new PortStrategyManager(); - -// 导出环境优先级配置 -export const ENVIRONMENT_PRIORITIES: PortPriority[] = [ - { - environment: 'development', - priority: 1, - description: '开发环境 - 最高优先级,注重便利性' - }, - { - environment: 'test', - priority: 2, - description: '测试环境 - 高优先级,注重隔离性' - }, - { - environment: 'staging', - priority: 3, - description: '预发布环境 - 中等优先级,模拟生产' - }, - { - environment: 'production', - priority: 4, - description: '生产环境 - 最低优先级,注重安全性' - } -]; diff --git a/dict/admin/src/lib/tenant-port-manager.ts b/dict/admin/src/lib/tenant-port-manager.ts deleted file mode 100644 index dd3c93d..0000000 --- a/dict/admin/src/lib/tenant-port-manager.ts +++ /dev/null @@ -1,411 +0,0 @@ -/** - * 租户端口管理器 - * 集成租户识别系统和端口管理系统 - */ - -import { getTenantId } from '@/utils/domain'; -import { getTenantInfo } from '@/api/layout'; -import { PortManager, type PortConfig } from './port-manager'; -import { portStrategyManager, EnvironmentDetector } from './port-strategy'; -import type { Environment } from './port-strategy'; - -// 租户端口绑定配置 -export interface TenantPortBinding { - tenantId: string | number; - tenantCode: string; - environment: Environment; - assignedPort: number; - customDomain?: string; - isActive: boolean; - createdAt: number; - lastUsed: number; - metadata: { - projectName: string; - version: string; - description?: string; - }; -} - -// 端口分配结果 -export interface PortAllocationResult { - success: boolean; - port?: number; - binding?: TenantPortBinding; - error?: string; - fallbackPorts?: number[]; - recommendations?: string[]; -} - -// 租户端口缓存管理 -class TenantPortCache { - private static readonly CACHE_KEY = 'tenant-port-bindings'; - private static readonly CACHE_EXPIRY = 7 * 24 * 60 * 60 * 1000; // 7天 - - static get(): Map { - try { - const cached = localStorage.getItem(this.CACHE_KEY); - if (!cached) return new Map(); - - const data = JSON.parse(cached); - const now = Date.now(); - - // 清理过期缓存 - const validEntries = Object.entries(data).filter( - ([_, binding]: [string, any]) => - now - binding.lastUsed < this.CACHE_EXPIRY - ); - - return new Map(validEntries); - } catch (error) { - console.warn('租户端口缓存读取失败:', error); - return new Map(); - } - } - - static set(cache: Map): void { - try { - const data = Object.fromEntries(cache); - localStorage.setItem(this.CACHE_KEY, JSON.stringify(data)); - } catch (error) { - console.warn('租户端口缓存保存失败:', error); - } - } - - static clear(): void { - localStorage.removeItem(this.CACHE_KEY); - } - - static generateKey(tenantId: string | number, environment: Environment): string { - return `${tenantId}-${environment}`; - } -} - -// 租户端口管理器 -export class TenantPortManager { - private portManager: PortManager; - private bindings: Map; - private currentEnvironment: Environment; - - constructor() { - this.portManager = new PortManager(); - this.bindings = TenantPortCache.get(); - this.currentEnvironment = EnvironmentDetector.detectEnvironment(); - - console.log('🏢 租户端口管理器初始化完成', { - environment: this.currentEnvironment, - bindingsCount: this.bindings.size - }); - } - - /** - * 为租户分配端口(主要方法) - */ - async allocatePortForTenant(options?: { - tenantId?: string | number; - preferredPort?: number; - forceNew?: boolean; - }): Promise { - try { - // 1. 获取租户信息 - const tenantId = options?.tenantId || await getTenantId(); - const tenantInfo = await getTenantInfo(); - - if (!tenantId) { - return { - success: false, - error: '无法获取租户ID', - recommendations: ['请检查租户配置', '确保已正确设置租户识别'] - }; - } - - // 2. 检查现有绑定 - const bindingKey = TenantPortCache.generateKey(tenantId, this.currentEnvironment); - const existingBinding = this.bindings.get(bindingKey); - - if (existingBinding && !options?.forceNew) { - // 验证现有端口是否仍然可用 - if (await this.validatePortBinding(existingBinding)) { - existingBinding.lastUsed = Date.now(); - this.updateBinding(bindingKey, existingBinding); - - console.log('📋 使用现有租户端口绑定:', existingBinding.assignedPort); - return { - success: true, - port: existingBinding.assignedPort, - binding: existingBinding - }; - } else { - console.warn('⚠️ 现有端口绑定已失效,重新分配'); - this.bindings.delete(bindingKey); - } - } - - // 3. 分配新端口 - const portConfig = await this.portManager.getRecommendedPort({ - tenantId, - projectName: tenantInfo?.name || 'mp-vue', - preferredPort: options?.preferredPort - }); - - // 4. 创建租户端口绑定 - const binding = this.createTenantBinding(tenantId, tenantInfo, portConfig); - this.updateBinding(bindingKey, binding); - - console.log('🎯 为租户分配新端口:', { - tenantId, - port: binding.assignedPort, - environment: this.currentEnvironment - }); - - return { - success: true, - port: binding.assignedPort, - binding, - recommendations: this.generateRecommendations(binding) - }; - - } catch (error) { - console.error('❌ 租户端口分配失败:', error); - return { - success: false, - error: error instanceof Error ? error.message : '未知错误', - recommendations: ['检查网络连接', '验证租户配置', '尝试重新启动服务'] - }; - } - } - - /** - * 验证端口绑定是否有效 - */ - private async validatePortBinding(binding: TenantPortBinding): Promise { - try { - // 检查端口是否仍然可用 - const response = await fetch(`http://localhost:${binding.assignedPort}`, { - method: 'HEAD', - mode: 'no-cors', - signal: AbortSignal.timeout(2000) - }); - - // 如果能连接,说明端口被占用(可能是我们自己的服务) - return true; - } catch (error) { - // 连接失败,端口可能已释放 - return false; - } - } - - /** - * 创建租户端口绑定 - */ - private createTenantBinding( - tenantId: string | number, - tenantInfo: any, - portConfig: PortConfig - ): TenantPortBinding { - return { - tenantId, - tenantCode: tenantInfo?.code || String(tenantId), - environment: this.currentEnvironment, - assignedPort: portConfig.port, - customDomain: tenantInfo?.domain, - isActive: true, - createdAt: Date.now(), - lastUsed: Date.now(), - metadata: { - projectName: portConfig.projectName || 'mp-vue', - version: '1.0.0', - description: `${tenantInfo?.name || '租户'} - ${this.currentEnvironment}环境` - } - }; - } - - /** - * 更新绑定缓存 - */ - private updateBinding(key: string, binding: TenantPortBinding): void { - this.bindings.set(key, binding); - TenantPortCache.set(this.bindings); - } - - /** - * 生成建议 - */ - private generateRecommendations(binding: TenantPortBinding): string[] { - const recommendations: string[] = []; - const strategy = portStrategyManager.getCurrentStrategy(); - - // 环境特定建议 - switch (binding.environment) { - case 'development': - recommendations.push('开发环境:建议配置热重载和调试工具'); - recommendations.push(`访问地址:http://localhost:${binding.assignedPort}`); - break; - case 'test': - recommendations.push('测试环境:建议配置自动化测试和监控'); - break; - case 'production': - recommendations.push('生产环境:建议配置HTTPS和负载均衡'); - if (binding.customDomain) { - recommendations.push(`自定义域名:${binding.customDomain}`); - } - break; - } - - // 端口范围建议 - if (binding.assignedPort < strategy.portRange[0] || binding.assignedPort > strategy.portRange[1]) { - recommendations.push('⚠️ 分配的端口超出推荐范围,可能存在冲突风险'); - } - - return recommendations; - } - - /** - * 获取租户端口信息 - */ - async getTenantPortInfo(tenantId?: string | number): Promise<{ - current?: TenantPortBinding; - history: TenantPortBinding[]; - recommendations: string[]; - }> { - const targetTenantId = tenantId || await getTenantId(); - const history: TenantPortBinding[] = []; - let current: TenantPortBinding | undefined; - - // 查找当前和历史绑定 - this.bindings.forEach(binding => { - if (binding.tenantId === targetTenantId) { - if (binding.environment === this.currentEnvironment && binding.isActive) { - current = binding; - } - history.push(binding); - } - }); - - // 按时间排序 - history.sort((a, b) => b.lastUsed - a.lastUsed); - - const recommendations = current - ? this.generateRecommendations(current) - : ['当前环境暂无端口绑定,建议调用 allocatePortForTenant 分配端口']; - - return { current, history, recommendations }; - } - - /** - * 释放租户端口 - */ - async releaseTenantPort(tenantId?: string | number): Promise { - try { - const targetTenantId = tenantId || await getTenantId(); - const bindingKey = TenantPortCache.generateKey(targetTenantId, this.currentEnvironment); - - const binding = this.bindings.get(bindingKey); - if (binding) { - binding.isActive = false; - this.updateBinding(bindingKey, binding); - console.log(`🔓 已释放租户 ${targetTenantId} 的端口 ${binding.assignedPort}`); - return true; - } - - return false; - } catch (error) { - console.error('释放租户端口失败:', error); - return false; - } - } - - /** - * 获取所有租户端口统计 - */ - getAllTenantsPortStats(): { - totalBindings: number; - activeBindings: number; - environmentStats: Record; - portRangeUsage: { min: number; max: number; average: number }; - topTenants: Array<{ tenantId: string | number; bindingsCount: number }>; - } { - const stats = { - totalBindings: this.bindings.size, - activeBindings: 0, - environmentStats: {} as Record, - portRangeUsage: { min: Infinity, max: 0, average: 0 }, - topTenants: [] as Array<{ tenantId: string | number; bindingsCount: number }> - }; - - const tenantCounts = new Map(); - let portSum = 0; - - this.bindings.forEach(binding => { - // 活跃绑定统计 - if (binding.isActive) { - stats.activeBindings++; - } - - // 环境统计 - stats.environmentStats[binding.environment] = - (stats.environmentStats[binding.environment] || 0) + 1; - - // 端口范围统计 - stats.portRangeUsage.min = Math.min(stats.portRangeUsage.min, binding.assignedPort); - stats.portRangeUsage.max = Math.max(stats.portRangeUsage.max, binding.assignedPort); - portSum += binding.assignedPort; - - // 租户统计 - const count = tenantCounts.get(binding.tenantId) || 0; - tenantCounts.set(binding.tenantId, count + 1); - }); - - // 计算平均端口 - stats.portRangeUsage.average = stats.totalBindings > 0 - ? Math.round(portSum / stats.totalBindings) - : 0; - - // 修复无限大的情况 - if (stats.portRangeUsage.min === Infinity) { - stats.portRangeUsage.min = 0; - } - - // 排序租户使用量 - stats.topTenants = Array.from(tenantCounts.entries()) - .map(([tenantId, count]) => ({ tenantId, bindingsCount: count })) - .sort((a, b) => b.bindingsCount - a.bindingsCount) - .slice(0, 10); - - return stats; - } - - /** - * 清理过期绑定 - */ - cleanupExpiredBindings(): number { - const now = Date.now(); - const expiry = 7 * 24 * 60 * 60 * 1000; // 7天 - let cleaned = 0; - - this.bindings.forEach((binding, key) => { - if (now - binding.lastUsed > expiry) { - this.bindings.delete(key); - cleaned++; - } - }); - - if (cleaned > 0) { - TenantPortCache.set(this.bindings); - console.log(`🧹 清理了 ${cleaned} 个过期的租户端口绑定`); - } - - return cleaned; - } - - /** - * 重置所有绑定 - */ - resetAllBindings(): void { - this.bindings.clear(); - TenantPortCache.clear(); - console.log('🔄 所有租户端口绑定已重置'); - } -} - -// 导出默认实例 -export const tenantPortManager = new TenantPortManager(); diff --git a/dict/admin/src/main.ts b/dict/admin/src/main.ts deleted file mode 100644 index 876546c..0000000 --- a/dict/admin/src/main.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { createApp } from 'vue'; -import App from './App.vue'; -import store from './store'; -import router from './router'; -import permission from './utils/permission'; -import i18n from './i18n'; -import './styles/index.less'; - -const app = createApp(App); - -app.use(store); -app.use(router); -app.use(permission); -app.use(i18n); - -app.mount('#app'); diff --git a/dict/admin/src/router/index.ts b/dict/admin/src/router/index.ts deleted file mode 100644 index 23ff73a..0000000 --- a/dict/admin/src/router/index.ts +++ /dev/null @@ -1,86 +0,0 @@ -/** - * 路由配置 - */ -import NProgress from 'nprogress'; -import type { _RouteLocationBase } from 'vue-router'; -import { createRouter, createWebHistory } from 'vue-router'; -import { WHITE_LIST, REDIRECT_PATH, LAYOUT_PATH } from '@/config/setting'; -import { useUserStore } from '@/store/modules/user'; -import { getToken } from '@/utils/token-util'; -import { routes, getMenuRoutes } from './routes'; -// import { useTenantStore } from '@/store/modules/tenant'; - -NProgress.configure({ - speed: 200, - minimum: 0.02, - trickleSpeed: 200, - showSpinner: false -}); - -const router = createRouter({ - routes, - history: createWebHistory(), - scrollBehavior() { - return { top: 0 }; - } -}); - -// 标记动态路由是否已经注册 -let dynamicRoutesRegistered = false; - -// 重置动态路由注册状态的函数 -export function resetDynamicRoutes() { - dynamicRoutesRegistered = false; -} - -/** - * 路由守卫 - */ -router.beforeEach(async (to, from) => { - if (!from.path.includes(REDIRECT_PATH)) { - NProgress.start(); - } - // 租户信息 - // const tenantStore = useTenantStore(); - // await tenantStore.fetchTenantInfo(); - if (!getToken()) { - // 未登录跳转登录界面 - if (!WHITE_LIST.includes(to.path)) { - return { - path: '/login', - query: to.path === LAYOUT_PATH ? {} : { from: to.path } - }; - } - return; - } - - // 注册动态路由 - const userStore = useUserStore(); - if (!userStore.menus && !dynamicRoutesRegistered) { - const { menus, homePath } = await userStore.fetchUserInfo(); - if (menus) { - const menuRoute = getMenuRoutes(menus, homePath); - router.addRoute(menuRoute); - dynamicRoutesRegistered = true; - - // 只有当访问根路径时才跳转到首页 - if (to.path === LAYOUT_PATH) { - return { path: homePath || '/dashboard', replace: true }; - } - - // 对于其他路径,只有在路由确实不存在时才跳转 - // 这避免了已存在页面的不必要跳转 - return { ...to, replace: true }; - } - } -}); - -router.afterEach((to) => { - if (!to.path.includes(REDIRECT_PATH) && NProgress.isStarted()) { - setTimeout(() => { - NProgress.done(true); - }, 200); - } -}); - -export default router; diff --git a/dict/admin/src/router/performance.ts b/dict/admin/src/router/performance.ts deleted file mode 100644 index 37d7d43..0000000 --- a/dict/admin/src/router/performance.ts +++ /dev/null @@ -1,313 +0,0 @@ -/** - * 路由性能优化 - */ -import type { Router, RouteLocationNormalized } from 'vue-router'; -import { routePerformanceMonitor } from '@/utils/performance'; -import { componentPreloader } from '@/utils/lazy-load'; - -// 路由预加载配置 -const PRELOAD_ROUTES = [ - '/dashboard', - '/user/profile', - '/system/user', - '/system/role' -]; - -// 路由性能优化类 -export class RoutePerformanceOptimizer { - private router: Router; - private preloadTimer: number | null = null; - - constructor(router: Router) { - this.router = router; - this.setupOptimizations(); - } - - private setupOptimizations() { - // 路由性能监控 - this.setupPerformanceMonitoring(); - - // 路由预加载 - this.setupRoutePreloading(); - - // 路由缓存优化 - this.setupRouteCaching(); - } - - // 设置性能监控 - private setupPerformanceMonitoring() { - this.router.beforeEach((to, from) => { - routePerformanceMonitor.startRouteTimer(); - return true; - }); - - this.router.afterEach((to, from) => { - routePerformanceMonitor.endRouteTimer(to.path); - }); - } - - // 设置路由预加载 - private setupRoutePreloading() { - this.router.afterEach((to) => { - // 延迟预加载相关路由 - if (this.preloadTimer) { - clearTimeout(this.preloadTimer); - } - - this.preloadTimer = window.setTimeout(() => { - this.preloadRelatedRoutes(to); - }, 2000); // 2秒后开始预加载 - }); - } - - // 预加载相关路由 - private preloadRelatedRoutes(currentRoute: RouteLocationNormalized) { - const routesToPreload = this.getRelatedRoutes(currentRoute.path); - - routesToPreload.forEach(routePath => { - const route = this.router.resolve(routePath); - if (route.matched.length > 0) { - const component = route.matched[route.matched.length - 1].components?.default; - if (component && typeof component === 'function') { - componentPreloader.preload(routePath, component as () => Promise); - } - } - }); - } - - // 获取相关路由 - private getRelatedRoutes(currentPath: string): string[] { - const related: string[] = []; - - // 根据当前路径推断可能访问的路由 - if (currentPath === '/') { - related.push(...PRELOAD_ROUTES); - } else if (currentPath.startsWith('/system')) { - related.push('/system/user', '/system/role', '/system/menu'); - } else if (currentPath.startsWith('/cms')) { - related.push('/cms/dashboard', '/cms/setting'); - } else if (currentPath.startsWith('/bszx')) { - related.push('/bszx/dashboard', '/bszx/ranking'); - } - - return related.filter(path => path !== currentPath); - } - - // 设置路由缓存 - private setupRouteCaching() { - // 这里可以实现路由级别的缓存策略 - // 例如缓存路由组件、路由数据等 - } - - // 清理资源 - destroy() { - if (this.preloadTimer) { - clearTimeout(this.preloadTimer); - } - } -} - -// 路由懒加载优化 -export function optimizedLazyRoute(loader: () => Promise) { - return async () => { - // 检查是否已经预加载 - const preloaded = componentPreloader.get(loader.toString()); - if (preloaded) { - return preloaded; - } - - // 正常加载 - return loader(); - }; -} - -// 智能路由预取 -export class SmartRoutePrefetcher { - private router: Router; - private prefetchQueue: Set = new Set(); - private isIdle = true; - - constructor(router: Router) { - this.router = router; - this.setupIdleDetection(); - } - - // 设置空闲检测 - private setupIdleDetection() { - let idleTimer: number; - - const resetIdleTimer = () => { - this.isIdle = false; - clearTimeout(idleTimer); - idleTimer = window.setTimeout(() => { - this.isIdle = true; - this.processPrefetchQueue(); - }, 2000); - }; - - // 监听用户活动 - ['mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'].forEach(event => { - document.addEventListener(event, resetIdleTimer, true); - }); - - resetIdleTimer(); - } - - // 添加到预取队列 - addToPrefetchQueue(routePath: string) { - this.prefetchQueue.add(routePath); - - if (this.isIdle) { - this.processPrefetchQueue(); - } - } - - // 处理预取队列 - private async processPrefetchQueue() { - if (!this.isIdle || this.prefetchQueue.size === 0) { - return; - } - - const routePath = this.prefetchQueue.values().next().value; - this.prefetchQueue.delete(routePath); - - try { - const route = this.router.resolve(routePath); - if (route.matched.length > 0) { - const component = route.matched[route.matched.length - 1].components?.default; - if (component && typeof component === 'function') { - await componentPreloader.preload(routePath, component as () => Promise); - } - } - } catch (error) { - console.warn(`Failed to prefetch route ${routePath}:`, error); - } - - // 继续处理队列 - if (this.isIdle && this.prefetchQueue.size > 0) { - setTimeout(() => this.processPrefetchQueue(), 100); - } - } -} - -// 路由性能分析器 -export class RoutePerformanceAnalyzer { - private router: Router; - private performanceData: Map = new Map(); - - constructor(router: Router) { - this.router = router; - this.setupAnalysis(); - } - - private setupAnalysis() { - let startTime: number; - - this.router.beforeEach((to) => { - startTime = performance.now(); - return true; - }); - - this.router.afterEach((to) => { - const duration = performance.now() - startTime; - this.recordPerformance(to.path, duration); - }); - } - - private recordPerformance(path: string, duration: number) { - if (!this.performanceData.has(path)) { - this.performanceData.set(path, []); - } - - const data = this.performanceData.get(path)!; - data.push(duration); - - // 只保留最近10次记录 - if (data.length > 10) { - data.shift(); - } - } - - // 获取性能报告 - getPerformanceReport() { - const report: Record = {}; - - this.performanceData.forEach((durations, path) => { - const avg = durations.reduce((sum, d) => sum + d, 0) / durations.length; - const min = Math.min(...durations); - const max = Math.max(...durations); - - report[path] = { - average: Math.round(avg), - min: Math.round(min), - max: Math.round(max), - count: durations.length - }; - }); - - return report; - } - - // 获取慢路由 - getSlowRoutes(threshold: number = 1000) { - const slowRoutes: Array<{ path: string; avgTime: number }> = []; - - this.performanceData.forEach((durations, path) => { - const avg = durations.reduce((sum, d) => sum + d, 0) / durations.length; - if (avg > threshold) { - slowRoutes.push({ path, avgTime: Math.round(avg) }); - } - }); - - return slowRoutes.sort((a, b) => b.avgTime - a.avgTime); - } -} - -// 路由缓存管理器 -export class RouteCacheManager { - private cache = new Map(); - private maxSize: number; - - constructor(maxSize: number = 20) { - this.maxSize = maxSize; - } - - // 缓存路由数据 - set(key: string, data: any) { - if (this.cache.size >= this.maxSize) { - const firstKey = this.cache.keys().next().value; - this.cache.delete(firstKey); - } - - this.cache.set(key, { - data, - timestamp: Date.now() - }); - } - - // 获取缓存数据 - get(key: string, maxAge: number = 5 * 60 * 1000) { - const cached = this.cache.get(key); - - if (!cached) { - return null; - } - - if (Date.now() - cached.timestamp > maxAge) { - this.cache.delete(key); - return null; - } - - return cached.data; - } - - // 清除缓存 - clear() { - this.cache.clear(); - } - - // 删除特定缓存 - delete(key: string) { - return this.cache.delete(key); - } -} diff --git a/dict/admin/src/router/routes.ts b/dict/admin/src/router/routes.ts deleted file mode 100644 index eca468f..0000000 --- a/dict/admin/src/router/routes.ts +++ /dev/null @@ -1,118 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import type { MenuItemType } from 'ele-admin-pro/es'; -import { menuToRoutes, eachTreeData } from 'ele-admin-pro/es'; -import { HOME_PATH, LAYOUT_PATH, REDIRECT_PATH } from '@/config/setting'; -import EleLayout from '@/layout/index.vue'; -import RedirectLayout from '@/components/RedirectLayout'; -const modules = import.meta.glob('/src/views/**/index.vue'); - -/** - * 静态路由 - */ -export const routes = [ - { - path: '/login', - component: () => import('@/views/passport/login/index.vue'), - meta: { title: '登录' } - }, - { - path: '/token-login', - component: () => import('@/views/passport/loginToken/index.vue'), - meta: { title: 'token登录' } - }, - { - path: '/register', - component: () => import('@/views/passport/register/index.vue'), - meta: { title: '注册' } - }, - { - path: '/bszx/pay-cert/:id', - component: () => import('@/views/bszx/bszxPayCert/index.vue'), - meta: { title: '查看证书' } - }, - { - path: '/dealer/register', - component: () => import('@/views/passport/dealer/register.vue'), - meta: { title: '邀请注册' } - }, - { - path: '/qr-confirm', - component: () => import('@/views/passport/qrConfirm/index.vue'), - meta: { title: '扫码登录确认' } - }, - { - path: '/qr-demo', - component: () => import('@/components/QrLogin/demo.vue'), - meta: { title: '二维码登录演示' } - }, - // { - // path: '/forget', - // component: () => import('@/views/passport/forget/index.vue'), - // meta: { title: '忘记密码' } - // }, - // { - // path: '/wx-work-login', - // component: () => import('@/views/passport/wx-work/index.vue'), - // meta: { title: '企业微信登录' } - // }, - // { - // path: '/token-login', - // component: () => import('@/views/passport/token-login/index.vue'), - // meta: { title: '快捷登录' } - // }, - // { - // path: '/cms/category/:id', - // component: () => import('@/views/cms/category/preview/index.vue'), - // meta: { title: '文章列表' } - // }, - // { - // path: '/cms/article/:id', - // component: () => import('@/views/cms/article/preview/index.vue'), - // meta: { title: '文章详情' } - // }, - // 404 - { - path: '/:path(.*)*', - component: () => import('@/views/result/fail/index.vue') - } -]; - -/** - * 动态路由 - * @param menus 菜单数据 - * @param homePath 主页地址 - */ -export function getMenuRoutes(menus?: MenuItemType[], homePath?: string) { - const routes: RouteRecordRaw[] = [ - // 用于刷新的路由 - { - path: REDIRECT_PATH + '/:path(.*)', - component: RedirectLayout, - meta: { hideFooter: true } - } - ]; - // 路由铺平处理 - eachTreeData(menuToRoutes(menus, getComponent), (route) => { - routes.push(Object.assign({}, route, { children: void 0 })); - }); - return { - path: LAYOUT_PATH, - component: EleLayout, - redirect: HOME_PATH ?? homePath, - children: routes - }; -} - -/** - * 解析路由组件 - * @param component 组件名称 - */ -function getComponent(component?: string) { - if (component) { - const module = modules[`/src/views/${component}.vue`]; - if (!module) { - return modules[`/src/views/${component}/index.vue`]; - } - return module; - } -} diff --git a/dict/admin/src/shims-vue.d.ts b/dict/admin/src/shims-vue.d.ts deleted file mode 100644 index fe7917e..0000000 --- a/dict/admin/src/shims-vue.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare module '*.vue' { - import { DefineComponent } from 'vue'; - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types - const component: DefineComponent<{}, {}, any>; - export default component; -} diff --git a/dict/admin/src/store/index.ts b/dict/admin/src/store/index.ts deleted file mode 100644 index bf43b30..0000000 --- a/dict/admin/src/store/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * pinia - */ -import { createPinia } from 'pinia'; - -export default createPinia(); diff --git a/dict/admin/src/store/modules/bszx-statistics.ts b/dict/admin/src/store/modules/bszx-statistics.ts deleted file mode 100644 index 9cbc9c6..0000000 --- a/dict/admin/src/store/modules/bszx-statistics.ts +++ /dev/null @@ -1,141 +0,0 @@ -/** - * 百色中学统计数据 store - */ -import { defineStore } from 'pinia'; -import { bszxOrderTotal } from '@/api/bszx/bszxOrder'; -import { safeNumber } from '@/utils/type-guards'; - -export interface BszxStatisticsState { - // 总营业额 - totalPrice: number; - // 加载状态 - loading: boolean; - // 最后更新时间 - lastUpdateTime: number | null; - // 缓存有效期(毫秒)- 5分钟缓存 - cacheExpiry: number; - // 自动刷新定时器 - refreshTimer: number | null; -} - -export const useBszxStatisticsStore = defineStore({ - id: 'bszx-statistics', - state: (): BszxStatisticsState => ({ - totalPrice: 0, - loading: false, - lastUpdateTime: null, - // 默认缓存5分钟 - cacheExpiry: 5 * 60 * 1000, - refreshTimer: null - }), - - getters: { - /** - * 获取总营业额 - */ - bszxTotalPrice: (state): number => { - return safeNumber(state.totalPrice); - }, - - /** - * 检查缓存是否有效 - */ - isCacheValid: (state): boolean => { - if (!state.lastUpdateTime) return false; - const now = Date.now(); - return (now - state.lastUpdateTime) < state.cacheExpiry; - } - }, - - actions: { - /** - * 获取百色中学统计数据 - * @param forceRefresh 是否强制刷新 - */ - async fetchBszxStatistics(forceRefresh = false) { - // 如果缓存有效且不强制刷新,直接返回缓存数据 - if (!forceRefresh && this.isCacheValid && this.totalPrice > 0) { - return this.totalPrice; - } - - this.loading = true; - try { - const result = await bszxOrderTotal(); - - // 处理返回的数据 - bszxOrderTotal 返回 ShopOrder[] 数组 - let totalPrice = 0; - if (Array.isArray(result)) { - // 累加所有订单的金额 - result.forEach((order: any) => { - if (order.payPrice) { - totalPrice += safeNumber(order.payPrice); - } else if (order.totalPrice) { - totalPrice += safeNumber(order.totalPrice); - } - }); - } else if (typeof result === 'number') { - totalPrice = result; - } else if (typeof result === 'string') { - totalPrice = safeNumber(result); - } else if (result && typeof result === 'object' && 'totalPrice' in result) { - totalPrice = safeNumber((result as any).totalPrice); - } - - this.totalPrice = totalPrice; - this.lastUpdateTime = Date.now(); - - return totalPrice; - } catch (error) { - console.error('获取百色中学统计数据失败:', error); - // 发生错误时不重置现有数据,只记录错误 - throw error; - } finally { - this.loading = false; - } - }, - - /** - * 更新统计数据 - */ - updateStatistics(data: Partial) { - Object.assign(this, data); - this.lastUpdateTime = Date.now(); - }, - - /** - * 清除缓存 - */ - clearCache() { - this.totalPrice = 0; - this.lastUpdateTime = null; - }, - - /** - * 设置缓存有效期 - */ - setCacheExpiry(expiry: number) { - this.cacheExpiry = expiry; - }, - - /** - * 开始自动刷新 - * @param interval 刷新间隔(毫秒),默认5分钟 - */ - startAutoRefresh(interval = 5 * 60 * 1000) { - this.stopAutoRefresh(); - this.refreshTimer = window.setInterval(() => { - this.fetchBszxStatistics(true).catch(console.error); - }, interval); - }, - - /** - * 停止自动刷新 - */ - stopAutoRefresh() { - if (this.refreshTimer) { - clearInterval(this.refreshTimer); - this.refreshTimer = null; - } - } - } -}); diff --git a/dict/admin/src/store/modules/chat.ts b/dict/admin/src/store/modules/chat.ts deleted file mode 100644 index 612fbbc..0000000 --- a/dict/admin/src/store/modules/chat.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { defineStore } from 'pinia'; -import { io, Socket } from 'socket.io-client'; -import { getToken } from '@/utils/token-util'; -import { ChatConversation, ChatMessage } from '@/api/system/chat/model'; -import { - pageChatConversation, - updateChatConversation -} from '@/api/system/chat'; -import { emitter } from '@/utils/common'; - -const SOCKET_URL: string = 'wss://server.websoft.top'; - -interface ConnectionOptions { - token: string; - userId: number; - isAdmin: boolean; -} - -export interface ChatState { - socket: Socket | undefined; - conversations: ChatConversation[]; -} - -export const useChatStore = defineStore({ - id: 'chat', - state: (): ChatState => ({ - socket: undefined, - conversations: [] - }), - getters: { - unReadLetter(): number { - return this.conversations.reduce((count, item) => count + item.unRead, 0); - }, - unReadConversations(): ChatConversation[] { - return this.conversations - .filter((item) => item.unRead > 0) - .sort((a, b) => { - return ( - new Date(b.updateTime).getTime() - new Date(a.updateTime).getTime() - ); - }); - } - }, - actions: { - readConversation(id) { - const index = this.conversations.findIndex((item) => item.id === id); - if (index >= 0) { - updateChatConversation({ - id: this.conversations[index].id, - unRead: 0 - }); - this.conversations.splice(index, 1); - } - }, - async connectSocketIO(userId: number) { - console.log( - '---------------------------------connectSocketIO----------------------------------' - ); - const options: ConnectionOptions = { - token: getToken() || '', - userId: userId, - isAdmin: true - }; - - const socket: Socket = io(SOCKET_URL, { - query: options, - transports: ['websocket', 'polling'], - timeout: 5000 - }); - - socket.on('connect', () => { - this.socket = socket; - console.log( - '---------------------------------socket connect----------------------------------' - ); - // 获取聊天列表 - pageChatConversation({ - keywords: '', - status: 1, - page: 1, - limit: 100, - onlyFake: true - }).then((res) => { - if (res?.list) { - this.conversations = res.list; - } - }); - }); - console.log( - '---------------------------------socket----------------------------------', - socket - ); - console.log('收到socket消息>>>'); - // 收到新消息 - socket.on('message', (data: ChatMessage) => { - console.log('收到socket消息>>>'); - const index = this.conversations.findIndex( - (item) => - item.friendId === data.formUserId && item.userId === data.toUserId - ); - let content = ''; - if (data.type == 'image') { - content = '图片'; - } else if (data.type === 'card') { - content = '卡片'; - } else { - content = data.content; - } - if (index >= 0) { - this.conversations[index].unRead++; - this.conversations[index].content = content; - this.conversations[index].updateTime = Date.now(); - } else { - this.conversations.push({ - content: content, - friendInfo: data.formUserInfo, - userInfo: data.toUserInfo, - messages: [], - unRead: 1, - updateTime: Date.now(), - userId: data.toUserId, - friendId: data.formUserId - }); - } - - emitter.emit('message', data); - }); - - socket.on('connect_error', () => { - console.log('connect_error'); - }); - } - } -}); diff --git a/dict/admin/src/store/modules/params.ts b/dict/admin/src/store/modules/params.ts deleted file mode 100644 index 1e20ad1..0000000 --- a/dict/admin/src/store/modules/params.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * 接收传参 store - */ -import { defineStore } from 'pinia'; - -export interface ParamsState { - title: string | null; - comments: string | null; - back: string | null; - redirect: string | null | undefined; -} - -export const useParamsStore = defineStore({ - id: 'params', - state: (): ParamsState => ({ - // 标题 - title: '操作成功', - // 描述 - comments: '您的申请已提交', - // 当前页面路径 - back: null, - // 跳转的页面 - redirect: null - }), - getters: {}, - actions: { - setTitle(value: string) { - this.title = value; - }, - setComments(value: string) { - this.comments = value; - }, - setBack(value: string) { - this.back = value; - }, - setRedirect(value: string) { - this.redirect = value; - } - } -}); diff --git a/dict/admin/src/store/modules/setting.ts b/dict/admin/src/store/modules/setting.ts deleted file mode 100644 index 0b654a8..0000000 --- a/dict/admin/src/store/modules/setting.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * 网站设置 store - */ -import { defineStore } from 'pinia'; - -export interface ParamsState { - setting: any | null; -} - -export const useWebsiteSettingStore = defineStore({ - id: 'setting', - state: (): ParamsState => ({ - // 初始化时确保所有字段都已赋值 - setting: null, - }), - getters: {}, - actions: { - setSetting(value: any) { - this.setting = value; - }, - getSetting(value: any){ - return value; - } - }, -}); diff --git a/dict/admin/src/store/modules/site.ts b/dict/admin/src/store/modules/site.ts deleted file mode 100644 index 48dd0da..0000000 --- a/dict/admin/src/store/modules/site.ts +++ /dev/null @@ -1,172 +0,0 @@ -/** - * 应用信息 store - */ -import { defineStore } from 'pinia'; -import { getSiteInfo } from '@/api/layout'; -import {AppInfo, CmsWebsite} from '@/api/cms/cmsWebsite/model'; - -export interface SiteState { - // 应用信息 - siteInfo: AppInfo | null; - // 加载状态 - loading: boolean; - // 最后更新时间 - lastUpdateTime: number | null; - // 缓存有效期(毫秒) - cacheExpiry: number; -} - -export const useSiteStore = defineStore({ - id: 'site', - state: (): SiteState => ({ - siteInfo: null, - loading: false, - lastUpdateTime: null, - // 默认缓存30分钟 - cacheExpiry: 30 * 60 * 1000 - }), - - getters: { - /** - * 获取应用ID - */ - appId: (state): number | undefined => { - return state.siteInfo?.appId; - }, - /** - * 获取应用名称 - */ - appName: (state): string => { - return state.siteInfo?.appName || ''; - }, - - /** - * 获取应用Logo - */ - logo: (state): string => { - return state.siteInfo?.logo || '/logo.png'; - }, - - /** - * 获取应用描述 - */ - description: (state): string => { - return state.siteInfo?.description || ''; - }, - - /** - * 获取小程序码 - */ - mpQrCode: (state): string => { - return state.siteInfo?.mpQrCode || ''; - }, - - /** - * 获取应用域名 - */ - domain: (state): string => { - return state.siteInfo?.domain || ''; - }, - - /** - * 获取应用版本 - * @param state - */ - version: (state): string => { - if(state.siteInfo?.version == 10){ - return '基础版' - } - if(state.siteInfo?.version == 20){ - return '专业版' - } - if(state.siteInfo?.version == 30){ - return '企业版' - } - return ''; - }, - - statusText: (state): string => { - return state.siteInfo?.statusText || ''; - }, - - /** - * 计算系统运行天数 - */ - runDays: (state): number => { - if (!state.siteInfo?.createTime) return 0; - const createTime = new Date(state.siteInfo.createTime).getTime(); - const now = new Date().getTime(); - return Math.floor((now - createTime) / (24 * 60 * 60 * 1000)); - }, - - /** - * 检查缓存是否有效 - */ - isCacheValid: (state): boolean => { - if (!state.lastUpdateTime) return false; - const now = Date.now(); - return (now - state.lastUpdateTime) < state.cacheExpiry; - } - }, - - actions: { - /** - * 获取应用信息 - * @param forceRefresh 是否强制刷新 - */ - async fetchSiteInfo(forceRefresh = false) { - // 如果缓存有效且不强制刷新,直接返回缓存数据 - if (!forceRefresh && this.isCacheValid && this.siteInfo) { - return this.siteInfo; - } - - this.loading = true; - try { - const data = await getSiteInfo(); - this.siteInfo = data; - this.lastUpdateTime = Date.now(); - - // 更新localStorage中的相关信息 - if (data.websiteId) { - localStorage.setItem('WebsiteId', String(data.websiteId)); - } - if (data.domain) { - localStorage.setItem('Domain', data.domain); - localStorage.setItem('SiteUrl', `${data.prefix || 'https://'}${data.domain}`); - } - - return data; - } catch (error) { - console.error('获取应用信息失败:', error); - throw error; - } finally { - this.loading = false; - } - }, - - /** - * 更新应用信息 - */ - updateSiteInfo(siteInfo: Partial) { - if (this.siteInfo) { - this.siteInfo = { ...this.siteInfo, ...siteInfo }; - this.lastUpdateTime = Date.now(); - } - }, - - /** - * 清除缓存 - */ - clearCache() { - this.siteInfo = null; - this.lastUpdateTime = null; - }, - - /** - * 设置缓存有效期 - */ - setCacheExpiry(expiry: number) { - this.cacheExpiry = expiry; - } - } -}); diff --git a/dict/admin/src/store/modules/statistics.ts b/dict/admin/src/store/modules/statistics.ts deleted file mode 100644 index c0aff55..0000000 --- a/dict/admin/src/store/modules/statistics.ts +++ /dev/null @@ -1,320 +0,0 @@ -/** - * 统计数据 store - */ -import { defineStore } from 'pinia'; -import { pageUsers } from '@/api/system/user'; -import { pageShopOrder, shopOrderTotal } from '@/api/shop/shopOrder'; -import { - addCmsStatistics, - listCmsStatistics, - updateCmsStatistics -} from '@/api/cms/cmsStatistics'; -import { CmsStatistics } from '@/api/cms/cmsStatistics/model'; -import { safeNumber, hasValidId } from '@/utils/type-guards'; - -export interface StatisticsState { - // 统计数据 - statistics: CmsStatistics | null; - // 加载状态 - loading: boolean; - // 最后更新时间 - lastUpdateTime: number | null; - // 缓存有效期(毫秒)- 统计数据缓存时间较短 - cacheExpiry: number; - // 自动刷新定时器 - refreshTimer: number | null; -} - -export const useStatisticsStore = defineStore({ - id: 'statistics', - state: (): StatisticsState => ({ - statistics: null, - loading: false, - lastUpdateTime: null, - // 默认缓存5分钟 - cacheExpiry: 5 * 60 * 1000, - refreshTimer: null - }), - - getters: { - /** - * 获取用户总数 - */ - userCount: (state): number => { - return safeNumber(state.statistics?.userCount); - }, - - /** - * 获取订单总数 - */ - orderCount: (state): number => { - return safeNumber(state.statistics?.orderCount); - }, - - /** - * 获取总销售额 - */ - totalSales: (state): number => { - return safeNumber(state.statistics?.totalSales); - }, - - /** - * 获取今日销售额 - */ - todaySales: (state): number => { - return safeNumber(state.statistics?.todaySales); - }, - - /** - * 获取本月销售额 - */ - monthSales: (state): number => { - return safeNumber(state.statistics?.monthSales); - }, - - /** - * 获取今日订单数 - */ - todayOrders: (state): number => { - return safeNumber(state.statistics?.todayOrders); - }, - - /** - * 获取今日新增用户 - */ - todayUsers: (state): number => { - return safeNumber(state.statistics?.todayUsers); - }, - - /** - * 检查缓存是否有效 - */ - isCacheValid: (state): boolean => { - if (!state.lastUpdateTime) return false; - const now = Date.now(); - return now - state.lastUpdateTime < state.cacheExpiry; - } - }, - - actions: { - /** - * 获取统计数据 - * @param forceRefresh 是否强制刷新 - */ - async fetchStatistics(forceRefresh = false) { - // 如果缓存有效且不强制刷新,直接返回缓存数据 - if (!forceRefresh && this.isCacheValid && this.statistics) { - return this.statistics; - } - - this.loading = true; - try { - // 并行获取各种统计数据,使用Promise.allSettled确保部分失败不影响整体 - const [usersResult, ordersResult, totalResult, statisticsResult] = - await Promise.allSettled([ - pageUsers({}), - pageShopOrder({}), - shopOrderTotal(), - listCmsStatistics({}) - ]); - - // 安全提取结果 - const users = - usersResult.status === 'fulfilled' ? usersResult.value : null; - const orders = - ordersResult.status === 'fulfilled' ? ordersResult.value : null; - const total = - totalResult.status === 'fulfilled' ? totalResult.value : null; - const statisticsData = - statisticsResult.status === 'fulfilled' - ? statisticsResult.value - : null; - - // 记录失败的API调用 - if (usersResult.status === 'rejected') { - console.error('❌ 用户API调用失败:', usersResult.reason); - } - if (ordersResult.status === 'rejected') { - console.error('❌ 订单API调用失败:', ordersResult.reason); - } - if (totalResult.status === 'rejected') { - console.error('❌ 订单总额API调用失败:', totalResult.reason); - } - if (statisticsResult.status === 'rejected') { - console.error('❌ 统计数据API调用失败:', statisticsResult.reason); - } - - // 添加调试日志 - console.log('🔍 统计数据获取结果:', { - users: users, - orders: orders, - total: total, - statisticsData: statisticsData - }); - - let statistics: CmsStatistics; - - // 安全获取用户数量,添加更详细的验证 - const userCount = (() => { - if (!users) { - console.warn('⚠️ 用户API返回空数据'); - return 0; - } - if (typeof users === 'object' && 'count' in users) { - const count = users.count; - console.log('✅ 用户数量:', count); - return safeNumber(count); - } - console.warn('⚠️ 用户API返回数据格式不正确:', users); - return 0; - })(); - - // 安全获取订单数量 - const orderCount = (() => { - if (!orders) { - console.warn('⚠️ 订单API返回空数据'); - return 0; - } - if (typeof orders === 'object' && 'count' in orders) { - const count = orders.count; - console.log('✅ 订单数量:', count); - return safeNumber(count); - } - console.warn('⚠️ 订单API返回数据格式不正确:', orders); - return 0; - })(); - - // 安全获取总销售额,处理数组情况 - const totalSales = (() => { - if (!total) { - console.warn('⚠️ 订单总额API返回空数据'); - return 0; - } - if (Array.isArray(total)) { - // 如果是数组,计算总金额 - const sum = total.reduce((acc, order) => { - const amount = order.payPrice || order.totalPrice || 0; - return acc + safeNumber(amount); - }, 0); - console.log('✅ 总销售额(数组计算):', sum); - return sum; - } - const amount = safeNumber(total); - console.log('✅ 总销售额(直接值):', amount); - return amount; - })(); - - if (statisticsData && statisticsData.length > 0) { - // 更新现有统计数据 - const existingStatistics = statisticsData[0]; - - // 确保数据存在且有有效的 ID - if (hasValidId(existingStatistics)) { - const updateData: Partial = { - id: existingStatistics.id, - userCount: userCount, - orderCount: orderCount, - totalSales: totalSales - }; - - // 异步更新数据库 - setTimeout(() => { - updateCmsStatistics(updateData).catch((error) => { - console.error('更新统计数据失败:', error); - }); - }, 1000); - - // 更新本地数据 - statistics = { ...existingStatistics, ...updateData }; - } else { - // 如果现有数据无效,使用基础数据 - statistics = { - userCount: userCount, - orderCount: orderCount, - totalSales: totalSales - }; - } - } else { - // 创建新的统计数据 - statistics = { - userCount: userCount, - orderCount: orderCount, - totalSales: totalSales - }; - - // 异步保存到数据库 - setTimeout(() => { - addCmsStatistics(statistics).catch((error) => { - console.error('保存统计数据失败:', error); - }); - }, 1000); - } - - this.statistics = statistics; - this.lastUpdateTime = Date.now(); - - return statistics; - } catch (error) { - console.error('获取统计数据失败:', error); - throw error; - } finally { - this.loading = false; - } - }, - - /** - * 更新统计数据 - */ - updateStatistics(statistics: Partial) { - if (this.statistics) { - this.statistics = { ...this.statistics, ...statistics }; - this.lastUpdateTime = Date.now(); - } - }, - - /** - * 清除缓存 - */ - clearCache() { - this.statistics = null; - this.lastUpdateTime = null; - }, - - /** - * 强制刷新统计数据 - */ - async forceRefresh() { - console.log('🔄 强制刷新统计数据...'); - this.clearCache(); - return await this.fetchStatistics(true); - }, - - /** - * 设置缓存有效期 - */ - setCacheExpiry(expiry: number) { - this.cacheExpiry = expiry; - }, - - /** - * 开始自动刷新 - * @param interval 刷新间隔(毫秒),默认5分钟 - */ - startAutoRefresh(interval = 5 * 60 * 1000) { - this.stopAutoRefresh(); - this.refreshTimer = window.setInterval(() => { - this.fetchStatistics(true).catch(console.error); - }, interval); - }, - - /** - * 停止自动刷新 - */ - stopAutoRefresh() { - if (this.refreshTimer) { - clearInterval(this.refreshTimer); - this.refreshTimer = null; - } - } - } -}); diff --git a/dict/admin/src/store/modules/template.ts b/dict/admin/src/store/modules/template.ts deleted file mode 100644 index 24b8e43..0000000 --- a/dict/admin/src/store/modules/template.ts +++ /dev/null @@ -1,119 +0,0 @@ -/** - * 网站配置 store - */ -import { defineStore } from 'pinia'; -import {configWebsiteField} from '@/api/cms/cmsWebsiteField'; -import type { Config } from '@/api/cms/cmsWebsiteField/model'; - -export interface ConfigState { - config: Config | null; - loading: boolean; - error: Error | null; -} - -export const useConfigStore = defineStore({ - id: 'config', - state: (): ConfigState => ({ - // 网站配置数据 - config: null, - // 加载状态 - loading: false, - // 错误信息 - error: null - }), - getters: { - /** - * 获取网站配置 - */ - getConfig(state): Config | null { - return state.config; - }, - - /** - * 获取API地址 - */ - getApiUrl(state): string | undefined { - return state.config?.ApiUrl; - }, - - /** - * 获取网站名称 - */ - getSiteName(state): string | undefined { - return state.config?.siteName; - }, - - /** - * 获取网站Logo - */ - getSiteLogo(state): string | undefined { - return state.config?.siteLogo; - } - }, - actions: { - /** - * 获取网站配置数据 - */ - async fetchConfig() { - try { - this.loading = true; - this.error = null; - const data = await configWebsiteField(); - this.config = data; - - // 保存到localStorage中,供其他地方使用 - localStorage.setItem('config', JSON.stringify(data)); - - // 设置主题 - if (data.theme && !localStorage.getItem('user_theme')) { - localStorage.setItem('user_theme', data.theme); - } - - return data; - } catch (err) { - this.error = err instanceof Error ? err : new Error('获取配置失败'); - console.error('获取网站配置失败:', err); - throw err; - } finally { - this.loading = false; - } - }, - - /** - * 更新配置数据 - */ - setConfig(value: Config) { - this.config = value; - // 同时更新localStorage - localStorage.setItem('config', JSON.stringify(value)); - }, - - /** - * 重新获取配置数据 - */ - async refetchConfig() { - try { - this.loading = true; - this.error = null; - const data = await configWebsiteField(); - this.config = data; - localStorage.setItem('config', JSON.stringify(data)); - return data; - } catch (err) { - this.error = err instanceof Error ? err : new Error('获取配置失败'); - console.error('重新获取网站配置失败:', err); - throw err; - } finally { - this.loading = false; - } - }, - - /** - * 清除配置数据 - */ - clearConfig() { - this.config = null; - localStorage.removeItem('config'); - } - } -}); diff --git a/dict/admin/src/store/modules/tenant.ts b/dict/admin/src/store/modules/tenant.ts deleted file mode 100644 index bf19ca2..0000000 --- a/dict/admin/src/store/modules/tenant.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * 租户信息 store - */ -import { defineStore } from 'pinia'; -import { formatTreeData } from 'ele-admin-pro'; -import type { MenuItem } from 'ele-admin-pro'; -import { getTenantInfo } from '@/api/layout'; -import { Tenant } from '@/api/system/tenant/model'; -import { Company } from '@/api/system/company/model'; -// const EXTRA_MENUS: any = []; - -export interface UserState { - tenant: Tenant | null; - company: Company | null; - menus: MenuItem[] | null | undefined; -} - -export const useTenantStore = defineStore({ - id: 'tenant', - state: (): UserState => ({ - // 租户信息 - tenant: null, - // 企业信息 - company: null, - // 当前登录用户的菜单 - menus: null - }), - getters: {}, - actions: { - /** - * 请求用户信息、权限、角色、菜单 - */ - async fetchTenantInfo() { - const company = await getTenantInfo().catch(() => void 0); - if (!company) { - return {}; - } - // 租户信息 - this.company = company; - // 企业信息 - if (company) { - this.company = company; - } - }, - /** - * 更新租户信息 - */ - setInfo(value: Tenant) { - this.tenant = value; - }, - /** - * 更新菜单的 badge - */ - setMenuBadge(path: string, value?: number | string, color?: string) { - this.menus = formatTreeData(this.menus, (m) => { - if (path === m.path) { - return { - ...m, - meta: { - ...m.meta, - badge: value, - badgeColor: color - } - }; - } - return m; - }); - } - } -}); diff --git a/dict/admin/src/store/modules/theme.ts b/dict/admin/src/store/modules/theme.ts deleted file mode 100644 index ebee743..0000000 --- a/dict/admin/src/store/modules/theme.ts +++ /dev/null @@ -1,698 +0,0 @@ -/** - * 主题状态管理 - */ -import { defineStore } from 'pinia'; -import { - changeColor, - screenWidth, - screenHeight, - contentWidth, - contentHeight, - WEAK_CLASS, - BODY_LIMIT_CLASS, - DISABLES_CLASS -} from 'ele-admin-pro/es'; -import type { - TabItem, - HeadStyleType, - SideStyleType, - LayoutStyleType, - SideMenuStyleType, - TabStyleType, - TabRemoveOption -} from 'ele-admin-pro/es'; -import { - TAB_KEEP_ALIVE, - KEEP_ALIVE_EXCLUDES, - THEME_STORE_NAME -} from '@/config/setting'; -// import { getCache } from '@/api/system/cache'; - -/** - * state 默认值 - */ -const DEFAULT_STATE: ThemeState = Object.freeze({ - // 页签数据 - tabs: [], - // 是否折叠侧栏 - collapse: false, - // 是否折叠一级侧栏 - sideNavCollapse: true, - // 内容区域是否全屏 - bodyFullscreen: false, - // 是否开启页签栏 - showTabs: false, - // 是否开启页脚 - showFooter: true, - // 顶栏风格: light(亮色), dark(暗色), primary(主色) - headStyle: 'light', - // 侧栏风格: light(亮色), dark(暗色) - sideStyle: 'light', - // 布局风格: side(默认), top(顶栏导航), mix(混合导航) - layoutStyle: 'side', - // 侧栏菜单风格: default(默认), mix(双排侧栏) - sideMenuStyle: 'default', - // 页签风格: default(默认), dot(圆点), card(卡片) - tabStyle: 'default', - // 路由切换动画 - transitionName: 'fade', - // 是否固定顶栏 - fixedHeader: true, - // 是否固定侧栏 - fixedSidebar: true, - // 是否固定主体 - fixedBody: true, - // 内容区域宽度铺满 - bodyFull: true, - // logo 是否自适应宽度 - logoAutoSize: false, - // 侧栏是否彩色图标 - colorfulIcon: false, - // 侧栏是否只保持一个子菜单展开 - sideUniqueOpen: true, - // 是否是色弱模式 - weakMode: false, - // 是否是暗黑模式 - darkMode: false, - // 主题色 - color: '#00B42A', - // 主页的组件名称 - homeComponents: [], - // 刷新路由时的参数 - routeReload: null, - // 屏幕宽度 - screenWidth: screenWidth(), - // 屏幕高度 - screenHeight: screenHeight(), - // 内容区域宽度 - contentWidth: contentWidth(), - // 内容区域高度 - contentHeight: contentHeight(), - // 是否开启响应式 - styleResponsive: true -}); -// 延时操作定时器 -let disableTransitionTimer: number, updateContentSizeTimer: number; - -/** - * 读取缓存配置 - */ -function getCacheSetting(): any { - try { - const value = localStorage.getItem(THEME_STORE_NAME); - if (value) { - const cache = JSON.parse(value); - if (typeof cache === 'object') { - return cache; - } - } - } catch (e) { - console.error(e); - } - return {}; -} - -/** - * 缓存配置 - */ -function cacheSetting(key: string, value: any) { - const cache = getCacheSetting(); - if (cache[key] !== value) { - cache[key] = value; - // console.log(value); - // localStorage.setItem(THEME_STORE_NAME, JSON.stringify(cache)); - // updateCacheTheme({ - // key: 'theme', - // content: JSON.stringify(cache) - // }).then((res) => { - // console.log(res); - // }); - } -} - -/** - * 开关响应式布局 - */ -function changeStyleResponsive(styleResponsive: boolean) { - if (styleResponsive) { - document.body.classList.remove(BODY_LIMIT_CLASS); - } else { - document.body.classList.add(BODY_LIMIT_CLASS); - } -} - -/** - * 切换色弱模式 - */ -function changeWeakMode(weakMode: boolean) { - if (weakMode) { - document.body.classList.add(WEAK_CLASS); - } else { - document.body.classList.remove(WEAK_CLASS); - } -} - -/** - * 切换主题 - */ -function changeTheme(value?: string | null, dark?: boolean) { - return new Promise((resolve, reject) => { - try { - changeColor(value, dark); - resolve(); - } catch (e) { - reject(e); - } - }); -} - -/** - * 切换布局时禁用过渡动画 - */ -function disableTransition() { - disableTransitionTimer && clearTimeout(disableTransitionTimer); - document.body.classList.add(DISABLES_CLASS); - disableTransitionTimer = setTimeout(() => { - document.body.classList.remove(DISABLES_CLASS); - }, 100) as unknown as number; -} - -export const useThemeStore = defineStore({ - id: 'theme', - state: (): ThemeState => { - const state = { ...DEFAULT_STATE }; - // 读取本地缓存 - const cache = getCacheSetting(); - Object.keys(state).forEach((key) => { - if (typeof cache[key] !== 'undefined') { - state[key] = cache[key]; - } - }); - return state; - }, - getters: { - // 需要 keep-alive 的组件 - keepAliveInclude(): string[] { - if (!TAB_KEEP_ALIVE || !this.showTabs) { - return []; - } - const components = new Set(); - const { reloadPath, reloadHome } = this.routeReload || {}; - this.tabs?.forEach((t) => { - const isAlive = t.meta?.keepAlive !== false; - const isExclude = KEEP_ALIVE_EXCLUDES.includes(t.path as string); - const isReload = reloadPath && reloadPath === t.fullPath; - if (isAlive && !isExclude && !isReload && t.components) { - t.components.forEach((c) => { - if (typeof c === 'string' && c) { - components.add(c); - } - }); - } - }); - if (!reloadHome) { - this.homeComponents?.forEach((c) => { - if (typeof c === 'string' && c) { - components.add(c); - } - }); - } - return Array.from(components); - } - }, - actions: { - setTabs(value: TabItem[]) { - this.tabs = value; - //cacheSetting('tabs', value); - }, - setCollapse(value: boolean) { - this.collapse = value; - this.delayUpdateContentSize(800); - }, - setSideNavCollapse(value: boolean) { - this.sideNavCollapse = value; - this.delayUpdateContentSize(800); - }, - setBodyFullscreen(value: boolean) { - disableTransition(); - this.bodyFullscreen = value; - this.delayUpdateContentSize(800); - }, - setShowTabs(value: boolean) { - this.showTabs = value; - cacheSetting('showTabs', value); - this.delayUpdateContentSize(); - }, - setShowFooter(value: boolean) { - this.showFooter = value; - cacheSetting('showFooter', value); - this.delayUpdateContentSize(); - }, - setHeadStyle(value: HeadStyleType) { - this.headStyle = value; - cacheSetting('headStyle', value); - }, - setSideStyle(value: SideStyleType) { - this.sideStyle = value; - cacheSetting('sideStyle', value); - }, - setLayoutStyle(value: LayoutStyleType) { - disableTransition(); - this.layoutStyle = value; - cacheSetting('layoutStyle', value); - this.delayUpdateContentSize(); - }, - setSideMenuStyle(value: SideMenuStyleType) { - disableTransition(); - this.sideMenuStyle = value; - cacheSetting('sideMenuStyle', value); - this.delayUpdateContentSize(); - }, - setTabStyle(value: TabStyleType) { - this.tabStyle = value; - cacheSetting('tabStyle', value); - }, - setTransitionName(value: string) { - this.transitionName = value; - cacheSetting('transitionName', value); - }, - setFixedHeader(value: boolean) { - disableTransition(); - this.fixedHeader = value; - cacheSetting('fixedHeader', value); - }, - setFixedSidebar(value: boolean) { - disableTransition(); - this.fixedSidebar = value; - cacheSetting('fixedSidebar', value); - }, - setFixedBody(value: boolean) { - disableTransition(); - this.fixedBody = value; - cacheSetting('fixedBody', value); - }, - setBodyFull(value: boolean) { - this.bodyFull = value; - cacheSetting('bodyFull', value); - this.delayUpdateContentSize(); - }, - setLogoAutoSize(value: boolean) { - disableTransition(); - this.logoAutoSize = value; - cacheSetting('logoAutoSize', value); - }, - setColorfulIcon(value: boolean) { - this.colorfulIcon = value; - cacheSetting('colorfulIcon', value); - }, - setSideUniqueOpen(value: boolean) { - this.sideUniqueOpen = value; - cacheSetting('sideUniqueOpen', value); - }, - setStyleResponsive(value: boolean) { - changeStyleResponsive(value); - this.styleResponsive = value; - cacheSetting('styleResponsive', value); - }, - /** - * 切换色弱模式 - * @param value 是否是色弱模式 - */ - setWeakMode(value: boolean) { - return new Promise((resolve) => { - changeWeakMode(value); - this.weakMode = value; - cacheSetting('weakMode', value); - resolve(); - }); - }, - /** - * 切换暗黑模式 - * @param value 是否是暗黑模式 - */ - setDarkMode(value: boolean) { - return new Promise((resolve, reject) => { - changeTheme(this.color, value) - .then(() => { - this.darkMode = value; - cacheSetting('darkMode', value); - resolve(); - }) - .catch((e) => { - reject(e); - }); - }); - }, - /** - * 切换主题色 - * @param value 主题色 - */ - setColor(value?: string) { - return new Promise((resolve, reject) => { - changeTheme(value, this.darkMode) - .then(() => { - this.color = value; - cacheSetting('color', value); - resolve(); - }) - .catch((e) => { - reject(e); - }); - }); - }, - /** - * 设置主页路由对应的组件名称 - * @param components 组件名称 - */ - setHomeComponents(components: string[]) { - this.homeComponents = components; - }, - /** - * 设置刷新路由信息 - * @param option 路由刷新参数 - */ - setRouteReload(option: RouteReloadOption | null) { - this.routeReload = option; - }, - /** - * 更新屏幕尺寸 - */ - updateScreenSize() { - this.screenWidth = screenWidth(); - this.screenHeight = screenHeight(); - this.updateContentSize(); - }, - /** - * 更新内容区域尺寸 - */ - updateContentSize() { - this.contentWidth = contentWidth(); - this.contentHeight = contentHeight(); - }, - /** - * 延时更新内容区域尺寸 - * @param delay 延迟时间 - */ - delayUpdateContentSize(delay?: number) { - updateContentSizeTimer && clearTimeout(updateContentSizeTimer); - updateContentSizeTimer = setTimeout(() => { - this.updateContentSize(); - }, delay ?? 100) as unknown as number; - }, - /** - * 重置设置 - */ - resetSetting() { - return new Promise((resolve, reject) => { - disableTransition(); - this.showTabs = DEFAULT_STATE.showTabs; - this.showFooter = DEFAULT_STATE.showFooter; - this.headStyle = DEFAULT_STATE.headStyle; - this.sideStyle = DEFAULT_STATE.sideStyle; - this.layoutStyle = DEFAULT_STATE.layoutStyle; - this.sideMenuStyle = DEFAULT_STATE.sideMenuStyle; - this.tabStyle = DEFAULT_STATE.tabStyle; - this.transitionName = DEFAULT_STATE.transitionName; - this.fixedHeader = DEFAULT_STATE.fixedHeader; - this.fixedSidebar = DEFAULT_STATE.fixedSidebar; - this.fixedBody = DEFAULT_STATE.fixedBody; - this.bodyFull = DEFAULT_STATE.bodyFull; - this.logoAutoSize = DEFAULT_STATE.logoAutoSize; - this.colorfulIcon = DEFAULT_STATE.colorfulIcon; - this.sideUniqueOpen = DEFAULT_STATE.sideUniqueOpen; - this.styleResponsive = DEFAULT_STATE.styleResponsive; - this.weakMode = DEFAULT_STATE.weakMode; - this.darkMode = DEFAULT_STATE.darkMode; - this.color = DEFAULT_STATE.color; - localStorage.removeItem(THEME_STORE_NAME); - Promise.all([ - changeStyleResponsive(this.styleResponsive), - changeWeakMode(this.weakMode), - changeTheme(this.color, this.darkMode) - ]) - .then(() => { - resolve(); - }) - .catch((e) => { - reject(e); - }); - }); - }, - /** - * 恢复主题 - */ - recoverTheme() { - // 关闭响应式布局 - if (!this.styleResponsive) { - changeStyleResponsive(false); - } - // 恢复色弱模式 - if (this.weakMode) { - changeWeakMode(true); - } - // 恢复主题色 - if (this.color || this.darkMode) { - changeTheme(this.color, this.darkMode).catch((e) => { - console.error(e); - }); - } - }, - /** - * 添加页签或更新相同 key 的页签数据 - * @param data 页签数据 - */ - tabAdd(data: TabItem | TabItem[]) { - if (Array.isArray(data)) { - data.forEach((d) => { - this.tabAdd(d); - }); - return; - } - const i = this.tabs.findIndex((d) => d.key === data.key); - if (i === -1) { - this.setTabs(this.tabs.concat([data])); - } else if (data.fullPath !== this.tabs[i].fullPath) { - this.setTabs( - this.tabs - .slice(0, i) - .concat([data]) - .concat(this.tabs.slice(i + 1)) - ); - } - }, - /** - * 关闭页签 - * @param key 页签 key - */ - async tabRemove({ - key, - active - }: TabRemoveOption): Promise { - const i = this.tabs.findIndex((t) => t.key === key || t.fullPath === key); - if (i === -1) { - return {}; - } - const t = this.tabs[i]; - if (!t.closable) { - return Promise.reject(); - } - const path = this.tabs[i - 1]?.fullPath; - this.setTabs(this.tabs.filter((_d, j) => j !== i)); - return t.key === active ? { path, home: !path } : {}; - }, - /** - * 关闭左侧页签 - */ - async tabRemoveLeft({ - key, - active - }: TabRemoveOption): Promise { - let index = -1; // 选中页签的 index - for (let i = 0; i < this.tabs.length; i++) { - if (this.tabs[i].key === active) { - index = i; - } - if (this.tabs[i].key === key) { - if (i === 0) { - break; - } - const temp = this.tabs.filter((d, j) => !d.closable && j < i); - if (temp.length === i + 1) { - break; - } - const path = index === -1 ? void 0 : this.tabs[i].fullPath; - this.setTabs(temp.concat(this.tabs.slice(i))); - return { path }; - } - } - return Promise.reject(); - }, - /** - * 关闭右侧页签 - */ - async tabRemoveRight({ - key, - active - }: TabRemoveOption): Promise { - if (this.tabs.length) { - let index = -1; // 选中页签的 index - for (let i = 0; i < this.tabs.length; i++) { - if (this.tabs[i].key === active) { - index = i; - } - if (this.tabs[i].key === key) { - if (i === this.tabs.length - 1) { - return Promise.reject(); - } - const temp = this.tabs.filter((d, j) => !d.closable && j > i); - if (temp.length === this.tabs.length - i - 1) { - return Promise.reject(); - } - const path = index === -1 ? this.tabs[i].fullPath : void 0; - this.setTabs( - this.tabs - .slice(0, i + 1) - .concat(this.tabs.filter((d, j) => !d.closable && j > i)) - ); - return { path }; - } - } - // 主页时关闭全部 - const temp = this.tabs.filter((d) => !d.closable); - if (temp.length !== this.tabs.length) { - this.setTabs(temp); - return { home: index !== -1 }; - } - } - return Promise.reject(); - }, - /** - * 关闭其它页签 - */ - async tabRemoveOther({ - key, - active - }: TabRemoveOption): Promise { - let index = -1; // 选中页签的 index - let path: string | undefined; // 关闭后跳转的 path - const temp = this.tabs.filter((d, i) => { - if (d.key === active) { - index = i; - } - if (d.key === key) { - path = d.fullPath; - } - return !d.closable || d.key === key; - }); - if (temp.length === this.tabs.length) { - return Promise.reject(); - } - this.setTabs(temp); - if (index === -1) { - return {}; - } - return key === active ? {} : { path, home: !path }; - }, - /** - * 关闭全部页签 - * @param active 选中页签的 key - */ - async tabRemoveAll(active: string): Promise { - const t = this.tabs.find((d) => d.key === active); - const home = typeof t !== 'undefined' && t.closable === true; // 是否跳转主页 - const temp = this.tabs.filter((d) => !d.closable); - if (temp.length === this.tabs.length) { - return Promise.reject(); - } - this.setTabs(temp); - return { home }; - }, - /** - * 修改页签 - * @param data 页签数据 - */ - tabSetItem(data: TabItem) { - let i = -1; - if (data.key) { - i = this.tabs.findIndex((d) => d.key === data.key); - } else if (data.fullPath) { - i = this.tabs.findIndex((d) => d.fullPath === data.fullPath); - } else if (data.path) { - i = this.tabs.findIndex((d) => d.path === data.path); - } - if (i !== -1) { - const item = { ...this.tabs[i] }; - if (data.title) { - item.title = data.title; - } - if (typeof data.closable === 'boolean') { - item.closable = data.closable; - } - if (data.components) { - item.components = data.components; - } - this.setTabs( - this.tabs - .slice(0, i) - .concat([item]) - .concat(this.tabs.slice(i + 1)) - ); - } - } - } -}); - -/** - * 主题 State 类型 - */ -export interface ThemeState { - tabs: TabItem[]; - collapse: boolean; - sideNavCollapse: boolean; - bodyFullscreen: boolean; - showTabs: boolean; - showFooter: boolean; - headStyle: HeadStyleType; - sideStyle: SideStyleType; - layoutStyle: LayoutStyleType; - sideMenuStyle: SideMenuStyleType; - tabStyle: TabStyleType; - transitionName: string; - fixedHeader: boolean; - fixedSidebar: boolean; - fixedBody: boolean; - bodyFull: boolean; - logoAutoSize: boolean; - colorfulIcon: boolean; - sideUniqueOpen: boolean; - weakMode: boolean; - darkMode: boolean; - color?: string | null; - homeComponents: string[]; - routeReload: RouteReloadOption | null; - screenWidth: number; - screenHeight: number; - contentWidth: number; - contentHeight: number; - styleResponsive: boolean; -} - -/** - * 设置路由刷新方法的参数 - */ -export interface RouteReloadOption { - // 是否是刷新主页 - reloadHome?: boolean; - // 要刷新的页签路由地址 - reloadPath?: string; -} - -/** - * 关闭页签返回类型 - */ -export interface TabRemoveResult { - // 关闭后要跳转的地址 - path?: string; - // 关闭后是否跳转到主页 - home?: boolean; -} diff --git a/dict/admin/src/store/modules/user.ts b/dict/admin/src/store/modules/user.ts deleted file mode 100644 index 3adc040..0000000 --- a/dict/admin/src/store/modules/user.ts +++ /dev/null @@ -1,145 +0,0 @@ -/** - * 登录用户 store - */ -import { defineStore } from 'pinia'; -import { formatMenus, toTreeData, formatTreeData } from 'ele-admin-pro/es'; -import type { MenuItemType } from 'ele-admin-pro/es'; -import type { User } from '@/api/system/user/model'; -import { TOKEN_STORE_NAME, USER_MENUS } from '@/config/setting'; -import {getUserInfo} from '@/api/layout'; -import { initialization } from '@/api/layout'; -import {clone} from "@/api/system/menu"; -import { message } from 'ant-design-vue/es'; -import {logout} from "@/utils/page-tab-util"; -// import { isExternalLink } from 'ele-admin-pro'; -const EXTRA_MENUS: any = []; - -export interface UserState { - info: User | null; - menus: MenuItemType[] | null | undefined; - authorities: (string | undefined)[]; - roles: (string | undefined)[]; -} - -export const useUserStore = defineStore({ - id: 'user', - state: (): UserState => ({ - // 当前登录用户的信息 - info: null, - // 当前登录用户的菜单 - menus: null, - // 当前登录用户的权限 - authorities: [], - // 当前登录用户的角色 - roles: [] - }), - getters: {}, - actions: { - /** - * 请求用户信息、权限、角色、菜单 - */ - async fetchUserInfo() { - // const company = await getTenantInfo().catch(() => void 0); - const result = await getUserInfo().catch(() => {}); - if (!result) { - logout(false, '/login'); - return {}; - } - // 系统初始化 - if (!result.installed && result.username === 'superAdmin') { - const hide = message.loading('正在分配资源请勿刷新页面...', 500); - // @ts-ignore - clone({tenantId: Number(result.templateId)}).then(() => { - if (result.authorities?.length == 0) { - result.roles?.map((d) => { - if (d.roleCode === 'superAdmin') { - initialization(d.roleId).then(() => { - hide(); - location.reload(); - return false; - }); - } - }); - } - }) - } - // 用户信息 - this.info = result; - // 缓存租户信息 - localStorage.setItem('TenantName', `${this.info.tenantName}`); - // 缓存企业信息 - if (this.info.companyInfo) { - localStorage.setItem( - 'CompanyLogo', - `${this.info.companyInfo?.companyLogo}` - ); - localStorage.setItem('PlanId', `${this.info.companyInfo?.planId}`); - localStorage.setItem( - 'ModulesUrl', - `${this.info.companyInfo.modulesUrl}` - ); - } - // 用户权限 - this.authorities = - result.authorities - ?.filter((d) => !!d.authority) - ?.map((d) => d.authority) ?? []; - // 用户角色 - this.roles = result.roles?.map((d) => d.roleCode) ?? []; - // 获取token - const token = localStorage.getItem(TOKEN_STORE_NAME); - // 用户菜单, 过滤掉按钮类型并转为 children 形式 - const { menus, homePath } = formatMenus( - USER_MENUS ?? - toTreeData({ - data: result.authorities - ?.filter((d) => d.menuType !== 1) - .map((d) => { - // 改造子模块的访问路径 - if (d.modulesUrl) { - d.component = `${d.modulesUrl}${d.path}?token=${token}`; - } - return d; - }), - idField: 'menuId', - parentIdField: 'parentId' - }).concat(EXTRA_MENUS) - ); - this.menus = menus; - return { menus, homePath }; - }, - /** - * 更新用户信息 - */ - setInfo(value: User) { - this.info = value; - }, - /** - * 更新菜单的 badge - */ - setMenuBadge(path: string, value?: number | string, color?: string) { - this.menus = formatTreeData(this.menus, (m) => { - if (path === m.path) { - return { - ...m, - meta: { - ...m.meta, - badge: value, - badgeColor: color - } - }; - } - return m; - }); - }, - /** - * 重置用户状态(退出登录时调用) - */ - resetUserState() { - this.info = null; - this.menus = null; - this.authorities = []; - this.roles = []; - } - } -}); diff --git a/dict/admin/src/styles/as-needed.less b/dict/admin/src/styles/as-needed.less deleted file mode 100644 index 1bda515..0000000 --- a/dict/admin/src/styles/as-needed.less +++ /dev/null @@ -1,6 +0,0 @@ -/** 按需引入 */ -@import 'ant-design-vue/es/message/style/index.less'; -@import 'ant-design-vue/es/notification/style/index.less'; -@import 'ele-admin-pro/es/style/nprogress.less'; -@import 'ele-admin-pro/es/style/display.less'; -@import 'ele-admin-pro/es/style/common.less'; diff --git a/dict/admin/src/styles/component.less b/dict/admin/src/styles/component.less deleted file mode 100644 index 4d713e9..0000000 --- a/dict/admin/src/styles/component.less +++ /dev/null @@ -1,17 +0,0 @@ -/** 组件样式 */ -//@input-item: 300px; - -/* ele-pro-table 全局美化样式 */ -.ele-pro-table .ant-table-thead > tr > th { - border-bottom: 2px solid #f0f0f0; - background-color: #fafafa; - font-weight: 600; -} - -.ele-pro-table .ant-table-tbody > tr > td { - border-bottom: 1px solid #f5f5f5; -} - -.ele-pro-table .ant-table-tbody > tr:hover > td { - background-color: #f8f9fa; -} diff --git a/dict/admin/src/styles/global-import.less b/dict/admin/src/styles/global-import.less deleted file mode 100644 index 7fd1f81..0000000 --- a/dict/admin/src/styles/global-import.less +++ /dev/null @@ -1,4 +0,0 @@ -/** 全局引入 */ -@import 'cropperjs/dist/cropper.css'; -@import 'ant-design-vue/dist/antd.less'; -@import 'ele-admin-pro/es/style/index.less'; diff --git a/dict/admin/src/styles/index.less b/dict/admin/src/styles/index.less deleted file mode 100644 index 6f059b4..0000000 --- a/dict/admin/src/styles/index.less +++ /dev/null @@ -1,39 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; -/** 全局样式 */ -@style-entry-file: as-needed; -@import './@{style-entry-file}.less'; -@import './transition/index.less'; -@import "./component.less"; - -// 主题 -@import 'ele-admin-pro/es/style/themes/dynamic.less'; - -:root { - // 灰色主题 - --grey-1: #1b1b1b; - --grey-2: #363636; - --grey-3: #4d4d4d; - --grey-4: #737373; - --grey-5: #a6a6a6; - --grey-6: #d9d9d9; - --grey-7: #e6e6e6; - --grey-8: #f2f2f2; - --grey-9: #f7f7f7; - --grey-10: #fafafa; -} - -.ele-admin-theme-dark { - // 灰色主题 - --grey-1: #fafafa; - --grey-2: #f7f7f7; - --grey-3: #f2f2f2; - --grey-4: #e6e6e6; - --grey-5: #d9d9d9; - --grey-6: #a6a6a6; - --grey-7: #737373; - --grey-8: #4d4d4d; - --grey-9: #363636; - --grey-10: #1b1b1b; -} diff --git a/dict/admin/src/styles/transition/fade.less b/dict/admin/src/styles/transition/fade.less deleted file mode 100644 index 9433fc0..0000000 --- a/dict/admin/src/styles/transition/fade.less +++ /dev/null @@ -1,10 +0,0 @@ -/* 渐变 */ -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.2s ease-in-out; -} - -.fade-enter-from, -.fade-leave-to { - opacity: 0; -} diff --git a/dict/admin/src/styles/transition/index.less b/dict/admin/src/styles/transition/index.less deleted file mode 100644 index be030fb..0000000 --- a/dict/admin/src/styles/transition/index.less +++ /dev/null @@ -1,4 +0,0 @@ -/** 路由切换动画 */ -@import './fade.less'; -@import './slide.less'; -@import './zoom.less'; diff --git a/dict/admin/src/styles/transition/slide.less b/dict/admin/src/styles/transition/slide.less deleted file mode 100644 index b1336e1..0000000 --- a/dict/admin/src/styles/transition/slide.less +++ /dev/null @@ -1,31 +0,0 @@ -/* 底部消退 */ -.slide-bottom-enter-active, -.slide-bottom-leave-active { - transition: opacity 0.2s ease-out, transform 0.25s ease-out; -} - -.slide-bottom-enter-from { - opacity: 0; - transform: translateY(-10%); -} - -.slide-bottom-leave-to { - opacity: 0; - transform: translateY(10%); -} - -/* 右侧消退 */ -.slide-right-leave-active, -.slide-right-enter-active { - transition: opacity 0.2s ease-out, transform 0.25s ease-out; -} - -.slide-right-enter-from { - opacity: 0; - transform: translateX(-60px); -} - -.slide-right-leave-to { - opacity: 0; - transform: translateX(60px); -} diff --git a/dict/admin/src/styles/transition/zoom.less b/dict/admin/src/styles/transition/zoom.less deleted file mode 100644 index 28fe401..0000000 --- a/dict/admin/src/styles/transition/zoom.less +++ /dev/null @@ -1,31 +0,0 @@ -/* 放大渐变 */ -.zoom-in-enter-active, -.zoom-in-leave-active { - transition: opacity 0.2s ease-out, transform 0.25s ease-out; -} - -.zoom-in-enter-from { - opacity: 0; - transform: scale(0.9); -} - -.zoom-in-leave-to { - opacity: 0; - transform: scale(1.1); -} - -/* 缩小渐变 */ -.zoom-out-leave-active, -.zoom-out-enter-active { - transition: opacity 0.2s ease-out, transform 0.25s ease-out; -} - -.zoom-out-enter-from { - opacity: 0; - transform: scale(1.2); -} - -.zoom-out-leave-to { - opacity: 0; - transform: scale(0.8); -} diff --git a/dict/admin/src/utils/cache-manager.ts b/dict/admin/src/utils/cache-manager.ts deleted file mode 100644 index 8c5c174..0000000 --- a/dict/admin/src/utils/cache-manager.ts +++ /dev/null @@ -1,429 +0,0 @@ -/** - * 缓存管理工具 - */ - -// 缓存项接口 -interface CacheItem { - data: T; - timestamp: number; - expiry: number; - version?: string; - tags?: string[]; -} - -// 缓存配置 -interface CacheConfig { - maxSize?: number; - defaultExpiry?: number; - version?: string; - enableCompression?: boolean; -} - -// 内存缓存管理器 -export class MemoryCache { - private cache = new Map(); - private config: Required; - private accessOrder = new Map(); - private accessCounter = 0; - - constructor(config: CacheConfig = {}) { - this.config = { - maxSize: config.maxSize || 100, - defaultExpiry: config.defaultExpiry || 5 * 60 * 1000, // 5分钟 - version: config.version || '1.0.0', - enableCompression: config.enableCompression || false - }; - } - - /** - * 设置缓存 - */ - set(key: string, data: T, expiry?: number, tags?: string[]): void { - const item: CacheItem = { - data, - timestamp: Date.now(), - expiry: expiry || this.config.defaultExpiry, - version: this.config.version, - tags - }; - - // 检查缓存大小限制 - if (this.cache.size >= this.config.maxSize && !this.cache.has(key)) { - this.evictLRU(); - } - - this.cache.set(key, item); - this.updateAccessOrder(key); - } - - /** - * 获取缓存 - */ - get(key: string): T | null { - const item = this.cache.get(key); - - if (!item) { - return null; - } - - // 检查是否过期 - if (this.isExpired(item)) { - this.cache.delete(key); - this.accessOrder.delete(key); - return null; - } - - // 检查版本 - if (item.version !== this.config.version) { - this.cache.delete(key); - this.accessOrder.delete(key); - return null; - } - - this.updateAccessOrder(key); - return item.data; - } - - /** - * 删除缓存 - */ - delete(key: string): boolean { - this.accessOrder.delete(key); - return this.cache.delete(key); - } - - /** - * 清空缓存 - */ - clear(): void { - this.cache.clear(); - this.accessOrder.clear(); - this.accessCounter = 0; - } - - /** - * 根据标签清除缓存 - */ - clearByTags(tags: string[]): void { - for (const [key, item] of this.cache.entries()) { - if (item.tags && item.tags.some(tag => tags.includes(tag))) { - this.delete(key); - } - } - } - - /** - * 检查缓存是否存在且有效 - */ - has(key: string): boolean { - return this.get(key) !== null; - } - - /** - * 获取缓存大小 - */ - size(): number { - return this.cache.size; - } - - /** - * 获取缓存统计信息 - */ - getStats() { - let totalSize = 0; - let expiredCount = 0; - - for (const item of this.cache.values()) { - totalSize += JSON.stringify(item.data).length; - if (this.isExpired(item)) { - expiredCount++; - } - } - - return { - totalItems: this.cache.size, - totalSize, - expiredCount, - maxSize: this.config.maxSize - }; - } - - /** - * 清理过期缓存 - */ - cleanup(): number { - let cleanedCount = 0; - - for (const [key, item] of this.cache.entries()) { - if (this.isExpired(item)) { - this.delete(key); - cleanedCount++; - } - } - - return cleanedCount; - } - - private isExpired(item: CacheItem): boolean { - return Date.now() - item.timestamp > item.expiry; - } - - private updateAccessOrder(key: string): void { - this.accessOrder.set(key, ++this.accessCounter); - } - - private evictLRU(): void { - let lruKey = ''; - let lruAccess = Infinity; - - for (const [key, access] of this.accessOrder.entries()) { - if (access < lruAccess) { - lruAccess = access; - lruKey = key; - } - } - - if (lruKey) { - this.delete(lruKey); - } - } -} - -// 持久化缓存管理器 -export class PersistentCache { - private prefix: string; - private config: Required; - - constructor(prefix: string = 'app_cache', config: CacheConfig = {}) { - this.prefix = prefix; - this.config = { - maxSize: config.maxSize || 50, - defaultExpiry: config.defaultExpiry || 24 * 60 * 60 * 1000, // 24小时 - version: config.version || '1.0.0', - enableCompression: config.enableCompression || true - }; - } - - /** - * 设置持久化缓存 - */ - set(key: string, data: T, expiry?: number, tags?: string[]): void { - try { - const item: CacheItem = { - data, - timestamp: Date.now(), - expiry: expiry || this.config.defaultExpiry, - version: this.config.version, - tags - }; - - const serialized = JSON.stringify(item); - localStorage.setItem(this.getKey(key), serialized); - - // 更新索引 - this.updateIndex(key); - } catch (error) { - console.warn('Failed to set persistent cache:', error); - // 如果存储失败,尝试清理一些空间 - this.cleanup(); - } - } - - /** - * 获取持久化缓存 - */ - get(key: string): T | null { - try { - const serialized = localStorage.getItem(this.getKey(key)); - - if (!serialized) { - return null; - } - - const item: CacheItem = JSON.parse(serialized); - - // 检查是否过期 - if (this.isExpired(item)) { - this.delete(key); - return null; - } - - // 检查版本 - if (item.version !== this.config.version) { - this.delete(key); - return null; - } - - return item.data; - } catch (error) { - console.warn('Failed to get persistent cache:', error); - this.delete(key); - return null; - } - } - - /** - * 删除持久化缓存 - */ - delete(key: string): void { - localStorage.removeItem(this.getKey(key)); - this.removeFromIndex(key); - } - - /** - * 清空所有缓存 - */ - clear(): void { - const keys = this.getAllKeys(); - keys.forEach(key => localStorage.removeItem(key)); - localStorage.removeItem(this.getIndexKey()); - } - - /** - * 根据标签清除缓存 - */ - clearByTags(tags: string[]): void { - const keys = this.getAllKeys(); - - keys.forEach(fullKey => { - try { - const serialized = localStorage.getItem(fullKey); - if (serialized) { - const item: CacheItem = JSON.parse(serialized); - if (item.tags && item.tags.some(tag => tags.includes(tag))) { - const key = fullKey.replace(this.prefix + '_', ''); - this.delete(key); - } - } - } catch (error) { - // 忽略解析错误,直接删除 - localStorage.removeItem(fullKey); - } - }); - } - - /** - * 清理过期缓存 - */ - cleanup(): number { - const keys = this.getAllKeys(); - let cleanedCount = 0; - - keys.forEach(fullKey => { - try { - const serialized = localStorage.getItem(fullKey); - if (serialized) { - const item: CacheItem = JSON.parse(serialized); - if (this.isExpired(item)) { - const key = fullKey.replace(this.prefix + '_', ''); - this.delete(key); - cleanedCount++; - } - } - } catch (error) { - // 如果解析失败,也删除这个项 - localStorage.removeItem(fullKey); - cleanedCount++; - } - }); - - return cleanedCount; - } - - private getKey(key: string): string { - return `${this.prefix}_${key}`; - } - - private getIndexKey(): string { - return `${this.prefix}_index`; - } - - private getAllKeys(): string[] { - const keys: string[] = []; - for (let i = 0; i < localStorage.length; i++) { - const key = localStorage.key(i); - if (key && key.startsWith(this.prefix + '_') && key !== this.getIndexKey()) { - keys.push(key); - } - } - return keys; - } - - private updateIndex(key: string): void { - try { - const indexKey = this.getIndexKey(); - const index = JSON.parse(localStorage.getItem(indexKey) || '[]'); - - if (!index.includes(key)) { - index.push(key); - - // 限制索引大小 - if (index.length > this.config.maxSize) { - const removedKey = index.shift(); - this.delete(removedKey); - } - - localStorage.setItem(indexKey, JSON.stringify(index)); - } - } catch (error) { - console.warn('Failed to update cache index:', error); - } - } - - private removeFromIndex(key: string): void { - try { - const indexKey = this.getIndexKey(); - const index = JSON.parse(localStorage.getItem(indexKey) || '[]'); - const newIndex = index.filter((k: string) => k !== key); - localStorage.setItem(indexKey, JSON.stringify(newIndex)); - } catch (error) { - console.warn('Failed to remove from cache index:', error); - } - } - - private isExpired(item: CacheItem): boolean { - return Date.now() - item.timestamp > item.expiry; - } -} - -// 全局缓存实例 -export const memoryCache = new MemoryCache({ - maxSize: 200, - defaultExpiry: 5 * 60 * 1000 // 5分钟 -}); - -export const persistentCache = new PersistentCache('app_cache', { - maxSize: 100, - defaultExpiry: 24 * 60 * 60 * 1000 // 24小时 -}); - -// 缓存装饰器 -export function cached( - expiry: number = 5 * 60 * 1000, - keyGenerator?: (...args: any[]) => string -) { - return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { - const originalMethod = descriptor.value; - - descriptor.value = async function (...args: any[]) { - const key = keyGenerator - ? keyGenerator(...args) - : `${target.constructor.name}_${propertyKey}_${JSON.stringify(args)}`; - - // 尝试从缓存获取 - let result = memoryCache.get(key); - - if (result === null) { - // 缓存未命中,执行原方法 - result = await originalMethod.apply(this, args); - - // 存入缓存 - memoryCache.set(key, result, expiry); - } - - return result; - }; - - return descriptor; - }; -} diff --git a/dict/admin/src/utils/common.ts b/dict/admin/src/utils/common.ts deleted file mode 100644 index bb95696..0000000 --- a/dict/admin/src/utils/common.ts +++ /dev/null @@ -1,565 +0,0 @@ -import { message, SelectProps } from 'ant-design-vue'; -import { isExternalLink, random, toDateString } from 'ele-admin-pro'; -import router from '@/router'; -import { listDictionaryData } from '@/api/system/dictionary-data'; -import { ref, unref } from 'vue'; -import { APP_SECRET, FILE_SERVER } from '@/config/setting'; -import { useUserStore } from '@/store/modules/user'; -import CryptoJS from 'crypto-js'; -// import { useI18n } from 'vue-i18n'; -import { useRouter } from 'vue-router'; -import {getSiteDomain, getTenantId} from '@/utils/domain'; -import { uuid } from 'ele-admin-pro'; -import mitt from 'mitt'; -import {ChatMessage} from "@/api/system/chat/model"; -type Events = { - message: ChatMessage; -}; -export const emitter = mitt(); -/** - * 常用函数封装 - */ - -// 生成编号 -export function createCode(): string { - const data = new Date(); - const code = `${data.getFullYear()}${data.getMonth()}${data.getDate()}${data.getHours()}${data.getMilliseconds()}`; - return code.slice(0); -} - -// 生成商户编号 -export function createMerchantCode(): string { - const data = new Date(); - const code = `${data.getFullYear()}${data.getMonth()}${data.getDate()}${data.getSeconds()}`; - return code.slice(3); -} - -// 生成订单编号 -export function createOrderNo(): string { - const data = new Date(); - const code = `${data.getFullYear()}${data.getMonth()}${data.getDate()}${data.getHours()}${data.getMilliseconds()}${random( - 8000, - 12000 - )}`; - return code.slice(0); -} - -// 跳转页面函数 -export function openUrl(url: string, params?: any): void { - const isExternal = isExternalLink(url); - if (isExternal) { - window.open(url); - } else { - if (params) { - router.push({ path: url, query: params }); - } else { - router.push(url); - } - } -} - -/** - * 跳转页面函数 - * 携带用于统计用户行为的参数 - * @param path /product/detail.html - * @param id 128 - * @param d 项目数据 - * 拼接规则: {域名}{path}?spm={模型}.{租户ID}.{商户ID}.{父栏目ID}.{栏目ID}.{详情页ID}.{用户ID}.{timestamp}&token={token} - * @return https:///websoft.top/product/detail/128.html?spm=c.5.3057.10005.undefined&token=DDkr1PpE9DouIVMjLEMt9733QsgG7oNV - */ -export function openSpmUrl(path?: string, d?: any, id = 0): void { - // const domain = getSiteDomain(); - let domain = localStorage.getItem('Domain'); - let spm = ''; - let tid = d?.tenantId || 0; - let mid = localStorage.getItem('MerchantId') || 0; - let pid = d?.parentId || 0; - let cid = d?.categoryId || 0; - let uid = localStorage.getItem('UserId') || 0; - let timestamp = ref(Date.now() / 1000); - - if(d?.navigationId > 0){ - cid = d.navigationId; - } - if(d?.itemId > 0){ - id = d.itemId; - } - - // TODO 封装租户ID和店铺ID - spm = `?spm=${d?.model}.${tid}.${mid}.${pid}.${cid}.${id}.${uid}.${ - timestamp.value - }&token=${uuid()}`; - - // TODO 含http直接跳转 - if (path?.startsWith('http')) { - window.open(`${path}`); - return; - } - - // TODO 开发环境 - if (import.meta.env.DEV) { - console.log('开发环境',getTenantId()); - window.open(`http://localhost:${getTenantId()}${path}${spm}`); - return; - } - - // TODO 跳转网站预览地址 - if (domain && domain.length > 0) { - window.open(`https://${domain}${path}${spm}`); - return; - } -} - -/** - * 获取SpmUrl - * 拼接规则: {域名}{path}?spm={模型}.{租户ID}.{商户ID}.{父栏目ID}.{栏目ID}.{详情页ID}.{用户ID}.{timestamp}&token={token} - * @param d - */ -export function getSpmUrl(d?: any): string { - let domain = localStorage.getItem('Domain'); - let path = d?.model; - let tid = d?.tenantId || 0; - let mid = d?.merchantId || 0; - let pid = d?.parentId || 0; - let cid = d?.navigationId; - let id = d?.itemId; - let uid = localStorage.getItem('UserId') || 0; - let timestamp = ref(Date.now() / 1000); - - // TODO 配置cid - if(!cid){ - cid = d?.categoryId; - } - if(!id){ - id = d?.articleId || 0; - } - path = d?.model + '/' + d?.navigationId; - // TODO 首页 - if(d?.model == 'index'){ - path = ''; - } - if(!domain?.startsWith('https:')){ - domain = `https://${domain}` - } - // 开发环境 - if (import.meta.env.DEV) { - domain = `http://localhost:${getTenantId()}` - } - - // TODO 顶级栏目则默认跳转到第一个子栏目 - if(d?.parentId == 0 && d?.children && d?.children.length > 0){ - cid = d?.children?.[0]?.navigationId; - } - - // 文章后缀 - if(d?.suffix){ - path = path + d?.suffix; - } - - // TODO 封装spm - return `${domain}/${path}?spm=${d?.model}.${tid}.${mid}.${pid}.${cid}.${id}.${uid}.${timestamp.value}`; -} - - - -// export function getSpmUrl(path: string, d?: any, id = 0): string { -// let domain = localStorage.getItem('Domain'); -// let spm = ''; -// let tid = localStorage.getItem('TenantId') || 0; -// let mid = localStorage.getItem('MerchantId') || 0; -// let pid = d?.parentId || 0; -// let cid = d?.navigationId || d?.categoryId; -// let uid = localStorage.getItem('UserId') || 0; -// let timestamp = ref(Date.now() / 1000); -// -// // 跳转网站预览地址 -// if(d?.model == 'links'){ -// return d?.path; -// } -// // 详情ID -// if(d?.itemId > 0){ -// id = d?.itemId; -// } -// // 顶级栏目则默认跳转到第一个子栏目 -// if(d?.children && d?.children.length > 0){ -// id = d?.children[0]?.navigationId; -// } -// // TODO 封装spm -// spm = `?spm=${d?.model}.${tid}.${mid}.${pid}.${cid}.${id}.${uid}.${timestamp.value}`; -// -// // 开发环境 -// if (import.meta.env.DEV) { -// return `http://localhost:10317${path}${spm}`; -// } -// return `https://${domain}${path}${spm}` -// } - - -/** - * 弹出新窗口 - * @param url - * @constructor - */ -export function openNew(url: string) { - if (url.slice(0, 4) == 'http') { - return window.open(url); - } - window.open(`http://${url}`); -} - -/** - * 预览地址 - * @param url - * @constructor - */ -export function openPreview(url: string) { - if (url.slice(0, 4) == 'http') { - return window.open(url); - } - return window.open(`${getSiteDomain()}${url}`); -} -/** - * 获取网站域名 - * @param path - */ -export const getDomainPath = (path: string) => { - const domain = localStorage.getItem('Domain'); - return domain + path; -}; - -export const getLang = () => { - if(localStorage.getItem('i18n-lang')){ - return `${localStorage.getItem('i18n-lang')}` - } - // const { locale } = useI18n(); - // return `${locale.value}`; -} -// 预览云存储文件 -export function getUrl(url: string) { - const isExternal = isExternalLink(url); - // const uploadMethod = localStorage.getItem('UploadMethod'); - // const bucketDomain = localStorage.getItem('BucketDomain'); - // if (uploadMethod == 'oss') { - // return bucketDomain + url; - // } - if (!isExternal) { - return FILE_SERVER + url; - } - return url; -} - -// 跳转页面(不弹窗) -export function navTo(d?: any, path?: string, spm?: boolean): string { - let domain = localStorage.getItem('Domain'); - - if(!domain?.startsWith('https:')){ - domain = `https://${domain}` - } - // 开发环境 - if (import.meta.env.DEV) { - domain = `http://localhost:${getTenantId()}` - } - if(d?.model == 'index'){ - return domain + '/'; - } - if(!path){ - path = d?.path; - } - // 国际化配置 - if(getLang()){ - if(getLang() == 'en'){ - path = '/en' + path; - } - } - // 是否移动端 - if(d?.isMobile){ - path = '/m' + path; - } - path = domain + path; - // 是否附加spm参数 - if(spm){ - let uid = localStorage.getItem('UserId') || 0; - let timestamp = ref(Date.now() / 1000); - return `${path}?spm=${d?.tenantId||0}.${d?.merchantId||0}.${d?.parentId||0}.${d?.navigationId||d?.categoryId}.${uid}.${timestamp.value}` - } - return `${path}`; -} - -export function detail(d: any){ - return navTo(d,`/${d.detail}/${d.articleId}.html`); -} - -export function push(path: string) { - router.push(path); -} - -// 手机号脱敏 -export function getMobile(tel: string) { - const reg = /^(\d{3})\d{4}(\d{4})$/; - return tel.replace(reg, '$1****$2'); -} - -// 复制文本 -export const copyText = (text) => { - // 模拟 输入框 - const cInput = document.createElement('input'); - cInput.value = text; - document.body.appendChild(cInput); - cInput.select(); // 选取文本框内容 - - // 执行浏览器复制命令 - // 复制命令会将当前选中的内容复制到剪切板中(这里就是创建的input标签) - // Input要在正常的编辑状态下原生复制方法才会生效 - message.success(`复制成功`); - document.execCommand('copy'); - - // 复制成功后再将构造的标签 移除 - document.body.removeChild(cInput); -}; - -/** - * 计算剩余时间 - * @param endTime - */ -export const getEndTime = (endTime) => { - const setTime = new Date(endTime); - const nowTime = new Date(); - const restSec = setTime.getTime() - nowTime.getTime(); - // 剩余天数 - const lastDay = parseInt(String(restSec / (60 * 60 * 24 * 1000) + 1)); - // let lastHour = parseInt(String((restSec / (60 * 60 * 1000)) % 24)); - // let lastMinu = parseInt(String((restSec / (60 * 1000)) % 60)); - // let lastSec = parseInt(String((restSec / 1000) % 60)); - - // 过期状态 - if (lastDay < 30 && lastDay > 0) { - return `
${toDateString( - endTime, - 'yyyy-MM-dd' - )}(${lastDay}天后过期)
`; - } - if (lastDay < 0) { - return `
${toDateString( - endTime, - 'yyyy-MM-dd' - )}(已过期)
`; - } - return `
${toDateString( - endTime, - 'yyyy-MM-dd' - )}
`; -}; - -/** - * 判断是否是移动设备 - */ -export function isMobileDevice(): boolean { - return (typeof window.orientation !== "undefined") || /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); -} - -/** - * 获取字典数据作为下拉选项数据 - * @param dictCode - */ -export const getDictionaryOptions = (dictCode) => { - const dictOptions = ref([]); - // const key = dictCode + ':' + localStorage.getItem('TenantId'); - // const storageData = localStorage.getItem(key); - - listDictionaryData({ - dictCode - }) - .then((list) => { - // 获取远程字典数据 - if (list.length > 0) { - dictOptions.value = list.map((d) => { - return { - key: d.dictDataCode, - value: d.dictDataName, - label: d.dictDataName, - comments: d.comments - }; - }); - } else { - // 未定义则取默认的json数据 - // dictOptions.value = getJson(dictCode); - } - }) - .catch((e) => { - message.error(e.message); - }); - - // if (!storageData) { - // listDictionaryData({ - // dictCode - // }) - // .then((list) => { - // // 获取远程字典数据 - // if (list.length > 0) { - // dictOptions.value = list.map((d) => { - // return { - // value: d.dictDataCode, - // label: d.dictDataName, - // text: d.dictDataName, - // comments: d.comments - // }; - // }); - // // 写入缓存 - // localStorage.setItem(key, JSON.stringify(dictOptions.value)); - // } else { - // // 未定义则取默认的json数据 - // dictOptions.value = getJson(dictCode); - // } - // }) - // .catch((e) => { - // message.error(e.message); - // }); - // } else { - // dictOptions.value = JSON.parse(storageData); - // } - return dictOptions; -}; - -// 判断是否为图片 -/* - * @param: fileName - 文件名称 - */ -export const isImage = (fileName) => { - const split = fileName.split('?'); - // 后缀获取 - let suffix = ''; - try { - const flieArr = split[0].split('.'); - suffix = flieArr[flieArr.length - 1]; - } catch (err) { - suffix = ''; - } - const imgList = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp']; - return imgList.some((item) => { - return item == suffix; - }); -}; - -export const getWeek = (text) => { - const week = [ - '星期日', - '星期一', - '星期二', - '星期三', - '星期四', - '星期五', - '星期六' - ]; - return week[text]; -}; - -/** - * 文件大小转换 - * @param text - */ -export const getFileSize = (text) => { - if (text < 1024) { - return text + 'B'; - } else if (text < 1024 * 1024) { - return (text / 1024).toFixed(1) + 'KB'; - } else if (text < 1024 * 1024 * 1024) { - return (text / 1024 / 1024).toFixed(1) + 'M'; - } else { - return (text / 1024 / 1024 / 1024).toFixed(1) + 'G'; - } -}; - -/* 原图转缩列图 */ -export const thumbnail = (url) => { - if (url.indexOf('/thumbnail') < 0) { - return url.replace(FILE_SERVER, FILE_SERVER + '/thumbnail'); - } - return url; -}; - -/* 缩列转图原图 */ -export const original = (url) => { - if (url.indexOf('/thumbnail') == 0) { - return url.replace('/thumbnail', ''); - } - return url; -}; - -export const getCompanyInfo = () => { - const user = useUserStore(); - if (user.info?.companyInfo) { - return user.info?.companyInfo; - } - return null; -}; - -export const getVersion = () => { - const companyInfo = getCompanyInfo(); - if (companyInfo?.version) { - return companyInfo?.version; - } - return null; -}; - -// AES加密 -export const encrypt = (text) => { - return CryptoJS.AES.encrypt(text, APP_SECRET).toString(); -}; - -// AES解密 -export const decrypt = (encrypt) => { - CryptoJS.AES.decrypt(encrypt, APP_SECRET); - const bytes = CryptoJS.AES.decrypt(encrypt, APP_SECRET); - return bytes.toString(CryptoJS.enc.Utf8); -}; - -// 获取商户ID -export const getMerchantId = () => { - const merchantId = localStorage.getItem('MerchantId'); - if (merchantId) { - return Number(merchantId); - } - return undefined; -}; - -// 获取当前登录用户ID -export const getUserId = () => { - let userId = 0; - const uid = Number(localStorage.getItem('UserId')); - if (uid) { - userId = uid; - return userId; - } - return userId; -}; - -// 获取页签数据 -export const getPageTitle = () => { - const { currentRoute } = useRouter(); - const { meta } = unref(currentRoute); - const { title } = meta; - return title; -}; - -/** - * 提取传参中的ID - * param 12334.html - * return 1234 - * @param index - */ -export const getIdBySpm = (index: number) => { - console.log('split', router.currentRoute.value.query.spm); - const split = String(router.currentRoute.value.query.spm).split('.'); - console.log(split); - return split[index]; -}; - -/** - * 提取传参中的token - */ -export const getTokenBySpm = () => { - const token = router.currentRoute.value.query.token; - if (token) { - return `${token}`; - } -}; diff --git a/dict/admin/src/utils/component-optimization.ts b/dict/admin/src/utils/component-optimization.ts deleted file mode 100644 index 24ca53d..0000000 --- a/dict/admin/src/utils/component-optimization.ts +++ /dev/null @@ -1,429 +0,0 @@ -/** - * 组件性能优化工具 - */ -import { ref, computed, watch, onMounted, onUnmounted, nextTick } from 'vue'; -import type { Ref, ComputedRef, WatchStopHandle } from 'vue'; - -// 防抖函数 -export function useDebounce any>( - fn: T, - delay: number = 300 -): [T, () => void] { - let timeoutId: number | null = null; - - const debouncedFn = ((...args: any[]) => { - if (timeoutId !== null) { - clearTimeout(timeoutId); - } - - timeoutId = window.setTimeout(() => { - fn(...args); - timeoutId = null; - }, delay); - }) as T; - - const cancel = () => { - if (timeoutId !== null) { - clearTimeout(timeoutId); - timeoutId = null; - } - }; - - return [debouncedFn, cancel]; -} - -// 节流函数 -export function useThrottle any>( - fn: T, - delay: number = 300 -): [T, () => void] { - let lastExecTime = 0; - let timeoutId: number | null = null; - - const throttledFn = ((...args: any[]) => { - const now = Date.now(); - - if (now - lastExecTime >= delay) { - fn(...args); - lastExecTime = now; - } else { - if (timeoutId !== null) { - clearTimeout(timeoutId); - } - - timeoutId = window.setTimeout(() => { - fn(...args); - lastExecTime = Date.now(); - timeoutId = null; - }, delay - (now - lastExecTime)); - } - }) as T; - - const cancel = () => { - if (timeoutId !== null) { - clearTimeout(timeoutId); - timeoutId = null; - } - }; - - return [throttledFn, cancel]; -} - -// 虚拟滚动 -export function useVirtualScroll( - items: Ref, - itemHeight: number, - containerHeight: number, - buffer: number = 5 -) { - const scrollTop = ref(0); - const containerRef = ref(); - - const visibleRange = computed(() => { - const start = Math.floor(scrollTop.value / itemHeight); - const end = Math.min( - start + Math.ceil(containerHeight / itemHeight) + buffer, - items.value.length - ); - - return { - start: Math.max(0, start - buffer), - end - }; - }); - - const visibleItems = computed(() => { - const { start, end } = visibleRange.value; - return items.value.slice(start, end).map((item, index) => ({ - item, - index: start + index - })); - }); - - const totalHeight = computed(() => items.value.length * itemHeight); - - const offsetY = computed(() => visibleRange.value.start * itemHeight); - - const handleScroll = useThrottle((event: Event) => { - const target = event.target as HTMLElement; - scrollTop.value = target.scrollTop; - }, 16)[0]; // 60fps - - onMounted(() => { - if (containerRef.value) { - containerRef.value.addEventListener('scroll', handleScroll); - } - }); - - onUnmounted(() => { - if (containerRef.value) { - containerRef.value.removeEventListener('scroll', handleScroll); - } - }); - - return { - containerRef, - visibleItems, - totalHeight, - offsetY - }; -} - -// 图片懒加载 -export function useLazyImage() { - const imageRef = ref(); - const isLoaded = ref(false); - const isError = ref(false); - const isIntersecting = ref(false); - - let observer: IntersectionObserver | null = null; - - const load = (src: string) => { - if (!imageRef.value || isLoaded.value) return; - - const img = new Image(); - img.onload = () => { - if (imageRef.value) { - imageRef.value.src = src; - isLoaded.value = true; - } - }; - img.onerror = () => { - isError.value = true; - }; - img.src = src; - }; - - onMounted(() => { - if (imageRef.value) { - observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - isIntersecting.value = entry.isIntersecting; - }); - }, - { threshold: 0.1 } - ); - - observer.observe(imageRef.value); - } - }); - - onUnmounted(() => { - if (observer) { - observer.disconnect(); - } - }); - - return { - imageRef, - isLoaded, - isError, - isIntersecting, - load - }; -} - -// 无限滚动 -export function useInfiniteScroll( - loadMore: () => Promise, - options: { - threshold?: number; - initialLoad?: boolean; - } = {} -) { - const { threshold = 100, initialLoad = true } = options; - - const items = ref([]); - const loading = ref(false); - const finished = ref(false); - const error = ref(null); - const containerRef = ref(); - - const load = async () => { - if (loading.value || finished.value) return; - - loading.value = true; - error.value = null; - - try { - const newItems = await loadMore(); - - if (newItems.length === 0) { - finished.value = true; - } else { - items.value.push(...newItems); - } - } catch (err) { - error.value = err as Error; - } finally { - loading.value = false; - } - }; - - const checkScroll = useThrottle(() => { - if (!containerRef.value || loading.value || finished.value) return; - - const { scrollTop, scrollHeight, clientHeight } = containerRef.value; - - if (scrollTop + clientHeight >= scrollHeight - threshold) { - load(); - } - }, 100)[0]; - - onMounted(() => { - if (initialLoad) { - load(); - } - - if (containerRef.value) { - containerRef.value.addEventListener('scroll', checkScroll); - } - }); - - onUnmounted(() => { - if (containerRef.value) { - containerRef.value.removeEventListener('scroll', checkScroll); - } - }); - - const reset = () => { - items.value = []; - loading.value = false; - finished.value = false; - error.value = null; - }; - - return { - items, - loading, - finished, - error, - containerRef, - load, - reset - }; -} - -// 响应式断点 -export function useBreakpoints() { - const width = ref(window.innerWidth); - const height = ref(window.innerHeight); - - const updateSize = useThrottle(() => { - width.value = window.innerWidth; - height.value = window.innerHeight; - }, 100)[0]; - - onMounted(() => { - window.addEventListener('resize', updateSize); - }); - - onUnmounted(() => { - window.removeEventListener('resize', updateSize); - }); - - const breakpoints = computed(() => ({ - xs: width.value < 576, - sm: width.value >= 576 && width.value < 768, - md: width.value >= 768 && width.value < 992, - lg: width.value >= 992 && width.value < 1200, - xl: width.value >= 1200 && width.value < 1600, - xxl: width.value >= 1600 - })); - - return { - width, - height, - breakpoints - }; -} - -// 组件可见性检测 -export function useVisibility(threshold: number = 0.1) { - const elementRef = ref(); - const isVisible = ref(false); - - let observer: IntersectionObserver | null = null; - - onMounted(() => { - if (elementRef.value) { - observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - isVisible.value = entry.isIntersecting; - }); - }, - { threshold } - ); - - observer.observe(elementRef.value); - } - }); - - onUnmounted(() => { - if (observer) { - observer.disconnect(); - } - }); - - return { - elementRef, - isVisible - }; -} - -// 长列表优化 -export function useLongList( - data: Ref, - itemHeight: number = 50, - visibleCount: number = 10 -) { - const scrollTop = ref(0); - const containerRef = ref(); - - const startIndex = computed(() => { - return Math.floor(scrollTop.value / itemHeight); - }); - - const endIndex = computed(() => { - return Math.min(startIndex.value + visibleCount, data.value.length); - }); - - const visibleData = computed(() => { - return data.value.slice(startIndex.value, endIndex.value); - }); - - const paddingTop = computed(() => { - return startIndex.value * itemHeight; - }); - - const paddingBottom = computed(() => { - return (data.value.length - endIndex.value) * itemHeight; - }); - - const handleScroll = useThrottle((event: Event) => { - const target = event.target as HTMLElement; - scrollTop.value = target.scrollTop; - }, 16)[0]; - - onMounted(() => { - if (containerRef.value) { - containerRef.value.addEventListener('scroll', handleScroll); - } - }); - - onUnmounted(() => { - if (containerRef.value) { - containerRef.value.removeEventListener('scroll', handleScroll); - } - }); - - return { - containerRef, - visibleData, - paddingTop, - paddingBottom - }; -} - -// 内存泄漏检测 -export function useMemoryLeakDetection(componentName: string) { - const watchers: WatchStopHandle[] = []; - const timers: number[] = []; - const listeners: Array<{ element: EventTarget; event: string; handler: EventListener }> = []; - - const addWatcher = (stopHandle: WatchStopHandle) => { - watchers.push(stopHandle); - }; - - const addTimer = (timerId: number) => { - timers.push(timerId); - }; - - const addListener = (element: EventTarget, event: string, handler: EventListener) => { - element.addEventListener(event, handler); - listeners.push({ element, event, handler }); - }; - - onUnmounted(() => { - // 清理 watchers - watchers.forEach(stop => stop()); - - // 清理 timers - timers.forEach(id => clearTimeout(id)); - - // 清理 listeners - listeners.forEach(({ element, event, handler }) => { - element.removeEventListener(event, handler); - }); - - console.log(`${componentName} 组件已清理完成`); - }); - - return { - addWatcher, - addTimer, - addListener - }; -} diff --git a/dict/admin/src/utils/document-title-util.ts b/dict/admin/src/utils/document-title-util.ts deleted file mode 100644 index 18eccde..0000000 --- a/dict/admin/src/utils/document-title-util.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { watch } from 'vue'; -import { useRouter } from 'vue-router'; -import { useI18n } from 'vue-i18n'; -import type { RouteLocationNormalizedLoaded } from 'vue-router'; -import { - routeI18nKey, - findTabByPath -} from 'ele-admin-pro/es/ele-pro-layout/util'; -import { storeToRefs } from 'pinia'; -import { useThemeStore } from '@/store/modules/theme'; -import { PROJECT_NAME, REDIRECT_PATH, I18N_ENABLE } from '@/config/setting'; - -/** - * 修改浏览器标题 - * @param title 标题 - */ -export function setDocumentTitle(title: string) { - const names: string[] = []; - const tenantName = localStorage.getItem('TenantName'); - if (title) { - names.push(title); - } - if (tenantName) { - names.push(tenantName); - } else { - names.push(PROJECT_NAME); - } - document.title = names.join(' - '); -} - -/** - * 路由切换更新浏览器标题 - */ -export function useSetDocumentTitle() { - const { currentRoute } = useRouter(); - const { t, locale } = useI18n(); - const themeStore = useThemeStore(); - const { tabs } = storeToRefs(themeStore); - - const updateTitle = (route: RouteLocationNormalizedLoaded) => { - const { path, meta, fullPath } = route; - if (path.includes(REDIRECT_PATH)) { - return; - } - const pathKey = routeI18nKey(path); - if (!pathKey) { - return; - } - const tab = findTabByPath(fullPath, tabs.value); - const title = tab?.title || (meta?.title as string); - if (!I18N_ENABLE) { - setDocumentTitle(title); - return; - } - const k = `route.${pathKey}._name`; - const v = t(k); - setDocumentTitle(v === k || !v ? title : v); - }; - - watch( - currentRoute, - (route) => { - updateTitle(route); - }, - { immediate: true } - ); - - watch(locale, () => { - updateTitle(currentRoute.value); - }); -} diff --git a/dict/admin/src/utils/domain.ts b/dict/admin/src/utils/domain.ts deleted file mode 100644 index 63f78b0..0000000 --- a/dict/admin/src/utils/domain.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { isNumber } from 'ele-admin-pro'; -import {listCmsWebsite} from "@/api/cms/cmsWebsite"; - -// 解析域名结构 -export function getHost(): any { - const host = window.location.host; - return host.split('.'); -} - -// 是否https -export function isHttps() { - const protocol = window.location.protocol; - if (protocol == 'https:') { - return true; - } - return false; -} - -/** - * 获取原始域名 - * @return http://www.domain.com - */ -export function getOriginDomain(): string { - return window.origin; -} - -/** - * 域名的第一部分 - * 获取tenantId - * @return 10140 - */ -export function getDomainPart1(): any { - const split = getHost(); - if (split[0] == '127') { - return undefined; - } - const ip = Number(split[0]); - if(ip < 1000){ - return undefined; - } - if (isNumber(split[0])) { - return split[0]; - } - const tenantId = localStorage.getItem('TenantId'); - if(tenantId){ - return Number(tenantId); - } - return undefined; -} - -/** - * 通过解析泛域名获取租户ID - * https://10140.wsdns.cn - * @return 10140 - */ -export function getTenantId() { - return getDomainPart1(); -} - -/** - * 获取根域名 - * hostname - */ -export function getHostname(): string { - return window.location.hostname; -} - -/** - * 获取域名 - * @return https://www.domain.com - */ -export function getDomain(): string { - return window.location.protocol + '//www.' + getRootDomain(); -} - -/** - * 获取根域名 - * abc.com - */ -export function getRootDomain(): string { - const split = getHost(); - return split[split.length - 2] + '.' + split[split.length - 1]; -} - -/** - * 获取二级域名 - * @return abc.com - */ -export function getSubDomainPath(): string { - const split = getHost(); - if (split.length == 2) { - return ''; - } - return split[split.length - 3]; -} - -/** - * 获取产品标识 - * @return 10048 - */ -export function getProductCode(): string | null { - const subDomain = getSubDomainPath(); - if (subDomain == undefined) { - return null; - } - const split = subDomain.split('-'); - return split[0]; -} - -/** - * 控制台域名 - */ -export function navSubDomain(path): string { - return `${window.location.protocol}//${path}.${getRootDomain()}`; -} - -// 获取网站域名(推荐使用) -export function getSiteDomain(): string { - const siteDomain = localStorage.getItem('Domain'); - if (!siteDomain) { - listCmsWebsite({ limit: 1 }).then((list) => { - if (list.length > 0) { - const d = list[0]; - if (d.domain) { - localStorage.setItem('Domain', `https://${d.domain}`); - } else { - localStorage.setItem('Domain', `https://${d.websiteCode}.wsdns.cn`); - } - return localStorage.getItem('Domain'); - } - }); - } - // 开发环境调试域名 - if (localStorage.getItem('DevDomain')) { - return `${localStorage.getItem('DevDomain')}`; - } - return `${localStorage.getItem('Domain')}`; -} - -// 检查 URL 是否为 HTTPS -export const checkIfHttps = (text: string) => { - const url = new URL(text); - return url.protocol === 'https:'; -}; diff --git a/dict/admin/src/utils/editor.ts b/dict/admin/src/utils/editor.ts deleted file mode 100644 index a315ec2..0000000 --- a/dict/admin/src/utils/editor.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ref } from 'vue'; -import TinymceEditor from '@/components/TinymceEditor/index.vue'; - -const editorRef = ref | null>(null); -// 编辑器配置信息 -export function editorConfig(height?: 500): void { - const resultData = ref({ - height: height, - // 自定义文件上传(这里使用把选择的文件转成 blob 演示) - file_picker_callback: (callback: any, _value: any, meta: any) => { - const input = document.createElement('input'); - input.setAttribute('type', 'file'); - // 设定文件可选类型 - if (meta.filetype === 'image') { - input.setAttribute('accept', 'image/*'); - } else if (meta.filetype === 'media') { - input.setAttribute('accept', 'video/*'); - } - input.onchange = () => { - const file = input.files?.[0]; - if (!file) { - return; - } - if (meta.filetype === 'media') { - if (!file.type.startsWith('video/')) { - editorRef.value?.alert({ content: '只能选择视频文件' }); - return; - } - } - if (file.size / 1024 / 1024 > 20) { - editorRef.value?.alert({ content: '大小不能超过 20MB' }); - return; - } - const reader = new FileReader(); - reader.onload = (e) => { - if (e.target?.result != null) { - const blob = new Blob([e.target.result], { type: file.type }); - callback(URL.createObjectURL(blob)); - } - }; - reader.readAsArrayBuffer(file); - }; - input.click(); - } - }); - return resultData; -} diff --git a/dict/admin/src/utils/enhanced-request.ts b/dict/admin/src/utils/enhanced-request.ts deleted file mode 100644 index 77f6be2..0000000 --- a/dict/admin/src/utils/enhanced-request.ts +++ /dev/null @@ -1,352 +0,0 @@ -/** - * 增强的 API 请求工具 - */ -import axios, { AxiosRequestConfig, AxiosError } from 'axios'; -import { apiPerformanceMonitor } from './performance'; -import { memoryCache } from './cache-manager'; -import { getToken } from './token-util'; -import { API_BASE_URL, TOKEN_HEADER_NAME } from '@/config/setting'; - -// 请求配置接口 -interface EnhancedRequestConfig extends AxiosRequestConfig { - // 缓存配置 - cache?: { - enabled: boolean; - expiry?: number; - key?: string; - tags?: string[]; - }; - // 重试配置 - retry?: { - times: number; - delay: number; - condition?: (error: AxiosError) => boolean; - }; - // 性能监控 - performance?: boolean; - // 请求去重 - dedupe?: boolean; - // 超时重试 - timeoutRetry?: boolean; -} - -// 请求队列管理 -class RequestQueue { - private pendingRequests = new Map>(); - - // 生成请求键 - private generateKey(config: AxiosRequestConfig): string { - const { method, url, params, data } = config; - return `${method}_${url}_${JSON.stringify(params)}_${JSON.stringify(data)}`; - } - - // 添加请求到队列 - add(config: AxiosRequestConfig, executor: () => Promise): Promise { - const key = this.generateKey(config); - - if (this.pendingRequests.has(key)) { - return this.pendingRequests.get(key); - } - - const promise = executor().finally(() => { - this.pendingRequests.delete(key); - }); - - this.pendingRequests.set(key, promise); - return promise; - } - - // 清除队列 - clear(): void { - this.pendingRequests.clear(); - } -} - -// 重试机制 -class RetryManager { - static async retry( - fn: () => Promise, - config: { times: number; delay: number; condition?: (error: any) => boolean } - ): Promise { - let lastError: any; - - for (let i = 0; i <= config.times; i++) { - try { - return await fn(); - } catch (error) { - lastError = error; - - // 检查是否应该重试 - if (i < config.times && (!config.condition || config.condition(error as AxiosError))) { - await this.delay(config.delay * Math.pow(2, i)); // 指数退避 - console.warn(`请求重试 ${i + 1}/${config.times}:`, error); - } else { - break; - } - } - } - - throw lastError; - } - - private static delay(ms: number): Promise { - return new Promise(resolve => setTimeout(resolve, ms)); - } -} - -// 增强的请求类 -export class EnhancedRequest { - private instance = axios.create({ - baseURL: API_BASE_URL, - timeout: 30000 - }); - - private requestQueue = new RequestQueue(); - - constructor() { - this.setupInterceptors(); - } - - private setupInterceptors() { - // 请求拦截器 - this.instance.interceptors.request.use( - (config) => { - // 添加认证头 - const token = getToken(); - if (token && config.headers) { - config.headers[TOKEN_HEADER_NAME] = token; - } - - // 添加请求时间戳 - (config as any).startTime = Date.now(); - - return config; - }, - (error) => { - return Promise.reject(error); - } - ); - - // 响应拦截器 - this.instance.interceptors.response.use( - (response) => { - // 记录性能数据 - const config = response.config as any; - if (config.startTime) { - const duration = Date.now() - config.startTime; - apiPerformanceMonitor.recordApiCall(config.url, duration); - } - - return response; - }, - (error) => { - // 记录错误的性能数据 - const config = error.config as any; - if (config && config.startTime) { - const duration = Date.now() - config.startTime; - apiPerformanceMonitor.recordApiCall(config.url, duration); - } - - return Promise.reject(error); - } - ); - } - - // 通用请求方法 - async request(config: EnhancedRequestConfig): Promise { - const { - cache, - retry, - performance = true, - dedupe = true, - timeoutRetry = true, - ...axiosConfig - } = config; - - // 生成缓存键 - const cacheKey = cache?.key || this.generateCacheKey(axiosConfig); - - // 尝试从缓存获取 - if (cache?.enabled) { - const cachedData = memoryCache.get(cacheKey); - if (cachedData !== null) { - return cachedData; - } - } - - // 请求执行器 - const executor = async (): Promise => { - const response = await this.instance.request(axiosConfig); - - // 缓存响应数据 - if (cache?.enabled && response.data) { - memoryCache.set( - cacheKey, - response.data, - cache.expiry, - cache.tags - ); - } - - return response.data; - }; - - // 请求去重 - if (dedupe) { - return this.requestQueue.add(axiosConfig, async () => { - // 重试机制 - if (retry) { - return RetryManager.retry(executor, { - ...retry, - condition: retry.condition || this.shouldRetry - }); - } - - return executor(); - }); - } - - // 重试机制 - if (retry) { - return RetryManager.retry(executor, { - ...retry, - condition: retry.condition || this.shouldRetry - }); - } - - return executor(); - } - - // GET 请求 - get(url: string, config?: EnhancedRequestConfig): Promise { - return this.request({ - ...config, - method: 'GET', - url - }); - } - - // POST 请求 - post(url: string, data?: any, config?: EnhancedRequestConfig): Promise { - return this.request({ - ...config, - method: 'POST', - url, - data - }); - } - - // PUT 请求 - put(url: string, data?: any, config?: EnhancedRequestConfig): Promise { - return this.request({ - ...config, - method: 'PUT', - url, - data - }); - } - - // DELETE 请求 - delete(url: string, config?: EnhancedRequestConfig): Promise { - return this.request({ - ...config, - method: 'DELETE', - url - }); - } - - // 批量请求 - async batch(requests: EnhancedRequestConfig[]): Promise { - const promises = requests.map(config => this.request(config)); - return Promise.all(promises); - } - - // 并发控制请求 - async concurrent( - requests: EnhancedRequestConfig[], - limit: number = 5 - ): Promise { - const results: T[] = []; - - for (let i = 0; i < requests.length; i += limit) { - const batch = requests.slice(i, i + limit); - const batchResults = await this.batch(batch); - results.push(...batchResults); - } - - return results; - } - - // 生成缓存键 - private generateCacheKey(config: AxiosRequestConfig): string { - const { method, url, params, data } = config; - return `api_${method}_${url}_${JSON.stringify(params)}_${JSON.stringify(data)}`; - } - - // 判断是否应该重试 - private shouldRetry(error: AxiosError): boolean { - // 网络错误或超时错误重试 - if (!error.response) { - return true; - } - - // 5xx 服务器错误重试 - const status = error.response.status; - return status >= 500 && status < 600; - } - - // 清除缓存 - clearCache(tags?: string[]): void { - if (tags) { - memoryCache.clearByTags(tags); - } else { - memoryCache.clear(); - } - } - - // 取消所有请求 - cancelAll(): void { - this.requestQueue.clear(); - } -} - -// 全局实例 -export const enhancedRequest = new EnhancedRequest(); - -// 便捷方法 -export const { get, post, put, delete: del, batch, concurrent } = enhancedRequest; - -// 带缓存的 GET 请求 -export function cachedGet( - url: string, - config?: Omit & { - expiry?: number; - tags?: string[]; - } -): Promise { - const { expiry = 5 * 60 * 1000, tags, ...restConfig } = config || {}; - - return enhancedRequest.get(url, { - ...restConfig, - cache: { - enabled: true, - expiry, - tags - } - }); -} - -// 带重试的请求 -export function retryRequest( - config: EnhancedRequestConfig, - retryTimes: number = 3, - retryDelay: number = 1000 -): Promise { - return enhancedRequest.request({ - ...config, - retry: { - times: retryTimes, - delay: retryDelay - } - }); -} diff --git a/dict/admin/src/utils/lazy-load.ts b/dict/admin/src/utils/lazy-load.ts deleted file mode 100644 index 17aae32..0000000 --- a/dict/admin/src/utils/lazy-load.ts +++ /dev/null @@ -1,318 +0,0 @@ -/** - * 组件懒加载工具 - */ -import { defineAsyncComponent, Component } from 'vue'; -import { LoadingOutlined } from '@ant-design/icons-vue'; -import { h } from 'vue'; - -// 加载状态组件 -const LoadingComponent = { - setup() { - return () => h('div', { - style: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - minHeight: '200px', - fontSize: '16px', - color: '#999' - } - }, [ - h(LoadingOutlined, { style: { marginRight: '8px' } }), - '加载中...' - ]); - } -}; - -// 错误状态组件 -const ErrorComponent = { - props: ['error'], - setup(props: { error: Error }) { - return () => h('div', { - style: { - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - minHeight: '200px', - padding: '20px', - color: '#ff4d4f', - backgroundColor: '#fff2f0', - border: '1px solid #ffccc7', - borderRadius: '6px' - } - }, [ - h('div', { style: { fontSize: '16px', marginBottom: '8px' } }, '组件加载失败'), - h('div', { style: { fontSize: '12px', color: '#999' } }, props.error.message), - h('button', { - style: { - marginTop: '12px', - padding: '4px 12px', - border: '1px solid #d9d9d9', - borderRadius: '4px', - backgroundColor: '#fff', - cursor: 'pointer' - }, - onClick: () => window.location.reload() - }, '重新加载') - ]); - } -}; - -// 懒加载配置选项 -interface LazyLoadOptions { - loading?: Component; - error?: Component; - delay?: number; - timeout?: number; - retries?: number; - retryDelay?: number; -} - -// 默认配置 -const defaultOptions: LazyLoadOptions = { - loading: LoadingComponent, - error: ErrorComponent, - delay: 200, - timeout: 30000, - retries: 3, - retryDelay: 1000 -}; - -/** - * 创建懒加载组件 - * @param loader 组件加载函数 - * @param options 配置选项 - */ -export function createLazyComponent( - loader: () => Promise, - options: LazyLoadOptions = {} -) { - const config = { ...defaultOptions, ...options }; - - return defineAsyncComponent({ - loader: createRetryLoader(loader, config.retries!, config.retryDelay!), - loadingComponent: config.loading, - errorComponent: config.error, - delay: config.delay, - timeout: config.timeout - }); -} - -/** - * 创建带重试机制的加载器 - */ -function createRetryLoader( - loader: () => Promise, - retries: number, - retryDelay: number -) { - return async () => { - let lastError: Error; - - for (let i = 0; i <= retries; i++) { - try { - return await loader(); - } catch (error) { - lastError = error as Error; - - if (i < retries) { - await new Promise(resolve => setTimeout(resolve, retryDelay)); - console.warn(`组件加载失败,正在重试 (${i + 1}/${retries}):`, error); - } - } - } - - throw lastError!; - }; -} - -/** - * 路由懒加载 - */ -export function lazyRoute(loader: () => Promise, options?: LazyLoadOptions) { - return createLazyComponent(loader, { - ...options, - loading: options?.loading || { - setup() { - return () => h('div', { - style: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - minHeight: '60vh', - fontSize: '16px', - color: '#999' - } - }, [ - h(LoadingOutlined, { style: { marginRight: '8px' } }), - '页面加载中...' - ]); - } - } - }); -} - -/** - * 模态框懒加载 - */ -export function lazyModal(loader: () => Promise, options?: LazyLoadOptions) { - return createLazyComponent(loader, { - ...options, - loading: options?.loading || { - setup() { - return () => h('div', { - style: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - minHeight: '300px', - fontSize: '14px', - color: '#999' - } - }, [ - h(LoadingOutlined, { style: { marginRight: '8px' } }), - '加载中...' - ]); - } - } - }); -} - -/** - * 图表懒加载 - */ -export function lazyChart(loader: () => Promise, options?: LazyLoadOptions) { - return createLazyComponent(loader, { - ...options, - loading: options?.loading || { - setup() { - return () => h('div', { - style: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - minHeight: '400px', - backgroundColor: '#fafafa', - border: '1px dashed #d9d9d9', - borderRadius: '6px', - fontSize: '14px', - color: '#999' - } - }, [ - h(LoadingOutlined, { style: { marginRight: '8px' } }), - '图表加载中...' - ]); - } - } - }); -} - -/** - * 预加载组件 - */ -export class ComponentPreloader { - private preloadedComponents = new Map>(); - - /** - * 预加载组件 - */ - preload(key: string, loader: () => Promise) { - if (!this.preloadedComponents.has(key)) { - this.preloadedComponents.set(key, loader()); - } - return this.preloadedComponents.get(key)!; - } - - /** - * 获取预加载的组件 - */ - get(key: string) { - return this.preloadedComponents.get(key); - } - - /** - * 清除预加载的组件 - */ - clear(key?: string) { - if (key) { - this.preloadedComponents.delete(key); - } else { - this.preloadedComponents.clear(); - } - } - - /** - * 批量预加载 - */ - batchPreload(components: Record Promise>) { - Object.entries(components).forEach(([key, loader]) => { - this.preload(key, loader); - }); - } -} - -// 全局预加载器实例 -export const componentPreloader = new ComponentPreloader(); - -/** - * 智能懒加载 - 根据网络状况调整策略 - */ -export function smartLazyComponent( - loader: () => Promise, - options: LazyLoadOptions = {} -) { - // 检测网络状况 - const connection = (navigator as any).connection; - const isSlowNetwork = connection && ( - connection.effectiveType === 'slow-2g' || - connection.effectiveType === '2g' || - connection.saveData - ); - - // 根据网络状况调整配置 - const smartOptions = { - ...options, - timeout: isSlowNetwork ? 60000 : (options.timeout || 30000), - retries: isSlowNetwork ? 5 : (options.retries || 3), - retryDelay: isSlowNetwork ? 2000 : (options.retryDelay || 1000) - }; - - return createLazyComponent(loader, smartOptions); -} - -/** - * 可见性懒加载 - 只有当组件进入视口时才加载 - */ -export function visibilityLazyComponent( - loader: () => Promise, - options: LazyLoadOptions = {} -) { - return defineAsyncComponent({ - loader: () => { - return new Promise((resolve, reject) => { - const observer = new IntersectionObserver((entries) => { - if (entries[0].isIntersecting) { - observer.disconnect(); - loader().then(resolve).catch(reject); - } - }); - - // 创建一个占位元素来观察 - const placeholder = document.createElement('div'); - document.body.appendChild(placeholder); - observer.observe(placeholder); - - // 清理函数 - setTimeout(() => { - observer.disconnect(); - document.body.removeChild(placeholder); - reject(new Error('Visibility timeout')); - }, options.timeout || 30000); - }); - }, - loadingComponent: options.loading || LoadingComponent, - errorComponent: options.error || ErrorComponent, - delay: options.delay || 200 - }); -} diff --git a/dict/admin/src/utils/merchant.ts b/dict/admin/src/utils/merchant.ts deleted file mode 100644 index 9002511..0000000 --- a/dict/admin/src/utils/merchant.ts +++ /dev/null @@ -1,42 +0,0 @@ -// 获取商户ID -export const getMerchantId = () => { - const merchantId = localStorage.getItem('MerchantId'); - if (merchantId) { - return Number(merchantId); - } - return undefined; -}; - -// 获取商户名称 -export const getMerchantName = () => { - const MerchantName = localStorage.getItem('MerchantName'); - if (MerchantName) { - return MerchantName; - } - return undefined; -}; - -// 获取商户Logo -export const getMerchantAvatar = () => { - const MerchantLogo = localStorage.getItem('MerchantLogo'); - if (MerchantLogo) { - return MerchantLogo; - } - return undefined; -}; - -export const getRoleIdByMerchant = () => { - const id = localStorage.getItem('RoleIdByMerchant'); - if (id) { - return Number(id); - } - return undefined; -}; - -export const getRoleNameByMerchant = () => { - const name = localStorage.getItem('RoleNameByMerchant'); - if (name) { - return name; - } - return undefined; -}; diff --git a/dict/admin/src/utils/on-size-change.ts b/dict/admin/src/utils/on-size-change.ts deleted file mode 100644 index 4cce32c..0000000 --- a/dict/admin/src/utils/on-size-change.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 监听屏幕尺寸改变封装 - */ -import { watch } from 'vue'; -import { storeToRefs } from 'pinia'; -import { useThemeStore } from '@/store/modules/theme'; - -export function onSizeChange(hook: Function) { - if (!hook) { - return; - } - const themeStore = useThemeStore(); - const { contentWidth } = storeToRefs(themeStore); - - watch(contentWidth, () => { - hook(); - }); -} diff --git a/dict/admin/src/utils/oss.js b/dict/admin/src/utils/oss.js deleted file mode 100644 index ace265c..0000000 --- a/dict/admin/src/utils/oss.js +++ /dev/null @@ -1,43 +0,0 @@ -import OSS from 'ali-oss'; -const baseUrl = 'http://oss-aishangjia.oss-cn-shenzhen.aliyuncs.com'; -export const uploadAliOss = async (file, options) => { - // 构建上传文件参数 - - // 获取上传文件所需要的STS Token - // 直接通过node.js上传 - // console.log(token) - const client = new OSS({ - region: 'oss-cn-shenzhen', - accessKeyId: 'LTAI4GKGZ9Z2Z8JZ77c3GNZP', - accessKeySecret: 'BiDkpS7UXj72HWwDWaFZxiXjNFBNCM', - bucket: 'oss-aishangjia', - secure: true - }); - - const headers = { - // 指定该Object被下载时的网页缓存行为。 - 'Cache-Control': 'no-cache', - // 指定该Object被下载时的名称。 - // 指定该Object被下载时的内容编码格式。 - 'Content-Encoding': 'utf-8', - // 指定过期时间,单位为毫秒。 - Expires: '1000', - // 指定Object的存储类型。 - 'x-oss-storage-class': 'Standard', - // 指定初始化分片上传时是否覆盖同名Object。此处设置为true,表示禁止覆盖同名Object。 - 'x-oss-forbid-overwrite': 'true' - }; - - const suffix = file.name.substring(file.name.lastIndexOf('.')); // .txt - const objectName = Date.now() + suffix; - - // object-name可以自定义为文件名(例如file.txt)或目录(例如abc/test/file.txt)的形式,实现将文件上传至当前Bucket或Bucket下的指定目录。 - const result = await client.multipartUpload(objectName, file, { - ...options, - parallel: 4, - partSize: 1024 * 1024 * 5 - }); - - result.url = `${baseUrl}/${result.name}`; - return Promise.resolve(result); -}; diff --git a/dict/admin/src/utils/page-tab-util.ts b/dict/admin/src/utils/page-tab-util.ts deleted file mode 100644 index b04d4be..0000000 --- a/dict/admin/src/utils/page-tab-util.ts +++ /dev/null @@ -1,261 +0,0 @@ -/** - * 页签操作封装 - */ -import { unref } from 'vue'; -import type { RouteLocationNormalizedLoaded } from 'vue-router'; -import type { TabItem, TabRemoveOption } from 'ele-admin-pro/es'; -import { message } from 'ant-design-vue/es'; -import router, { resetDynamicRoutes } from '@/router'; -import { useThemeStore } from '@/store/modules/theme'; -import type { RouteReloadOption } from '@/store/modules/theme'; -import { useUserStore } from '@/store/modules/user'; -import { removeToken } from '@/utils/token-util'; -import { setDocumentTitle } from '@/utils/document-title-util'; -import { - HOME_PATH, - LAYOUT_PATH, - REDIRECT_PATH, - REPEATABLE_TABS -} from '@/config/setting'; -const HOME_ROUTE = HOME_PATH || LAYOUT_PATH; -const BASE_URL = import.meta.env.BASE_URL; - -/** - * 刷新页签参数类型 - */ -export interface TabReloadOptions { - // 是否是主页 - isHome?: boolean; - // 路由地址 - fullPath?: string; -} - -/** - * 刷新当前路由 - */ -export function reloadPageTab(option?: TabReloadOptions) { - if (!option) { - // 刷新当前路由 - const { path, fullPath, query } = unref(router.currentRoute); - if (path.includes(REDIRECT_PATH)) { - return; - } - const isHome = isHomeRoute(unref(router.currentRoute)); - setRouteReload({ - reloadHome: isHome, - reloadPath: isHome ? void 0 : fullPath - }); - router.replace({ - path: REDIRECT_PATH + path, - query - }); - } else { - // 刷新指定页签 - const { fullPath, isHome } = option; - setRouteReload({ - reloadHome: isHome, - reloadPath: isHome ? void 0 : fullPath - }); - router.replace(REDIRECT_PATH + fullPath); - } -} - -/** - * 关闭当前页签 - */ -export function finishPageTab() { - const key = getRouteTabKey(); - removePageTab({ key, active: key }); -} - -/** - * 关闭页签 - */ -export function removePageTab(option: TabRemoveOption) { - useThemeStore() - .tabRemove(option) - .then(({ path, home }) => { - if (path) { - router.push(path); - } else if (home) { - router.push(HOME_ROUTE); - } - }) - .catch(() => { - message.error('当前页签不可关闭'); - }); -} - -/** - * 关闭左侧页签 - */ -export function removeLeftPageTab(option: TabRemoveOption) { - useThemeStore() - .tabRemoveLeft(option) - .then(({ path }) => { - if (path) { - router.push(path); - } - }) - .catch(() => { - message.error('左侧没有可关闭的页签'); - }); -} - -/** - * 关闭右侧页签 - */ -export function removeRightPageTab(option: TabRemoveOption) { - useThemeStore() - .tabRemoveRight(option) - .then(({ path, home }) => { - if (path) { - router.push(path); - } else if (home) { - router.push(HOME_ROUTE); - } - }) - .catch(() => { - message.error('右侧没有可关闭的页签'); - }); -} - -/** - * 关闭其它页签 - */ -export function removeOtherPageTab(option: TabRemoveOption) { - useThemeStore() - .tabRemoveOther(option) - .then(({ path, home }) => { - if (path) { - router.push(path); - } else if (home) { - router.push(HOME_ROUTE); - } - }) - .catch(() => { - message.error('没有可关闭的页签'); - }); -} - -/** - * 关闭全部页签 - * @param active 当前选中页签 - */ -export function removeAllPageTab(active: string) { - useThemeStore() - .tabRemoveAll(active) - .then(({ home }) => { - if (home) { - router.push(HOME_ROUTE); - } - }) - .catch(() => { - message.error('没有可关闭的页签'); - }); -} - -/** - * 登录成功后清空页签 - */ -export function cleanPageTabs() { - useThemeStore().setTabs([]); -} - -/** - * 添加页签 - * @param data 页签数据 - */ -export function addPageTab(data: TabItem | TabItem[]) { - useThemeStore().tabAdd(data); -} - -/** - * 修改页签 - * @param data 页签数据 - */ -export function setPageTab(data: TabItem) { - useThemeStore().tabSetItem(data); -} - -/** - * 修改页签标题 - * @param title 标题 - */ -export function setPageTabTitle(title: string) { - setPageTab({ key: getRouteTabKey(), title }); - setDocumentTitle(title); -} - -/** - * 获取当前路由对应的页签 key - */ -export function getRouteTabKey() { - const { path, fullPath, meta } = unref(router.currentRoute); - const isUnique = meta.tabUnique === false || REPEATABLE_TABS.includes(path); - return isUnique ? fullPath : path; -} - -/** - * 设置主页的组件名称 - * @param components 组件名称 - */ -export function setHomeComponents(components: string[]) { - useThemeStore().setHomeComponents(components); -} - -/** - * 设置路由刷新信息 - * @param option 路由刷新参数 - */ -export function setRouteReload(option: RouteReloadOption | null) { - return useThemeStore().setRouteReload(option); -} - -/** - * 判断路由是否是主页 - * @param route 路由信息 - */ -export function isHomeRoute(route: RouteLocationNormalizedLoaded) { - const { path, matched } = route; - if (HOME_ROUTE === path) { - return true; - } - return ( - matched[0] && - matched[0].path === LAYOUT_PATH && - matched[0].redirect === path - ); -} - -/** - * 登录成功后跳转首页 - * @param from 登录前的地址 - */ -export function goHomeRoute(from?: string) { - router.replace(from || HOME_ROUTE); -} - -/** - * 退出登录 - * @param route 是否使用路由跳转 - * @param from 登录后跳转的地址 - */ -export function logout(route?: boolean, from?: string) { - removeToken(); - // 重置动态路由注册状态 - resetDynamicRoutes(); - // 重置用户状态 - const userStore = useUserStore(); - userStore.resetUserState(); - - if (route) { - router.push({ - path: '/login', - query: from ? { from } : void 0 - }); - } else { - // 这样跳转避免再次登录重复注册动态路由 - location.replace(BASE_URL + 'login' + (from ? '?from=' + from : '')); - } -} diff --git a/dict/admin/src/utils/performance.ts b/dict/admin/src/utils/performance.ts deleted file mode 100644 index 15d03a6..0000000 --- a/dict/admin/src/utils/performance.ts +++ /dev/null @@ -1,263 +0,0 @@ -/** - * 性能监控工具 - */ - -// 性能指标接口 -export interface PerformanceMetrics { - // 页面加载时间 - pageLoadTime: number; - // 首次内容绘制 - fcp: number; - // 最大内容绘制 - lcp: number; - // 首次输入延迟 - fid: number; - // 累积布局偏移 - cls: number; - // 内存使用情况 - memory?: { - used: number; - total: number; - limit: number; - }; -} - -// 性能监控类 -export class PerformanceMonitor { - private metrics: Partial = {}; - private observers: PerformanceObserver[] = []; - - constructor() { - this.init(); - } - - private init() { - // 监听页面加载完成 - if (document.readyState === 'complete') { - this.measurePageLoad(); - } else { - window.addEventListener('load', () => this.measurePageLoad()); - } - - // 监听 Web Vitals - this.observeWebVitals(); - } - - private measurePageLoad() { - const navigation = performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming; - if (navigation) { - this.metrics.pageLoadTime = navigation.loadEventEnd - navigation.fetchStart; - } - } - - private observeWebVitals() { - // FCP (First Contentful Paint) - this.observePerformance('paint', (entries) => { - const fcpEntry = entries.find(entry => entry.name === 'first-contentful-paint'); - if (fcpEntry) { - this.metrics.fcp = fcpEntry.startTime; - } - }); - - // LCP (Largest Contentful Paint) - this.observePerformance('largest-contentful-paint', (entries) => { - const lcpEntry = entries[entries.length - 1]; - if (lcpEntry) { - this.metrics.lcp = lcpEntry.startTime; - } - }); - - // FID (First Input Delay) - this.observePerformance('first-input', (entries) => { - const fidEntry = entries[0]; - if (fidEntry) { - this.metrics.fid = fidEntry.processingStart - fidEntry.startTime; - } - }); - - // CLS (Cumulative Layout Shift) - this.observePerformance('layout-shift', (entries) => { - let clsValue = 0; - entries.forEach(entry => { - if (!entry.hadRecentInput) { - clsValue += entry.value; - } - }); - this.metrics.cls = clsValue; - }); - } - - private observePerformance(type: string, callback: (entries: PerformanceEntry[]) => void) { - try { - const observer = new PerformanceObserver((list) => { - callback(list.getEntries()); - }); - observer.observe({ type, buffered: true }); - this.observers.push(observer); - } catch (error) { - console.warn(`Performance observer for ${type} not supported:`, error); - } - } - - // 获取内存使用情况 - getMemoryUsage(): PerformanceMetrics['memory'] | null { - if ('memory' in performance) { - const memory = (performance as any).memory; - return { - used: Math.round(memory.usedJSHeapSize / 1024 / 1024), - total: Math.round(memory.totalJSHeapSize / 1024 / 1024), - limit: Math.round(memory.jsHeapSizeLimit / 1024 / 1024) - }; - } - return null; - } - - // 获取所有性能指标 - getMetrics(): PerformanceMetrics { - return { - ...this.metrics, - memory: this.getMemoryUsage() - } as PerformanceMetrics; - } - - // 清理观察器 - disconnect() { - this.observers.forEach(observer => observer.disconnect()); - this.observers = []; - } -} - -// 路由性能监控 -export class RoutePerformanceMonitor { - private routeStartTime: number = 0; - private routeMetrics: Map = new Map(); - - startRouteTimer() { - this.routeStartTime = performance.now(); - } - - endRouteTimer(routeName: string) { - if (this.routeStartTime) { - const duration = performance.now() - this.routeStartTime; - - if (!this.routeMetrics.has(routeName)) { - this.routeMetrics.set(routeName, []); - } - - const metrics = this.routeMetrics.get(routeName)!; - metrics.push(duration); - - // 只保留最近10次记录 - if (metrics.length > 10) { - metrics.shift(); - } - - this.routeStartTime = 0; - } - } - - getRouteMetrics(routeName: string) { - const metrics = this.routeMetrics.get(routeName) || []; - if (metrics.length === 0) return null; - - const avg = metrics.reduce((sum, time) => sum + time, 0) / metrics.length; - const min = Math.min(...metrics); - const max = Math.max(...metrics); - - return { avg, min, max, count: metrics.length }; - } - - getAllRouteMetrics() { - const result: Record = {}; - this.routeMetrics.forEach((metrics, routeName) => { - result[routeName] = this.getRouteMetrics(routeName); - }); - return result; - } -} - -// API 性能监控 -export class ApiPerformanceMonitor { - private apiMetrics: Map = new Map(); - - recordApiCall(url: string, duration: number) { - if (!this.apiMetrics.has(url)) { - this.apiMetrics.set(url, []); - } - - const metrics = this.apiMetrics.get(url)!; - metrics.push(duration); - - // 只保留最近20次记录 - if (metrics.length > 20) { - metrics.shift(); - } - } - - getApiMetrics(url: string) { - const metrics = this.apiMetrics.get(url) || []; - if (metrics.length === 0) return null; - - const avg = metrics.reduce((sum, time) => sum + time, 0) / metrics.length; - const min = Math.min(...metrics); - const max = Math.max(...metrics); - - return { avg, min, max, count: metrics.length }; - } - - getSlowApis(threshold: number = 1000) { - const slowApis: Array<{ url: string; avgTime: number }> = []; - - this.apiMetrics.forEach((metrics, url) => { - const avg = metrics.reduce((sum, time) => sum + time, 0) / metrics.length; - if (avg > threshold) { - slowApis.push({ url, avgTime: avg }); - } - }); - - return slowApis.sort((a, b) => b.avgTime - a.avgTime); - } -} - -// 全局性能监控实例 -export const performanceMonitor = new PerformanceMonitor(); -export const routePerformanceMonitor = new RoutePerformanceMonitor(); -export const apiPerformanceMonitor = new ApiPerformanceMonitor(); - -// 性能报告生成器 -export function generatePerformanceReport() { - const metrics = performanceMonitor.getMetrics(); - const routeMetrics = routePerformanceMonitor.getAllRouteMetrics(); - const slowApis = apiPerformanceMonitor.getSlowApis(); - - return { - webVitals: metrics, - routes: routeMetrics, - slowApis, - timestamp: new Date().toISOString() - }; -} - -// 性能警告 -export function checkPerformanceWarnings() { - const metrics = performanceMonitor.getMetrics(); - const warnings: string[] = []; - - if (metrics.lcp && metrics.lcp > 2500) { - warnings.push(`LCP 过慢: ${metrics.lcp.toFixed(2)}ms (建议 < 2500ms)`); - } - - if (metrics.fid && metrics.fid > 100) { - warnings.push(`FID 过慢: ${metrics.fid.toFixed(2)}ms (建议 < 100ms)`); - } - - if (metrics.cls && metrics.cls > 0.1) { - warnings.push(`CLS 过高: ${metrics.cls.toFixed(3)} (建议 < 0.1)`); - } - - if (metrics.memory && metrics.memory.used > metrics.memory.limit * 0.8) { - warnings.push(`内存使用过高: ${metrics.memory.used}MB / ${metrics.memory.limit}MB`); - } - - return warnings; -} diff --git a/dict/admin/src/utils/permission.ts b/dict/admin/src/utils/permission.ts deleted file mode 100644 index 4324d98..0000000 --- a/dict/admin/src/utils/permission.ts +++ /dev/null @@ -1,119 +0,0 @@ -/** - * 按钮级权限控制 - */ -import type { App } from 'vue'; -import { useUserStore } from '@/store/modules/user'; - -/* 判断数组是否有某些值 */ -function arrayHas( - array: (string | undefined)[], - value: string | string[] -): boolean { - if (!value) { - return true; - } - if (!array) { - return false; - } - if (Array.isArray(value)) { - for (let i = 0; i < value.length; i++) { - if (array.indexOf(value[i]) === -1) { - return false; - } - } - return true; - } - return array.indexOf(value) !== -1; -} - -/* 判断数组是否有任意值 */ -function arrayHasAny( - array: (string | undefined)[], - value: string | string[] -): boolean { - if (!value) { - return true; - } - if (!array) { - return false; - } - if (Array.isArray(value)) { - for (let i = 0; i < value.length; i++) { - if (array.indexOf(value[i]) !== -1) { - return true; - } - } - return false; - } - return array.indexOf(value) !== -1; -} - -/** - * 是否有某些角色 - * @param value 角色字符或字符数组 - */ -export function hasRole(value: string | string[]): boolean { - const userStore = useUserStore(); - return arrayHas(userStore?.roles, value); -} - -/** - * 是否有任意角色 - * @param value 角色字符或字符数组 - */ -export function hasAnyRole(value: string | string[]): boolean { - const userStore = useUserStore(); - return arrayHasAny(userStore?.roles, value); -} - -/** - * 是否有某些权限 - * @param value 权限字符或字符数组 - */ -export function hasPermission(value: string | string[]): boolean { - const userStore = useUserStore(); - return arrayHas(userStore?.authorities, value); -} - -/** - * 是否有任意权限 - * @param value 权限字符或字符数组 - */ -export function hasAnyPermission(value: string | string[]): boolean { - const userStore = useUserStore(); - return arrayHasAny(userStore?.authorities, value); -} - -export default { - install(app: App) { - // 添加自定义指令 - app.directive('role', { - mounted: (el, binding) => { - if (!hasRole(binding.value)) { - el.parentNode?.removeChild(el); - } - } - }); - app.directive('any-role', { - mounted: (el, binding) => { - if (!hasAnyRole(binding.value)) { - el.parentNode?.removeChild(el); - } - } - }); - app.directive('permission', { - mounted: (el, binding) => { - if (!hasPermission(binding.value)) { - el.parentNode?.removeChild(el); - } - } - }); - app.directive('any-permission', { - mounted: (el, binding) => { - if (!hasAnyPermission(binding.value)) { - el.parentNode?.removeChild(el); - } - } - }); - } -}; diff --git a/dict/admin/src/utils/plug-uitl.ts b/dict/admin/src/utils/plug-uitl.ts deleted file mode 100644 index bfbb122..0000000 --- a/dict/admin/src/utils/plug-uitl.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { createVNode } from 'vue'; -import { Company } from '@/api/system/company/model'; -import { message, Modal } from 'ant-design-vue'; -import { ExclamationCircleOutlined } from '@ant-design/icons-vue'; -import { messageLoading } from 'ele-admin-pro'; -import { clone } from '@/api/system/menu'; -import useFormData from '@/utils/use-form-data'; -import { Menu } from '@/api/system/menu/model'; - -// 表单数据 -const { form } = useFormData
({ - title: '', - icon: '', - path: '', - component: '', - tenantId: undefined, - tenantName: '' -}); - -/** - * 一键克隆 - * @param item - */ -export const onClone = (item: Company) => { - const tenantId = Number(localStorage.getItem('TenantId')); - if (tenantId == item.tenantId) { - message.error('不能克隆自己'); - return false; - } - // 提交状态 - Modal.confirm({ - title: '确认操作吗?', - content: `将复制【${item.tenantName}】的所有菜单和权限(不含数据),原有企业数据不会删除。`, - icon: createVNode(ExclamationCircleOutlined), - maskClosable: true, - onOk: () => { - const hide = messageLoading('模块安装中请稍等...', 0); - form.tenantId = item.tenantId; - clone(form) - .then((msg) => { - hide(); - message.success(msg); - setTimeout(() => { - window.open('/', '_self'); - }, 1000); - }) - .catch((e) => { - hide(); - message.error(e.message); - }); - } - }); -}; diff --git a/dict/admin/src/utils/port-config-manager.ts b/dict/admin/src/utils/port-config-manager.ts deleted file mode 100644 index d9997c9..0000000 --- a/dict/admin/src/utils/port-config-manager.ts +++ /dev/null @@ -1,357 +0,0 @@ -/** - * 端口配置管理器 - * 集成环境变量和智能端口管理 - */ - -import type { PortStrategy } from '@/lib/port-manager'; -import type { Environment } from '@/lib/port-strategy'; - -// 端口配置接口 -export interface PortEnvironmentConfig { - // 基础配置 - strategy: 'auto' | 'manual' | 'tenant-based' | 'sequential'; - basePort: number; - portRangeStart: number; - portRangeEnd: number; - - // 租户配置 - tenantPortOffset: number; - environmentPortOffset: number; - - // 行为配置 - autoDetect: boolean; - strictMode: boolean; - cacheEnabled: boolean; - cacheExpiry: number; - - // 开发服务器配置 - devHost: string; - openBrowser: boolean; - corsEnabled: boolean; - httpsEnabled: boolean; -} - -// 配置验证结果 -export interface ConfigValidationResult { - isValid: boolean; - errors: string[]; - warnings: string[]; - recommendations: string[]; -} - -// 端口配置管理器 -export class PortConfigManager { - private config: PortEnvironmentConfig; - private environment: Environment; - - constructor() { - this.environment = this.detectEnvironment(); - this.config = this.loadConfiguration(); - this.validateConfiguration(); - } - - /** - * 检测当前环境 - */ - private detectEnvironment(): Environment { - // 在 Vite 配置阶段,import.meta.env 可能不可用,使用 process.env - const nodeEnv = (typeof process !== 'undefined' ? process.env.NODE_ENV : undefined) || - (typeof import.meta !== 'undefined' && import.meta.env ? import.meta.env.NODE_ENV : undefined) || - 'development'; - - switch (nodeEnv.toLowerCase()) { - case 'production': - case 'prod': - return 'production'; - case 'test': - case 'testing': - return 'test'; - case 'staging': - case 'stage': - return 'staging'; - default: - return 'development'; - } - } - - /** - * 加载配置 - */ - private loadConfiguration(): PortEnvironmentConfig { - // 获取环境变量的辅助函数 - const getEnv = (key: string, defaultValue?: string) => { - if (typeof process !== 'undefined' && process.env) { - return process.env[key]; - } - if (typeof import.meta !== 'undefined' && import.meta.env) { - return import.meta.env[key]; - } - return defaultValue; - }; - - return { - // 基础配置 - strategy: (getEnv('VITE_PORT_STRATEGY') as any) || 'auto', - basePort: parseInt(getEnv('VITE_BASE_PORT') || '3000'), - portRangeStart: parseInt(getEnv('VITE_PORT_RANGE_START') || '3000'), - portRangeEnd: parseInt(getEnv('VITE_PORT_RANGE_END') || '9999'), - - // 租户配置 - tenantPortOffset: parseInt(getEnv('VITE_TENANT_PORT_OFFSET') || '10'), - environmentPortOffset: parseInt(getEnv('VITE_ENVIRONMENT_PORT_OFFSET') || '1000'), - - // 行为配置 - autoDetect: getEnv('VITE_PORT_AUTO_DETECT') !== 'false', - strictMode: getEnv('VITE_PORT_STRICT_MODE') === 'true', - cacheEnabled: getEnv('VITE_PORT_CACHE_ENABLED') !== 'false', - cacheExpiry: parseInt(getEnv('VITE_PORT_CACHE_EXPIRY') || '86400000'), // 24小时 - - // 开发服务器配置 - devHost: getEnv('VITE_DEV_HOST') || 'localhost', - openBrowser: getEnv('VITE_DEV_OPEN_BROWSER') !== 'false', - corsEnabled: getEnv('VITE_DEV_CORS_ENABLED') !== 'false', - httpsEnabled: getEnv('VITE_DEV_HTTPS_ENABLED') === 'true' - }; - } - - /** - * 验证配置 - */ - private validateConfiguration(): ConfigValidationResult { - const errors: string[] = []; - const warnings: string[] = []; - const recommendations: string[] = []; - - // 验证端口范围 - if (this.config.portRangeStart >= this.config.portRangeEnd) { - errors.push('端口范围无效:起始端口必须小于结束端口'); - } - - if (this.config.portRangeStart < 1024 && this.environment === 'production') { - warnings.push('生产环境使用系统端口(<1024)可能需要管理员权限'); - } - - // 验证基础端口 - if (this.config.basePort < this.config.portRangeStart || - this.config.basePort > this.config.portRangeEnd) { - errors.push('基础端口不在允许的端口范围内'); - } - - // 验证租户偏移 - if (this.config.tenantPortOffset <= 0) { - warnings.push('租户端口偏移为0可能导致端口冲突'); - } - - // 环境特定验证 - switch (this.environment) { - case 'development': - if (this.config.httpsEnabled) { - warnings.push('开发环境启用HTTPS可能增加配置复杂度'); - } - if (!this.config.autoDetect) { - recommendations.push('开发环境建议启用端口自动检测'); - } - break; - - case 'production': - if (!this.config.httpsEnabled) { - warnings.push('生产环境建议启用HTTPS'); - } - if (this.config.autoDetect) { - warnings.push('生产环境不建议启用端口自动检测'); - } - if (!this.config.strictMode) { - recommendations.push('生产环境建议启用严格模式'); - } - break; - - case 'test': - if (this.config.openBrowser) { - recommendations.push('测试环境建议禁用自动打开浏览器'); - } - break; - } - - // 缓存配置验证 - if (this.config.cacheEnabled && this.config.cacheExpiry < 60000) { - warnings.push('缓存过期时间过短可能影响性能'); - } - - const result = { - isValid: errors.length === 0, - errors, - warnings, - recommendations - }; - - // 输出验证结果 - if (errors.length > 0) { - console.error('❌ 端口配置验证失败:', errors); - } - if (warnings.length > 0) { - console.warn('⚠️ 端口配置警告:', warnings); - } - if (recommendations.length > 0) { - console.info('💡 端口配置建议:', recommendations); - } - - return result; - } - - /** - * 获取当前配置 - */ - getConfig(): PortEnvironmentConfig { - return { ...this.config }; - } - - /** - * 获取端口策略配置 - */ - getPortStrategy(): PortStrategy { - return { - basePort: this.config.basePort, - portRange: [this.config.portRangeStart, this.config.portRangeEnd], - tenantOffset: this.config.tenantPortOffset, - environmentOffset: this.config.environmentPortOffset, - maxRetries: this.config.strictMode ? 10 : 50 - }; - } - - /** - * 获取开发服务器配置 - */ - getDevServerConfig(): { - host: string; - port?: number; - open: boolean; - cors: boolean; - https: boolean; - strictPort: boolean; - } { - return { - host: this.config.devHost, - open: this.config.openBrowser, - cors: this.config.corsEnabled, - https: this.config.httpsEnabled, - strictPort: this.config.strictMode - }; - } - - /** - * 获取环境信息 - */ - getEnvironmentInfo(): { - current: Environment; - config: PortEnvironmentConfig; - validation: ConfigValidationResult; - recommendations: string[]; - } { - const validation = this.validateConfiguration(); - const recommendations: string[] = []; - - // 基于环境生成建议 - switch (this.environment) { - case 'development': - recommendations.push('开发环境:优先考虑便利性和调试体验'); - recommendations.push('建议启用热重载和自动刷新功能'); - break; - case 'test': - recommendations.push('测试环境:注重隔离性和可重复性'); - recommendations.push('建议配置独立的端口范围避免冲突'); - break; - case 'production': - recommendations.push('生产环境:优先考虑安全性和稳定性'); - recommendations.push('建议使用固定端口和负载均衡'); - break; - } - - return { - current: this.environment, - config: this.config, - validation, - recommendations: [...validation.recommendations, ...recommendations] - }; - } - - /** - * 更新配置 - */ - updateConfig(updates: Partial): ConfigValidationResult { - this.config = { ...this.config, ...updates }; - return this.validateConfiguration(); - } - - /** - * 重置为默认配置 - */ - resetToDefaults(): void { - this.config = this.loadConfiguration(); - console.log('🔄 端口配置已重置为默认值'); - } - - /** - * 导出配置 - */ - exportConfig(): string { - const configLines = [ - '# 智能端口管理配置', - `VITE_PORT_STRATEGY=${this.config.strategy}`, - `VITE_BASE_PORT=${this.config.basePort}`, - `VITE_PORT_RANGE_START=${this.config.portRangeStart}`, - `VITE_PORT_RANGE_END=${this.config.portRangeEnd}`, - `VITE_TENANT_PORT_OFFSET=${this.config.tenantPortOffset}`, - `VITE_ENVIRONMENT_PORT_OFFSET=${this.config.environmentPortOffset}`, - `VITE_PORT_AUTO_DETECT=${this.config.autoDetect}`, - `VITE_PORT_STRICT_MODE=${this.config.strictMode}`, - `VITE_PORT_CACHE_ENABLED=${this.config.cacheEnabled}`, - `VITE_PORT_CACHE_EXPIRY=${this.config.cacheExpiry}`, - '', - '# 开发服务器配置', - `VITE_DEV_HOST=${this.config.devHost}`, - `VITE_DEV_OPEN_BROWSER=${this.config.openBrowser}`, - `VITE_DEV_CORS_ENABLED=${this.config.corsEnabled}`, - `VITE_DEV_HTTPS_ENABLED=${this.config.httpsEnabled}` - ]; - - return configLines.join('\n'); - } - - /** - * 获取配置摘要 - */ - getConfigSummary(): { - environment: Environment; - strategy: string; - portRange: string; - features: string[]; - status: 'healthy' | 'warning' | 'error'; - } { - const validation = this.validateConfiguration(); - const features: string[] = []; - - if (this.config.autoDetect) features.push('自动检测'); - if (this.config.cacheEnabled) features.push('缓存启用'); - if (this.config.strictMode) features.push('严格模式'); - if (this.config.httpsEnabled) features.push('HTTPS'); - if (this.config.corsEnabled) features.push('CORS'); - - let status: 'healthy' | 'warning' | 'error' = 'healthy'; - if (validation.errors.length > 0) { - status = 'error'; - } else if (validation.warnings.length > 0) { - status = 'warning'; - } - - return { - environment: this.environment, - strategy: this.config.strategy, - portRange: `${this.config.portRangeStart}-${this.config.portRangeEnd}`, - features, - status - }; - } -} - -// 导出默认实例 -export const portConfigManager = new PortConfigManager(); diff --git a/dict/admin/src/utils/request.ts b/dict/admin/src/utils/request.ts deleted file mode 100644 index 1285742..0000000 --- a/dict/admin/src/utils/request.ts +++ /dev/null @@ -1,116 +0,0 @@ -/** - * axios 实例 - */ -import axios from 'axios'; -import type { AxiosResponse } from 'axios'; -import { unref } from 'vue'; -import router from '@/router'; -import { Modal } from 'ant-design-vue'; -import { API_BASE_URL, TOKEN_HEADER_NAME, LAYOUT_PATH } from '@/config/setting'; -import { getToken, setToken } from './token-util'; -import { logout } from './page-tab-util'; -import type { ApiResult } from '@/api'; -import { getHostname, getTenantId } from '@/utils/domain'; -import { getMerchantId } from "@/utils/merchant"; - -// 获取API基础地址的函数 -const getBaseUrl = (): string => { - // 尝试从配置store获取后台配置的API地址 - try { - // 如果store中没有,则尝试从localStorage获取 - const ApiUrl = localStorage.getItem('ApiUrl'); - if (ApiUrl && import.meta.env.PROD) { - return ApiUrl; - } - } catch (error) { - console.warn('获取后台配置API地址失败:', error); - } - - // 如果后台没有配置API地址,则使用本地配置 - console.log('使用本地配置的API地址:', API_BASE_URL); - return API_BASE_URL; -}; - -const service = axios.create({ - baseURL: getBaseUrl() -}); - -/** - * 添加请求拦截器 - */ -service.interceptors.request.use( - (config) => { - const TENANT_ID = getTenantId(); - const token = getToken(); - // 添加 token 到 header - if (token && config.headers) { - config.headers.common[TOKEN_HEADER_NAME] = token; - } - // 获取租户ID - if (config.headers) { - // 附加企业ID - const companyId = localStorage.getItem('CompanyId'); - if (companyId) { - config.headers.common['CompanyId'] = companyId; - } - // 附加商户ID - if (getMerchantId()) { - config.headers.common['MerchantId'] = getMerchantId(); - } - // 通过网站域名获取租户ID - if (getHostname()) { - config.headers.common['Domain'] = getHostname(); - } - // 解析二级域名获取租户ID - if (getTenantId()) { - config.headers.common['TenantId'] = getTenantId(); - return config; - } - if (TENANT_ID) { - config.headers.common['TenantId'] = TENANT_ID; - return config; - } - } - return config; - }, - (error) => { - return Promise.reject(error); - } -); - -/** - * 添加响应拦截器 - */ -service.interceptors.response.use( - (res: AxiosResponse>) => { - // 登录过期处理 - if (res.data?.code === 401) { - const currentPath = unref(router.currentRoute).path; - if (currentPath == LAYOUT_PATH) { - logout(true); - } else { - Modal.destroyAll(); - Modal.info({ - title: '系统提示', - content: '登录状态已过期, 请退出重新登录!', - okText: '重新登录', - onOk: () => { - logout(false, currentPath); - } - }); - } - return Promise.reject(new Error(res.data.message)); - } - // token 自动续期 - const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()]; - if (token) { - setToken(token); - } - return res; - }, - (error) => { - return Promise.reject(error); - } -); - -export default service; diff --git a/dict/admin/src/utils/shop.ts b/dict/admin/src/utils/shop.ts deleted file mode 100644 index 6fc7aa4..0000000 --- a/dict/admin/src/utils/shop.ts +++ /dev/null @@ -1,90 +0,0 @@ -// 支付方式 -export function getPayType(index?: number): any { - const payType = [ - { - value: 0, - label: '余额支付', - }, - { - value: 1, - label: '微信支付', - }, - { - value: 2, - label: '积分', - }, - { - value: 3, - label: '支付宝', - }, - { - value: 4, - label: '现金', - }, - { - value: 5, - label: 'POS机', - }, - { - value: 6, - label: '会员卡', - }, - // { - // value: 7, - // label: 'VIP年卡', - // }, - // { - // value: 8, - // label: 'VIP次卡', - // }, - // { - // value: 9, - // icon: 'IdcardOutlined', - // label: 'IC月卡', - // }, - // { - // value: 10, - // icon: 'IdcardOutlined', - // label: 'IC年卡', - // }, - // { - // value: 11, - // icon: 'IdcardOutlined', - // label: 'IC次卡', - // }, - // { - // value: 12, - // icon: '', - // label: '免费', - // }, - // { - // value: 13, - // icon: 'IdcardOutlined', - // label: 'VIP充值卡', - // }, - // { - // value: 14, - // icon: 'IdcardOutlined', - // label: 'IC充值卡', - // }, - // { - // value: 15, - // icon: '', - // label: '积分支付', - // }, - // { - // value: 16, - // icon: 'IdcardOutlined', - // label: 'VIP季卡', - // }, - // { - // value: 17, - // icon: 'IdcardOutlined', - // label: 'IC季卡', - // }, - ]; - if(index){ - return payType[index].label || ''; - } - return payType; -} diff --git a/dict/admin/src/utils/token-util.ts b/dict/admin/src/utils/token-util.ts deleted file mode 100644 index a878c9d..0000000 --- a/dict/admin/src/utils/token-util.ts +++ /dev/null @@ -1,71 +0,0 @@ -/** - * token 操作封装 - */ -import { APP_SECRET, TOKEN_STORE_NAME } from '@/config/setting'; -import md5 from 'js-md5'; - -/** - * 获取缓存的 token - */ -export function getToken(): string | null { - const token = localStorage.getItem(TOKEN_STORE_NAME); - if (!token) { - return sessionStorage.getItem(TOKEN_STORE_NAME); - } - return token; -} - -/** - * 缓存 token - * @param token token - * @param remember 是否永久存储 - */ -export function setToken(token?: string, remember?: boolean) { - removeToken(); - if (token) { - if (remember) { - localStorage.setItem(TOKEN_STORE_NAME, token); - } else { - sessionStorage.setItem(TOKEN_STORE_NAME, token); - } - } -} - -/** - * 移除 token - */ -export function removeToken() { - localStorage.removeItem(TOKEN_STORE_NAME); - sessionStorage.removeItem(TOKEN_STORE_NAME); - localStorage.clear(); -} - -// 封装签名 -export function getSign(form) { - if (form == null) { - return false; - } - let sign = ''; - form.timestamp = new Date().getTime(); - form.version = 'v3'; - const arr = objKeySort(form); - Object.keys(arr).forEach((k) => { - if (form[k] != null && form[k] != '') { - sign = sign.concat(form[k]).concat('-'); - } - }); - sign = sign.concat(APP_SECRET); - return md5(sign); -} -// 参数按照字母顺序排序 -export const objKeySort = (obj) => { - //排序的函数 - const newkey = Object.keys(obj).sort(); - //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组 - const newObj = {}; //创建一个新的对象,用于存放排好序的键值对 - for (let i = 0; i < newkey.length; i++) { - //遍历newkey数组 - newObj[newkey[i]] = obj[newkey[i]]; //向新创建的对象中按照排好的顺序依次增加键值对 - } - return newObj; //返回排好序的新对象 -}; diff --git a/dict/admin/src/utils/type-guards.ts b/dict/admin/src/utils/type-guards.ts deleted file mode 100644 index 9e98806..0000000 --- a/dict/admin/src/utils/type-guards.ts +++ /dev/null @@ -1,105 +0,0 @@ -/** - * 类型保护工具函数 - */ - -/** - * 检查值是否为有效的数字 - */ -export function isValidNumber(value: unknown): value is number { - return typeof value === 'number' && !isNaN(value) && isFinite(value); -} - -/** - * 检查值是否为有效的字符串 - */ -export function isValidString(value: unknown): value is string { - return typeof value === 'string' && value.length > 0; -} - -/** - * 检查对象是否有有效的 ID - */ -export function hasValidId(obj: unknown): obj is { id: number } { - return ( - typeof obj === 'object' && - obj !== null && - 'id' in obj && - isValidNumber((obj as any).id) - ); -} - -/** - * 安全获取数字值,提供默认值 - */ -export function safeNumber(value: unknown, defaultValue = 0): number { - if (isValidNumber(value)) { - return value; - } - if (typeof value === 'string') { - const parsed = Number(value); - return isValidNumber(parsed) ? parsed : defaultValue; - } - return defaultValue; -} - -/** - * 安全获取字符串值,提供默认值 - */ -export function safeString(value: unknown, defaultValue = ''): string { - return typeof value === 'string' ? value : defaultValue; -} - -/** - * 检查 API 响应是否有效 - */ -export function isValidApiResponse(response: unknown): response is { count: number; list?: T[] } { - return ( - typeof response === 'object' && - response !== null && - 'count' in response && - isValidNumber((response as any).count) - ); -} - -/** - * 检查统计数据是否有效 - */ -export function isValidStatistics(data: unknown): data is { - id?: number; - userCount?: number; - orderCount?: number; - totalSales?: number; -} { - return ( - typeof data === 'object' && - data !== null - ); -} - -/** - * 安全的对象合并,过滤掉 undefined 值 - */ -export function safeMerge>( - target: T, - source: Partial -): T { - const result = { ...target }; - - for (const [key, value] of Object.entries(source)) { - if (value !== undefined) { - result[key as keyof T] = value; - } - } - - return result; -} - -/** - * 创建带有默认值的对象 - */ -export function withDefaults>( - data: Partial, - defaults: T -): T { - return safeMerge(defaults, data); -} diff --git a/dict/admin/src/utils/use-echarts.ts b/dict/admin/src/utils/use-echarts.ts deleted file mode 100644 index 06531d8..0000000 --- a/dict/admin/src/utils/use-echarts.ts +++ /dev/null @@ -1,76 +0,0 @@ -/** - * echarts 自动切换主题、重置尺寸封装 - */ -import type { Ref } from 'vue'; -import { - ref, - reactive, - unref, - provide, - watch, - onActivated, - onDeactivated, - nextTick -} from 'vue'; -import { storeToRefs } from 'pinia'; -import { THEME_KEY } from 'vue-echarts'; -import type VChart from 'vue-echarts'; -import { ChartTheme, ChartThemeDark } from 'ele-admin-pro/es'; -import { useThemeStore } from '@/store/modules/theme'; -import { onSizeChange } from './on-size-change'; - -export default function (chartRefs: Ref | null>[]) { - // 当前框架是否是暗黑主题 - const themeStore = useThemeStore(); - const { darkMode } = storeToRefs(themeStore); - // 是否为 deactivated 状态 - const deactivated = ref(false); - // 当前图表是否是暗黑主题 - const isDark = ref(unref(darkMode)); - // 当前图表主题 - const chartsTheme = reactive({ - ...(unref(isDark) ? ChartThemeDark : ChartTheme) - }); - - // 设置图表主题 - provide(THEME_KEY, chartsTheme); - - /* 重置图表尺寸 */ - const resizeCharts = () => { - chartRefs.forEach((chartRef) => { - unref(chartRef)?.resize(); - }); - }; - - /* 屏幕尺寸变化监听 */ - onSizeChange(() => { - resizeCharts(); - }); - - /* 更改图表主题 */ - const changeTheme = (dark: boolean) => { - isDark.value = dark; - Object.assign(chartsTheme, dark ? ChartThemeDark : ChartTheme); - }; - - onActivated(() => { - deactivated.value = false; - nextTick(() => { - if (unref(isDark) !== unref(darkMode)) { - changeTheme(unref(darkMode)); - } else { - resizeCharts(); - } - }); - }); - - onDeactivated(() => { - deactivated.value = true; - }); - - watch(darkMode, (dark) => { - if (!unref(deactivated)) { - changeTheme(dark); - } - }); -} diff --git a/dict/admin/src/utils/use-form-data.ts b/dict/admin/src/utils/use-form-data.ts deleted file mode 100644 index a3e6511..0000000 --- a/dict/admin/src/utils/use-form-data.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { reactive } from 'vue'; - -/** - * 表单数据 hook - * @param initValue 默认值 - */ -export default function (initValue?: T) { - const form = reactive({ ...initValue } as T); - - const resetFields = () => { - Object.keys(form).forEach((key) => { - form[key] = initValue ? initValue[key] : void 0; - }); - }; - - const assignFields = (data: object) => { - Object.keys(form).forEach((key) => { - form[key] = data[key]; - }); - }; - - return { - form, - // 重置为初始值 - resetFields, - // 赋值不改变字段 - assignFields - }; -} diff --git a/dict/admin/src/utils/use-search.ts b/dict/admin/src/utils/use-search.ts deleted file mode 100644 index 5638737..0000000 --- a/dict/admin/src/utils/use-search.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { reactive } from 'vue'; - -/** - * 搜索表单 hook - * @param initValue 默认值 - */ -export default function (initValue?: T) { - const where = reactive({ ...initValue } as T); - - const resetFields = () => { - Object.keys(where).forEach((key) => { - where[key] = initValue ? initValue[key] : void 0; - }); - }; - - const assignFields = (data: object) => { - Object.keys(where).forEach((key) => { - where[key] = data[key]; - }); - }; - - return { - where, - resetFields, - assignFields - }; -} diff --git a/dict/admin/src/views/bsyx/bsyxClass/components/bszxClassEdit.vue b/dict/admin/src/views/bsyx/bsyxClass/components/bszxClassEdit.vue deleted file mode 100644 index f82ef60..0000000 --- a/dict/admin/src/views/bsyx/bsyxClass/components/bszxClassEdit.vue +++ /dev/null @@ -1,199 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxClass/components/search.vue b/dict/admin/src/views/bsyx/bsyxClass/components/search.vue deleted file mode 100644 index 7f935dc..0000000 --- a/dict/admin/src/views/bsyx/bsyxClass/components/search.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxClass/index.vue b/dict/admin/src/views/bsyx/bsyxClass/index.vue deleted file mode 100644 index 7d558de..0000000 --- a/dict/admin/src/views/bsyx/bsyxClass/index.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bsyx/bsyxGrade/components/bszxGradeEdit.vue b/dict/admin/src/views/bsyx/bsyxGrade/components/bszxGradeEdit.vue deleted file mode 100644 index e76adc5..0000000 --- a/dict/admin/src/views/bsyx/bsyxGrade/components/bszxGradeEdit.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxGrade/components/search.vue b/dict/admin/src/views/bsyx/bsyxGrade/components/search.vue deleted file mode 100644 index 0e4397c..0000000 --- a/dict/admin/src/views/bsyx/bsyxGrade/components/search.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxGrade/index.vue b/dict/admin/src/views/bsyx/bsyxGrade/index.vue deleted file mode 100644 index 4a9a7f3..0000000 --- a/dict/admin/src/views/bsyx/bsyxGrade/index.vue +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bsyx/bsyxOrder/components/bszxPayEdit.vue b/dict/admin/src/views/bsyx/bsyxOrder/components/bszxPayEdit.vue deleted file mode 100644 index 876727d..0000000 --- a/dict/admin/src/views/bsyx/bsyxOrder/components/bszxPayEdit.vue +++ /dev/null @@ -1,249 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxOrder/components/orderInfo.vue b/dict/admin/src/views/bsyx/bsyxOrder/components/orderInfo.vue deleted file mode 100644 index 6c88446..0000000 --- a/dict/admin/src/views/bsyx/bsyxOrder/components/orderInfo.vue +++ /dev/null @@ -1,566 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/bsyx/bsyxOrder/components/search.vue b/dict/admin/src/views/bsyx/bsyxOrder/components/search.vue deleted file mode 100644 index 7346f4c..0000000 --- a/dict/admin/src/views/bsyx/bsyxOrder/components/search.vue +++ /dev/null @@ -1,204 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxOrder/index.vue b/dict/admin/src/views/bsyx/bsyxOrder/index.vue deleted file mode 100644 index 669eb00..0000000 --- a/dict/admin/src/views/bsyx/bsyxOrder/index.vue +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bsyx/bsyxPay/components/bszxPayEdit.vue b/dict/admin/src/views/bsyx/bsyxPay/components/bszxPayEdit.vue deleted file mode 100644 index 876727d..0000000 --- a/dict/admin/src/views/bsyx/bsyxPay/components/bszxPayEdit.vue +++ /dev/null @@ -1,249 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxPay/components/search.vue b/dict/admin/src/views/bsyx/bsyxPay/components/search.vue deleted file mode 100644 index 7c9ed1c..0000000 --- a/dict/admin/src/views/bsyx/bsyxPay/components/search.vue +++ /dev/null @@ -1,230 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxPay/index.vue b/dict/admin/src/views/bsyx/bsyxPay/index.vue deleted file mode 100644 index 7c9ab08..0000000 --- a/dict/admin/src/views/bsyx/bsyxPay/index.vue +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bsyx/bsyxPayRanking/components/bszxPayRankingEdit.vue b/dict/admin/src/views/bsyx/bsyxPayRanking/components/bszxPayRankingEdit.vue deleted file mode 100644 index f2e7fa7..0000000 --- a/dict/admin/src/views/bsyx/bsyxPayRanking/components/bszxPayRankingEdit.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxPayRanking/components/search.vue b/dict/admin/src/views/bsyx/bsyxPayRanking/components/search.vue deleted file mode 100644 index e99b42d..0000000 --- a/dict/admin/src/views/bsyx/bsyxPayRanking/components/search.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bsyx/bsyxPayRanking/index.vue b/dict/admin/src/views/bsyx/bsyxPayRanking/index.vue deleted file mode 100644 index f9f1cb2..0000000 --- a/dict/admin/src/views/bsyx/bsyxPayRanking/index.vue +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bsyx/extra.vue b/dict/admin/src/views/bsyx/extra.vue deleted file mode 100644 index a178ce5..0000000 --- a/dict/admin/src/views/bsyx/extra.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxBm/components/bszxBmEdit.vue b/dict/admin/src/views/bszx/bszxBm/components/bszxBmEdit.vue deleted file mode 100644 index dd3d6de..0000000 --- a/dict/admin/src/views/bszx/bszxBm/components/bszxBmEdit.vue +++ /dev/null @@ -1,283 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxBm/components/search.vue b/dict/admin/src/views/bszx/bszxBm/components/search.vue deleted file mode 100644 index 795cd47..0000000 --- a/dict/admin/src/views/bszx/bszxBm/components/search.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxBm/index.vue b/dict/admin/src/views/bszx/bszxBm/index.vue deleted file mode 100644 index 55acc41..0000000 --- a/dict/admin/src/views/bszx/bszxBm/index.vue +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxBranch/components/bszxBranchEdit.vue b/dict/admin/src/views/bszx/bszxBranch/components/bszxBranchEdit.vue deleted file mode 100644 index ec33edb..0000000 --- a/dict/admin/src/views/bszx/bszxBranch/components/bszxBranchEdit.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxBranch/index.vue b/dict/admin/src/views/bszx/bszxBranch/index.vue deleted file mode 100644 index b249064..0000000 --- a/dict/admin/src/views/bszx/bszxBranch/index.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxClass/components/bszxClassEdit.vue b/dict/admin/src/views/bszx/bszxClass/components/bszxClassEdit.vue deleted file mode 100644 index 0cb6701..0000000 --- a/dict/admin/src/views/bszx/bszxClass/components/bszxClassEdit.vue +++ /dev/null @@ -1,205 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxClass/components/search.vue b/dict/admin/src/views/bszx/bszxClass/components/search.vue deleted file mode 100644 index bf43337..0000000 --- a/dict/admin/src/views/bszx/bszxClass/components/search.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxClass/index.vue b/dict/admin/src/views/bszx/bszxClass/index.vue deleted file mode 100644 index a65c8a1..0000000 --- a/dict/admin/src/views/bszx/bszxClass/index.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxGrade/components/bszxGradeEdit.vue b/dict/admin/src/views/bszx/bszxGrade/components/bszxGradeEdit.vue deleted file mode 100644 index e010c2d..0000000 --- a/dict/admin/src/views/bszx/bszxGrade/components/bszxGradeEdit.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxGrade/components/search.vue b/dict/admin/src/views/bszx/bszxGrade/components/search.vue deleted file mode 100644 index ff51191..0000000 --- a/dict/admin/src/views/bszx/bszxGrade/components/search.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxGrade/index.vue b/dict/admin/src/views/bszx/bszxGrade/index.vue deleted file mode 100644 index 79d71b1..0000000 --- a/dict/admin/src/views/bszx/bszxGrade/index.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxOrder/components/bszxPayEdit.vue b/dict/admin/src/views/bszx/bszxOrder/components/bszxPayEdit.vue deleted file mode 100644 index 876727d..0000000 --- a/dict/admin/src/views/bszx/bszxOrder/components/bszxPayEdit.vue +++ /dev/null @@ -1,249 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxOrder/components/orderInfo.vue b/dict/admin/src/views/bszx/bszxOrder/components/orderInfo.vue deleted file mode 100644 index 6c88446..0000000 --- a/dict/admin/src/views/bszx/bszxOrder/components/orderInfo.vue +++ /dev/null @@ -1,566 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/bszx/bszxOrder/components/search.vue b/dict/admin/src/views/bszx/bszxOrder/components/search.vue deleted file mode 100644 index 7346f4c..0000000 --- a/dict/admin/src/views/bszx/bszxOrder/components/search.vue +++ /dev/null @@ -1,204 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxOrder/index.vue b/dict/admin/src/views/bszx/bszxOrder/index.vue deleted file mode 100644 index 669eb00..0000000 --- a/dict/admin/src/views/bszx/bszxOrder/index.vue +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxPay/components/bszxPayEdit.vue b/dict/admin/src/views/bszx/bszxPay/components/bszxPayEdit.vue deleted file mode 100644 index 876727d..0000000 --- a/dict/admin/src/views/bszx/bszxPay/components/bszxPayEdit.vue +++ /dev/null @@ -1,249 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPay/components/search.vue b/dict/admin/src/views/bszx/bszxPay/components/search.vue deleted file mode 100644 index 43631a7..0000000 --- a/dict/admin/src/views/bszx/bszxPay/components/search.vue +++ /dev/null @@ -1,235 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPay/index.vue b/dict/admin/src/views/bszx/bszxPay/index.vue deleted file mode 100644 index 24e5f4b..0000000 --- a/dict/admin/src/views/bszx/bszxPay/index.vue +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxPayCert/components/appBszxPayEdit.vue b/dict/admin/src/views/bszx/bszxPayCert/components/appBszxPayEdit.vue deleted file mode 100644 index ff753a4..0000000 --- a/dict/admin/src/views/bszx/bszxPayCert/components/appBszxPayEdit.vue +++ /dev/null @@ -1,270 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPayCert/components/search.vue b/dict/admin/src/views/bszx/bszxPayCert/components/search.vue deleted file mode 100644 index cbbebef..0000000 --- a/dict/admin/src/views/bszx/bszxPayCert/components/search.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPayCert/index.vue b/dict/admin/src/views/bszx/bszxPayCert/index.vue deleted file mode 100644 index d7ad56b..0000000 --- a/dict/admin/src/views/bszx/bszxPayCert/index.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxPayRanking/components/bszxPayRankingEdit.vue b/dict/admin/src/views/bszx/bszxPayRanking/components/bszxPayRankingEdit.vue deleted file mode 100644 index 3c241f9..0000000 --- a/dict/admin/src/views/bszx/bszxPayRanking/components/bszxPayRankingEdit.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPayRanking/components/search.vue b/dict/admin/src/views/bszx/bszxPayRanking/components/search.vue deleted file mode 100644 index e99b42d..0000000 --- a/dict/admin/src/views/bszx/bszxPayRanking/components/search.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPayRanking/index.vue b/dict/admin/src/views/bszx/bszxPayRanking/index.vue deleted file mode 100644 index 7af7390..0000000 --- a/dict/admin/src/views/bszx/bszxPayRanking/index.vue +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/bszxPayRanking2/components/bszxPayRankingEdit.vue b/dict/admin/src/views/bszx/bszxPayRanking2/components/bszxPayRankingEdit.vue deleted file mode 100644 index 614a8d4..0000000 --- a/dict/admin/src/views/bszx/bszxPayRanking2/components/bszxPayRankingEdit.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPayRanking2/components/search.vue b/dict/admin/src/views/bszx/bszxPayRanking2/components/search.vue deleted file mode 100644 index e661f3a..0000000 --- a/dict/admin/src/views/bszx/bszxPayRanking2/components/search.vue +++ /dev/null @@ -1,217 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/bszxPayRanking2/index.vue b/dict/admin/src/views/bszx/bszxPayRanking2/index.vue deleted file mode 100644 index 0727a05..0000000 --- a/dict/admin/src/views/bszx/bszxPayRanking2/index.vue +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/bszx/dashboard/components/search.vue b/dict/admin/src/views/bszx/dashboard/components/search.vue deleted file mode 100644 index c893ea6..0000000 --- a/dict/admin/src/views/bszx/dashboard/components/search.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/dashboard/components/websiteEdit.vue b/dict/admin/src/views/bszx/dashboard/components/websiteEdit.vue deleted file mode 100644 index d68758f..0000000 --- a/dict/admin/src/views/bszx/dashboard/components/websiteEdit.vue +++ /dev/null @@ -1,413 +0,0 @@ - - - - diff --git a/dict/admin/src/views/bszx/dashboard/index.vue b/dict/admin/src/views/bszx/dashboard/index.vue deleted file mode 100644 index f3d5c91..0000000 --- a/dict/admin/src/views/bszx/dashboard/index.vue +++ /dev/null @@ -1,264 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/bszx/extra.vue b/dict/admin/src/views/bszx/extra.vue deleted file mode 100644 index d03a691..0000000 --- a/dict/admin/src/views/bszx/extra.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/clear-cache/index.vue b/dict/admin/src/views/cms/clear-cache/index.vue deleted file mode 100644 index 2f3c46e..0000000 --- a/dict/admin/src/views/cms/clear-cache/index.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsAd/components/cmsAdEdit.vue b/dict/admin/src/views/cms/cmsAd/components/cmsAdEdit.vue deleted file mode 100644 index ecc2176..0000000 --- a/dict/admin/src/views/cms/cmsAd/components/cmsAdEdit.vue +++ /dev/null @@ -1,402 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsAd/components/search.vue b/dict/admin/src/views/cms/cmsAd/components/search.vue deleted file mode 100644 index 3bb8202..0000000 --- a/dict/admin/src/views/cms/cmsAd/components/search.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsAd/index.vue b/dict/admin/src/views/cms/cmsAd/index.vue deleted file mode 100644 index 4780aed..0000000 --- a/dict/admin/src/views/cms/cmsAd/index.vue +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsAdRecord/components/cmsAdRecordEdit.vue b/dict/admin/src/views/cms/cmsAdRecord/components/cmsAdRecordEdit.vue deleted file mode 100644 index f00325f..0000000 --- a/dict/admin/src/views/cms/cmsAdRecord/components/cmsAdRecordEdit.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsAdRecord/index.vue b/dict/admin/src/views/cms/cmsAdRecord/index.vue deleted file mode 100644 index f0485ff..0000000 --- a/dict/admin/src/views/cms/cmsAdRecord/index.vue +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsArticle/components/Import.vue b/dict/admin/src/views/cms/cmsArticle/components/Import.vue deleted file mode 100644 index 9f343ec..0000000 --- a/dict/admin/src/views/cms/cmsArticle/components/Import.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticle/components/articleEdit.vue b/dict/admin/src/views/cms/cmsArticle/components/articleEdit.vue deleted file mode 100644 index 3bee8b4..0000000 --- a/dict/admin/src/views/cms/cmsArticle/components/articleEdit.vue +++ /dev/null @@ -1,1554 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/cms/cmsArticle/components/articleUpdate.vue b/dict/admin/src/views/cms/cmsArticle/components/articleUpdate.vue deleted file mode 100644 index d42dbe8..0000000 --- a/dict/admin/src/views/cms/cmsArticle/components/articleUpdate.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticle/components/search.vue b/dict/admin/src/views/cms/cmsArticle/components/search.vue deleted file mode 100644 index 559f51f..0000000 --- a/dict/admin/src/views/cms/cmsArticle/components/search.vue +++ /dev/null @@ -1,326 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticle/dictionary/source-select.vue b/dict/admin/src/views/cms/cmsArticle/dictionary/source-select.vue deleted file mode 100644 index 72598a3..0000000 --- a/dict/admin/src/views/cms/cmsArticle/dictionary/source-select.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticle/index.vue b/dict/admin/src/views/cms/cmsArticle/index.vue deleted file mode 100644 index 356f364..0000000 --- a/dict/admin/src/views/cms/cmsArticle/index.vue +++ /dev/null @@ -1,467 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/cmsArticleComment/index.vue b/dict/admin/src/views/cms/cmsArticleComment/index.vue deleted file mode 100644 index 53a5724..0000000 --- a/dict/admin/src/views/cms/cmsArticleComment/index.vue +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsArticleContent/components/cmsArticleContentEdit.vue b/dict/admin/src/views/cms/cmsArticleContent/components/cmsArticleContentEdit.vue deleted file mode 100644 index a72e001..0000000 --- a/dict/admin/src/views/cms/cmsArticleContent/components/cmsArticleContentEdit.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticleContent/index.vue b/dict/admin/src/views/cms/cmsArticleContent/index.vue deleted file mode 100644 index 08477c5..0000000 --- a/dict/admin/src/views/cms/cmsArticleContent/index.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsArticleCount/components/cmsArticleCountEdit.vue b/dict/admin/src/views/cms/cmsArticleCount/components/cmsArticleCountEdit.vue deleted file mode 100644 index 459909c..0000000 --- a/dict/admin/src/views/cms/cmsArticleCount/components/cmsArticleCountEdit.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticleCount/index.vue b/dict/admin/src/views/cms/cmsArticleCount/index.vue deleted file mode 100644 index 9e1c744..0000000 --- a/dict/admin/src/views/cms/cmsArticleCount/index.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsArticleLike/components/cmsArticleLikeEdit.vue b/dict/admin/src/views/cms/cmsArticleLike/components/cmsArticleLikeEdit.vue deleted file mode 100644 index 7cc2867..0000000 --- a/dict/admin/src/views/cms/cmsArticleLike/components/cmsArticleLikeEdit.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsArticleLike/index.vue b/dict/admin/src/views/cms/cmsArticleLike/index.vue deleted file mode 100644 index 39b159e..0000000 --- a/dict/admin/src/views/cms/cmsArticleLike/index.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsDesign/components/cmsDesignEdit.vue b/dict/admin/src/views/cms/cmsDesign/components/cmsDesignEdit.vue deleted file mode 100644 index 2cab7e2..0000000 --- a/dict/admin/src/views/cms/cmsDesign/components/cmsDesignEdit.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsDesign/components/search.vue b/dict/admin/src/views/cms/cmsDesign/components/search.vue deleted file mode 100644 index 347cfeb..0000000 --- a/dict/admin/src/views/cms/cmsDesign/components/search.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsDesign/index.vue b/dict/admin/src/views/cms/cmsDesign/index.vue deleted file mode 100644 index eb1680f..0000000 --- a/dict/admin/src/views/cms/cmsDesign/index.vue +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsDomain/components/cmsDomainEdit.vue b/dict/admin/src/views/cms/cmsDomain/components/cmsDomainEdit.vue deleted file mode 100644 index b60eafd..0000000 --- a/dict/admin/src/views/cms/cmsDomain/components/cmsDomainEdit.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsDomain/components/search.vue b/dict/admin/src/views/cms/cmsDomain/components/search.vue deleted file mode 100644 index 29a7248..0000000 --- a/dict/admin/src/views/cms/cmsDomain/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsDomain/index.vue b/dict/admin/src/views/cms/cmsDomain/index.vue deleted file mode 100644 index 7908007..0000000 --- a/dict/admin/src/views/cms/cmsDomain/index.vue +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsForm/components/cmsFormEdit.vue b/dict/admin/src/views/cms/cmsForm/components/cmsFormEdit.vue deleted file mode 100644 index 67f73bb..0000000 --- a/dict/admin/src/views/cms/cmsForm/components/cmsFormEdit.vue +++ /dev/null @@ -1,465 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsForm/index.vue b/dict/admin/src/views/cms/cmsForm/index.vue deleted file mode 100644 index 52bbe37..0000000 --- a/dict/admin/src/views/cms/cmsForm/index.vue +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsFormRecord/components/cmsFormRecordEdit.vue b/dict/admin/src/views/cms/cmsFormRecord/components/cmsFormRecordEdit.vue deleted file mode 100644 index 421ac55..0000000 --- a/dict/admin/src/views/cms/cmsFormRecord/components/cmsFormRecordEdit.vue +++ /dev/null @@ -1,239 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsFormRecord/index.vue b/dict/admin/src/views/cms/cmsFormRecord/index.vue deleted file mode 100644 index 7a3b68c..0000000 --- a/dict/admin/src/views/cms/cmsFormRecord/index.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsLang/components/cmsLangEdit.vue b/dict/admin/src/views/cms/cmsLang/components/cmsLangEdit.vue deleted file mode 100644 index 302d2ce..0000000 --- a/dict/admin/src/views/cms/cmsLang/components/cmsLangEdit.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsLang/components/search.vue b/dict/admin/src/views/cms/cmsLang/components/search.vue deleted file mode 100644 index e9dc1ef..0000000 --- a/dict/admin/src/views/cms/cmsLang/components/search.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsLang/index.vue b/dict/admin/src/views/cms/cmsLang/index.vue deleted file mode 100644 index 57daed5..0000000 --- a/dict/admin/src/views/cms/cmsLang/index.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsLangLog/components/cmsLangLogEdit.vue b/dict/admin/src/views/cms/cmsLangLog/components/cmsLangLogEdit.vue deleted file mode 100644 index 16251ce..0000000 --- a/dict/admin/src/views/cms/cmsLangLog/components/cmsLangLogEdit.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsLangLog/index.vue b/dict/admin/src/views/cms/cmsLangLog/index.vue deleted file mode 100644 index 6b92efe..0000000 --- a/dict/admin/src/views/cms/cmsLangLog/index.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsLink/components/cmsLinkEdit.vue b/dict/admin/src/views/cms/cmsLink/components/cmsLinkEdit.vue deleted file mode 100644 index f8418a8..0000000 --- a/dict/admin/src/views/cms/cmsLink/components/cmsLinkEdit.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsLink/components/linkUpdate.vue b/dict/admin/src/views/cms/cmsLink/components/linkUpdate.vue deleted file mode 100644 index 20c4ed9..0000000 --- a/dict/admin/src/views/cms/cmsLink/components/linkUpdate.vue +++ /dev/null @@ -1,199 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsLink/components/search.vue b/dict/admin/src/views/cms/cmsLink/components/search.vue deleted file mode 100644 index d2951b4..0000000 --- a/dict/admin/src/views/cms/cmsLink/components/search.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsLink/index.vue b/dict/admin/src/views/cms/cmsLink/index.vue deleted file mode 100644 index e20c4e3..0000000 --- a/dict/admin/src/views/cms/cmsLink/index.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsModel/components/cmsModelEdit.vue b/dict/admin/src/views/cms/cmsModel/components/cmsModelEdit.vue deleted file mode 100644 index ea92414..0000000 --- a/dict/admin/src/views/cms/cmsModel/components/cmsModelEdit.vue +++ /dev/null @@ -1,316 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsModel/components/search.vue b/dict/admin/src/views/cms/cmsModel/components/search.vue deleted file mode 100644 index ad9200f..0000000 --- a/dict/admin/src/views/cms/cmsModel/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsModel/index.vue b/dict/admin/src/views/cms/cmsModel/index.vue deleted file mode 100644 index 7b3f62d..0000000 --- a/dict/admin/src/views/cms/cmsModel/index.vue +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsNavigation/components/components/designRecordEdit.vue b/dict/admin/src/views/cms/cmsNavigation/components/components/designRecordEdit.vue deleted file mode 100644 index 56d7b03..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/components/components/designRecordEdit.vue +++ /dev/null @@ -1,245 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsNavigation/components/components/search.vue b/dict/admin/src/views/cms/cmsNavigation/components/components/search.vue deleted file mode 100644 index 5c483b2..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/components/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsNavigation/components/design-edit.vue b/dict/admin/src/views/cms/cmsNavigation/components/design-edit.vue deleted file mode 100644 index dd62e95..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/components/design-edit.vue +++ /dev/null @@ -1,482 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsNavigation/components/extra.vue b/dict/admin/src/views/cms/cmsNavigation/components/extra.vue deleted file mode 100644 index 939e784..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/components/extra.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsNavigation/components/navigation-edit.vue b/dict/admin/src/views/cms/cmsNavigation/components/navigation-edit.vue deleted file mode 100644 index 6fe9665..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/components/navigation-edit.vue +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/cms/cmsNavigation/components/search.vue b/dict/admin/src/views/cms/cmsNavigation/components/search.vue deleted file mode 100644 index 190409e..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/components/search.vue +++ /dev/null @@ -1,184 +0,0 @@ - - - - \ No newline at end of file diff --git a/dict/admin/src/views/cms/cmsNavigation/index.vue b/dict/admin/src/views/cms/cmsNavigation/index.vue deleted file mode 100644 index 6ec725b..0000000 --- a/dict/admin/src/views/cms/cmsNavigation/index.vue +++ /dev/null @@ -1,590 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/cmsOrder/components/orderInfo.vue b/dict/admin/src/views/cms/cmsOrder/components/orderInfo.vue deleted file mode 100644 index 98b9302..0000000 --- a/dict/admin/src/views/cms/cmsOrder/components/orderInfo.vue +++ /dev/null @@ -1,586 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/cms/cmsOrder/components/search.vue b/dict/admin/src/views/cms/cmsOrder/components/search.vue deleted file mode 100644 index d995f61..0000000 --- a/dict/admin/src/views/cms/cmsOrder/components/search.vue +++ /dev/null @@ -1,222 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsOrder/index.vue b/dict/admin/src/views/cms/cmsOrder/index.vue deleted file mode 100644 index b6fca43..0000000 --- a/dict/admin/src/views/cms/cmsOrder/index.vue +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsSetting/index.vue b/dict/admin/src/views/cms/cmsSetting/index.vue deleted file mode 100644 index adbc88a..0000000 --- a/dict/admin/src/views/cms/cmsSetting/index.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsStatistics/components/cmsStatisticsEdit.vue b/dict/admin/src/views/cms/cmsStatistics/components/cmsStatisticsEdit.vue deleted file mode 100644 index 6589714..0000000 --- a/dict/admin/src/views/cms/cmsStatistics/components/cmsStatisticsEdit.vue +++ /dev/null @@ -1,387 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsStatistics/index.vue b/dict/admin/src/views/cms/cmsStatistics/index.vue deleted file mode 100644 index 36fc7d6..0000000 --- a/dict/admin/src/views/cms/cmsStatistics/index.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/cmsTemplate/components/cmsTemplateEdit.vue b/dict/admin/src/views/cms/cmsTemplate/components/cmsTemplateEdit.vue deleted file mode 100644 index bc1e5f3..0000000 --- a/dict/admin/src/views/cms/cmsTemplate/components/cmsTemplateEdit.vue +++ /dev/null @@ -1,289 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsTemplate/index.vue b/dict/admin/src/views/cms/cmsTemplate/index.vue deleted file mode 100644 index c820749..0000000 --- a/dict/admin/src/views/cms/cmsTemplate/index.vue +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsWebsite/components/search.vue b/dict/admin/src/views/cms/cmsWebsite/components/search.vue deleted file mode 100644 index c893ea6..0000000 --- a/dict/admin/src/views/cms/cmsWebsite/components/search.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsWebsite/components/websiteEdit.vue b/dict/admin/src/views/cms/cmsWebsite/components/websiteEdit.vue deleted file mode 100644 index d1bf85f..0000000 --- a/dict/admin/src/views/cms/cmsWebsite/components/websiteEdit.vue +++ /dev/null @@ -1,418 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsWebsite/index.vue b/dict/admin/src/views/cms/cmsWebsite/index.vue deleted file mode 100644 index 2001904..0000000 --- a/dict/admin/src/views/cms/cmsWebsite/index.vue +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteField/components/Import.vue b/dict/admin/src/views/cms/cmsWebsiteField/components/Import.vue deleted file mode 100644 index 175842a..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteField/components/Import.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteField/components/edit.vue b/dict/admin/src/views/cms/cmsWebsiteField/components/edit.vue deleted file mode 100644 index 82af32c..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteField/components/edit.vue +++ /dev/null @@ -1,315 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteField/components/search.vue b/dict/admin/src/views/cms/cmsWebsiteField/components/search.vue deleted file mode 100644 index fb1adb0..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteField/components/search.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteField/index.vue b/dict/admin/src/views/cms/cmsWebsiteField/index.vue deleted file mode 100644 index bb44c1f..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteField/index.vue +++ /dev/null @@ -1,284 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteSetting/components/cmsWebsiteSettingEdit.vue b/dict/admin/src/views/cms/cmsWebsiteSetting/components/cmsWebsiteSettingEdit.vue deleted file mode 100644 index ca7b8d8..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteSetting/components/cmsWebsiteSettingEdit.vue +++ /dev/null @@ -1,257 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteSetting/components/search.vue b/dict/admin/src/views/cms/cmsWebsiteSetting/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteSetting/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/cmsWebsiteSetting/index.vue b/dict/admin/src/views/cms/cmsWebsiteSetting/index.vue deleted file mode 100644 index 72ab5f6..0000000 --- a/dict/admin/src/views/cms/cmsWebsiteSetting/index.vue +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/dashboard/components/search.vue b/dict/admin/src/views/cms/dashboard/components/search.vue deleted file mode 100644 index c893ea6..0000000 --- a/dict/admin/src/views/cms/dashboard/components/search.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/dashboard/components/websiteEdit.vue b/dict/admin/src/views/cms/dashboard/components/websiteEdit.vue deleted file mode 100644 index d68758f..0000000 --- a/dict/admin/src/views/cms/dashboard/components/websiteEdit.vue +++ /dev/null @@ -1,413 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/dashboard/index.vue b/dict/admin/src/views/cms/dashboard/index.vue deleted file mode 100644 index 86e77d0..0000000 --- a/dict/admin/src/views/cms/dashboard/index.vue +++ /dev/null @@ -1,258 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/dict/components/dict-edit.vue b/dict/admin/src/views/cms/dict/components/dict-edit.vue deleted file mode 100644 index 0dce1dc..0000000 --- a/dict/admin/src/views/cms/dict/components/dict-edit.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/dict/index.vue b/dict/admin/src/views/cms/dict/index.vue deleted file mode 100644 index e4f85e7..0000000 --- a/dict/admin/src/views/cms/dict/index.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/file/components/video-edit.vue b/dict/admin/src/views/cms/file/components/video-edit.vue deleted file mode 100644 index 255a930..0000000 --- a/dict/admin/src/views/cms/file/components/video-edit.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/file/index.vue b/dict/admin/src/views/cms/file/index.vue deleted file mode 100644 index f162e85..0000000 --- a/dict/admin/src/views/cms/file/index.vue +++ /dev/null @@ -1,307 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/file/player/index.vue b/dict/admin/src/views/cms/file/player/index.vue deleted file mode 100644 index 9be0669..0000000 --- a/dict/admin/src/views/cms/file/player/index.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/help/components/articleEdit.vue b/dict/admin/src/views/cms/help/components/articleEdit.vue deleted file mode 100644 index 6fc6515..0000000 --- a/dict/admin/src/views/cms/help/components/articleEdit.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/help/components/search.vue b/dict/admin/src/views/cms/help/components/search.vue deleted file mode 100644 index 31f7000..0000000 --- a/dict/admin/src/views/cms/help/components/search.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/help/index.vue b/dict/admin/src/views/cms/help/index.vue deleted file mode 100644 index 3c92aa8..0000000 --- a/dict/admin/src/views/cms/help/index.vue +++ /dev/null @@ -1,381 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/photo/components/Extra.vue b/dict/admin/src/views/cms/photo/components/Extra.vue deleted file mode 100644 index b34c408..0000000 --- a/dict/admin/src/views/cms/photo/components/Extra.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/photo/components/photo-edit.vue b/dict/admin/src/views/cms/photo/components/photo-edit.vue deleted file mode 100644 index 8c27ef3..0000000 --- a/dict/admin/src/views/cms/photo/components/photo-edit.vue +++ /dev/null @@ -1,276 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/photo/dict/components/dict-edit.vue b/dict/admin/src/views/cms/photo/dict/components/dict-edit.vue deleted file mode 100644 index a32c1c4..0000000 --- a/dict/admin/src/views/cms/photo/dict/components/dict-edit.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/photo/dict/index.vue b/dict/admin/src/views/cms/photo/dict/index.vue deleted file mode 100644 index ddabefb..0000000 --- a/dict/admin/src/views/cms/photo/dict/index.vue +++ /dev/null @@ -1,210 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/photo/image.vue b/dict/admin/src/views/cms/photo/image.vue deleted file mode 100644 index c6f4579..0000000 --- a/dict/admin/src/views/cms/photo/image.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/photo/index.vue b/dict/admin/src/views/cms/photo/index.vue deleted file mode 100644 index 26e92e5..0000000 --- a/dict/admin/src/views/cms/photo/index.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/cms/photo/list.vue b/dict/admin/src/views/cms/photo/list.vue deleted file mode 100644 index b85d220..0000000 --- a/dict/admin/src/views/cms/photo/list.vue +++ /dev/null @@ -1,348 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/photo/player/index.vue b/dict/admin/src/views/cms/photo/player/index.vue deleted file mode 100644 index f5e3310..0000000 --- a/dict/admin/src/views/cms/photo/player/index.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/setting/components/field.vue b/dict/admin/src/views/cms/setting/components/field.vue deleted file mode 100644 index 162d39d..0000000 --- a/dict/admin/src/views/cms/setting/components/field.vue +++ /dev/null @@ -1,250 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/setting/components/website-field-edit.vue b/dict/admin/src/views/cms/setting/components/website-field-edit.vue deleted file mode 100644 index 1a52dce..0000000 --- a/dict/admin/src/views/cms/setting/components/website-field-edit.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/setting/components/website-field-search.vue b/dict/admin/src/views/cms/setting/components/website-field-search.vue deleted file mode 100644 index c72d354..0000000 --- a/dict/admin/src/views/cms/setting/components/website-field-search.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/dict/admin/src/views/cms/setting/components/website-field.vue b/dict/admin/src/views/cms/setting/components/website-field.vue deleted file mode 100644 index 8571a5b..0000000 --- a/dict/admin/src/views/cms/setting/components/website-field.vue +++ /dev/null @@ -1,189 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/setting/index.vue b/dict/admin/src/views/cms/setting/index.vue deleted file mode 100644 index 1bf3416..0000000 --- a/dict/admin/src/views/cms/setting/index.vue +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/cms/video/components/video-edit.vue b/dict/admin/src/views/cms/video/components/video-edit.vue deleted file mode 100644 index 255a930..0000000 --- a/dict/admin/src/views/cms/video/components/video-edit.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - - diff --git a/dict/admin/src/views/cms/video/index.vue b/dict/admin/src/views/cms/video/index.vue deleted file mode 100644 index d81a1b0..0000000 --- a/dict/admin/src/views/cms/video/index.vue +++ /dev/null @@ -1,321 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/cms/video/player/index.vue b/dict/admin/src/views/cms/video/player/index.vue deleted file mode 100644 index 9be0669..0000000 --- a/dict/admin/src/views/cms/video/player/index.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/Extra.vue b/dict/admin/src/views/dormitory/Extra.vue deleted file mode 100644 index ca57e69..0000000 --- a/dict/admin/src/views/dormitory/Extra.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dashboard/components/search.vue b/dict/admin/src/views/dormitory/dashboard/components/search.vue deleted file mode 100644 index c893ea6..0000000 --- a/dict/admin/src/views/dormitory/dashboard/components/search.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dashboard/components/websiteEdit.vue b/dict/admin/src/views/dormitory/dashboard/components/websiteEdit.vue deleted file mode 100644 index d68758f..0000000 --- a/dict/admin/src/views/dormitory/dashboard/components/websiteEdit.vue +++ /dev/null @@ -1,413 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dashboard/index.vue b/dict/admin/src/views/dormitory/dashboard/index.vue deleted file mode 100644 index ee301c0..0000000 --- a/dict/admin/src/views/dormitory/dashboard/index.vue +++ /dev/null @@ -1,295 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryApply/components/search.vue b/dict/admin/src/views/dormitory/dormitoryApply/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/dormitory/dormitoryApply/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryApply/index.vue b/dict/admin/src/views/dormitory/dormitoryApply/index.vue deleted file mode 100644 index 8fc9368..0000000 --- a/dict/admin/src/views/dormitory/dormitoryApply/index.vue +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryBed/components/dormitoryBedEdit.vue b/dict/admin/src/views/dormitory/dormitoryBed/components/dormitoryBedEdit.vue deleted file mode 100644 index ba27d02..0000000 --- a/dict/admin/src/views/dormitory/dormitoryBed/components/dormitoryBedEdit.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryBed/components/search.vue b/dict/admin/src/views/dormitory/dormitoryBed/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/dormitory/dormitoryBed/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryBed/index.vue b/dict/admin/src/views/dormitory/dormitoryBed/index.vue deleted file mode 100644 index a9f4164..0000000 --- a/dict/admin/src/views/dormitory/dormitoryBed/index.vue +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryBuilding/components/dormitoryBuildingEdit.vue b/dict/admin/src/views/dormitory/dormitoryBuilding/components/dormitoryBuildingEdit.vue deleted file mode 100644 index 40840fe..0000000 --- a/dict/admin/src/views/dormitory/dormitoryBuilding/components/dormitoryBuildingEdit.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryBuilding/components/search.vue b/dict/admin/src/views/dormitory/dormitoryBuilding/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/dormitory/dormitoryBuilding/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryBuilding/index.vue b/dict/admin/src/views/dormitory/dormitoryBuilding/index.vue deleted file mode 100644 index 20d7ed1..0000000 --- a/dict/admin/src/views/dormitory/dormitoryBuilding/index.vue +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryFloor/components/dormitoryFloorEdit.vue b/dict/admin/src/views/dormitory/dormitoryFloor/components/dormitoryFloorEdit.vue deleted file mode 100644 index faf586e..0000000 --- a/dict/admin/src/views/dormitory/dormitoryFloor/components/dormitoryFloorEdit.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryFloor/components/search.vue b/dict/admin/src/views/dormitory/dormitoryFloor/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/dormitory/dormitoryFloor/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryFloor/index.vue b/dict/admin/src/views/dormitory/dormitoryFloor/index.vue deleted file mode 100644 index eba0be8..0000000 --- a/dict/admin/src/views/dormitory/dormitoryFloor/index.vue +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryRecord/components/dormitoryRecordEdit.vue b/dict/admin/src/views/dormitory/dormitoryRecord/components/dormitoryRecordEdit.vue deleted file mode 100644 index 674c9ef..0000000 --- a/dict/admin/src/views/dormitory/dormitoryRecord/components/dormitoryRecordEdit.vue +++ /dev/null @@ -1,205 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryRecord/components/search.vue b/dict/admin/src/views/dormitory/dormitoryRecord/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/dormitory/dormitoryRecord/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/dormitoryRecord/index.vue b/dict/admin/src/views/dormitory/dormitoryRecord/index.vue deleted file mode 100644 index 393fa3c..0000000 --- a/dict/admin/src/views/dormitory/dormitoryRecord/index.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/dormitory/user/components/Extra.vue b/dict/admin/src/views/dormitory/user/components/Extra.vue deleted file mode 100644 index 77aec38..0000000 --- a/dict/admin/src/views/dormitory/user/components/Extra.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/org-select.vue b/dict/admin/src/views/dormitory/user/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/dormitory/user/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/role-select.vue b/dict/admin/src/views/dormitory/user/components/role-select.vue deleted file mode 100644 index 60fc5ad..0000000 --- a/dict/admin/src/views/dormitory/user/components/role-select.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/search.vue b/dict/admin/src/views/dormitory/user/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/dormitory/user/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/sex-select.vue b/dict/admin/src/views/dormitory/user/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/dormitory/user/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/user-edit.vue b/dict/admin/src/views/dormitory/user/components/user-edit.vue deleted file mode 100644 index bf34412..0000000 --- a/dict/admin/src/views/dormitory/user/components/user-edit.vue +++ /dev/null @@ -1,363 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/user-import.vue b/dict/admin/src/views/dormitory/user/components/user-import.vue deleted file mode 100644 index f5b1088..0000000 --- a/dict/admin/src/views/dormitory/user/components/user-import.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/user-info.vue b/dict/admin/src/views/dormitory/user/components/user-info.vue deleted file mode 100644 index a737d2f..0000000 --- a/dict/admin/src/views/dormitory/user/components/user-info.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/user-search.vue b/dict/admin/src/views/dormitory/user/components/user-search.vue deleted file mode 100644 index b68abad..0000000 --- a/dict/admin/src/views/dormitory/user/components/user-search.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/components/userEdit.vue b/dict/admin/src/views/dormitory/user/components/userEdit.vue deleted file mode 100644 index 3a59597..0000000 --- a/dict/admin/src/views/dormitory/user/components/userEdit.vue +++ /dev/null @@ -1,274 +0,0 @@ - - - - diff --git a/dict/admin/src/views/dormitory/user/details/index.vue b/dict/admin/src/views/dormitory/user/details/index.vue deleted file mode 100644 index 9e535df..0000000 --- a/dict/admin/src/views/dormitory/user/details/index.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/dormitory/user/index.vue b/dict/admin/src/views/dormitory/user/index.vue deleted file mode 100644 index 44d6043..0000000 --- a/dict/admin/src/views/dormitory/user/index.vue +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/count/components/hjmFenceEdit.vue b/dict/admin/src/views/hjm/count/components/hjmFenceEdit.vue deleted file mode 100644 index 5d3ae2d..0000000 --- a/dict/admin/src/views/hjm/count/components/hjmFenceEdit.vue +++ /dev/null @@ -1,306 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/count/components/search.vue b/dict/admin/src/views/hjm/count/components/search.vue deleted file mode 100644 index f7509dc..0000000 --- a/dict/admin/src/views/hjm/count/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/count/index.vue b/dict/admin/src/views/hjm/count/index.vue deleted file mode 100644 index 6baa8ee..0000000 --- a/dict/admin/src/views/hjm/count/index.vue +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmBxLog/components/hjmBxLogEdit.vue b/dict/admin/src/views/hjm/hjmBxLog/components/hjmBxLogEdit.vue deleted file mode 100644 index 48c5723..0000000 --- a/dict/admin/src/views/hjm/hjmBxLog/components/hjmBxLogEdit.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmBxLog/components/search.vue b/dict/admin/src/views/hjm/hjmBxLog/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/hjm/hjmBxLog/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmBxLog/index.vue b/dict/admin/src/views/hjm/hjmBxLog/index.vue deleted file mode 100644 index 565f266..0000000 --- a/dict/admin/src/views/hjm/hjmBxLog/index.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmCar/components/Extra.vue b/dict/admin/src/views/hjm/hjmCar/components/Extra.vue deleted file mode 100644 index ed37d61..0000000 --- a/dict/admin/src/views/hjm/hjmCar/components/Extra.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmCar/components/Import.vue b/dict/admin/src/views/hjm/hjmCar/components/Import.vue deleted file mode 100644 index 26209a8..0000000 --- a/dict/admin/src/views/hjm/hjmCar/components/Import.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmCar/components/hjmCarEdit.vue b/dict/admin/src/views/hjm/hjmCar/components/hjmCarEdit.vue deleted file mode 100644 index 7a16bf5..0000000 --- a/dict/admin/src/views/hjm/hjmCar/components/hjmCarEdit.vue +++ /dev/null @@ -1,486 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmCar/components/qrcode.vue b/dict/admin/src/views/hjm/hjmCar/components/qrcode.vue deleted file mode 100644 index 7fb667b..0000000 --- a/dict/admin/src/views/hjm/hjmCar/components/qrcode.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/dict/admin/src/views/hjm/hjmCar/components/search.vue b/dict/admin/src/views/hjm/hjmCar/components/search.vue deleted file mode 100644 index 5aa770e..0000000 --- a/dict/admin/src/views/hjm/hjmCar/components/search.vue +++ /dev/null @@ -1,456 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmCar/index.vue b/dict/admin/src/views/hjm/hjmCar/index.vue deleted file mode 100644 index e9b698b..0000000 --- a/dict/admin/src/views/hjm/hjmCar/index.vue +++ /dev/null @@ -1,410 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/hjm/hjmChoices/components/hjmChoicesEdit.vue b/dict/admin/src/views/hjm/hjmChoices/components/hjmChoicesEdit.vue deleted file mode 100644 index 9e3d2d5..0000000 --- a/dict/admin/src/views/hjm/hjmChoices/components/hjmChoicesEdit.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmChoices/components/search.vue b/dict/admin/src/views/hjm/hjmChoices/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/hjm/hjmChoices/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmChoices/index.vue b/dict/admin/src/views/hjm/hjmChoices/index.vue deleted file mode 100644 index c70202f..0000000 --- a/dict/admin/src/views/hjm/hjmChoices/index.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmCourses/components/search.vue b/dict/admin/src/views/hjm/hjmCourses/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/hjm/hjmCourses/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmCourses/index.vue b/dict/admin/src/views/hjm/hjmCourses/index.vue deleted file mode 100644 index f676f4d..0000000 --- a/dict/admin/src/views/hjm/hjmCourses/index.vue +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmExamLog/components/hjmExamLogEdit.vue b/dict/admin/src/views/hjm/hjmExamLog/components/hjmExamLogEdit.vue deleted file mode 100644 index fe69c91..0000000 --- a/dict/admin/src/views/hjm/hjmExamLog/components/hjmExamLogEdit.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmExamLog/components/search.vue b/dict/admin/src/views/hjm/hjmExamLog/components/search.vue deleted file mode 100644 index 0b06bf1..0000000 --- a/dict/admin/src/views/hjm/hjmExamLog/components/search.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmExamLog/index.vue b/dict/admin/src/views/hjm/hjmExamLog/index.vue deleted file mode 100644 index a37deb9..0000000 --- a/dict/admin/src/views/hjm/hjmExamLog/index.vue +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmFence/components/hjmFenceEdit.vue b/dict/admin/src/views/hjm/hjmFence/components/hjmFenceEdit.vue deleted file mode 100644 index 5d3ae2d..0000000 --- a/dict/admin/src/views/hjm/hjmFence/components/hjmFenceEdit.vue +++ /dev/null @@ -1,306 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmFence/components/search.vue b/dict/admin/src/views/hjm/hjmFence/components/search.vue deleted file mode 100644 index f7509dc..0000000 --- a/dict/admin/src/views/hjm/hjmFence/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmFence/index.vue b/dict/admin/src/views/hjm/hjmFence/index.vue deleted file mode 100644 index 6642f1b..0000000 --- a/dict/admin/src/views/hjm/hjmFence/index.vue +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmGpsLog/components/hjmGpsLogEdit.vue b/dict/admin/src/views/hjm/hjmGpsLog/components/hjmGpsLogEdit.vue deleted file mode 100644 index 8b7594e..0000000 --- a/dict/admin/src/views/hjm/hjmGpsLog/components/hjmGpsLogEdit.vue +++ /dev/null @@ -1,205 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmGpsLog/components/search.vue b/dict/admin/src/views/hjm/hjmGpsLog/components/search.vue deleted file mode 100644 index 339f305..0000000 --- a/dict/admin/src/views/hjm/hjmGpsLog/components/search.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmGpsLog/index.vue b/dict/admin/src/views/hjm/hjmGpsLog/index.vue deleted file mode 100644 index 345d625..0000000 --- a/dict/admin/src/views/hjm/hjmGpsLog/index.vue +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmQuestions/components/Extra.vue b/dict/admin/src/views/hjm/hjmQuestions/components/Extra.vue deleted file mode 100644 index a4b536d..0000000 --- a/dict/admin/src/views/hjm/hjmQuestions/components/Extra.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmQuestions/components/Import.vue b/dict/admin/src/views/hjm/hjmQuestions/components/Import.vue deleted file mode 100644 index 9f343ec..0000000 --- a/dict/admin/src/views/hjm/hjmQuestions/components/Import.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmQuestions/components/hjmQuestionsEdit.vue b/dict/admin/src/views/hjm/hjmQuestions/components/hjmQuestionsEdit.vue deleted file mode 100644 index 1bb3284..0000000 --- a/dict/admin/src/views/hjm/hjmQuestions/components/hjmQuestionsEdit.vue +++ /dev/null @@ -1,432 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmQuestions/components/search.vue b/dict/admin/src/views/hjm/hjmQuestions/components/search.vue deleted file mode 100644 index 10a6ff0..0000000 --- a/dict/admin/src/views/hjm/hjmQuestions/components/search.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmQuestions/index.vue b/dict/admin/src/views/hjm/hjmQuestions/index.vue deleted file mode 100644 index 0ba9b4f..0000000 --- a/dict/admin/src/views/hjm/hjmQuestions/index.vue +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/hjmViolation/components/hjmViolationEdit.vue b/dict/admin/src/views/hjm/hjmViolation/components/hjmViolationEdit.vue deleted file mode 100644 index 1e6e9ba..0000000 --- a/dict/admin/src/views/hjm/hjmViolation/components/hjmViolationEdit.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmViolation/components/search.vue b/dict/admin/src/views/hjm/hjmViolation/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/hjm/hjmViolation/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/hjmViolation/index.vue b/dict/admin/src/views/hjm/hjmViolation/index.vue deleted file mode 100644 index 47777f3..0000000 --- a/dict/admin/src/views/hjm/hjmViolation/index.vue +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/staff/components/org-edit.vue b/dict/admin/src/views/hjm/staff/components/org-edit.vue deleted file mode 100644 index 101b98e..0000000 --- a/dict/admin/src/views/hjm/staff/components/org-edit.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/components/org-select.vue b/dict/admin/src/views/hjm/staff/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/hjm/staff/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/components/org-type-select.vue b/dict/admin/src/views/hjm/staff/components/org-type-select.vue deleted file mode 100644 index c969d57..0000000 --- a/dict/admin/src/views/hjm/staff/components/org-type-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/components/org-user-edit.vue b/dict/admin/src/views/hjm/staff/components/org-user-edit.vue deleted file mode 100644 index 478f648..0000000 --- a/dict/admin/src/views/hjm/staff/components/org-user-edit.vue +++ /dev/null @@ -1,509 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/components/org-user-list.vue b/dict/admin/src/views/hjm/staff/components/org-user-list.vue deleted file mode 100644 index 6edc31e..0000000 --- a/dict/admin/src/views/hjm/staff/components/org-user-list.vue +++ /dev/null @@ -1,199 +0,0 @@ - - - diff --git a/dict/admin/src/views/hjm/staff/components/org-user-search.vue b/dict/admin/src/views/hjm/staff/components/org-user-search.vue deleted file mode 100644 index b24a88e..0000000 --- a/dict/admin/src/views/hjm/staff/components/org-user-search.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/components/role-select.vue b/dict/admin/src/views/hjm/staff/components/role-select.vue deleted file mode 100644 index 04534b9..0000000 --- a/dict/admin/src/views/hjm/staff/components/role-select.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/components/sex-select.vue b/dict/admin/src/views/hjm/staff/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/hjm/staff/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/staff/index.vue b/dict/admin/src/views/hjm/staff/index.vue deleted file mode 100644 index 16a34e0..0000000 --- a/dict/admin/src/views/hjm/staff/index.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/userAlert/components/Edit.vue b/dict/admin/src/views/hjm/userAlert/components/Edit.vue deleted file mode 100644 index a9c1147..0000000 --- a/dict/admin/src/views/hjm/userAlert/components/Edit.vue +++ /dev/null @@ -1,149 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userAlert/components/search.vue b/dict/admin/src/views/hjm/userAlert/components/search.vue deleted file mode 100644 index f5b8521..0000000 --- a/dict/admin/src/views/hjm/userAlert/components/search.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userAlert/index.vue b/dict/admin/src/views/hjm/userAlert/index.vue deleted file mode 100644 index fe1eacc..0000000 --- a/dict/admin/src/views/hjm/userAlert/index.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/userVerify/components/Extra.vue b/dict/admin/src/views/hjm/userVerify/components/Extra.vue deleted file mode 100644 index 56181bd..0000000 --- a/dict/admin/src/views/hjm/userVerify/components/Extra.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userVerify/components/search.vue b/dict/admin/src/views/hjm/userVerify/components/search.vue deleted file mode 100644 index 54511b3..0000000 --- a/dict/admin/src/views/hjm/userVerify/components/search.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userVerify/components/userVerifyEdit.vue b/dict/admin/src/views/hjm/userVerify/components/userVerifyEdit.vue deleted file mode 100644 index f279ad5..0000000 --- a/dict/admin/src/views/hjm/userVerify/components/userVerifyEdit.vue +++ /dev/null @@ -1,352 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userVerify/index.vue b/dict/admin/src/views/hjm/userVerify/index.vue deleted file mode 100644 index c6ae698..0000000 --- a/dict/admin/src/views/hjm/userVerify/index.vue +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/hjm/userVerify2/components/search.vue b/dict/admin/src/views/hjm/userVerify2/components/search.vue deleted file mode 100644 index 4194d41..0000000 --- a/dict/admin/src/views/hjm/userVerify2/components/search.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userVerify2/components/userVerifyEdit.vue b/dict/admin/src/views/hjm/userVerify2/components/userVerifyEdit.vue deleted file mode 100644 index 184a622..0000000 --- a/dict/admin/src/views/hjm/userVerify2/components/userVerifyEdit.vue +++ /dev/null @@ -1,374 +0,0 @@ - - - - diff --git a/dict/admin/src/views/hjm/userVerify2/index.vue b/dict/admin/src/views/hjm/userVerify2/index.vue deleted file mode 100644 index 0ac72f6..0000000 --- a/dict/admin/src/views/hjm/userVerify2/index.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/passport/dealer/register.vue b/dict/admin/src/views/passport/dealer/register.vue deleted file mode 100644 index a8be2a3..0000000 --- a/dict/admin/src/views/passport/dealer/register.vue +++ /dev/null @@ -1,685 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/passport/login/components/register/step/components/step-confirm.vue b/dict/admin/src/views/passport/login/components/register/step/components/step-confirm.vue deleted file mode 100644 index 45bb340..0000000 --- a/dict/admin/src/views/passport/login/components/register/step/components/step-confirm.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/passport/login/components/register/step/components/step-edit.vue b/dict/admin/src/views/passport/login/components/register/step/components/step-edit.vue deleted file mode 100644 index bf618a2..0000000 --- a/dict/admin/src/views/passport/login/components/register/step/components/step-edit.vue +++ /dev/null @@ -1,286 +0,0 @@ - - - - diff --git a/dict/admin/src/views/passport/login/components/register/step/components/step-success.vue b/dict/admin/src/views/passport/login/components/register/step/components/step-success.vue deleted file mode 100644 index 21f5042..0000000 --- a/dict/admin/src/views/passport/login/components/register/step/components/step-success.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/dict/admin/src/views/passport/login/components/register/step/index.vue b/dict/admin/src/views/passport/login/components/register/step/index.vue deleted file mode 100644 index b682053..0000000 --- a/dict/admin/src/views/passport/login/components/register/step/index.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/passport/login/components/register/step/model/index.ts b/dict/admin/src/views/passport/login/components/register/step/model/index.ts deleted file mode 100644 index c6038ae..0000000 --- a/dict/admin/src/views/passport/login/components/register/step/model/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface StepForm { - type?: number; - apply?: string; - username?: string; - password?: string; - password2?: string; - phone?: string; - code?: string; - nickname?: string; - companyName?: string; - tenantId?: number; -} diff --git a/dict/admin/src/views/passport/login/components/wx-work.vue b/dict/admin/src/views/passport/login/components/wx-work.vue deleted file mode 100644 index a491d60..0000000 --- a/dict/admin/src/views/passport/login/components/wx-work.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/dict/admin/src/views/passport/login/index.vue b/dict/admin/src/views/passport/login/index.vue deleted file mode 100644 index fded8ab..0000000 --- a/dict/admin/src/views/passport/login/index.vue +++ /dev/null @@ -1,783 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/passport/loginToken/index.vue b/dict/admin/src/views/passport/loginToken/index.vue deleted file mode 100644 index 9a000b8..0000000 --- a/dict/admin/src/views/passport/loginToken/index.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/dict/admin/src/views/passport/qrConfirm/index.vue b/dict/admin/src/views/passport/qrConfirm/index.vue deleted file mode 100644 index 75449b7..0000000 --- a/dict/admin/src/views/passport/qrConfirm/index.vue +++ /dev/null @@ -1,371 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/passport/register/index.vue b/dict/admin/src/views/passport/register/index.vue deleted file mode 100644 index 6877f7a..0000000 --- a/dict/admin/src/views/passport/register/index.vue +++ /dev/null @@ -1,807 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/passport/register2/index.vue b/dict/admin/src/views/passport/register2/index.vue deleted file mode 100644 index eca38fd..0000000 --- a/dict/admin/src/views/passport/register2/index.vue +++ /dev/null @@ -1,804 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/result/fail/index.vue b/dict/admin/src/views/result/fail/index.vue deleted file mode 100644 index 5f14729..0000000 --- a/dict/admin/src/views/result/fail/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/result/success/index.vue b/dict/admin/src/views/result/success/index.vue deleted file mode 100644 index f34fa01..0000000 --- a/dict/admin/src/views/result/success/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApply/components/search.vue b/dict/admin/src/views/sdy/shopDealerApply/components/search.vue deleted file mode 100644 index 11d042a..0000000 --- a/dict/admin/src/views/sdy/shopDealerApply/components/search.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApply/components/shopDealerApplyEdit.vue b/dict/admin/src/views/sdy/shopDealerApply/components/shopDealerApplyEdit.vue deleted file mode 100644 index c57394b..0000000 --- a/dict/admin/src/views/sdy/shopDealerApply/components/shopDealerApplyEdit.vue +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApply/index.vue b/dict/admin/src/views/sdy/shopDealerApply/index.vue deleted file mode 100644 index 30b3c7a..0000000 --- a/dict/admin/src/views/sdy/shopDealerApply/index.vue +++ /dev/null @@ -1,440 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApplyRs/components/search.vue b/dict/admin/src/views/sdy/shopDealerApplyRs/components/search.vue deleted file mode 100644 index 3a97655..0000000 --- a/dict/admin/src/views/sdy/shopDealerApplyRs/components/search.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApplyRs/components/shop-dealer-apply-import.vue b/dict/admin/src/views/sdy/shopDealerApplyRs/components/shop-dealer-apply-import.vue deleted file mode 100644 index 32c2917..0000000 --- a/dict/admin/src/views/sdy/shopDealerApplyRs/components/shop-dealer-apply-import.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApplyRs/components/shopDealerApplyEdit.vue b/dict/admin/src/views/sdy/shopDealerApplyRs/components/shopDealerApplyEdit.vue deleted file mode 100644 index 18707eb..0000000 --- a/dict/admin/src/views/sdy/shopDealerApplyRs/components/shopDealerApplyEdit.vue +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerApplyRs/index.vue b/dict/admin/src/views/sdy/shopDealerApplyRs/index.vue deleted file mode 100644 index 86eb18c..0000000 --- a/dict/admin/src/views/sdy/shopDealerApplyRs/index.vue +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder/components/Import.vue b/dict/admin/src/views/sdy/shopDealerOrder/components/Import.vue deleted file mode 100644 index e636ecf..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder/components/Import.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder/components/search.vue b/dict/admin/src/views/sdy/shopDealerOrder/components/search.vue deleted file mode 100644 index 6e636e0..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder/components/search.vue +++ /dev/null @@ -1,206 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder/components/shopDealerOrderEdit.vue b/dict/admin/src/views/sdy/shopDealerOrder/components/shopDealerOrderEdit.vue deleted file mode 100644 index 5ec1766..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder/components/shopDealerOrderEdit.vue +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder/index.vue b/dict/admin/src/views/sdy/shopDealerOrder/index.vue deleted file mode 100644 index 66bb726..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder/index.vue +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder2/components/Import.vue b/dict/admin/src/views/sdy/shopDealerOrder2/components/Import.vue deleted file mode 100644 index cc7cdef..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder2/components/Import.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder2/components/search.vue b/dict/admin/src/views/sdy/shopDealerOrder2/components/search.vue deleted file mode 100644 index 3fe03e0..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder2/components/search.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder2/components/shopDealerOrderEdit.vue b/dict/admin/src/views/sdy/shopDealerOrder2/components/shopDealerOrderEdit.vue deleted file mode 100644 index d499dcb..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder2/components/shopDealerOrderEdit.vue +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerOrder2/index.vue b/dict/admin/src/views/sdy/shopDealerOrder2/index.vue deleted file mode 100644 index 9b3dc91..0000000 --- a/dict/admin/src/views/sdy/shopDealerOrder2/index.vue +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerUser/components/search.vue b/dict/admin/src/views/sdy/shopDealerUser/components/search.vue deleted file mode 100644 index 3a97655..0000000 --- a/dict/admin/src/views/sdy/shopDealerUser/components/search.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerUser/components/shopDealerApplyEdit.vue b/dict/admin/src/views/sdy/shopDealerUser/components/shopDealerApplyEdit.vue deleted file mode 100644 index bad4d1f..0000000 --- a/dict/admin/src/views/sdy/shopDealerUser/components/shopDealerApplyEdit.vue +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/sdy/shopDealerUser/index.vue b/dict/admin/src/views/sdy/shopDealerUser/index.vue deleted file mode 100644 index 2b1454a..0000000 --- a/dict/admin/src/views/sdy/shopDealerUser/index.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/sdy/user/components/org-select.vue b/dict/admin/src/views/sdy/user/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/sdy/user/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/user/components/search.vue b/dict/admin/src/views/sdy/user/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/sdy/user/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/user/components/status-test.vue b/dict/admin/src/views/sdy/user/components/status-test.vue deleted file mode 100644 index 714e427..0000000 --- a/dict/admin/src/views/sdy/user/components/status-test.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/user/components/user-edit.vue b/dict/admin/src/views/sdy/user/components/user-edit.vue deleted file mode 100644 index 195eb48..0000000 --- a/dict/admin/src/views/sdy/user/components/user-edit.vue +++ /dev/null @@ -1,312 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/user/components/user-import.vue b/dict/admin/src/views/sdy/user/components/user-import.vue deleted file mode 100644 index 2274410..0000000 --- a/dict/admin/src/views/sdy/user/components/user-import.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/dict/admin/src/views/sdy/user/index.vue b/dict/admin/src/views/sdy/user/index.vue deleted file mode 100644 index d2c6379..0000000 --- a/dict/admin/src/views/sdy/user/index.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - - - - diff --git a/dict/admin/src/views/shop/dashboard/components/search.vue b/dict/admin/src/views/shop/dashboard/components/search.vue deleted file mode 100644 index c893ea6..0000000 --- a/dict/admin/src/views/shop/dashboard/components/search.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/dashboard/components/websiteEdit.vue b/dict/admin/src/views/shop/dashboard/components/websiteEdit.vue deleted file mode 100644 index d68758f..0000000 --- a/dict/admin/src/views/shop/dashboard/components/websiteEdit.vue +++ /dev/null @@ -1,413 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/dashboard/index.vue b/dict/admin/src/views/shop/dashboard/index.vue deleted file mode 100644 index 658bb26..0000000 --- a/dict/admin/src/views/shop/dashboard/index.vue +++ /dev/null @@ -1,295 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/shop/shopAdmin/components/invitation-modal.vue b/dict/admin/src/views/shop/shopAdmin/components/invitation-modal.vue deleted file mode 100644 index 74c7d82..0000000 --- a/dict/admin/src/views/shop/shopAdmin/components/invitation-modal.vue +++ /dev/null @@ -1,293 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/shop/shopAdmin/components/org-select.vue b/dict/admin/src/views/shop/shopAdmin/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/shop/shopAdmin/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopAdmin/components/search.vue b/dict/admin/src/views/shop/shopAdmin/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopAdmin/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopAdmin/components/super-admin.vue b/dict/admin/src/views/shop/shopAdmin/components/super-admin.vue deleted file mode 100644 index b856ea7..0000000 --- a/dict/admin/src/views/shop/shopAdmin/components/super-admin.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/dict/admin/src/views/shop/shopAdmin/components/user-edit.vue b/dict/admin/src/views/shop/shopAdmin/components/user-edit.vue deleted file mode 100644 index 7d39cea..0000000 --- a/dict/admin/src/views/shop/shopAdmin/components/user-edit.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopAdmin/index.vue b/dict/admin/src/views/shop/shopAdmin/index.vue deleted file mode 100644 index 95924b9..0000000 --- a/dict/admin/src/views/shop/shopAdmin/index.vue +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - diff --git a/dict/admin/src/views/shop/shopCoupon/components/search.vue b/dict/admin/src/views/shop/shopCoupon/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopCoupon/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopCoupon/components/shopCouponEdit.vue b/dict/admin/src/views/shop/shopCoupon/components/shopCouponEdit.vue deleted file mode 100644 index afed7bc..0000000 --- a/dict/admin/src/views/shop/shopCoupon/components/shopCouponEdit.vue +++ /dev/null @@ -1,930 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopCoupon/index.vue b/dict/admin/src/views/shop/shopCoupon/index.vue deleted file mode 100644 index 73d28f6..0000000 --- a/dict/admin/src/views/shop/shopCoupon/index.vue +++ /dev/null @@ -1,708 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerApply/components/search.vue b/dict/admin/src/views/shop/shopDealerApply/components/search.vue deleted file mode 100644 index 3a97655..0000000 --- a/dict/admin/src/views/shop/shopDealerApply/components/search.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue b/dict/admin/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue deleted file mode 100644 index bad4d1f..0000000 --- a/dict/admin/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerApply/index.vue b/dict/admin/src/views/shop/shopDealerApply/index.vue deleted file mode 100644 index 17ebf8e..0000000 --- a/dict/admin/src/views/shop/shopDealerApply/index.vue +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerCapital/components/search.vue b/dict/admin/src/views/shop/shopDealerCapital/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopDealerCapital/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue b/dict/admin/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue deleted file mode 100644 index 6557d9c..0000000 --- a/dict/admin/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerOrder/components/Import.vue b/dict/admin/src/views/shop/shopDealerOrder/components/Import.vue deleted file mode 100644 index 0b81392..0000000 --- a/dict/admin/src/views/shop/shopDealerOrder/components/Import.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopDealerOrder/components/search.vue b/dict/admin/src/views/shop/shopDealerOrder/components/search.vue deleted file mode 100644 index 5bd12df..0000000 --- a/dict/admin/src/views/shop/shopDealerOrder/components/search.vue +++ /dev/null @@ -1,196 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue b/dict/admin/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue deleted file mode 100644 index e550eca..0000000 --- a/dict/admin/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue +++ /dev/null @@ -1,458 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerOrder/index.vue b/dict/admin/src/views/shop/shopDealerOrder/index.vue deleted file mode 100644 index 047512f..0000000 --- a/dict/admin/src/views/shop/shopDealerOrder/index.vue +++ /dev/null @@ -1,486 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerPoster/index.vue b/dict/admin/src/views/shop/shopDealerPoster/index.vue deleted file mode 100644 index cc5ba8b..0000000 --- a/dict/admin/src/views/shop/shopDealerPoster/index.vue +++ /dev/null @@ -1,751 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerReferee/components/search.vue b/dict/admin/src/views/shop/shopDealerReferee/components/search.vue deleted file mode 100644 index b41c7a5..0000000 --- a/dict/admin/src/views/shop/shopDealerReferee/components/search.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue b/dict/admin/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue deleted file mode 100644 index 381cdab..0000000 --- a/dict/admin/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopDealerReferee/index.vue b/dict/admin/src/views/shop/shopDealerReferee/index.vue deleted file mode 100644 index 6548bdd..0000000 --- a/dict/admin/src/views/shop/shopDealerReferee/index.vue +++ /dev/null @@ -1,490 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerSetting/components/search.vue b/dict/admin/src/views/shop/shopDealerSetting/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopDealerSetting/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue b/dict/admin/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue deleted file mode 100644 index bec054c..0000000 --- a/dict/admin/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue +++ /dev/null @@ -1,744 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerSetting/index.vue b/dict/admin/src/views/shop/shopDealerSetting/index.vue deleted file mode 100644 index 7613f58..0000000 --- a/dict/admin/src/views/shop/shopDealerSetting/index.vue +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerUser/components/Import.vue b/dict/admin/src/views/shop/shopDealerUser/components/Import.vue deleted file mode 100644 index fbf5244..0000000 --- a/dict/admin/src/views/shop/shopDealerUser/components/Import.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerUser/components/search.vue b/dict/admin/src/views/shop/shopDealerUser/components/search.vue deleted file mode 100644 index 19e7393..0000000 --- a/dict/admin/src/views/shop/shopDealerUser/components/search.vue +++ /dev/null @@ -1,206 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue b/dict/admin/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue deleted file mode 100644 index e2afb6b..0000000 --- a/dict/admin/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue +++ /dev/null @@ -1,516 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerUser/index.vue b/dict/admin/src/views/shop/shopDealerUser/index.vue deleted file mode 100644 index 4cb4efa..0000000 --- a/dict/admin/src/views/shop/shopDealerUser/index.vue +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerWithdraw/components/search.vue b/dict/admin/src/views/shop/shopDealerWithdraw/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopDealerWithdraw/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue b/dict/admin/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue deleted file mode 100644 index 72b26e0..0000000 --- a/dict/admin/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue +++ /dev/null @@ -1,698 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopDealerWithdraw/index.vue b/dict/admin/src/views/shop/shopDealerWithdraw/index.vue deleted file mode 100644 index 5a485d2..0000000 --- a/dict/admin/src/views/shop/shopDealerWithdraw/index.vue +++ /dev/null @@ -1,468 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopExpress/components/search.vue b/dict/admin/src/views/shop/shopExpress/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopExpress/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopExpress/components/shopExpressEdit.vue b/dict/admin/src/views/shop/shopExpress/components/shopExpressEdit.vue deleted file mode 100644 index 035f541..0000000 --- a/dict/admin/src/views/shop/shopExpress/components/shopExpressEdit.vue +++ /dev/null @@ -1,220 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopExpress/index.vue b/dict/admin/src/views/shop/shopExpress/index.vue deleted file mode 100644 index 70dde1f..0000000 --- a/dict/admin/src/views/shop/shopExpress/index.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopExpressTemplate/components/search.vue b/dict/admin/src/views/shop/shopExpressTemplate/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopExpressTemplate/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopExpressTemplate/components/shopExpressTemplateEdit.vue b/dict/admin/src/views/shop/shopExpressTemplate/components/shopExpressTemplateEdit.vue deleted file mode 100644 index 5725c87..0000000 --- a/dict/admin/src/views/shop/shopExpressTemplate/components/shopExpressTemplateEdit.vue +++ /dev/null @@ -1,239 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopExpressTemplateDetail/components/search.vue b/dict/admin/src/views/shop/shopExpressTemplateDetail/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopExpressTemplateDetail/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopExpressTemplateDetail/components/shopExpressTemplateDetailEdit.vue b/dict/admin/src/views/shop/shopExpressTemplateDetail/components/shopExpressTemplateDetailEdit.vue deleted file mode 100644 index d0646fb..0000000 --- a/dict/admin/src/views/shop/shopExpressTemplateDetail/components/shopExpressTemplateDetailEdit.vue +++ /dev/null @@ -1,232 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGift/components/makeCard.vue b/dict/admin/src/views/shop/shopGift/components/makeCard.vue deleted file mode 100644 index d96256c..0000000 --- a/dict/admin/src/views/shop/shopGift/components/makeCard.vue +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopGift/components/search.vue b/dict/admin/src/views/shop/shopGift/components/search.vue deleted file mode 100644 index 820601b..0000000 --- a/dict/admin/src/views/shop/shopGift/components/search.vue +++ /dev/null @@ -1,627 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGift/components/shopGiftEdit.vue b/dict/admin/src/views/shop/shopGift/components/shopGiftEdit.vue deleted file mode 100644 index 81342c2..0000000 --- a/dict/admin/src/views/shop/shopGift/components/shopGiftEdit.vue +++ /dev/null @@ -1,707 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopGift/index.vue b/dict/admin/src/views/shop/shopGift/index.vue deleted file mode 100644 index e6a58ad..0000000 --- a/dict/admin/src/views/shop/shopGift/index.vue +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopGoods/components/extra.vue b/dict/admin/src/views/shop/shopGoods/components/extra.vue deleted file mode 100644 index 3b8e758..0000000 --- a/dict/admin/src/views/shop/shopGoods/components/extra.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoods/components/search.vue b/dict/admin/src/views/shop/shopGoods/components/search.vue deleted file mode 100644 index c8a508b..0000000 --- a/dict/admin/src/views/shop/shopGoods/components/search.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoods/components/shopGoodsEdit.vue b/dict/admin/src/views/shop/shopGoods/components/shopGoodsEdit.vue deleted file mode 100644 index 6e7b9ba..0000000 --- a/dict/admin/src/views/shop/shopGoods/components/shopGoodsEdit.vue +++ /dev/null @@ -1,1947 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoods/index.vue b/dict/admin/src/views/shop/shopGoods/index.vue deleted file mode 100644 index fe26807..0000000 --- a/dict/admin/src/views/shop/shopGoods/index.vue +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopGoodsCoupon/components/search.vue b/dict/admin/src/views/shop/shopGoodsCoupon/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopGoodsCoupon/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoodsCoupon/components/shopGoodsCouponEdit.vue b/dict/admin/src/views/shop/shopGoodsCoupon/components/shopGoodsCouponEdit.vue deleted file mode 100644 index 2964d92..0000000 --- a/dict/admin/src/views/shop/shopGoodsCoupon/components/shopGoodsCouponEdit.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoodsCoupon/index.vue b/dict/admin/src/views/shop/shopGoodsCoupon/index.vue deleted file mode 100644 index e2e74ab..0000000 --- a/dict/admin/src/views/shop/shopGoodsCoupon/index.vue +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopGoodsSku/components/search.vue b/dict/admin/src/views/shop/shopGoodsSku/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopGoodsSku/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoodsSku/components/shopGoodsSkuEdit.vue b/dict/admin/src/views/shop/shopGoodsSku/components/shopGoodsSkuEdit.vue deleted file mode 100644 index 3ed094b..0000000 --- a/dict/admin/src/views/shop/shopGoodsSku/components/shopGoodsSkuEdit.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoodsSku/index.vue b/dict/admin/src/views/shop/shopGoodsSku/index.vue deleted file mode 100644 index 1582229..0000000 --- a/dict/admin/src/views/shop/shopGoodsSku/index.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopGoodsSpec/components/search.vue b/dict/admin/src/views/shop/shopGoodsSpec/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopGoodsSpec/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoodsSpec/components/shopGoodsSpecEdit.vue b/dict/admin/src/views/shop/shopGoodsSpec/components/shopGoodsSpecEdit.vue deleted file mode 100644 index 858300a..0000000 --- a/dict/admin/src/views/shop/shopGoodsSpec/components/shopGoodsSpecEdit.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopGoodsSpec/index.vue b/dict/admin/src/views/shop/shopGoodsSpec/index.vue deleted file mode 100644 index 4c56f3c..0000000 --- a/dict/admin/src/views/shop/shopGoodsSpec/index.vue +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopMerchant/components/search.vue b/dict/admin/src/views/shop/shopMerchant/components/search.vue deleted file mode 100644 index 9f23b97..0000000 --- a/dict/admin/src/views/shop/shopMerchant/components/search.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopMerchant/components/shopMerchantEdit.vue b/dict/admin/src/views/shop/shopMerchant/components/shopMerchantEdit.vue deleted file mode 100644 index d4c9538..0000000 --- a/dict/admin/src/views/shop/shopMerchant/components/shopMerchantEdit.vue +++ /dev/null @@ -1,454 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopMerchant/index.vue b/dict/admin/src/views/shop/shopMerchant/index.vue deleted file mode 100644 index 0f55add..0000000 --- a/dict/admin/src/views/shop/shopMerchant/index.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopOrder/components/deliveryModal.vue b/dict/admin/src/views/shop/shopOrder/components/deliveryModal.vue deleted file mode 100644 index 8b8a290..0000000 --- a/dict/admin/src/views/shop/shopOrder/components/deliveryModal.vue +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopOrder/components/expressSettingModal.vue b/dict/admin/src/views/shop/shopOrder/components/expressSettingModal.vue deleted file mode 100644 index 007c1ca..0000000 --- a/dict/admin/src/views/shop/shopOrder/components/expressSettingModal.vue +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopOrder/components/orderInfo.vue b/dict/admin/src/views/shop/shopOrder/components/orderInfo.vue deleted file mode 100644 index cc8f387..0000000 --- a/dict/admin/src/views/shop/shopOrder/components/orderInfo.vue +++ /dev/null @@ -1,1034 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/shop/shopOrder/components/search.vue b/dict/admin/src/views/shop/shopOrder/components/search.vue deleted file mode 100644 index f7f76bd..0000000 --- a/dict/admin/src/views/shop/shopOrder/components/search.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopOrder/index.vue b/dict/admin/src/views/shop/shopOrder/index.vue deleted file mode 100644 index c8d3c71..0000000 --- a/dict/admin/src/views/shop/shopOrder/index.vue +++ /dev/null @@ -1,675 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopOrderGoods/components/search.vue b/dict/admin/src/views/shop/shopOrderGoods/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopOrderGoods/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopSpec/components/search.vue b/dict/admin/src/views/shop/shopSpec/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopSpec/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopSpec/components/shopSpecEdit.vue b/dict/admin/src/views/shop/shopSpec/components/shopSpecEdit.vue deleted file mode 100644 index d7e337e..0000000 --- a/dict/admin/src/views/shop/shopSpec/components/shopSpecEdit.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopSpec/index.vue b/dict/admin/src/views/shop/shopSpec/index.vue deleted file mode 100644 index fb01ec1..0000000 --- a/dict/admin/src/views/shop/shopSpec/index.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopSpecValue/components/search.vue b/dict/admin/src/views/shop/shopSpecValue/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopSpecValue/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopSpecValue/components/shopSpecValueEdit.vue b/dict/admin/src/views/shop/shopSpecValue/components/shopSpecValueEdit.vue deleted file mode 100644 index 0743500..0000000 --- a/dict/admin/src/views/shop/shopSpecValue/components/shopSpecValueEdit.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopSpecValue/index.vue b/dict/admin/src/views/shop/shopSpecValue/index.vue deleted file mode 100644 index f0076b6..0000000 --- a/dict/admin/src/views/shop/shopSpecValue/index.vue +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/shop/shopUser/components/org-select.vue b/dict/admin/src/views/shop/shopUser/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/shop/shopUser/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopUser/components/search.vue b/dict/admin/src/views/shop/shopUser/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopUser/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopUser/components/user-edit.vue b/dict/admin/src/views/shop/shopUser/components/user-edit.vue deleted file mode 100644 index 27ff0f3..0000000 --- a/dict/admin/src/views/shop/shopUser/components/user-edit.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopUser/components/user-import.vue b/dict/admin/src/views/shop/shopUser/components/user-import.vue deleted file mode 100644 index 2274410..0000000 --- a/dict/admin/src/views/shop/shopUser/components/user-import.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopUser/index.vue b/dict/admin/src/views/shop/shopUser/index.vue deleted file mode 100644 index ebf619c..0000000 --- a/dict/admin/src/views/shop/shopUser/index.vue +++ /dev/null @@ -1,608 +0,0 @@ - - - - - - - - diff --git a/dict/admin/src/views/shop/shopUserCoupon/components/search.vue b/dict/admin/src/views/shop/shopUserCoupon/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopUserCoupon/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/shop/shopUserReferee/components/search.vue b/dict/admin/src/views/shop/shopUserReferee/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/shop/shopUserReferee/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/access-key/components/accesskey-edit.vue b/dict/admin/src/views/system/access-key/components/accesskey-edit.vue deleted file mode 100644 index 74cbea2..0000000 --- a/dict/admin/src/views/system/access-key/components/accesskey-edit.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/access-key/index.vue b/dict/admin/src/views/system/access-key/index.vue deleted file mode 100644 index 11965ac..0000000 --- a/dict/admin/src/views/system/access-key/index.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/admin/components/org-select.vue b/dict/admin/src/views/system/admin/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/system/admin/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/role-select.vue b/dict/admin/src/views/system/admin/components/role-select.vue deleted file mode 100644 index 04534b9..0000000 --- a/dict/admin/src/views/system/admin/components/role-select.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/search.vue b/dict/admin/src/views/system/admin/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/admin/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/sex-select.vue b/dict/admin/src/views/system/admin/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/system/admin/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/user-edit.vue b/dict/admin/src/views/system/admin/components/user-edit.vue deleted file mode 100644 index 4c676fa..0000000 --- a/dict/admin/src/views/system/admin/components/user-edit.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/user-import.vue b/dict/admin/src/views/system/admin/components/user-import.vue deleted file mode 100644 index f5b1088..0000000 --- a/dict/admin/src/views/system/admin/components/user-import.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/user-info.vue b/dict/admin/src/views/system/admin/components/user-info.vue deleted file mode 100644 index a737d2f..0000000 --- a/dict/admin/src/views/system/admin/components/user-info.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/user-search.vue b/dict/admin/src/views/system/admin/components/user-search.vue deleted file mode 100644 index b68abad..0000000 --- a/dict/admin/src/views/system/admin/components/user-search.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/components/userEdit.vue b/dict/admin/src/views/system/admin/components/userEdit.vue deleted file mode 100644 index 3a59597..0000000 --- a/dict/admin/src/views/system/admin/components/userEdit.vue +++ /dev/null @@ -1,274 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/admin/details/index.vue b/dict/admin/src/views/system/admin/details/index.vue deleted file mode 100644 index 9e535df..0000000 --- a/dict/admin/src/views/system/admin/details/index.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/admin/index.vue b/dict/admin/src/views/system/admin/index.vue deleted file mode 100644 index cfc663d..0000000 --- a/dict/admin/src/views/system/admin/index.vue +++ /dev/null @@ -1,434 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/cache/components/cache-edit.vue b/dict/admin/src/views/system/cache/components/cache-edit.vue deleted file mode 100644 index b1eb5bc..0000000 --- a/dict/admin/src/views/system/cache/components/cache-edit.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/cache/components/send-sms.vue b/dict/admin/src/views/system/cache/components/send-sms.vue deleted file mode 100644 index 9807008..0000000 --- a/dict/admin/src/views/system/cache/components/send-sms.vue +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/cache/index.vue b/dict/admin/src/views/system/cache/index.vue deleted file mode 100644 index 8de4d19..0000000 --- a/dict/admin/src/views/system/cache/index.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/chatConversation/components/chatConversationEdit.vue b/dict/admin/src/views/system/chatConversation/components/chatConversationEdit.vue deleted file mode 100644 index 0fb93fe..0000000 --- a/dict/admin/src/views/system/chatConversation/components/chatConversationEdit.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/chatConversation/components/search.vue b/dict/admin/src/views/system/chatConversation/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/chatConversation/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/chatConversation/index.vue b/dict/admin/src/views/system/chatConversation/index.vue deleted file mode 100644 index 7e40e50..0000000 --- a/dict/admin/src/views/system/chatConversation/index.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/chatMessage/components/chatMessageEdit.vue b/dict/admin/src/views/system/chatMessage/components/chatMessageEdit.vue deleted file mode 100644 index e1b58ff..0000000 --- a/dict/admin/src/views/system/chatMessage/components/chatMessageEdit.vue +++ /dev/null @@ -1,254 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/chatMessage/components/search.vue b/dict/admin/src/views/system/chatMessage/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/chatMessage/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/chatMessage/index.vue b/dict/admin/src/views/system/chatMessage/index.vue deleted file mode 100644 index 8b4688d..0000000 --- a/dict/admin/src/views/system/chatMessage/index.vue +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/demo/index.vue b/dict/admin/src/views/system/demo/index.vue deleted file mode 100644 index 6c39fa2..0000000 --- a/dict/admin/src/views/system/demo/index.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/developer/components/CodeInfo.vue b/dict/admin/src/views/system/developer/components/CodeInfo.vue deleted file mode 100644 index dd54b2d..0000000 --- a/dict/admin/src/views/system/developer/components/CodeInfo.vue +++ /dev/null @@ -1,68 +0,0 @@ - - diff --git a/dict/admin/src/views/system/developer/components/ParamInfo.vue b/dict/admin/src/views/system/developer/components/ParamInfo.vue deleted file mode 100644 index ba6b016..0000000 --- a/dict/admin/src/views/system/developer/components/ParamInfo.vue +++ /dev/null @@ -1,68 +0,0 @@ - - diff --git a/dict/admin/src/views/system/developer/components/ServerInfo.vue b/dict/admin/src/views/system/developer/components/ServerInfo.vue deleted file mode 100644 index aa07ea2..0000000 --- a/dict/admin/src/views/system/developer/components/ServerInfo.vue +++ /dev/null @@ -1,28 +0,0 @@ - - diff --git a/dict/admin/src/views/system/developer/components/TenantInfo.vue b/dict/admin/src/views/system/developer/components/TenantInfo.vue deleted file mode 100644 index aaa6c8d..0000000 --- a/dict/admin/src/views/system/developer/components/TenantInfo.vue +++ /dev/null @@ -1,47 +0,0 @@ - - diff --git a/dict/admin/src/views/system/developer/index.vue b/dict/admin/src/views/system/developer/index.vue deleted file mode 100644 index 62368b7..0000000 --- a/dict/admin/src/views/system/developer/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/dict/components/dict-data-edit.vue b/dict/admin/src/views/system/dict/components/dict-data-edit.vue deleted file mode 100644 index 6dcb527..0000000 --- a/dict/admin/src/views/system/dict/components/dict-data-edit.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/dict/components/dict-data-search.vue b/dict/admin/src/views/system/dict/components/dict-data-search.vue deleted file mode 100644 index b43643f..0000000 --- a/dict/admin/src/views/system/dict/components/dict-data-search.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/dict/components/dict-data.vue b/dict/admin/src/views/system/dict/components/dict-data.vue deleted file mode 100644 index 6878d2c..0000000 --- a/dict/admin/src/views/system/dict/components/dict-data.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/dict/components/dict-edit.vue b/dict/admin/src/views/system/dict/components/dict-edit.vue deleted file mode 100644 index 9dd9bf0..0000000 --- a/dict/admin/src/views/system/dict/components/dict-edit.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/dict/index.vue b/dict/admin/src/views/system/dict/index.vue deleted file mode 100644 index 07ba43f..0000000 --- a/dict/admin/src/views/system/dict/index.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/dict/list.vue b/dict/admin/src/views/system/dict/list.vue deleted file mode 100644 index 800b102..0000000 --- a/dict/admin/src/views/system/dict/list.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/dictionary/components/dict-data-edit.vue b/dict/admin/src/views/system/dictionary/components/dict-data-edit.vue deleted file mode 100644 index eda1e4b..0000000 --- a/dict/admin/src/views/system/dictionary/components/dict-data-edit.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/dictionary/components/dict-data-search.vue b/dict/admin/src/views/system/dictionary/components/dict-data-search.vue deleted file mode 100644 index 34d24d1..0000000 --- a/dict/admin/src/views/system/dictionary/components/dict-data-search.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/dictionary/components/dict-data.vue b/dict/admin/src/views/system/dictionary/components/dict-data.vue deleted file mode 100644 index e329110..0000000 --- a/dict/admin/src/views/system/dictionary/components/dict-data.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/dictionary/components/dict-edit.vue b/dict/admin/src/views/system/dictionary/components/dict-edit.vue deleted file mode 100644 index 9fa4070..0000000 --- a/dict/admin/src/views/system/dictionary/components/dict-edit.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/dictionary/index.vue b/dict/admin/src/views/system/dictionary/index.vue deleted file mode 100644 index 85f8183..0000000 --- a/dict/admin/src/views/system/dictionary/index.vue +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/dictionary/list.vue b/dict/admin/src/views/system/dictionary/list.vue deleted file mode 100644 index 8dea81f..0000000 --- a/dict/admin/src/views/system/dictionary/list.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/domain/components/domainEdit.vue b/dict/admin/src/views/system/domain/components/domainEdit.vue deleted file mode 100644 index 059f378..0000000 --- a/dict/admin/src/views/system/domain/components/domainEdit.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/domain/components/search.vue b/dict/admin/src/views/system/domain/components/search.vue deleted file mode 100644 index 180b9c1..0000000 --- a/dict/admin/src/views/system/domain/components/search.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/domain/index.vue b/dict/admin/src/views/system/domain/index.vue deleted file mode 100644 index e1e2dc2..0000000 --- a/dict/admin/src/views/system/domain/index.vue +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/exception/403/index.vue b/dict/admin/src/views/system/exception/403/index.vue deleted file mode 100644 index 6b2bc27..0000000 --- a/dict/admin/src/views/system/exception/403/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/exception/404/index.vue b/dict/admin/src/views/system/exception/404/index.vue deleted file mode 100644 index b156e83..0000000 --- a/dict/admin/src/views/system/exception/404/index.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/exception/500/index.vue b/dict/admin/src/views/system/exception/500/index.vue deleted file mode 100644 index ff7c853..0000000 --- a/dict/admin/src/views/system/exception/500/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/field/components/edit.vue b/dict/admin/src/views/system/field/components/edit.vue deleted file mode 100644 index 3ca157b..0000000 --- a/dict/admin/src/views/system/field/components/edit.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/field/components/search.vue b/dict/admin/src/views/system/field/components/search.vue deleted file mode 100644 index c72d354..0000000 --- a/dict/admin/src/views/system/field/components/search.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/field/index.vue b/dict/admin/src/views/system/field/index.vue deleted file mode 100644 index 5fa761d..0000000 --- a/dict/admin/src/views/system/field/index.vue +++ /dev/null @@ -1,230 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/file/components/file-search.vue b/dict/admin/src/views/system/file/components/file-search.vue deleted file mode 100644 index bd9ded8..0000000 --- a/dict/admin/src/views/system/file/components/file-search.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/file/index.vue b/dict/admin/src/views/system/file/index.vue deleted file mode 100644 index d31c687..0000000 --- a/dict/admin/src/views/system/file/index.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/grade/components/grade-edit.vue b/dict/admin/src/views/system/grade/components/grade-edit.vue deleted file mode 100644 index 0901a26..0000000 --- a/dict/admin/src/views/system/grade/components/grade-edit.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/grade/components/search.vue b/dict/admin/src/views/system/grade/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/grade/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/grade/index.vue b/dict/admin/src/views/system/grade/index.vue deleted file mode 100644 index cbb225d..0000000 --- a/dict/admin/src/views/system/grade/index.vue +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/login-record/components/login-record-search.vue b/dict/admin/src/views/system/login-record/components/login-record-search.vue deleted file mode 100644 index 0dfc6f5..0000000 --- a/dict/admin/src/views/system/login-record/components/login-record-search.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/login-record/index.vue b/dict/admin/src/views/system/login-record/index.vue deleted file mode 100644 index e2c951a..0000000 --- a/dict/admin/src/views/system/login-record/index.vue +++ /dev/null @@ -1,235 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/menu/components/Import.vue b/dict/admin/src/views/system/menu/components/Import.vue deleted file mode 100644 index 684e059..0000000 --- a/dict/admin/src/views/system/menu/components/Import.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - - \ No newline at end of file diff --git a/dict/admin/src/views/system/menu/components/clone.vue b/dict/admin/src/views/system/menu/components/clone.vue deleted file mode 100644 index 7779e42..0000000 --- a/dict/admin/src/views/system/menu/components/clone.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/menu/components/delete.vue b/dict/admin/src/views/system/menu/components/delete.vue deleted file mode 100644 index da4b611..0000000 --- a/dict/admin/src/views/system/menu/components/delete.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/menu/components/menu-edit.vue b/dict/admin/src/views/system/menu/components/menu-edit.vue deleted file mode 100644 index a306cf4..0000000 --- a/dict/admin/src/views/system/menu/components/menu-edit.vue +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/menu/components/menu-plug.vue b/dict/admin/src/views/system/menu/components/menu-plug.vue deleted file mode 100644 index 4fac699..0000000 --- a/dict/admin/src/views/system/menu/components/menu-plug.vue +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/menu/components/menu-search-original.vue b/dict/admin/src/views/system/menu/components/menu-search-original.vue deleted file mode 100644 index 81afbf5..0000000 --- a/dict/admin/src/views/system/menu/components/menu-search-original.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/menu/components/menu-search.vue b/dict/admin/src/views/system/menu/components/menu-search.vue deleted file mode 100644 index 65721bd..0000000 --- a/dict/admin/src/views/system/menu/components/menu-search.vue +++ /dev/null @@ -1,174 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/menu/index.vue b/dict/admin/src/views/system/menu/index.vue deleted file mode 100644 index b6f633a..0000000 --- a/dict/admin/src/views/system/menu/index.vue +++ /dev/null @@ -1,392 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/modules/components/modules-edit.vue b/dict/admin/src/views/system/modules/components/modules-edit.vue deleted file mode 100644 index eeeb4f5..0000000 --- a/dict/admin/src/views/system/modules/components/modules-edit.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/modules/components/modules-search.vue b/dict/admin/src/views/system/modules/components/modules-search.vue deleted file mode 100644 index d505fd8..0000000 --- a/dict/admin/src/views/system/modules/components/modules-search.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/modules/index.vue b/dict/admin/src/views/system/modules/index.vue deleted file mode 100644 index 429d575..0000000 --- a/dict/admin/src/views/system/modules/index.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/operation-record/components/operation-record-detail.vue b/dict/admin/src/views/system/operation-record/components/operation-record-detail.vue deleted file mode 100644 index deb5740..0000000 --- a/dict/admin/src/views/system/operation-record/components/operation-record-detail.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/operation-record/components/operation-record-search.vue b/dict/admin/src/views/system/operation-record/components/operation-record-search.vue deleted file mode 100644 index d6e4309..0000000 --- a/dict/admin/src/views/system/operation-record/components/operation-record-search.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/operation-record/components/text-ellipsis.vue b/dict/admin/src/views/system/operation-record/components/text-ellipsis.vue deleted file mode 100644 index 05b204a..0000000 --- a/dict/admin/src/views/system/operation-record/components/text-ellipsis.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/operation-record/index.vue b/dict/admin/src/views/system/operation-record/index.vue deleted file mode 100644 index a2de40f..0000000 --- a/dict/admin/src/views/system/operation-record/index.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/order/components/order-edit.vue b/dict/admin/src/views/system/order/components/order-edit.vue deleted file mode 100644 index 087a794..0000000 --- a/dict/admin/src/views/system/order/components/order-edit.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/order/components/search.vue b/dict/admin/src/views/system/order/components/search.vue deleted file mode 100644 index a4b3986..0000000 --- a/dict/admin/src/views/system/order/components/search.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/order/index.vue b/dict/admin/src/views/system/order/index.vue deleted file mode 100644 index efed314..0000000 --- a/dict/admin/src/views/system/order/index.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/organization/components/org-edit.vue b/dict/admin/src/views/system/organization/components/org-edit.vue deleted file mode 100644 index 2a4ac35..0000000 --- a/dict/admin/src/views/system/organization/components/org-edit.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/components/org-select.vue b/dict/admin/src/views/system/organization/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/system/organization/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/components/org-type-select.vue b/dict/admin/src/views/system/organization/components/org-type-select.vue deleted file mode 100644 index c969d57..0000000 --- a/dict/admin/src/views/system/organization/components/org-type-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/components/org-user-edit.vue b/dict/admin/src/views/system/organization/components/org-user-edit.vue deleted file mode 100644 index 478f648..0000000 --- a/dict/admin/src/views/system/organization/components/org-user-edit.vue +++ /dev/null @@ -1,509 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/components/org-user-list.vue b/dict/admin/src/views/system/organization/components/org-user-list.vue deleted file mode 100644 index b1d9f42..0000000 --- a/dict/admin/src/views/system/organization/components/org-user-list.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/organization/components/org-user-search.vue b/dict/admin/src/views/system/organization/components/org-user-search.vue deleted file mode 100644 index a378252..0000000 --- a/dict/admin/src/views/system/organization/components/org-user-search.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/components/role-select.vue b/dict/admin/src/views/system/organization/components/role-select.vue deleted file mode 100644 index 04534b9..0000000 --- a/dict/admin/src/views/system/organization/components/role-select.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/components/sex-select.vue b/dict/admin/src/views/system/organization/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/system/organization/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/organization/index.vue b/dict/admin/src/views/system/organization/index.vue deleted file mode 100644 index 290fe6d..0000000 --- a/dict/admin/src/views/system/organization/index.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/payment/components/paymentEdit.vue b/dict/admin/src/views/system/payment/components/paymentEdit.vue deleted file mode 100644 index 7e33c5f..0000000 --- a/dict/admin/src/views/system/payment/components/paymentEdit.vue +++ /dev/null @@ -1,369 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/payment/components/search.vue b/dict/admin/src/views/system/payment/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/payment/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/payment/index.vue b/dict/admin/src/views/system/payment/index.vue deleted file mode 100644 index 65c8362..0000000 --- a/dict/admin/src/views/system/payment/index.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/plug/components/companyEdit.vue b/dict/admin/src/views/system/plug/components/companyEdit.vue deleted file mode 100644 index bb5938b..0000000 --- a/dict/admin/src/views/system/plug/components/companyEdit.vue +++ /dev/null @@ -1,1012 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/plug/components/menu-edit.vue b/dict/admin/src/views/system/plug/components/menu-edit.vue deleted file mode 100644 index 5346a07..0000000 --- a/dict/admin/src/views/system/plug/components/menu-edit.vue +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/plug/components/menu-search.vue b/dict/admin/src/views/system/plug/components/menu-search.vue deleted file mode 100644 index 81afbf5..0000000 --- a/dict/admin/src/views/system/plug/components/menu-search.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/plug/components/plug-edit.vue b/dict/admin/src/views/system/plug/components/plug-edit.vue deleted file mode 100644 index e722b6b..0000000 --- a/dict/admin/src/views/system/plug/components/plug-edit.vue +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/plug/components/plug-search.vue b/dict/admin/src/views/system/plug/components/plug-search.vue deleted file mode 100644 index 0340488..0000000 --- a/dict/admin/src/views/system/plug/components/plug-search.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/plug/components/plug.vue b/dict/admin/src/views/system/plug/components/plug.vue deleted file mode 100644 index cc8a49e..0000000 --- a/dict/admin/src/views/system/plug/components/plug.vue +++ /dev/null @@ -1,194 +0,0 @@ - - diff --git a/dict/admin/src/views/system/plug/components/search.vue b/dict/admin/src/views/system/plug/components/search.vue deleted file mode 100644 index 4bf2e11..0000000 --- a/dict/admin/src/views/system/plug/components/search.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/plug/components/tenant.vue b/dict/admin/src/views/system/plug/components/tenant.vue deleted file mode 100644 index da06a82..0000000 --- a/dict/admin/src/views/system/plug/components/tenant.vue +++ /dev/null @@ -1,239 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/plug/create/components/clone.vue b/dict/admin/src/views/system/plug/create/components/clone.vue deleted file mode 100644 index e2c30c7..0000000 --- a/dict/admin/src/views/system/plug/create/components/clone.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/plug/create/components/plug-edit.vue b/dict/admin/src/views/system/plug/create/components/plug-edit.vue deleted file mode 100644 index 0fb3559..0000000 --- a/dict/admin/src/views/system/plug/create/components/plug-edit.vue +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/plug/create/components/plug-search.vue b/dict/admin/src/views/system/plug/create/components/plug-search.vue deleted file mode 100644 index a4d0cd0..0000000 --- a/dict/admin/src/views/system/plug/create/components/plug-search.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/plug/create/index.vue b/dict/admin/src/views/system/plug/create/index.vue deleted file mode 100644 index c12fa1c..0000000 --- a/dict/admin/src/views/system/plug/create/index.vue +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/plug/detail/index.vue b/dict/admin/src/views/system/plug/detail/index.vue deleted file mode 100644 index a83845d..0000000 --- a/dict/admin/src/views/system/plug/detail/index.vue +++ /dev/null @@ -1,308 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/plug/index.vue b/dict/admin/src/views/system/plug/index.vue deleted file mode 100644 index f202e07..0000000 --- a/dict/admin/src/views/system/plug/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/plug/list/index.vue b/dict/admin/src/views/system/plug/list/index.vue deleted file mode 100644 index 3a388a9..0000000 --- a/dict/admin/src/views/system/plug/list/index.vue +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/plug/search/index.vue b/dict/admin/src/views/system/plug/search/index.vue deleted file mode 100644 index 3a539ef..0000000 --- a/dict/admin/src/views/system/plug/search/index.vue +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/profile/components/field.vue b/dict/admin/src/views/system/profile/components/field.vue deleted file mode 100644 index c64d363..0000000 --- a/dict/admin/src/views/system/profile/components/field.vue +++ /dev/null @@ -1,274 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/profile/components/sex-select.vue b/dict/admin/src/views/system/profile/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/system/profile/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/profile/components/version.vue b/dict/admin/src/views/system/profile/components/version.vue deleted file mode 100644 index ee4a2ab..0000000 --- a/dict/admin/src/views/system/profile/components/version.vue +++ /dev/null @@ -1,232 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/profile/index.vue b/dict/admin/src/views/system/profile/index.vue deleted file mode 100644 index a2c7c24..0000000 --- a/dict/admin/src/views/system/profile/index.vue +++ /dev/null @@ -1,449 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/role/components/role-auth.vue b/dict/admin/src/views/system/role/components/role-auth.vue deleted file mode 100644 index ae3ff0b..0000000 --- a/dict/admin/src/views/system/role/components/role-auth.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/role/components/role-edit.vue b/dict/admin/src/views/system/role/components/role-edit.vue deleted file mode 100644 index 82e044f..0000000 --- a/dict/admin/src/views/system/role/components/role-edit.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/role/components/role-search.vue b/dict/admin/src/views/system/role/components/role-search.vue deleted file mode 100644 index 2169dca..0000000 --- a/dict/admin/src/views/system/role/components/role-search.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/role/index.vue b/dict/admin/src/views/system/role/index.vue deleted file mode 100644 index 11d6caa..0000000 --- a/dict/admin/src/views/system/role/index.vue +++ /dev/null @@ -1,209 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/setting/components/basic.vue b/dict/admin/src/views/system/setting/components/basic.vue deleted file mode 100644 index 2271bc2..0000000 --- a/dict/admin/src/views/system/setting/components/basic.vue +++ /dev/null @@ -1,316 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/clear.vue b/dict/admin/src/views/system/setting/components/clear.vue deleted file mode 100644 index 30e78f1..0000000 --- a/dict/admin/src/views/system/setting/components/clear.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/developer.vue b/dict/admin/src/views/system/setting/components/developer.vue deleted file mode 100644 index 4dc4887..0000000 --- a/dict/admin/src/views/system/setting/components/developer.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/mp-weixin.vue b/dict/admin/src/views/system/setting/components/mp-weixin.vue deleted file mode 100644 index e47f2ab..0000000 --- a/dict/admin/src/views/system/setting/components/mp-weixin.vue +++ /dev/null @@ -1,217 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/setting/components/payment.vue b/dict/admin/src/views/system/setting/components/payment.vue deleted file mode 100644 index 1f7a2b1..0000000 --- a/dict/admin/src/views/system/setting/components/payment.vue +++ /dev/null @@ -1,526 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/setting/components/printer.vue b/dict/admin/src/views/system/setting/components/printer.vue deleted file mode 100644 index aee9642..0000000 --- a/dict/admin/src/views/system/setting/components/printer.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/privacy.vue b/dict/admin/src/views/system/setting/components/privacy.vue deleted file mode 100644 index a3cd93d..0000000 --- a/dict/admin/src/views/system/setting/components/privacy.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/register.vue b/dict/admin/src/views/system/setting/components/register.vue deleted file mode 100644 index 96f0b05..0000000 --- a/dict/admin/src/views/system/setting/components/register.vue +++ /dev/null @@ -1,236 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/role-select.vue b/dict/admin/src/views/system/setting/components/role-select.vue deleted file mode 100644 index 61d43dd..0000000 --- a/dict/admin/src/views/system/setting/components/role-select.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/setting/components/sms.vue b/dict/admin/src/views/system/setting/components/sms.vue deleted file mode 100644 index b9b8723..0000000 --- a/dict/admin/src/views/system/setting/components/sms.vue +++ /dev/null @@ -1,246 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/upload.vue b/dict/admin/src/views/system/setting/components/upload.vue deleted file mode 100644 index b578b19..0000000 --- a/dict/admin/src/views/system/setting/components/upload.vue +++ /dev/null @@ -1,313 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/setting/components/website.vue b/dict/admin/src/views/system/setting/components/website.vue deleted file mode 100644 index 7f51719..0000000 --- a/dict/admin/src/views/system/setting/components/website.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/wx-official.vue b/dict/admin/src/views/system/setting/components/wx-official.vue deleted file mode 100644 index f64b08e..0000000 --- a/dict/admin/src/views/system/setting/components/wx-official.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/components/wx-work.vue b/dict/admin/src/views/system/setting/components/wx-work.vue deleted file mode 100644 index b905607..0000000 --- a/dict/admin/src/views/system/setting/components/wx-work.vue +++ /dev/null @@ -1,210 +0,0 @@ - - - diff --git a/dict/admin/src/views/system/setting/index.vue b/dict/admin/src/views/system/setting/index.vue deleted file mode 100644 index a5201bd..0000000 --- a/dict/admin/src/views/system/setting/index.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/user-group/components/category-select.vue b/dict/admin/src/views/system/user-group/components/category-select.vue deleted file mode 100644 index e87cc38..0000000 --- a/dict/admin/src/views/system/user-group/components/category-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user-group/components/group-edit.vue b/dict/admin/src/views/system/user-group/components/group-edit.vue deleted file mode 100644 index 4bd763e..0000000 --- a/dict/admin/src/views/system/user-group/components/group-edit.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/user-group/components/search.vue b/dict/admin/src/views/system/user-group/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/user-group/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user-group/index.vue b/dict/admin/src/views/system/user-group/index.vue deleted file mode 100644 index f18ce18..0000000 --- a/dict/admin/src/views/system/user-group/index.vue +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/user-info/index.vue b/dict/admin/src/views/system/user-info/index.vue deleted file mode 100644 index 3f10214..0000000 --- a/dict/admin/src/views/system/user-info/index.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/user/components/Extra.vue b/dict/admin/src/views/system/user/components/Extra.vue deleted file mode 100644 index 77aec38..0000000 --- a/dict/admin/src/views/system/user/components/Extra.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/org-select.vue b/dict/admin/src/views/system/user/components/org-select.vue deleted file mode 100644 index 587424f..0000000 --- a/dict/admin/src/views/system/user/components/org-select.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/role-select.vue b/dict/admin/src/views/system/user/components/role-select.vue deleted file mode 100644 index 60fc5ad..0000000 --- a/dict/admin/src/views/system/user/components/role-select.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/search.vue b/dict/admin/src/views/system/user/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/user/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/sex-select.vue b/dict/admin/src/views/system/user/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/system/user/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/user-edit.vue b/dict/admin/src/views/system/user/components/user-edit.vue deleted file mode 100644 index bf34412..0000000 --- a/dict/admin/src/views/system/user/components/user-edit.vue +++ /dev/null @@ -1,363 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/user-import.vue b/dict/admin/src/views/system/user/components/user-import.vue deleted file mode 100644 index f5b1088..0000000 --- a/dict/admin/src/views/system/user/components/user-import.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/user-info.vue b/dict/admin/src/views/system/user/components/user-info.vue deleted file mode 100644 index a737d2f..0000000 --- a/dict/admin/src/views/system/user/components/user-info.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/user-search.vue b/dict/admin/src/views/system/user/components/user-search.vue deleted file mode 100644 index b68abad..0000000 --- a/dict/admin/src/views/system/user/components/user-search.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/components/userEdit.vue b/dict/admin/src/views/system/user/components/userEdit.vue deleted file mode 100644 index 3a59597..0000000 --- a/dict/admin/src/views/system/user/components/userEdit.vue +++ /dev/null @@ -1,274 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/user/details/index.vue b/dict/admin/src/views/system/user/details/index.vue deleted file mode 100644 index 9e535df..0000000 --- a/dict/admin/src/views/system/user/details/index.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - diff --git a/dict/admin/src/views/system/user/index.vue b/dict/admin/src/views/system/user/index.vue deleted file mode 100644 index 7eab860..0000000 --- a/dict/admin/src/views/system/user/index.vue +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/userOauth/components/search.vue b/dict/admin/src/views/system/userOauth/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/userOauth/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/userOauth/components/userOauthEdit.vue b/dict/admin/src/views/system/userOauth/components/userOauthEdit.vue deleted file mode 100644 index 0907ff8..0000000 --- a/dict/admin/src/views/system/userOauth/components/userOauthEdit.vue +++ /dev/null @@ -1,209 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/userOauth/index.vue b/dict/admin/src/views/system/userOauth/index.vue deleted file mode 100644 index 588caab..0000000 --- a/dict/admin/src/views/system/userOauth/index.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/userVerify/components/search.vue b/dict/admin/src/views/system/userVerify/components/search.vue deleted file mode 100644 index 4194d41..0000000 --- a/dict/admin/src/views/system/userVerify/components/search.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/userVerify/components/userVerifyEdit.vue b/dict/admin/src/views/system/userVerify/components/userVerifyEdit.vue deleted file mode 100644 index be52123..0000000 --- a/dict/admin/src/views/system/userVerify/components/userVerifyEdit.vue +++ /dev/null @@ -1,300 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/userVerify/index.vue b/dict/admin/src/views/system/userVerify/index.vue deleted file mode 100644 index a6e94a3..0000000 --- a/dict/admin/src/views/system/userVerify/index.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/userVerify2/components/search.vue b/dict/admin/src/views/system/userVerify2/components/search.vue deleted file mode 100644 index 869cea1..0000000 --- a/dict/admin/src/views/system/userVerify2/components/search.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/userVerify2/components/userVerifyEdit.vue b/dict/admin/src/views/system/userVerify2/components/userVerifyEdit.vue deleted file mode 100644 index c690f5f..0000000 --- a/dict/admin/src/views/system/userVerify2/components/userVerifyEdit.vue +++ /dev/null @@ -1,376 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/userVerify2/index.vue b/dict/admin/src/views/system/userVerify2/index.vue deleted file mode 100644 index 0ac72f6..0000000 --- a/dict/admin/src/views/system/userVerify2/index.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/system/version/components/version-edit.vue b/dict/admin/src/views/system/version/components/version-edit.vue deleted file mode 100644 index 102a816..0000000 --- a/dict/admin/src/views/system/version/components/version-edit.vue +++ /dev/null @@ -1,266 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/version/index.vue b/dict/admin/src/views/system/version/index.vue deleted file mode 100644 index 880916e..0000000 --- a/dict/admin/src/views/system/version/index.vue +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/system/white-domain/components/search.vue b/dict/admin/src/views/system/white-domain/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/system/white-domain/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/white-domain/components/white-domain-edit.vue b/dict/admin/src/views/system/white-domain/components/white-domain-edit.vue deleted file mode 100644 index 3ee684f..0000000 --- a/dict/admin/src/views/system/white-domain/components/white-domain-edit.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - diff --git a/dict/admin/src/views/system/white-domain/index.vue b/dict/admin/src/views/system/white-domain/index.vue deleted file mode 100644 index 97e7911..0000000 --- a/dict/admin/src/views/system/white-domain/index.vue +++ /dev/null @@ -1,203 +0,0 @@ - - - - diff --git a/dict/admin/src/views/user/chat-conversation/components/chatConversationEdit.vue b/dict/admin/src/views/user/chat-conversation/components/chatConversationEdit.vue deleted file mode 100644 index b89b169..0000000 --- a/dict/admin/src/views/user/chat-conversation/components/chatConversationEdit.vue +++ /dev/null @@ -1,220 +0,0 @@ - - - - diff --git a/dict/admin/src/views/user/chat-conversation/components/search.vue b/dict/admin/src/views/user/chat-conversation/components/search.vue deleted file mode 100644 index 82fea9d..0000000 --- a/dict/admin/src/views/user/chat-conversation/components/search.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/dict/admin/src/views/user/chat-conversation/index.vue b/dict/admin/src/views/user/chat-conversation/index.vue deleted file mode 100644 index 7e40e50..0000000 --- a/dict/admin/src/views/user/chat-conversation/index.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/user/chat-message/components/chatMessageEdit.vue b/dict/admin/src/views/user/chat-message/components/chatMessageEdit.vue deleted file mode 100644 index 4b4db92..0000000 --- a/dict/admin/src/views/user/chat-message/components/chatMessageEdit.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - diff --git a/dict/admin/src/views/user/chat-message/components/search.vue b/dict/admin/src/views/user/chat-message/components/search.vue deleted file mode 100644 index 96c8b18..0000000 --- a/dict/admin/src/views/user/chat-message/components/search.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - diff --git a/dict/admin/src/views/user/chat-message/index.vue b/dict/admin/src/views/user/chat-message/index.vue deleted file mode 100644 index ae1a552..0000000 --- a/dict/admin/src/views/user/chat-message/index.vue +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/views/user/profile/components/sex-select.vue b/dict/admin/src/views/user/profile/components/sex-select.vue deleted file mode 100644 index 1497ad5..0000000 --- a/dict/admin/src/views/user/profile/components/sex-select.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/dict/admin/src/views/user/profile/index.vue b/dict/admin/src/views/user/profile/index.vue deleted file mode 100644 index b17ff2f..0000000 --- a/dict/admin/src/views/user/profile/index.vue +++ /dev/null @@ -1,454 +0,0 @@ - - - - - - - diff --git a/dict/admin/src/vite-env.d.ts b/dict/admin/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/dict/admin/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/dict/admin/tailwind.config.js b/dict/admin/tailwind.config.js deleted file mode 100644 index 94915ea..0000000 --- a/dict/admin/tailwind.config.js +++ /dev/null @@ -1,11 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -export default { - content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], - theme: { - extend: {} - }, - plugins: [], - corePlugins: { - preflight: false - } -}; diff --git a/dict/admin/tsconfig.json b/dict/admin/tsconfig.json deleted file mode 100644 index dd32d4b..0000000 --- a/dict/admin/tsconfig.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "strict": true, - "forceConsistentCasingInFileNames": true, - "allowSyntheticDefaultImports": true, - "strictFunctionTypes": false, - "jsx": "preserve", - "baseUrl": "./", - "allowJs": true, - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "experimentalDecorators": true, - "lib": ["esnext", "dom"], - "types": ["vite/client"], - "typeRoots": ["./node_modules/@types/"], - "noImplicitAny": false, - "skipLibCheck": true, - "paths": { - "@/*": ["src/*"] - } - }, - "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.tsx", - "src/**/*.vue", - "components.d.ts", - "vite.config.ts" - ], - "exclude": ["node_modules", "dist", "**/*.js"] -} diff --git a/dict/admin/version.json b/dict/admin/version.json deleted file mode 100644 index e0faa51..0000000 --- a/dict/admin/version.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "version": "3.0.16" -} diff --git a/dict/admin/vite.config.ts b/dict/admin/vite.config.ts deleted file mode 100644 index 2401645..0000000 --- a/dict/admin/vite.config.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { defineConfig } from 'vite'; -import vue from '@vitejs/plugin-vue'; -import ViteCompression from 'vite-plugin-compression'; -import ViteComponents from 'unplugin-vue-components/vite'; -import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; -import { EleAdminResolver } from 'ele-admin-pro/lib/utils/resolvers'; -import { DynamicAntdLess } from 'ele-admin-pro/lib/utils/dynamic-theme'; -import { resolve } from 'path'; -import { visualizer } from 'rollup-plugin-visualizer'; -import { splitVendorChunkPlugin } from 'vite'; - -// 简化的智能端口管理(避免构建时模块解析问题) -function getSmartPort() { - try { - // 从环境变量获取基础配置 - const basePort = parseInt(process.env.VITE_BASE_PORT || '3000'); - const tenantId = process.env.VITE_TENANT_ID || '10258'; - const environment = process.env.NODE_ENV || 'development'; - - // 简化的端口计算 - let recommendedPort = basePort; - - if (environment === 'development') { - // 开发环境:基础端口 + 租户偏移 - const tenantOffset = (parseInt(tenantId) % 1000) * 10; - recommendedPort = basePort + tenantOffset; - } else if (environment === 'test') { - recommendedPort = basePort + 1000; - } else if (environment === 'production') { - recommendedPort = 8080; // 生产环境使用标准端口 - } - - console.log('🎯 智能端口计算:', { - environment, - tenantId, - basePort, - recommendedPort - }); - - return recommendedPort; - } catch (error) { - console.warn('⚠️ 端口计算失败,使用默认端口 3000:', error); - return 3000; - } -} - -export default defineConfig(({ command }) => { - const isBuild = command === 'build'; - - // 智能端口配置(仅在开发模式下) - const smartPort = !isBuild ? getSmartPort() : undefined; - - return { - // 在这里增加 base 写子路径 - base: '/', - resolve: { - alias: { - '@/': resolve('src') + '/', - 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js' - } - }, - // 智能服务器配置 - server: { - port: smartPort || 3000, - host: '0.0.0.0', // 允许外部访问 - open: true, // 自动打开浏览器 - cors: true, // 启用 CORS - // 代理配置 - proxy: { - '/api': { - target: process.env.VITE_API_URL || 'https://server.websoft.top', - changeOrigin: true, - secure: false, - configure: (proxy, _options) => { - proxy.on('error', (err, _req, _res) => { - console.log('proxy error', err); - }); - proxy.on('proxyReq', (proxyReq, req, _res) => { - console.log('Sending Request to the Target:', req.method, req.url); - }); - proxy.on('proxyRes', (proxyRes, req, _res) => { - console.log('Received Response from the Target:', proxyRes.statusCode, req.url); - }); - }, - } - }, - // 端口冲突时的处理 - strictPort: false, // 允许自动选择其他端口 - }, - // 预览服务器配置(用于生产构建预览) - preview: { - port: smartPort ? smartPort + 1000 : 4173, - host: '0.0.0.0', - open: true, - cors: true, - strictPort: false, - }, - plugins: [ - vue({ - script: { - defineModel: true, - propsDestructure: true - } - }), - // 组件按需引入 - ViteComponents({ - dts: false, - resolvers: [ - AntDesignVueResolver({ - importStyle: isBuild ? 'less' : false - }), - EleAdminResolver({ - importStyle: isBuild ? 'less' : false - }) - ], - directoryAsNamespace: true - }), - // 代码分割 - splitVendorChunkPlugin(), - // gzip 压缩 - ViteCompression({ - disable: !isBuild, - threshold: 10240, - algorithm: 'gzip', - ext: '.gz' - }), - // brotli 压缩 - ViteCompression({ - disable: !isBuild, - threshold: 10240, - algorithm: 'brotliCompress', - ext: '.br' - }), - // 打包分析 - isBuild && visualizer({ - filename: 'dist/stats.html', - open: false, - gzipSize: true, - brotliSize: true - }) - ].filter(Boolean), - css: { - preprocessorOptions: { - less: { - javascriptEnabled: true, - plugins: [new DynamicAntdLess()], - modifyVars: { - // 组件样式开发环境全局引入生产环境按需引入 - 'style-entry-file': isBuild ? 'as-needed' : 'global-import' - } - } - } - }, - optimizeDeps: { - include: [ - 'sortablejs', - 'vuedraggable', - 'echarts/core', - 'echarts/charts', - 'echarts/renderers', - 'echarts/components', - 'vue-echarts', - 'echarts-wordcloud', - 'xlsx', - 'lodash-es', - 'dayjs', - 'crypto-js', - 'js-md5', - 'qrcode', - 'nprogress' - ], - exclude: ['@iconify/json'] - }, - build: { - target: 'es2015', - cssCodeSplit: true, - chunkSizeWarningLimit: 1000, - rollupOptions: { - output: { - // 手动分包 - manualChunks: { - // Vue 生态 - 'vue-vendor': ['vue', 'vue-router', 'pinia'], - // UI 组件库 - 'ui-vendor': ['ant-design-vue', 'ele-admin-pro'], - // 工具库 - 'utils-vendor': ['lodash-es', 'dayjs', 'crypto-js', 'js-md5'], - // 图表库 - 'charts-vendor': ['echarts', 'vue-echarts', 'echarts-wordcloud'], - // 编辑器 - 'editor-vendor': ['tinymce', 'bytemd', 'md-editor-v3'], - // 文件处理 - 'file-vendor': ['xlsx', 'exceljs', 'file-saver', 'ali-oss'] - }, - // 文件命名 - chunkFileNames: (chunkInfo) => { - const facadeModuleId = chunkInfo.facadeModuleId - ? chunkInfo.facadeModuleId.split('/').pop().replace(/\.\w+$/, '') - : 'chunk'; - return `js/${facadeModuleId}-[hash].js`; - }, - assetFileNames: (assetInfo) => { - const info = assetInfo.name.split('.'); - const ext = info[info.length - 1]; - if (/\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/i.test(assetInfo.name)) { - return `media/[name]-[hash].${ext}`; - } - if (/\.(png|jpe?g|gif|svg)(\?.*)?$/.test(assetInfo.name)) { - return `images/[name]-[hash].${ext}`; - } - if (/\.(woff2?|eot|ttf|otf)(\?.*)?$/i.test(assetInfo.name)) { - return `fonts/[name]-[hash].${ext}`; - } - return `assets/[name]-[hash].${ext}`; - } - } - }, - // 压缩配置 - minify: 'terser', - terserOptions: { - compress: { - drop_console: true, - drop_debugger: true, - pure_funcs: ['console.log'] - } - } - } - }; -}); diff --git a/dict/admin/yarn.lock b/dict/admin/yarn.lock deleted file mode 100644 index fbc3b32..0000000 --- a/dict/admin/yarn.lock +++ /dev/null @@ -1,6512 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@alloc/quick-lru@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" - integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== - -"@amap/amap-jsapi-loader@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz#9ec4b4d5d2467eac451f6c852e35db69e9f9f0c0" - integrity sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw== - -"@ant-design/colors@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298" - integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== - dependencies: - "@ctrl/tinycolor" "^3.4.0" - -"@ant-design/icons-svg@^4.2.1": - version "4.4.2" - resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6" - integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== - -"@ant-design/icons-vue@^6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz#f9324fdc0eb4cea943cf626d2bf3db9a4ff4c074" - integrity sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA== - dependencies: - "@ant-design/colors" "^6.0.0" - "@ant-design/icons-svg" "^4.2.1" - -"@antfu/utils@^0.7.2": - version "0.7.10" - resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" - integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== - -"@antv/component@^2.1.3": - version "2.1.5" - resolved "https://registry.npmjs.org/@antv/component/-/component-2.1.5.tgz#dd6846163e86424706d2e516964be84965211da5" - integrity sha512-+Pqu6CLkGTvYZw+UQK03B/yiR0h2Zu65tyUGUQkNuPv49Zwe4WqDZqqu94bqT1F07OAAVjeXLCTvhBb954DLXQ== - dependencies: - "@antv/g" "^6.1.11" - "@antv/scale" "^0.4.16" - "@antv/util" "^3.3.10" - svg-path-parser "^1.1.0" - -"@antv/coord@^0.4.7": - version "0.4.7" - resolved "https://registry.npmjs.org/@antv/coord/-/coord-0.4.7.tgz#3ef6c6e3f9ca0f024b90888549946061f35df77a" - integrity sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA== - dependencies: - "@antv/scale" "^0.4.12" - "@antv/util" "^2.0.13" - gl-matrix "^3.4.3" - -"@antv/event-emitter@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz#3e06323b9dcd55a3241ddc7c5458cfabd2095164" - integrity sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg== - -"@antv/expr@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@antv/expr/-/expr-1.0.2.tgz#a75fa0a0f132fe47bedf6c8b93a847997ffe53ff" - integrity sha512-vrfdmPHkTuiS5voVutKl2l06w1ihBh9A8SFdQPEE+2KMVpkymzGOF1eWpfkbGZ7tiFE15GodVdhhHomD/hdIwg== - -"@antv/g-camera-api@2.0.41": - version "2.0.41" - resolved "https://registry.npmjs.org/@antv/g-camera-api/-/g-camera-api-2.0.41.tgz#7c3efaf92f1fdea25913084adfed493cda64f0be" - integrity sha512-dF52/wpzHDKi7ZzPlaHurEjWrF9aBKL2udDwQkEeVtfkJ0DHaavr3BAvhuGhtHoecRYQJvpzP1OkGNDLQJQQlw== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - gl-matrix "^3.4.3" - tslib "^2.5.3" - -"@antv/g-canvas@^2.0.43": - version "2.0.48" - resolved "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-2.0.48.tgz#7c2e90f644ab3c7390ec271e718c75d8ed6f5e3c" - integrity sha512-P98cTLRbKbCAcUVgHqMjKcvOany6nR7wvt+g+sazIfKSMUCWgjLTOjlLezux2up3At29mt80StaV2AR3d61YQA== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/g-plugin-canvas-path-generator" "2.1.22" - "@antv/g-plugin-canvas-picker" "2.1.27" - "@antv/g-plugin-canvas-renderer" "2.3.3" - "@antv/g-plugin-dom-interaction" "2.1.27" - "@antv/g-plugin-html-renderer" "2.1.27" - "@antv/g-plugin-image-loader" "2.1.26" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - tslib "^2.5.3" - -"@antv/g-dom-mutation-observer-api@2.0.38": - version "2.0.38" - resolved "https://registry.npmjs.org/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.38.tgz#46cab75ca319625e72d48bdd56a145326346afdd" - integrity sha512-xzgbt8GUOiToBeDVv+jmGkDE+HtI9tD6uO8TirJbCya88DKcY/jurQALq0NdWKgMJLn7WPiUKyDwHWimwQcBJw== - dependencies: - "@antv/g-lite" "2.3.2" - "@babel/runtime" "^7.25.6" - -"@antv/g-lite@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@antv/g-lite/-/g-lite-2.3.2.tgz#48365e2963d6272dcc4041e7c788a4e6d3f170a4" - integrity sha512-fkIxRoqLOGsNPwsp26bPp58cPWuX3E4wQ9cfkB/DHy5LtLrPpvOwHWB3+MBPgZwzk8jTTjchiXa756ZFOAWyQQ== - dependencies: - "@antv/g-math" "3.0.1" - "@antv/util" "^3.3.5" - "@antv/vendor" "^1.0.3" - "@babel/runtime" "^7.25.6" - eventemitter3 "^5.0.1" - gl-matrix "^3.4.3" - rbush "^3.0.1" - tslib "^2.5.3" - -"@antv/g-math@3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@antv/g-math/-/g-math-3.0.1.tgz#8c95b96c04a656345f8bfff9d100fa0b5708a2f0" - integrity sha512-FvkDBNRpj+HsLINunrL2PW0OlG368MlpHuihbxleuajGim5kra8tgISwCLmAf8Yz2b1CgZ9PvpohqiLzHS7HLg== - dependencies: - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - gl-matrix "^3.4.3" - tslib "^2.5.3" - -"@antv/g-plugin-canvas-path-generator@2.1.22": - version "2.1.22" - resolved "https://registry.npmjs.org/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.1.22.tgz#8e6f0e56884f1c1dd182f84dd9814faa33612925" - integrity sha512-Z0IawzTGgTppa9IpkNNKsqgoU89oOjUsiU8GZZlkDkUggQTHP0wOxTeLAb43YgClx3aTI3bRs44uMQutNdSVxw== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/g-math" "3.0.1" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - tslib "^2.5.3" - -"@antv/g-plugin-canvas-picker@2.1.27": - version "2.1.27" - resolved "https://registry.npmjs.org/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.1.27.tgz#8d15efd539cf844d02011e41d78eb731d81f0962" - integrity sha512-DHQ0YLYNXAm6O63pW6nKs/R0fuqlUYfehNs/EtzrmqyUkKASd/Vhs4HLNeHTMUdBMgg41T+x5qay0GGttK4Xdw== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/g-math" "3.0.1" - "@antv/g-plugin-canvas-path-generator" "2.1.22" - "@antv/g-plugin-canvas-renderer" "2.3.3" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - gl-matrix "^3.4.3" - tslib "^2.5.3" - -"@antv/g-plugin-canvas-renderer@2.3.3": - version "2.3.3" - resolved "https://registry.npmjs.org/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.3.3.tgz#008b309073bb7da8a083c65f81a83bad17bc424c" - integrity sha512-d6JkZy1YmLnvI9wsbO8QVpBz7z7tl6JRQkF5hx9XLDtf2fD4n83KINeMq13skiNwaiudS771WWiBtfzUHB73pQ== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/g-math" "3.0.1" - "@antv/g-plugin-canvas-path-generator" "2.1.22" - "@antv/g-plugin-image-loader" "2.1.26" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - gl-matrix "^3.4.3" - tslib "^2.5.3" - -"@antv/g-plugin-dom-interaction@2.1.27": - version "2.1.27" - resolved "https://registry.npmjs.org/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.1.27.tgz#7ba49e2dd0459f421346fb2521b1972ad0e15799" - integrity sha512-hltVZZH+bj0uXmGSR+6BIwhCFYyHmDIQi3vrj/Wn1Dn6PgufvMCXfjr3DfmkQnY+FFP8ZCpg5N9MaE0BE9OddA== - dependencies: - "@antv/g-lite" "2.3.2" - "@babel/runtime" "^7.25.6" - tslib "^2.5.3" - -"@antv/g-plugin-dragndrop@^2.0.35": - version "2.0.38" - resolved "https://registry.npmjs.org/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.38.tgz#5cb4c65c33add0dcce92df7511387a0563fa6bce" - integrity sha512-yCef5ER759i0WpuOekFQ+AcDTu0N/COMbkPOG6YuswVnhQH447GUpuNm7Le+Mq26qONlXTDyjxuMHoUOWwJ7Cw== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - tslib "^2.5.3" - -"@antv/g-plugin-html-renderer@2.1.27": - version "2.1.27" - resolved "https://registry.npmjs.org/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.1.27.tgz#897bb923a8d903e7c1d29030a8a85268270a76cd" - integrity sha512-NnI4GxDBb71o/XZzoRdi0xI3xg7GJmthyO5xP5/MiOFmwJ/jW/QDz17vUonmzUVbCt6upikHV5GyYOaogRqdVg== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - gl-matrix "^3.4.3" - tslib "^2.5.3" - -"@antv/g-plugin-image-loader@2.1.26": - version "2.1.26" - resolved "https://registry.npmjs.org/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.1.26.tgz#2684485efab950269344d751ac56eba891e43d87" - integrity sha512-AElV0QOX2LAhB3jr9XtvkynntuKhcaU5n7avu5ynM5VoAtMaJRANhCyefA2G3myeJxWcHk4nWDX6u4YMaZnnvw== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - gl-matrix "^3.4.3" - tslib "^2.5.3" - -"@antv/g-web-animations-api@2.1.28": - version "2.1.28" - resolved "https://registry.npmjs.org/@antv/g-web-animations-api/-/g-web-animations-api-2.1.28.tgz#fad245d3bfd0f4e7d5a215e4d42485d22035458e" - integrity sha512-V5g8bO2D1hb8fRMMi5hXL/De+1UDRzW3C5EX07oazR0q71GONASP+sVwniZdt9R1HAmJSN5dvW3SqWeU3EEstQ== - dependencies: - "@antv/g-lite" "2.3.2" - "@antv/util" "^3.3.5" - "@babel/runtime" "^7.25.6" - tslib "^2.5.3" - -"@antv/g2@^5.1.22": - version "5.3.5" - resolved "https://registry.npmjs.org/@antv/g2/-/g2-5.3.5.tgz#6c012b6f8b6e4aeed599733da1376bcf3e8be48d" - integrity sha512-Q2TPfWTf2fMwe02Uqk4Uvgy/RGXpGQXfSMPHKLkwTUh6WrFImpgzU4mHhUewKVu5ppPGGfvlwIbZcHeBnNb5ug== - dependencies: - "@antv/component" "^2.1.3" - "@antv/coord" "^0.4.7" - "@antv/event-emitter" "^0.1.3" - "@antv/expr" "^1.0.2" - "@antv/g" "^6.1.24" - "@antv/g-canvas" "^2.0.43" - "@antv/g-plugin-dragndrop" "^2.0.35" - "@antv/scale" "^0.4.16" - "@antv/util" "^3.3.10" - "@antv/vendor" "^1.0.11" - flru "^1.0.2" - pdfast "^0.2.0" - -"@antv/g@^6.1.11", "@antv/g@^6.1.24": - version "6.1.28" - resolved "https://registry.npmjs.org/@antv/g/-/g-6.1.28.tgz#7ffb82777e91b7c84ff992b812c4172d1755bf32" - integrity sha512-BwavpbKGR4NEJD3BtVxfBFjCcxy5gsWoUNnBisfG1qfjhGTt7QvUYHFH46+mHJjHMIdYjuFw2T0ZYVtxBddxSg== - dependencies: - "@antv/g-camera-api" "2.0.41" - "@antv/g-dom-mutation-observer-api" "2.0.38" - "@antv/g-lite" "2.3.2" - "@antv/g-web-animations-api" "2.1.28" - "@babel/runtime" "^7.25.6" - -"@antv/scale@^0.4.12", "@antv/scale@^0.4.16": - version "0.4.16" - resolved "https://registry.npmjs.org/@antv/scale/-/scale-0.4.16.tgz#60557470668ccfe5217e482a01f05c0cbb706b62" - integrity sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw== - dependencies: - "@antv/util" "^3.3.7" - color-string "^1.5.5" - fecha "^4.2.1" - -"@antv/util@^2.0.13": - version "2.0.17" - resolved "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz#e8ef42aca7892815b229269f3dd10c6b3c7597a9" - integrity sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q== - dependencies: - csstype "^3.0.8" - tslib "^2.0.3" - -"@antv/util@^3.3.10", "@antv/util@^3.3.5", "@antv/util@^3.3.7": - version "3.3.11" - resolved "https://registry.npmjs.org/@antv/util/-/util-3.3.11.tgz#32c552731cd000eed9adf9ad613738da4c077640" - integrity sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg== - dependencies: - fast-deep-equal "^3.1.3" - gl-matrix "^3.3.0" - tslib "^2.3.1" - -"@antv/vendor@^1.0.11", "@antv/vendor@^1.0.3": - version "1.0.11" - resolved "https://registry.npmjs.org/@antv/vendor/-/vendor-1.0.11.tgz#8a87aa964410d9fcc431a74c8757021a942252f2" - integrity sha512-LmhPEQ+aapk3barntaiIxJ5VHno/Tyab2JnfdcPzp5xONh/8VSfed4bo/9xKo5HcUAEydko38vYLfj6lJliLiw== - dependencies: - "@types/d3-array" "^3.2.1" - "@types/d3-color" "^3.1.3" - "@types/d3-dispatch" "^3.0.6" - "@types/d3-dsv" "^3.0.7" - "@types/d3-ease" "^3.0.2" - "@types/d3-fetch" "^3.0.7" - "@types/d3-force" "^3.0.10" - "@types/d3-format" "^3.0.4" - "@types/d3-geo" "^3.1.0" - "@types/d3-hierarchy" "^3.1.7" - "@types/d3-interpolate" "^3.0.4" - "@types/d3-path" "^3.1.0" - "@types/d3-quadtree" "^3.0.6" - "@types/d3-random" "^3.0.3" - "@types/d3-scale" "^4.0.9" - "@types/d3-scale-chromatic" "^3.1.0" - "@types/d3-shape" "^3.1.7" - "@types/d3-time" "^3.0.4" - "@types/d3-timer" "^3.0.2" - d3-array "^3.2.4" - d3-color "^3.1.0" - d3-dispatch "^3.0.1" - d3-dsv "^3.0.1" - d3-ease "^3.0.1" - d3-fetch "^3.0.1" - d3-force "^3.0.0" - d3-force-3d "^3.0.5" - d3-format "^3.1.0" - d3-geo "^3.1.1" - d3-geo-projection "^4.0.0" - d3-hierarchy "^3.1.2" - d3-interpolate "^3.0.1" - d3-path "^3.1.0" - d3-quadtree "^3.0.1" - d3-random "^3.0.1" - d3-regression "^1.3.10" - d3-scale "^4.0.2" - d3-scale-chromatic "^3.1.0" - d3-shape "^3.2.0" - d3-time "^3.1.0" - d3-timer "^3.0.1" - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" - integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== - -"@babel/parser@^7.25.3", "@babel/parser@^7.28.3": - version "7.28.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz#d2d25b814621bca5fe9d172bc93792547e7a2a71" - integrity sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA== - dependencies: - "@babel/types" "^7.28.2" - -"@babel/runtime@^7.10.5", "@babel/runtime@^7.25.6": - version "7.28.3" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz#75c5034b55ba868121668be5d5bb31cc64e6e61a" - integrity sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA== - -"@babel/standalone@^7.20.0": - version "7.28.3" - resolved "https://registry.npmjs.org/@babel/standalone/-/standalone-7.28.3.tgz#0e126deef7b88b08481c233c7ac0e94c9629d7cd" - integrity sha512-VHmaaU23OkxShTtkwXlte7/uHDK8v55J9YLMqlucjnYujeB9YgrYCHU6LREqUegTVq+/KlLgjoUu8lbeI3XQPA== - -"@babel/types@^7.28.2": - version "7.28.2" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz#da9db0856a9a88e0a13b019881d7513588cf712b" - integrity sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - -"@bytemd/plugin-gfm@^1.17.2": - version "1.22.0" - resolved "https://registry.npmjs.org/@bytemd/plugin-gfm/-/plugin-gfm-1.22.0.tgz#a5d17f12dea851f8b01dd3234b9f0024c4050e72" - integrity sha512-ICmDwK5pCKrsoM2btNUo11R2Cpvaaz8dF/BAVrZ/w7mdY8985f7l8zIc7yX3tO5i3KYVvxBKhTCmerOS4xAcig== - dependencies: - remark-gfm "^3.0.1" - -"@bytemd/plugin-highlight-ssr@^1.20.2": - version "1.22.0" - resolved "https://registry.npmjs.org/@bytemd/plugin-highlight-ssr/-/plugin-highlight-ssr-1.22.0.tgz#f29ed79bf521a07e3639004f1c1c75695edc1059" - integrity sha512-xUbCzxkvAQj6EWoZz0lYxVivaeTzCYY8ssJpbfg+uamNAdzAeIJtD2L9r05/izylEnRzjN+tZYieFXNDLkkrHg== - dependencies: - rehype-highlight "^6.0.0" - -"@bytemd/plugin-highlight@^1.17.4": - version "1.22.0" - resolved "https://registry.npmjs.org/@bytemd/plugin-highlight/-/plugin-highlight-1.22.0.tgz#b28656a82bcf9d1a83747acdc9f8ad63ecd0921e" - integrity sha512-fMLEvsY8KQrVrtokIWeBFu8/JGGSX0V3Hf6Fhbdn9Q8vsz6u/WuI+wo78xRX7OWhUHpx99UxUcwEy/Hq4+NbpQ== - dependencies: - highlight.js "^11.7.0" - -"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.18.6", "@codemirror/autocomplete@^6.3.2", "@codemirror/autocomplete@^6.7.1": - version "6.18.6" - resolved "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.6.tgz#de26e864a1ec8192a1b241eb86addbb612964ddb" - integrity sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg== - dependencies: - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/common" "^1.0.0" - -"@codemirror/commands@^6.0.0", "@codemirror/commands@^6.8.1": - version "6.8.1" - resolved "https://registry.npmjs.org/@codemirror/commands/-/commands-6.8.1.tgz#639f5559d2f33f2582a2429c58cb0c1b925c7a30" - integrity sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw== - dependencies: - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.4.0" - "@codemirror/view" "^6.27.0" - "@lezer/common" "^1.1.0" - -"@codemirror/lang-angular@^0.1.0": - version "0.1.4" - resolved "https://registry.npmjs.org/@codemirror/lang-angular/-/lang-angular-0.1.4.tgz#5b9e940786ba201a9a42eab6db9501fa3fe2292a" - integrity sha512-oap+gsltb/fzdlTQWD6BFF4bSLKcDnlxDsLdePiJpCVNKWXSTAbiiQeYI3UmES+BLAdkmIC1WjyztC1pi/bX4g== - dependencies: - "@codemirror/lang-html" "^6.0.0" - "@codemirror/lang-javascript" "^6.1.2" - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.3" - -"@codemirror/lang-cpp@^6.0.0": - version "6.0.3" - resolved "https://registry.npmjs.org/@codemirror/lang-cpp/-/lang-cpp-6.0.3.tgz#b175b59fcde8dd6e563b7feee8bbed81963a9491" - integrity sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/cpp" "^1.0.0" - -"@codemirror/lang-css@^6.0.0", "@codemirror/lang-css@^6.2.0": - version "6.3.1" - resolved "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz#763ca41aee81bb2431be55e3cfcc7cc8e91421a3" - integrity sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.2" - "@lezer/css" "^1.1.7" - -"@codemirror/lang-go@^6.0.0": - version "6.0.1" - resolved "https://registry.npmjs.org/@codemirror/lang-go/-/lang-go-6.0.1.tgz#598222c90f56eae28d11069c612ca64d0306b057" - integrity sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.6.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/go" "^1.0.0" - -"@codemirror/lang-html@^6.0.0": - version "6.4.9" - resolved "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz#d586f2cc9c341391ae07d1d7c545990dfa069727" - integrity sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/lang-css" "^6.0.0" - "@codemirror/lang-javascript" "^6.0.0" - "@codemirror/language" "^6.4.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/common" "^1.0.0" - "@lezer/css" "^1.1.0" - "@lezer/html" "^1.3.0" - -"@codemirror/lang-java@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-java/-/lang-java-6.0.2.tgz#601d5b3d774a4a997d11647ccb6c05702c54bd5b" - integrity sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/java" "^1.0.0" - -"@codemirror/lang-javascript@^6.0.0", "@codemirror/lang-javascript@^6.1.2": - version "6.2.4" - resolved "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.4.tgz#eef2227d1892aae762f3a0f212f72bec868a02c5" - integrity sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.6.0" - "@codemirror/lint" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/common" "^1.0.0" - "@lezer/javascript" "^1.0.0" - -"@codemirror/lang-json@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz#054b160671306667e25d80385286049841836179" - integrity sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/json" "^1.0.0" - -"@codemirror/lang-less@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-less/-/lang-less-6.0.2.tgz#2e3d82a3ddb8710e6409689cd4a28c66558d0cb8" - integrity sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ== - dependencies: - "@codemirror/lang-css" "^6.2.0" - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@codemirror/lang-liquid@^6.0.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.3.0.tgz#f77fdc4b6c5062ba7ce5525f9839d1e9d7a0e356" - integrity sha512-fY1YsUExcieXRTsCiwX/bQ9+PbCTA/Fumv7C7mTUZHoFkibfESnaXwpr2aKH6zZVwysEunsHHkaIpM/pl3xETQ== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/lang-html" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.1" - -"@codemirror/lang-markdown@^6.0.0", "@codemirror/lang-markdown@^6.3.0": - version "6.3.4" - resolved "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.3.4.tgz#c1c021ba65ba21c4e9b1f6d5add809b4c9e02c8d" - integrity sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug== - dependencies: - "@codemirror/autocomplete" "^6.7.1" - "@codemirror/lang-html" "^6.0.0" - "@codemirror/language" "^6.3.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - "@lezer/common" "^1.2.1" - "@lezer/markdown" "^1.0.0" - -"@codemirror/lang-php@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.2.tgz#bdc439d195c8e73513bc5b971a99a57b5c99ee55" - integrity sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA== - dependencies: - "@codemirror/lang-html" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/php" "^1.0.0" - -"@codemirror/lang-python@^6.0.0": - version "6.2.1" - resolved "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.2.1.tgz#37c9930716110156865a95c548aa0eef5552863a" - integrity sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw== - dependencies: - "@codemirror/autocomplete" "^6.3.2" - "@codemirror/language" "^6.8.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.2.1" - "@lezer/python" "^1.1.4" - -"@codemirror/lang-rust@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-rust/-/lang-rust-6.0.2.tgz#69146e6b3e8f961ef149059aecb9e07bfd7bf3bd" - integrity sha512-EZaGjCUegtiU7kSMvOfEZpaCReowEf3yNidYu7+vfuGTm9ow4mthAparY5hisJqOHmJowVH3Upu+eJlUji6qqA== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/rust" "^1.0.0" - -"@codemirror/lang-sass@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz#38c1b0a1326cc9f5cb2741d2cd51cfbcd7abc0b2" - integrity sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q== - dependencies: - "@codemirror/lang-css" "^6.2.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.2" - "@lezer/sass" "^1.0.0" - -"@codemirror/lang-sql@^6.0.0": - version "6.9.1" - resolved "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.9.1.tgz#9eb9f7203afef6f0f344dbaf306c8a2c6279001d" - integrity sha512-ecSk3gm/mlINcURMcvkCZmXgdzPSq8r/yfCtTB4vgqGGIbBC2IJIAy7GqYTy5pgBEooTVmHP2GZK6Z7h63CDGg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@codemirror/lang-vue@^0.1.1": - version "0.1.3" - resolved "https://registry.npmjs.org/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz#bf79b9152cc18b4903d64c1f67e186ae045c8a97" - integrity sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug== - dependencies: - "@codemirror/lang-html" "^6.0.0" - "@codemirror/lang-javascript" "^6.1.2" - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.1" - -"@codemirror/lang-wast@^6.0.0": - version "6.0.2" - resolved "https://registry.npmjs.org/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz#d2b14175e5e80d7878cbbb29e20ec90dc12d3a2b" - integrity sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@codemirror/lang-xml@^6.0.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz#e3e786e1a89fdc9520efe75c1d6d3de1c40eb91c" - integrity sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.4.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/xml" "^1.0.0" - -"@codemirror/lang-yaml@^6.0.0": - version "6.1.2" - resolved "https://registry.npmjs.org/@codemirror/lang-yaml/-/lang-yaml-6.1.2.tgz#c84280c68fa7af456a355d91183b5e537e9b7038" - integrity sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.2.0" - "@lezer/lr" "^1.0.0" - "@lezer/yaml" "^1.0.0" - -"@codemirror/language-data@^6.5.1": - version "6.5.1" - resolved "https://registry.npmjs.org/@codemirror/language-data/-/language-data-6.5.1.tgz#5cb9413d5225ef27a577c23781bbc0b36c58bb67" - integrity sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w== - dependencies: - "@codemirror/lang-angular" "^0.1.0" - "@codemirror/lang-cpp" "^6.0.0" - "@codemirror/lang-css" "^6.0.0" - "@codemirror/lang-go" "^6.0.0" - "@codemirror/lang-html" "^6.0.0" - "@codemirror/lang-java" "^6.0.0" - "@codemirror/lang-javascript" "^6.0.0" - "@codemirror/lang-json" "^6.0.0" - "@codemirror/lang-less" "^6.0.0" - "@codemirror/lang-liquid" "^6.0.0" - "@codemirror/lang-markdown" "^6.0.0" - "@codemirror/lang-php" "^6.0.0" - "@codemirror/lang-python" "^6.0.0" - "@codemirror/lang-rust" "^6.0.0" - "@codemirror/lang-sass" "^6.0.0" - "@codemirror/lang-sql" "^6.0.0" - "@codemirror/lang-vue" "^0.1.1" - "@codemirror/lang-wast" "^6.0.0" - "@codemirror/lang-xml" "^6.0.0" - "@codemirror/lang-yaml" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/legacy-modes" "^6.4.0" - -"@codemirror/language@^6.0.0", "@codemirror/language@^6.11.0", "@codemirror/language@^6.3.0", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0", "@codemirror/language@^6.8.0": - version "6.11.3" - resolved "https://registry.npmjs.org/@codemirror/language/-/language-6.11.3.tgz#8e6632df566a7ed13a1bd307f9837765bb1abfdd" - integrity sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA== - dependencies: - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.23.0" - "@lezer/common" "^1.1.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - style-mod "^4.0.0" - -"@codemirror/legacy-modes@^6.4.0": - version "6.5.1" - resolved "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.5.1.tgz#6bd13fac94f67a825e5420017e0d2f3c35d09342" - integrity sha512-DJYQQ00N1/KdESpZV7jg9hafof/iBNp9h7TYo1SLMk86TWl9uDsVdho2dzd81K+v4retmK6mdC7WpuOQDytQqw== - dependencies: - "@codemirror/language" "^6.0.0" - -"@codemirror/lint@^6.0.0": - version "6.8.5" - resolved "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.5.tgz#9edaa808e764e28e07665b015951934c8ec3a418" - integrity sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA== - dependencies: - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.35.0" - crelt "^1.0.5" - -"@codemirror/search@^6.0.0", "@codemirror/search@^6.5.11": - version "6.5.11" - resolved "https://registry.npmjs.org/@codemirror/search/-/search-6.5.11.tgz#a324ffee36e032b7f67aa31c4fb9f3e6f9f3ed63" - integrity sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA== - dependencies: - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - crelt "^1.0.5" - -"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.0", "@codemirror/state@^6.5.0", "@codemirror/state@^6.5.2": - version "6.5.2" - resolved "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz#8eca3a64212a83367dc85475b7d78d5c9b7076c6" - integrity sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA== - dependencies: - "@marijn/find-cluster-break" "^1.0.0" - -"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.35.0", "@codemirror/view@^6.36.8": - version "6.38.1" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.38.1.tgz#74214434351719ec0710431363a85f7a01e80a73" - integrity sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ== - dependencies: - "@codemirror/state" "^6.5.0" - crelt "^1.0.6" - style-mod "^4.1.0" - w3c-keyname "^2.2.4" - -"@ctrl/tinycolor@^3.4.0": - version "3.6.1" - resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" - integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== - -"@esbuild/android-arm@0.15.18": - version "0.15.18" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" - integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== - -"@esbuild/linux-loong64@0.15.18": - version "0.15.18" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" - integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.7.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" - integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.12.1" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== - -"@fast-csv/format@4.3.5": - version "4.3.5" - resolved "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz#90d83d1b47b6aaf67be70d6118f84f3e12ee1ff3" - integrity sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A== - dependencies: - "@types/node" "^14.0.1" - lodash.escaperegexp "^4.1.2" - lodash.isboolean "^3.0.3" - lodash.isequal "^4.5.0" - lodash.isfunction "^3.0.9" - lodash.isnil "^4.0.0" - -"@fast-csv/parse@4.3.6": - version "4.3.6" - resolved "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz#ee47d0640ca0291034c7aa94039a744cfb019264" - integrity sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA== - dependencies: - "@types/node" "^14.0.1" - lodash.escaperegexp "^4.1.2" - lodash.groupby "^4.6.0" - lodash.isfunction "^3.0.9" - lodash.isnil "^4.0.0" - lodash.isundefined "^3.0.1" - lodash.uniq "^4.5.0" - -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== - dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== - -"@intlify/core-base@9.14.5": - version "9.14.5" - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.14.5.tgz#cfed631e98b34f4f6fe1312e6c02dd8ace180197" - integrity sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA== - dependencies: - "@intlify/message-compiler" "9.14.5" - "@intlify/shared" "9.14.5" - -"@intlify/message-compiler@9.14.5": - version "9.14.5" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.14.5.tgz#03b0a358c93cb2eed95936531c8a5871fd3841b0" - integrity sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ== - dependencies: - "@intlify/shared" "9.14.5" - source-map-js "^1.0.2" - -"@intlify/shared@9.14.5": - version "9.14.5" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.14.5.tgz#2e42193b8356db20ee28c15d1ee6c8f0fda6c0b9" - integrity sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.30" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz#4a76c4daeee5df09f5d3940e087442fb36ce2b99" - integrity sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@lezer/common@^1.0.0", "@lezer/common@^1.0.2", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.2.1": - version "1.2.3" - resolved "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd" - integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA== - -"@lezer/cpp@^1.0.0": - version "1.1.3" - resolved "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.3.tgz#3029a542f4624fba0ed28f96511b34b8e7906352" - integrity sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/css@^1.1.0", "@lezer/css@^1.1.7": - version "1.3.0" - resolved "https://registry.npmjs.org/@lezer/css/-/css-1.3.0.tgz#296f298814782c2fad42a936f3510042cdcd2034" - integrity sha512-pBL7hup88KbI7hXnZV3PQsn43DHy6TWyzuyk2AO9UyoXcDltvIdqWKE1dLL/45JVZ+YZkHe1WVHqO6wugZZWcw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.0" - -"@lezer/go@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@lezer/go/-/go-1.0.1.tgz#3004b54f5e4c9719edcba98653f380baf8c0d1a2" - integrity sha512-xToRsYxwsgJNHTgNdStpcvmbVuKxTapV0dM0wey1geMMRc9aggoVyKgzYp41D2/vVOx+Ii4hmE206kvxIXBVXQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.0" - -"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3", "@lezer/highlight@^1.2.0", "@lezer/highlight@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b" - integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA== - dependencies: - "@lezer/common" "^1.0.0" - -"@lezer/html@^1.3.0": - version "1.3.10" - resolved "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz#1be9a029a6fe835c823b20a98a449a630416b2af" - integrity sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/java@^1.0.0": - version "1.1.3" - resolved "https://registry.npmjs.org/@lezer/java/-/java-1.1.3.tgz#9efd6a29b4142d07f211076a6fb5e8061c85e147" - integrity sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/javascript@^1.0.0": - version "1.5.1" - resolved "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.1.tgz#2a424a6ec29f1d4ef3c34cbccc5447e373618ad8" - integrity sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.1.3" - "@lezer/lr" "^1.3.0" - -"@lezer/json@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz#e773a012ad0088fbf07ce49cfba875cc9e5bc05f" - integrity sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/lr@^1.0.0", "@lezer/lr@^1.1.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.3.1", "@lezer/lr@^1.3.3", "@lezer/lr@^1.4.0": - version "1.4.2" - resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727" - integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== - dependencies: - "@lezer/common" "^1.0.0" - -"@lezer/markdown@^1.0.0": - version "1.4.3" - resolved "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.4.3.tgz#a742ed5e782ac4913a621dfd1e6a8e409f4dd589" - integrity sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg== - dependencies: - "@lezer/common" "^1.0.0" - "@lezer/highlight" "^1.0.0" - -"@lezer/php@^1.0.0": - version "1.0.4" - resolved "https://registry.npmjs.org/@lezer/php/-/php-1.0.4.tgz#b759a4ac71ca318aa7855971bdb65082b9d69e65" - integrity sha512-D2dJ0t8Z28/G1guztRczMFvPDUqzeMLSQbdWQmaiHV7urc8NlEOnjYk9UrZ531OcLiRxD4Ihcbv7AsDpNKDRaQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.1.0" - -"@lezer/python@^1.1.4": - version "1.1.18" - resolved "https://registry.npmjs.org/@lezer/python/-/python-1.1.18.tgz#fa02fbf492741c82dc2dc98a0a042bd0d4d7f1d3" - integrity sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/rust@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@lezer/rust/-/rust-1.0.2.tgz#cc9a75605d67182a0e799ac40b1965a61dcc6ef0" - integrity sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/sass@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@lezer/sass/-/sass-1.1.0.tgz#c82e660aa5b39303d1de763923aef979fef1d3a4" - integrity sha512-3mMGdCTUZ/84ArHOuXWQr37pnf7f+Nw9ycPUeKX+wu19b7pSMcZGLbaXwvD2APMBDOGxPmpK/O6S1v1EvLoqgQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/xml@^1.0.0": - version "1.0.6" - resolved "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.6.tgz#908c203923288f854eb8e2f4d9b06c437e8610b9" - integrity sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/yaml@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz#b23770ab42b390056da6b187d861b998fd60b1ff" - integrity sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.4.0" - -"@marijn/find-cluster-break@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8" - integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@popperjs/core@^2.11.7", "@popperjs/core@^2.9.0": - version "2.11.8" - resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" - integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== - -"@rollup/pluginutils@^5.0.2": - version "5.2.0" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz#eac25ca5b0bdda4ba735ddaca5fbf26bd435f602" - integrity sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^4.0.2" - -"@simonwep/pickr@~1.8.0": - version "1.8.2" - resolved "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz#96dc86675940d7cad63d69c22083dd1cbb9797cb" - integrity sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA== - dependencies: - core-js "^3.15.1" - nanopop "^2.1.0" - -"@socket.io/component-emitter@~3.1.0": - version "3.1.2" - resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" - integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== - -"@types/codemirror@^5.60.7": - version "5.60.16" - resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.16.tgz#1f462f9771113bd8e1c6130c666b17db8e1087c2" - integrity sha512-V/yHdamffSS075jit+fDxaOAmdP2liok8NSNJnAZfDJErzOheuygHZEhAJrfmk5TEyM32MhkZjwo/idX791yxw== - dependencies: - "@types/tern" "*" - -"@types/d3-array@^3.2.1": - version "3.2.1" - resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" - integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== - -"@types/d3-color@*", "@types/d3-color@^3.1.3": - version "3.1.3" - resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" - integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== - -"@types/d3-dispatch@^3.0.6": - version "3.0.7" - resolved "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz#ef004d8a128046cfce434d17182f834e44ef95b2" - integrity sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA== - -"@types/d3-dsv@*", "@types/d3-dsv@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" - integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== - -"@types/d3-ease@^3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" - integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== - -"@types/d3-fetch@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" - integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== - dependencies: - "@types/d3-dsv" "*" - -"@types/d3-force@^3.0.10": - version "3.0.10" - resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" - integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== - -"@types/d3-format@^3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" - integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== - -"@types/d3-geo@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" - integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== - dependencies: - "@types/geojson" "*" - -"@types/d3-hierarchy@^3.1.7": - version "3.1.7" - resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" - integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== - -"@types/d3-interpolate@^3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" - integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== - dependencies: - "@types/d3-color" "*" - -"@types/d3-path@*", "@types/d3-path@^3.1.0": - version "3.1.1" - resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz#f632b380c3aca1dba8e34aa049bcd6a4af23df8a" - integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg== - -"@types/d3-quadtree@^3.0.6": - version "3.0.6" - resolved "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" - integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== - -"@types/d3-random@^3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" - integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== - -"@types/d3-scale-chromatic@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" - integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== - -"@types/d3-scale@^4.0.9": - version "4.0.9" - resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz#57a2f707242e6fe1de81ad7bfcccaaf606179afb" - integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw== - dependencies: - "@types/d3-time" "*" - -"@types/d3-shape@^3.1.7": - version "3.1.7" - resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz#2b7b423dc2dfe69c8c93596e673e37443348c555" - integrity sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg== - dependencies: - "@types/d3-path" "*" - -"@types/d3-time@*", "@types/d3-time@^3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" - integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== - -"@types/d3-timer@^3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" - integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== - -"@types/debug@^4.0.0": - version "4.1.12" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/file-saver@^2.0.7": - version "2.0.7" - resolved "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz#8dbb2f24bdc7486c54aa854eb414940bbd056f7d" - integrity sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A== - -"@types/geojson@*": - version "7946.0.16" - resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" - integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== - -"@types/hast@^2.0.0", "@types/hast@^2.3.4": - version "2.3.10" - resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz#5c9d9e0b304bbb8879b857225c5ebab2d81d7643" - integrity sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw== - dependencies: - "@types/unist" "^2" - -"@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/linkify-it@^5": - version "5.0.0" - resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" - integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== - -"@types/lodash-es@^4.17.6", "@types/lodash-es@^4.17.7": - version "4.17.12" - resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b" - integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*": - version "4.17.20" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz#1ca77361d7363432d29f5e55950d9ec1e1c6ea93" - integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== - -"@types/markdown-it@^14.0.1": - version "14.1.2" - resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" - integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== - dependencies: - "@types/linkify-it" "^5" - "@types/mdurl" "^2" - -"@types/mdast@^3.0.0", "@types/mdast@^3.0.11": - version "3.0.15" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" - integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== - dependencies: - "@types/unist" "^2" - -"@types/mdurl@^2": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" - integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== - -"@types/ms@*": - version "2.1.0" - resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" - integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== - -"@types/node@*", "@types/node@^24.0.1": - version "24.3.0" - resolved "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz#89b09f45cb9a8ee69466f18ee5864e4c3eb84dec" - integrity sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow== - dependencies: - undici-types "~7.10.0" - -"@types/node@^14.0.1": - version "14.18.63" - resolved "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" - integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== - -"@types/node@^18.7.14": - version "18.19.123" - resolved "https://registry.npmjs.org/@types/node/-/node-18.19.123.tgz#08a3e4f5e0c73b8840c677b7635ce59d5dc1f76d" - integrity sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg== - dependencies: - undici-types "~5.26.4" - -"@types/nprogress@^0.2.0": - version "0.2.3" - resolved "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz#b2150b054a13622fabcba12cf6f0b54c48b14287" - integrity sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA== - -"@types/parse5@^6.0.0": - version "6.0.3" - resolved "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" - integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== - -"@types/qrcode@^1.5.5": - version "1.5.5" - resolved "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac" - integrity sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.12": - version "7.7.0" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz#64c441bdae033b378b6eef7d0c3d77c329b9378e" - integrity sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA== - -"@types/sortablejs@^1.13.0": - version "1.15.8" - resolved "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.8.tgz#11ed555076046e00869a5ef85d1e7651e7a66ef6" - integrity sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg== - -"@types/tern@*": - version "0.23.9" - resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz#6f6093a4a9af3e6bb8dde528e024924d196b367c" - integrity sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw== - dependencies: - "@types/estree" "*" - -"@types/unist@^2", "@types/unist@^2.0.0": - version "2.0.11" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" - integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== - -"@typescript-eslint/eslint-plugin@^5.36.1": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.36.1": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== - dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@ungap/structured-clone@^1.2.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== - -"@vavt/copy2clipboard@^1.0.1": - version "1.0.3" - resolved "https://registry.npmjs.org/@vavt/copy2clipboard/-/copy2clipboard-1.0.3.tgz#eae77af8e83835cae5d932c3dc025e8838bb4c12" - integrity sha512-HtG48r2FBYp9eRvGB3QGmtRBH1zzRRAVvFbGgFstOwz4/DDaNiX0uZc3YVKPydqgOav26pibr9MtoCaWxn7aeA== - -"@vavt/util@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@vavt/util/-/util-2.1.0.tgz#b8a28da361675195fd6331a1db7cbfd02f68f590" - integrity sha512-YIfAvArSFVXmWvoF+DEGD0FhkhVNcCtVWWkfYtj76eSrwHh/wuEEFhiEubg1XLNM3tChO8FH8xJCT/hnizjgFQ== - -"@vitejs/plugin-legacy@^2.0.1": - version "2.3.1" - resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-2.3.1.tgz#44d8e608e66ef03ff82ae176588c7a621d56c524" - integrity sha512-J5KaGBlSt2tEYPVjM/C8dA6DkRzkFkbPe+Xb4IX5G+XOV5OGbVAfkMjKywdrkO3gGynO8S98i71Lmsff4cWkCQ== - dependencies: - "@babel/standalone" "^7.20.0" - core-js "^3.26.0" - magic-string "^0.26.7" - regenerator-runtime "^0.13.10" - systemjs "^6.13.0" - -"@vitejs/plugin-vue@^3.0.3": - version "3.2.0" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54" - integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw== - -"@volar/code-gen@0.40.13": - version "0.40.13" - resolved "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.13.tgz#cd69a67b11462b93d79ea2139f9f1e0a76e15111" - integrity sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA== - dependencies: - "@volar/source-map" "0.40.13" - -"@volar/source-map@0.40.13": - version "0.40.13" - resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.13.tgz#9acbc47614bbd8fa710d233d10fff1b18cb78a80" - integrity sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg== - dependencies: - "@vue/reactivity" "3.2.38" - -"@volar/typescript-faster@0.40.13": - version "0.40.13" - resolved "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz#5d9600333cc250ad53e8604ff6a2a32e4acfbc86" - integrity sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw== - dependencies: - semver "^7.3.7" - -"@volar/vue-language-core@0.40.13": - version "0.40.13" - resolved "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz#13a79c29ef63d66a40afd1b29166404703b240c4" - integrity sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q== - dependencies: - "@volar/code-gen" "0.40.13" - "@volar/source-map" "0.40.13" - "@vue/compiler-core" "^3.2.38" - "@vue/compiler-dom" "^3.2.38" - "@vue/compiler-sfc" "^3.2.38" - "@vue/reactivity" "^3.2.38" - "@vue/shared" "^3.2.38" - -"@volar/vue-typescript@0.40.13": - version "0.40.13" - resolved "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz#50fe8e0965f4e14596eca57550b5ca13388c244c" - integrity sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ== - dependencies: - "@volar/code-gen" "0.40.13" - "@volar/typescript-faster" "0.40.13" - "@volar/vue-language-core" "0.40.13" - -"@vue/compiler-core@3.5.19", "@vue/compiler-core@^3.2.38": - version "3.5.19" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz#f141d35b61b55ce72c3cbb4dc9eeca3821d451aa" - integrity sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA== - dependencies: - "@babel/parser" "^7.28.3" - "@vue/shared" "3.5.19" - entities "^4.5.0" - estree-walker "^2.0.2" - source-map-js "^1.2.1" - -"@vue/compiler-core@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.3.tgz#93476cc858c8a4e5e9670c9a9185661026136dee" - integrity sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA== - dependencies: - "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.3" - entities "^4.5.0" - estree-walker "^2.0.2" - source-map-js "^1.2.0" - -"@vue/compiler-dom@3.5.19", "@vue/compiler-dom@^3.2.38": - version "3.5.19" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz#fc57d9dca4987df67d6ce64dbddaac6d73f1a6ef" - integrity sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA== - dependencies: - "@vue/compiler-core" "3.5.19" - "@vue/shared" "3.5.19" - -"@vue/compiler-dom@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz#195f21b2c700477e4c3e21f4c98edc7032aedca3" - integrity sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA== - dependencies: - "@vue/compiler-core" "3.5.3" - "@vue/shared" "3.5.3" - -"@vue/compiler-sfc@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.3.tgz#d44c1cafe94d26f74fa4864cabc948c3908a27de" - integrity sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ== - dependencies: - "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.3" - "@vue/compiler-dom" "3.5.3" - "@vue/compiler-ssr" "3.5.3" - "@vue/shared" "3.5.3" - estree-walker "^2.0.2" - magic-string "^0.30.11" - postcss "^8.4.44" - source-map-js "^1.2.0" - -"@vue/compiler-sfc@^3.2.38": - version "3.5.19" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz#7f9792ad7de5d4be9b6a32129c75e1f6cd4da015" - integrity sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg== - dependencies: - "@babel/parser" "^7.28.3" - "@vue/compiler-core" "3.5.19" - "@vue/compiler-dom" "3.5.19" - "@vue/compiler-ssr" "3.5.19" - "@vue/shared" "3.5.19" - estree-walker "^2.0.2" - magic-string "^0.30.17" - postcss "^8.5.6" - source-map-js "^1.2.1" - -"@vue/compiler-ssr@3.5.19": - version "3.5.19" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz#1719e7fda6d54f5696ca63d4d40281668c0e601c" - integrity sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw== - dependencies: - "@vue/compiler-dom" "3.5.19" - "@vue/shared" "3.5.19" - -"@vue/compiler-ssr@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.3.tgz#ef8a98385f571e36798a82d783ac369a06d24f5c" - integrity sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w== - dependencies: - "@vue/compiler-dom" "3.5.3" - "@vue/shared" "3.5.3" - -"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3", "@vue/devtools-api@^6.6.4": - version "6.6.4" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" - integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== - -"@vue/reactivity@3.2.38": - version "3.2.38" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz#d576fdcea98eefb96a1f1ad456e289263e87292e" - integrity sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw== - dependencies: - "@vue/shared" "3.2.38" - -"@vue/reactivity@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.3.tgz#0bdc6031d5be973ee0f807f82259d5579fb46fb6" - integrity sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw== - dependencies: - "@vue/shared" "3.5.3" - -"@vue/reactivity@^3.2.38": - version "3.5.19" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz#c06f172da26e2fc74060cc490d1c3aaffc024622" - integrity sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA== - dependencies: - "@vue/shared" "3.5.19" - -"@vue/runtime-core@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.3.tgz#8126927e4b0cf87a8a7d32822abe8170b8c99edf" - integrity sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw== - dependencies: - "@vue/reactivity" "3.5.3" - "@vue/shared" "3.5.3" - -"@vue/runtime-dom@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.3.tgz#f07ba3faecfd39feb54c4d13d8cc4416ca28f111" - integrity sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg== - dependencies: - "@vue/reactivity" "3.5.3" - "@vue/runtime-core" "3.5.3" - "@vue/shared" "3.5.3" - csstype "^3.1.3" - -"@vue/server-renderer@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.3.tgz#1cbf7bb83cf1a6c7cdcea4ae3afca65c3cf6cf29" - integrity sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q== - dependencies: - "@vue/compiler-ssr" "3.5.3" - "@vue/shared" "3.5.3" - -"@vue/shared@3.2.38": - version "3.2.38" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz#e823f0cb2e85b6bf43430c0d6811b1441c300f3c" - integrity sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg== - -"@vue/shared@3.5.19", "@vue/shared@^3.2.38": - version "3.5.19" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz#5301967a910cb62145e4f17131f3bee88b463c83" - integrity sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q== - -"@vue/shared@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.3.tgz#fb7149372cf5768b9a9f980067c5d0ebac8dc833" - integrity sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA== - -"@wecom/jssdk@^1.3.1": - version "1.4.5" - resolved "https://registry.npmjs.org/@wecom/jssdk/-/jssdk-1.4.5.tgz#7d8f3670feb1ad82e283d92ee8462b763983f1fc" - integrity sha512-1SSmcDUid7QOQNNFaM4d884NXJQYuoO+oLZtM9TRO5uMXYj2s69hmuAoPUr3D3br6VDgv4H+tbIG5A5A+uB9lA== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.14.0, acorn@^8.9.0: - version "8.15.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -address@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -adler-32@~1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" - integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== - -agentkeepalive@^3.4.1: - version "3.5.3" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.3.tgz#c210afce942b4287e2df2fbfe6c0d57eda2ce634" - integrity sha512-yqXL+k5rr8+ZRpOAntkaaRgWgE5o8ESAj5DyRmVTCSoZxXmqemb9Dd7T4i5UzwuERdLAJUy6XzR9zFVuf0kzkw== - dependencies: - humanize-ms "^1.2.1" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ali-oss@^6.18.0: - version "6.23.0" - resolved "https://registry.npmjs.org/ali-oss/-/ali-oss-6.23.0.tgz#0bb236428307986ece0bf9243d77d7029d7b6ed2" - integrity sha512-FipRmyd16Pr/tEey/YaaQ/24Pc3HEpLM9S1DRakEuXlSLXNIJnu1oJtHM53eVYpvW3dXapSjrip3xylZUTIZVQ== - dependencies: - address "^1.2.2" - agentkeepalive "^3.4.1" - bowser "^1.6.0" - copy-to "^2.0.1" - dateformat "^2.0.0" - debug "^4.3.4" - destroy "^1.0.4" - end-or-error "^1.0.1" - get-ready "^1.0.0" - humanize-ms "^1.2.0" - is-type-of "^1.4.0" - js-base64 "^2.5.2" - jstoxml "^2.0.0" - lodash "^4.17.21" - merge-descriptors "^1.0.1" - mime "^2.4.5" - platform "^1.3.1" - pump "^3.0.0" - qs "^6.4.0" - sdk-base "^2.0.1" - stream-http "2.8.2" - stream-wormhole "^1.0.4" - urllib "^2.44.0" - utility "^1.18.0" - xml2js "^0.6.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz#2f302e7550431b1b7762705fffb52cf1ffa20447" - integrity sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -ant-design-vue@^3.2.11: - version "3.2.20" - resolved "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-3.2.20.tgz#552f5f08e2acbcc10bd4089145d4cc2b15d4cfec" - integrity sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg== - dependencies: - "@ant-design/colors" "^6.0.0" - "@ant-design/icons-vue" "^6.1.0" - "@babel/runtime" "^7.10.5" - "@ctrl/tinycolor" "^3.4.0" - "@simonwep/pickr" "~1.8.0" - array-tree-filter "^2.1.0" - async-validator "^4.0.0" - dayjs "^1.10.5" - dom-align "^1.12.1" - dom-scroll-into-view "^2.0.0" - lodash "^4.17.21" - lodash-es "^4.17.15" - resize-observer-polyfill "^1.5.1" - scroll-into-view-if-needed "^2.2.25" - shallow-equal "^1.0.0" - vue-types "^3.0.0" - warning "^4.0.0" - -any-promise@^1.0.0, any-promise@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -archiver-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" - integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== - dependencies: - glob "^7.1.4" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" - normalize-path "^3.0.0" - readable-stream "^2.0.0" - -archiver-utils@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" - integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== - dependencies: - glob "^7.2.3" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" - normalize-path "^3.0.0" - readable-stream "^3.6.0" - -archiver@^5.0.0: - version "5.3.2" - resolved "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" - integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== - dependencies: - archiver-utils "^2.1.0" - async "^3.2.4" - buffer-crc32 "^0.2.1" - readable-stream "^3.6.0" - readdir-glob "^1.1.2" - tar-stream "^2.2.0" - zip-stream "^4.1.0" - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-tree-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" - integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -async-validator@^4.0.0: - version "4.2.5" - resolved "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" - integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== - -async@^3.2.4: - version "3.2.6" - resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" - integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -autoprefixer@^10.4.19: - version "10.4.21" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" - integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== - dependencies: - browserslist "^4.24.4" - caniuse-lite "^1.0.30001702" - fraction.js "^4.3.7" - normalize-range "^0.1.2" - picocolors "^1.1.1" - postcss-value-parser "^4.2.0" - -axios@^0.27.2: - version "0.27.2" - resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== - dependencies: - follow-redirects "^1.14.9" - form-data "^4.0.0" - -bail@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" - integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -big-integer@^1.6.17: - version "1.6.52" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" - integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -bowser@^1.6.0: - version "1.9.4" - resolved "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" - integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== - -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist@^4.24.4: - version "4.25.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz#9167c9cbb40473f15f75f85189290678b99b16c5" - integrity sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ== - dependencies: - caniuse-lite "^1.0.30001735" - electron-to-chromium "^1.5.204" - node-releases "^2.0.19" - update-browserslist-db "^1.1.3" - -buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -bytemd@^1.17.2: - version "1.22.0" - resolved "https://registry.npmjs.org/bytemd/-/bytemd-1.22.0.tgz#b7f79f824a8caeeeddf442ec40a4c26d8ff64608" - integrity sha512-2vmegXnnsOxNufRrrQGHYKwgTmx6H+h40ZZs3DAw/SS5O4mBzO9evc1HD39CqW9wglGNBJxMg257pv9pgAGl+A== - dependencies: - "@popperjs/core" "^2.11.7" - "@types/codemirror" "^5.60.7" - "@types/hast" "^2.3.4" - "@types/lodash-es" "^4.17.7" - "@types/mdast" "^3.0.11" - codemirror-ssr "^0.65.0" - hast-util-sanitize "^4.1.0" - lodash-es "^4.17.21" - rehype-raw "^6.1.1" - rehype-sanitize "^5.0.1" - rehype-stringify "^9.0.3" - remark-parse "^10.0.1" - remark-rehype "^10.1.0" - select-files "^1.0.1" - tippy.js "^6.3.7" - unified "^10.1.2" - unist-util-visit "^4.1.2" - vfile "^5.3.7" - word-count "^0.2.2" - -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bound@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" - integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== - dependencies: - call-bind-apply-helpers "^1.0.2" - get-intrinsic "^1.3.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001735: - version "1.0.30001737" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz#8292bb7591932ff09e9a765f12fdf5629a241ccc" - integrity sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw== - -ccount@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" - integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== - -cfb@~1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" - integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== - dependencies: - adler-32 "~1.3.0" - crc-32 "~1.2.0" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== - dependencies: - traverse ">=0.3.0 <0.4" - -chalk@^2.3.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-html4@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" - integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== - -character-entities-legacy@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" - integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== - -character-entities@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" - integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== - -chokidar@^3.5.3, chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -codemirror-ssr@^0.65.0: - version "0.65.0" - resolved "https://registry.npmjs.org/codemirror-ssr/-/codemirror-ssr-0.65.0.tgz#2da55cb21fbe6142df10aece7e286834734c0fb3" - integrity sha512-ofTAfPkQV56SYFfymNMYJ1ELo3+Jnkw3mOLgnIiQjhonwNmNzX1OFvnihAnYRXL0PWl2kT7s0gKrLc2ExshK4g== - -codemirror@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz#4d3fea1ad60b6753f97ca835f2f48c6936a8946e" - integrity sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/commands" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/lint" "^6.0.0" - "@codemirror/search" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - -codepage@~1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" - integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.5: - version "1.9.1" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -comma-separated-tokens@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" - integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== - -commander@7: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^2.15.1, commander@^2.20.0, commander@^2.20.3: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -compress-commons@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" - integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== - dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^4.0.2" - normalize-path "^3.0.0" - readable-stream "^3.6.0" - -compute-scroll-into-view@^1.0.20: - version "1.0.20" - resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" - integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -content-type@^1.0.2: - version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -copy-anything@^2.0.1: - version "2.0.6" - resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" - integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== - dependencies: - is-what "^3.14.1" - -copy-to@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" - integrity sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w== - -core-js@^3.15.1, core-js@^3.26.0: - version "3.45.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz#5810e04a1b4e9bc5ddaa4dd12e702ff67300634d" - integrity sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg== - -core-util-is@^1.0.2, core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -countup.js@^2.3.2: - version "2.9.0" - resolved "https://registry.npmjs.org/countup.js/-/countup.js-2.9.0.tgz#599e6482e502e5e3f00f8816637120c9b21856ed" - integrity sha512-llqrvyXztRFPp6+i8jx25phHWcVWhrHO4Nlt0uAOSKHB8778zzQswa4MU3qKBvkXfJKftRYFJuVHez67lyKdHg== - -crc-32@^1.2.0, crc-32@~1.2.0, crc-32@~1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -crc32-stream@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" - integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== - dependencies: - crc-32 "^1.2.0" - readable-stream "^3.4.0" - -crelt@^1.0.5, crelt@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" - integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== - -cropperjs@^1.5.12: - version "1.6.2" - resolved "https://registry.npmjs.org/cropperjs/-/cropperjs-1.6.2.tgz#d1a5d627d880581cca41b7901f06923500e4201b" - integrity sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA== - -cross-spawn@^7.0.2, cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-js@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" - integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== - -csstype@^3.0.8, csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -"d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" - integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== - dependencies: - internmap "1 - 2" - -d3-binarytree@1: - version "1.0.2" - resolved "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz#ed43ebc13c70fbabfdd62df17480bc5a425753cc" - integrity sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw== - -"d3-color@1 - 3", d3-color@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" - integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== - -"d3-dispatch@1 - 3", d3-dispatch@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -"d3-dsv@1 - 3", d3-dsv@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -d3-ease@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" - integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== - -d3-fetch@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force-3d@^3.0.5: - version "3.0.6" - resolved "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz#7ea4c26d7937b82993bd9444f570ed52f661d4aa" - integrity sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA== - dependencies: - d3-binarytree "1" - d3-dispatch "1 - 3" - d3-octree "1" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -d3-force@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo-projection@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz#dc229e5ead78d31869a4e87cf1f45bd2716c48ca" - integrity sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg== - dependencies: - commander "7" - d3-array "1 - 3" - d3-geo "1.12.0 - 3" - -"d3-geo@1.12.0 - 3", d3-geo@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" - integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -d3-octree@1: - version "1.1.0" - resolved "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz#f07e353b76df872644e7130ab1a74c5ef2f4287e" - integrity sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A== - -d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - -"d3-quadtree@1 - 3", d3-quadtree@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-regression@^1.3.10: - version "1.3.10" - resolved "https://registry.npmjs.org/d3-regression/-/d3-regression-1.3.10.tgz#d1a411ab45044d9e8d5b8aec05f2e598e1a621c9" - integrity sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw== - -d3-scale-chromatic@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" - integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== - dependencies: - d3-color "1 - 3" - d3-interpolate "1 - 3" - -d3-scale@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -d3-shape@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -"d3-time-format@2 - 4": - version "4.1.0" - resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" - integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -d@1, d@^1.0.1, d@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" - integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== - dependencies: - es5-ext "^0.10.64" - type "^2.7.2" - -danmu.js@^1.1.2: - version "1.1.13" - resolved "https://registry.npmjs.org/danmu.js/-/danmu.js-1.1.13.tgz#615aa3099c662605018724d966b1967c65d7a48b" - integrity sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg== - dependencies: - event-emitter "^0.3.5" - -dateformat@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" - integrity sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw== - -dayjs@^1.10.5, dayjs@^1.11.5, dayjs@^1.8.34: - version "1.11.13" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" - integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== - -debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: - version "4.4.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== - dependencies: - ms "^2.1.3" - -debug@~4.3.1, debug@~4.3.2: - version "4.3.7" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decode-named-character-reference@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz#25c32ae6dd5e21889549d40f676030e9514cc0ed" - integrity sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q== - dependencies: - character-entities "^2.0.0" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-user-agent@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz#16c46efdcaba3edc45f24f2bd4868b01b7c2adc6" - integrity sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw== - dependencies: - os-name "~1.0.3" - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -dequal@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -destroy@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -diff@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== - -digest-header@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/digest-header/-/digest-header-1.1.0.tgz#e16ab6cf4545bc4eea878c8c35acd1b89664d800" - integrity sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg== - -dijkstrajs@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" - integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -docx@^9.5.0: - version "9.5.1" - resolved "https://registry.npmjs.org/docx/-/docx-9.5.1.tgz#325c9c45dccf052e5780515d6068e80fdee81960" - integrity sha512-ABDI7JEirFD2+bHhOBlsGZxaG1UgZb2M/QMKhLSDGgVNhxDesTCDcP+qoDnDGjZ4EOXTRfUjUgwHVuZ6VSTfWQ== - dependencies: - "@types/node" "^24.0.1" - hash.js "^1.1.7" - jszip "^3.10.1" - nanoid "^5.1.3" - xml "^1.0.1" - xml-js "^1.6.8" - -dom-align@^1.12.1: - version "1.12.4" - resolved "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" - integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== - -dom-scroll-into-view@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" - integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== - -downloadjs@1.4.7: - version "1.4.7" - resolved "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz#f69f96f940e0d0553dac291139865a3cd0101e3c" - integrity sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q== - -draggabilly@^2.2.0: - version "2.4.1" - resolved "https://registry.npmjs.org/draggabilly/-/draggabilly-2.4.1.tgz#df02b9e2c3a837d42591af807a0d250b3816887f" - integrity sha512-HHHLPEPZqRXIDQDFRFdK7RONZausNlJ4WkA73ST7Z6O2HPWttxFHVwHo8nccuDLzXWwiVKRVuc6fTkW+CQA++A== - dependencies: - get-size "^2.0.2" - unidragger "^2.4.0" - -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -echarts-wordcloud@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz#c3de6fe267044f6c3343e4ff0e05eedb01c05096" - integrity sha512-Kt1JmbcROgb+3IMI48KZECK2AP5lG6bSsOEs+AsuwaWJxQom31RTNd6NFYI01E/YaI1PFZeueaupjlmzSQasjQ== - -echarts@^5.3.3: - version "5.6.0" - resolved "https://registry.npmjs.org/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6" - integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA== - dependencies: - tslib "2.3.0" - zrender "5.6.1" - -ee-first@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ele-admin-pro@^1.10.1: - version "1.11.1" - resolved "https://registry.npmjs.org/ele-admin-pro/-/ele-admin-pro-1.11.1.tgz#ae801cdd5808ce1d5ca60e2d28ed5d6da4117779" - integrity sha512-3gTCTrQ6XCnfMP8nNZZFXaoRcNpOMLpK2mEsu+21f3w5ID/BFhyOxWSngJL/LMPelwSpK+PwRclp0r3Wu16J7Q== - -electron-to-chromium@^1.5.204: - version "1.5.208" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz#609c29502fd7257b4d721e3446f3ae391a0ca1b3" - integrity sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.5" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" - integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== - dependencies: - once "^1.4.0" - -end-or-error@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/end-or-error/-/end-or-error-1.0.1.tgz#dc7a6210fe78d372fee24a8b4899dbd155414dcb" - integrity sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ== - -engine.io-client@~6.6.1: - version "6.6.3" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz#815393fa24f30b8e6afa8f77ccca2f28146be6de" - integrity sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.2.1" - ws "~8.17.1" - xmlhttprequest-ssl "~2.1.1" - -engine.io-parser@~5.2.1: - version "5.2.3" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" - integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== - -entities@^4.4.0, entities@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -errno@^0.1.1: - version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: - version "0.10.64" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" - integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - esniff "^2.0.1" - next-tick "^1.1.0" - -es6-iterator@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.4" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" - integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== - dependencies: - d "^1.0.2" - ext "^1.7.0" - -esbuild-android-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" - integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== - -esbuild-android-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" - integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== - -esbuild-darwin-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" - integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== - -esbuild-darwin-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" - integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== - -esbuild-freebsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" - integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== - -esbuild-freebsd-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" - integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== - -esbuild-linux-32@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" - integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== - -esbuild-linux-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" - integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== - -esbuild-linux-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" - integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== - -esbuild-linux-arm@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" - integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== - -esbuild-linux-mips64le@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" - integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== - -esbuild-linux-ppc64le@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" - integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== - -esbuild-linux-riscv64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" - integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== - -esbuild-linux-s390x@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" - integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== - -esbuild-netbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" - integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== - -esbuild-openbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" - integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== - -esbuild-sunos-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" - integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== - -esbuild-windows-32@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" - integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== - -esbuild-windows-64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" - integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== - -esbuild-windows-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" - integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== - -esbuild@^0.15.9: - version "0.15.18" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" - integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== - optionalDependencies: - "@esbuild/android-arm" "0.15.18" - "@esbuild/linux-loong64" "0.15.18" - esbuild-android-64 "0.15.18" - esbuild-android-arm64 "0.15.18" - esbuild-darwin-64 "0.15.18" - esbuild-darwin-arm64 "0.15.18" - esbuild-freebsd-64 "0.15.18" - esbuild-freebsd-arm64 "0.15.18" - esbuild-linux-32 "0.15.18" - esbuild-linux-64 "0.15.18" - esbuild-linux-arm "0.15.18" - esbuild-linux-arm64 "0.15.18" - esbuild-linux-mips64le "0.15.18" - esbuild-linux-ppc64le "0.15.18" - esbuild-linux-riscv64 "0.15.18" - esbuild-linux-s390x "0.15.18" - esbuild-netbsd-64 "0.15.18" - esbuild-openbsd-64 "0.15.18" - esbuild-sunos-64 "0.15.18" - esbuild-windows-32 "0.15.18" - esbuild-windows-64 "0.15.18" - esbuild-windows-arm64 "0.15.18" - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -eslint-config-prettier@^8.5.0: - version "8.10.2" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz#0642e53625ebc62c31c24726b0f050df6bd97a2e" - integrity sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A== - -eslint-define-config@^1.7.0: - version "1.24.1" - resolved "https://registry.npmjs.org/eslint-define-config/-/eslint-define-config-1.24.1.tgz#54254d2b2a280c74778ef21b9ccc39e6b56b9bc8" - integrity sha512-o36vBhPSWyIQlHoMqGhhcGmOOm2A2ccBVIdLTG/AWdm9YmjpsLpf+5ntf9LlHR6dduLREgxtGwvwPwSt7vnXJg== - -eslint-plugin-prettier@^4.2.1: - version "4.2.5" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.5.tgz#91ca3f2f01a84f1272cce04e9717550494c0fe06" - integrity sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-vue@^9.4.0: - version "9.33.0" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz#de33eba8f78e1d172c59c8ec7fbfd60c6ca35c39" - integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - globals "^13.24.0" - natural-compare "^1.4.0" - nth-check "^2.1.1" - postcss-selector-parser "^6.0.15" - semver "^7.6.3" - vue-eslint-parser "^9.4.3" - xml-name-validator "^4.0.0" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1, eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8.23.0: - version "8.57.1" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.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.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - 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.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - 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.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -esniff@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" - integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== - dependencies: - d "^1.0.1" - es5-ext "^0.10.62" - event-emitter "^0.3.5" - type "^2.7.2" - -espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@~1.2.2: - version "1.2.5" - resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9" - integrity sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ== - -esquery@^1.4.0, esquery@^1.4.2: - version "1.6.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -ev-emitter@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" - integrity sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q== - -event-emitter@^0.3.5: - version "0.3.5" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -exceljs@^4.3.0: - version "4.4.0" - resolved "https://registry.npmjs.org/exceljs/-/exceljs-4.4.0.tgz#cfb1cb8dcc82c760a9fc9faa9e52dadab66b0156" - integrity sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg== - dependencies: - archiver "^5.0.0" - dayjs "^1.8.34" - fast-csv "^4.3.1" - jszip "^3.10.1" - readable-stream "^3.6.0" - saxes "^5.0.1" - tmp "^0.2.0" - unzipper "^0.10.11" - uuid "^8.3.0" - -ext@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" - integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - dependencies: - type "^2.7.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-csv@^4.3.1: - version "4.3.6" - resolved "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz#70349bdd8fe4d66b1130d8c91820b64a21bc4a63" - integrity sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw== - dependencies: - "@fast-csv/format" "4.3.5" - "@fast-csv/parse" "4.3.6" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.2: - version "3.3.3" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -fault@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" - integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== - dependencies: - format "^0.2.0" - -fecha@^4.2.1: - version "4.2.3" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-saver@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.3.3" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - -flru@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/flru/-/flru-1.0.2.tgz#1ae514c62b8b035ffff9ca9e4563ddcc817f4845" - integrity sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog== - -follow-redirects@^1.14.9: - version "1.15.11" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" - integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -form-data@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.2" - mime-types "^2.1.12" - -format@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" - integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== - -formstream@^1.1.0: - version "1.5.2" - resolved "https://registry.npmjs.org/formstream/-/formstream-1.5.2.tgz#81f282571665b8afd82e0df39399862cb2527c6d" - integrity sha512-NASf0lgxC1AyKNXQIrXTEYkiX99LhCEXTkiGObXAkpBui86a4u8FjH1o2bGb3PpqI3kafC+yw4zWeK6l6VHTgg== - dependencies: - destroy "^1.0.4" - mime "^2.5.2" - node-hex "^1.0.1" - pause-stream "~0.0.11" - -frac@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" - integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== - -fraction.js@^4.3.7: - version "4.3.7" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" - integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -generate-source-map@0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/generate-source-map/-/generate-source-map-0.0.5.tgz#f1255f31653cb0231e6713a7dc8375af4f33a509" - integrity sha512-jqiE7f3FEaeMcjnMSEYLjMa39bdx+RrrdfhxdJpMm9S/8IugHF4vLQLZ9sxHylWyxpsBILukC/l/7B0/O0zhNg== - dependencies: - esprima "~1.2.2" - source-map "~0.1.34" - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - 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: - version "1.0.1" - resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -get-ready@^1.0.0, get-ready@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz#f91817f1e9adecfea13a562adfc8de883ab34782" - integrity sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw== - -get-size@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/get-size/-/get-size-2.0.3.tgz#54a1d0256b20ea7ac646516756202769941ad2ef" - integrity sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q== - -github-markdown-css@^5.1.0: - version "5.8.1" - resolved "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.8.1.tgz#2a53cf17f0c9bde5ff9e83710a3310a02f5278a7" - integrity sha512-8G+PFvqigBQSWLQjyzgpa2ThD9bo7+kDsriUIidGcRhXgmcaAWUIpCZf8DavJgc+xifjbCG+GvMyWr0XMXmc7g== - -gl-matrix@^3.3.0, gl-matrix@^3.4.3: - version "3.4.4" - resolved "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz#7789ee4982f62c7a7af447ee488f3bd6b0c77003" - integrity sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^10.3.10: - version "10.4.5" - resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0, globals@^13.24.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hast-util-from-parse5@^7.0.0: - version "7.1.2" - resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" - integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== - dependencies: - "@types/hast" "^2.0.0" - "@types/unist" "^2.0.0" - hastscript "^7.0.0" - property-information "^6.0.0" - vfile "^5.0.0" - vfile-location "^4.0.0" - web-namespaces "^2.0.0" - -hast-util-is-element@^2.0.0: - version "2.1.3" - resolved "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz#cd3279cfefb70da6d45496068f020742256fc471" - integrity sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA== - dependencies: - "@types/hast" "^2.0.0" - "@types/unist" "^2.0.0" - -hast-util-parse-selector@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" - integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== - dependencies: - "@types/hast" "^2.0.0" - -hast-util-raw@^7.0.0, hast-util-raw@^7.2.0: - version "7.2.3" - resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz#dcb5b22a22073436dbdc4aa09660a644f4991d99" - integrity sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg== - dependencies: - "@types/hast" "^2.0.0" - "@types/parse5" "^6.0.0" - hast-util-from-parse5 "^7.0.0" - hast-util-to-parse5 "^7.0.0" - html-void-elements "^2.0.0" - parse5 "^6.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - vfile "^5.0.0" - web-namespaces "^2.0.0" - zwitch "^2.0.0" - -hast-util-sanitize@^4.0.0, hast-util-sanitize@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-4.1.0.tgz#d90f8521f5083547095c5c63a7e03150303e0286" - integrity sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw== - dependencies: - "@types/hast" "^2.0.0" - -hast-util-to-html@^8.0.0: - version "8.0.4" - resolved "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz#0269ef33fa3f6599b260a8dc94f733b8e39e41fc" - integrity sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA== - dependencies: - "@types/hast" "^2.0.0" - "@types/unist" "^2.0.0" - ccount "^2.0.0" - comma-separated-tokens "^2.0.0" - hast-util-raw "^7.0.0" - hast-util-whitespace "^2.0.0" - html-void-elements "^2.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - stringify-entities "^4.0.0" - zwitch "^2.0.4" - -hast-util-to-parse5@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz#c49391bf8f151973e0c9adcd116b561e8daf29f3" - integrity sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw== - dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^2.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - web-namespaces "^2.0.0" - zwitch "^2.0.0" - -hast-util-to-text@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz#ecf30c47141f41e91a5d32d0b1e1859fd2ac04f2" - integrity sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw== - dependencies: - "@types/hast" "^2.0.0" - "@types/unist" "^2.0.0" - hast-util-is-element "^2.0.0" - unist-util-find-after "^4.0.0" - -hast-util-whitespace@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" - integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== - -hastscript@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" - integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== - dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^2.0.0" - hast-util-parse-selector "^3.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - -highlight.js@^11.7.0: - version "11.11.1" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz#fca06fa0e5aeecf6c4d437239135fabc15213585" - integrity sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w== - -highlight.js@~11.8.0: - version "11.8.0" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz#966518ea83257bae2e7c9a48596231856555bb65" - integrity sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg== - -html-void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" - integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== - -humanize-ms@^1.2.0, humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -iconv-lite@0.6, iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== - -import-fresh@^3.2.1: - version "3.3.1" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-class-hotfix@~0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz#a527d31fb23279281dde5f385c77b5de70a72435" - integrity sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ== - -is-core-module@^2.16.0: - version "2.16.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - -is-plain-object@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" - integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== - -is-type-of@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/is-type-of/-/is-type-of-1.4.0.tgz#3ed175a0eee888b1da4983332e7714feb8a8fb2b" - integrity sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ== - dependencies: - core-util-is "^1.0.2" - is-class-hotfix "~0.0.6" - isstream "~0.1.2" - -is-what@^3.14.1: - version "3.14.1" - resolved "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jiti@^1.21.6: - version "1.21.7" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" - integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== - -js-base64@^2.5.2: - version "2.6.4" - resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -js-cookie@^3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" - integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== - -js-md5@^0.7.3: - version "0.7.3" - resolved "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz#b4f2fbb0b327455f598d6727e38ec272cd09c3f2" - integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ== - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbarcode@^3.11.5: - version "3.12.1" - resolved "https://registry.npmjs.org/jsbarcode/-/jsbarcode-3.12.1.tgz#9ee84826efd8112e017aaf00f72217eae81823b9" - integrity sha512-QZQSqIknC2Rr/YOUyOkCBqsoiBAOTYK+7yNN3JsqfoUtJtkazxNw1dmPpxuv7VVvqW13kA3/mKiLq+s/e3o9hQ== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.2.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" - integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jstoxml@^2.0.0: - version "2.2.9" - resolved "https://registry.npmjs.org/jstoxml/-/jstoxml-2.2.9.tgz#2eebd5e55383fe66a375022ca0aa88f77bc4fb84" - integrity sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw== - -jszip@^3.10.1: - version "3.10.1" - resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" - integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - setimmediate "^1.0.5" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kleur@^4.0.3: - version "4.1.5" - resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - -less@^4.1.3: - version "4.4.1" - resolved "https://registry.npmjs.org/less/-/less-4.4.1.tgz#2f97168bf887ca6a9957ee69e16cc34f8b007cc7" - integrity sha512-X9HKyiXPi0f/ed0XhgUlBeFfxrlDP3xR4M7768Zl+WXLUViuL9AOPPJP4nCV0tgRWvTYvpNmN0SFhZOQzy16PA== - dependencies: - copy-anything "^2.0.1" - parse-node-version "^1.0.1" - tslib "^2.3.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - needle "^3.1.0" - source-map "~0.6.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - -lilconfig@^3.0.0, lilconfig@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" - integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" - integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== - dependencies: - uc.micro "^2.0.0" - -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== - -local-pkg@^0.4.2: - version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.15, lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== - -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== - -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== - -lodash.groupby@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" - integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== - -lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.isfunction@^3.0.9: - version "3.0.9" - resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" - integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== - -lodash.isnil@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c" - integrity sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.isundefined@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" - integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -longest-streak@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" - integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lowlight@^2.0.0: - version "2.9.0" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-2.9.0.tgz#70da647a4319c7bfd8e97721a679b13ef5621496" - integrity sha512-OpcaUTCLmHuVuBcyNckKfH5B0oA4JUavb/M/8n9iAvanJYNQkrVm4pvyX0SUaqkBG4dnWHKt7p50B3ngAG2Rfw== - dependencies: - "@types/hast" "^2.0.0" - fault "^2.0.0" - highlight.js "~11.8.0" - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -lru-cache@^11.0.1: - version "11.1.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" - integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== - -lucide-vue-next@^0.453.0: - version "0.453.0" - resolved "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.453.0.tgz#946e99f3afbb5a4bbb46f521e362cd276e91eef5" - integrity sha512-5zmv83vxAs9SVoe22veDBi8Dw0Fh2F+oTngWgKnKOkrZVbZjceXLQ3tescV2boB0zlaf9R2Sd9RuUP2766xvsQ== - -magic-string@^0.26.7: - version "0.26.7" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" - integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== - dependencies: - sourcemap-codec "^1.4.8" - -magic-string@^0.27.0: - version "0.27.0" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" - integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - -magic-string@^0.30.11, magic-string@^0.30.17: - version "0.30.18" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz#905bfbbc6aa5692703a93db26a9edcaa0007d2bb" - integrity sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -markdown-it-image-figures@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz#fd32a2d0cec60ed8c3916d74fea70d5f9b56e4c7" - integrity sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g== - -markdown-it-sub@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz#10f6c7bbf2faacf71ae1a64c75009c40ef9b2c94" - integrity sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA== - -markdown-it-sup@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz#683b9390929f3024fcd5291799c466ce3d367f44" - integrity sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA== - -markdown-it@^14.0.0: - version "14.1.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" - integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== - dependencies: - argparse "^2.0.1" - entities "^4.4.0" - linkify-it "^5.0.0" - mdurl "^2.0.0" - punycode.js "^2.3.1" - uc.micro "^2.1.0" - -markdown-table@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" - integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -md-editor-v3@^5.2.3: - version "5.8.4" - resolved "https://registry.npmjs.org/md-editor-v3/-/md-editor-v3-5.8.4.tgz#48c9d9c717ac3c299f69aad251104d0e5fce9fb4" - integrity sha512-z7OOvr+Zt86kf0v46L47OHENNzdYeG8tVnfBSQdei7efVs4MWtWJk4ofv1KGutsNUA9q12h9aDZzjELeS+qCog== - dependencies: - "@codemirror/autocomplete" "^6.18.6" - "@codemirror/commands" "^6.8.1" - "@codemirror/lang-markdown" "^6.3.0" - "@codemirror/language" "^6.11.0" - "@codemirror/language-data" "^6.5.1" - "@codemirror/search" "^6.5.11" - "@codemirror/state" "^6.5.2" - "@codemirror/view" "^6.36.8" - "@lezer/highlight" "^1.2.1" - "@types/markdown-it" "^14.0.1" - "@vavt/copy2clipboard" "^1.0.1" - "@vavt/util" "^2.1.0" - codemirror "^6.0.1" - lru-cache "^11.0.1" - lucide-vue-next "^0.453.0" - markdown-it "^14.0.0" - markdown-it-image-figures "^2.1.1" - markdown-it-sub "^2.0.0" - markdown-it-sup "^2.0.0" - medium-zoom "^1.1.0" - xss "^1.0.15" - -mdast-util-definitions@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" - integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - unist-util-visit "^4.0.0" - -mdast-util-find-and-replace@^2.0.0: - version "2.2.2" - resolved "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" - integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== - dependencies: - "@types/mdast" "^3.0.0" - escape-string-regexp "^5.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" - -mdast-util-from-markdown@^1.0.0: - version "1.3.1" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" - integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - decode-named-character-reference "^1.0.0" - mdast-util-to-string "^3.1.0" - micromark "^3.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-decode-string "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - unist-util-stringify-position "^3.0.0" - uvu "^0.5.0" - -mdast-util-gfm-autolink-literal@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" - integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== - dependencies: - "@types/mdast" "^3.0.0" - ccount "^2.0.0" - mdast-util-find-and-replace "^2.0.0" - micromark-util-character "^1.0.0" - -mdast-util-gfm-footnote@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" - integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" - micromark-util-normalize-identifier "^1.0.0" - -mdast-util-gfm-strikethrough@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" - integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" - -mdast-util-gfm-table@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" - integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== - dependencies: - "@types/mdast" "^3.0.0" - markdown-table "^3.0.0" - mdast-util-from-markdown "^1.0.0" - mdast-util-to-markdown "^1.3.0" - -mdast-util-gfm-task-list-item@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" - integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" - -mdast-util-gfm@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" - integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== - dependencies: - mdast-util-from-markdown "^1.0.0" - mdast-util-gfm-autolink-literal "^1.0.0" - mdast-util-gfm-footnote "^1.0.0" - mdast-util-gfm-strikethrough "^1.0.0" - mdast-util-gfm-table "^1.0.0" - mdast-util-gfm-task-list-item "^1.0.0" - mdast-util-to-markdown "^1.0.0" - -mdast-util-phrasing@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" - integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== - dependencies: - "@types/mdast" "^3.0.0" - unist-util-is "^5.0.0" - -mdast-util-to-hast@^12.1.0: - version "12.3.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" - integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== - dependencies: - "@types/hast" "^2.0.0" - "@types/mdast" "^3.0.0" - mdast-util-definitions "^5.0.0" - micromark-util-sanitize-uri "^1.1.0" - trim-lines "^3.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: - version "1.5.0" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" - integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - longest-streak "^3.0.0" - mdast-util-phrasing "^3.0.0" - mdast-util-to-string "^3.0.0" - micromark-util-decode-string "^1.0.0" - unist-util-visit "^4.0.0" - zwitch "^2.0.0" - -mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" - integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== - dependencies: - "@types/mdast" "^3.0.0" - -mdurl@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" - integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== - -medium-zoom@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" - integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== - -merge-descriptors@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" - integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== - dependencies: - decode-named-character-reference "^1.0.0" - micromark-factory-destination "^1.0.0" - micromark-factory-label "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-factory-title "^1.0.0" - micromark-factory-whitespace "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-html-tag-name "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - uvu "^0.5.0" - -micromark-extension-gfm-autolink-literal@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" - integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-extension-gfm-footnote@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" - integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== - dependencies: - micromark-core-commonmark "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-strikethrough@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" - integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-table@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" - integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-tagfilter@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" - integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== - dependencies: - micromark-util-types "^1.0.0" - -micromark-extension-gfm-task-list-item@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" - integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" - integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== - dependencies: - micromark-extension-gfm-autolink-literal "^1.0.0" - micromark-extension-gfm-footnote "^1.0.0" - micromark-extension-gfm-strikethrough "^1.0.0" - micromark-extension-gfm-table "^1.0.0" - micromark-extension-gfm-tagfilter "^1.0.0" - micromark-extension-gfm-task-list-item "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-destination@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" - integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-label@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" - integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-factory-space@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" - integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-title@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" - integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-whitespace@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" - integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-character@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" - integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== - dependencies: - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-chunked@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" - integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-classify-character@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" - integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-combine-extensions@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" - integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-decode-numeric-character-reference@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" - integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-decode-string@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" - integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== - dependencies: - decode-named-character-reference "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-symbol "^1.0.0" - -micromark-util-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" - integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== - -micromark-util-html-tag-name@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" - integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== - -micromark-util-normalize-identifier@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" - integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-resolve-all@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" - integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== - dependencies: - micromark-util-types "^1.0.0" - -micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" - integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-symbol "^1.0.0" - -micromark-util-subtokenize@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" - integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-util-symbol@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" - integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== - -micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" - integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== - -micromark@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" - integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== - dependencies: - "@types/debug" "^4.0.0" - debug "^4.0.0" - decode-named-character-reference "^1.0.0" - micromark-core-commonmark "^1.0.1" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - uvu "^0.5.0" - -micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@^1.4.1: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.5, mime@^2.5.2: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.1.0, minimatch@^5.1.1: - version "5.1.6" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.1.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mitt@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" - integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== - -"mkdirp@>=0.5 0", mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -nanoid@^5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz#f7597f9d9054eb4da9548cdd53ca70f1790e87de" - integrity sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw== - -nanopop@^2.1.0: - version "2.4.2" - resolved "https://registry.npmjs.org/nanopop/-/nanopop-2.4.2.tgz#b55482135be7e64f2d0f5aa8ef51a58104ac7b13" - integrity sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -needle@^3.1.0: - version "3.3.1" - resolved "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" - integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== - dependencies: - iconv-lite "^0.6.3" - sax "^1.2.4" - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -node-hex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/node-hex/-/node-hex-1.0.1.tgz#606208e91f9c02b9b81531b692b9f1da4860fb24" - integrity sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ== - -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== - -nth-check@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -object-assign@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -object-inspect@^1.13.3: - version "1.13.4" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" - integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -open@^8.4.0: - version "8.4.2" - resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -os-name@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz#1b379f64835af7c5a7f498b357cb95215c159edf" - integrity sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew== - dependencies: - osx-release "^1.0.0" - win-release "^1.0.0" - -osx-release@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz#f217911a28136949af1bf9308b241e2737d3cd6c" - integrity sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A== - dependencies: - minimist "^1.1.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@~1.0.2: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-node-version@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - -parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@~0.0.11: - version "0.0.11" - resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== - dependencies: - through "~2.3" - -pdfast@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/pdfast/-/pdfast-0.2.0.tgz#8cbc556e1bf2522177787c0de2e0d4373ba885c9" - integrity sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -picomatch@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinia@^2.0.21: - version "2.3.1" - resolved "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz#54c476675b72f5abcfafa24a7582531ea8c23d94" - integrity sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug== - dependencies: - "@vue/devtools-api" "^6.6.3" - vue-demi "^0.14.10" - -pirates@^4.0.1: - version "4.0.7" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" - integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== - -platform@^1.3.1: - version "1.3.6" - resolved "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" - integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== - dependencies: - lilconfig "^3.0.0" - yaml "^2.3.4" - -postcss-nested@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" - integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== - dependencies: - postcss-selector-parser "^6.1.1" - -postcss-selector-parser@^6.0.15, postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: - version "6.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.4.18, postcss@^8.4.39, postcss@^8.4.44, postcss@^8.4.47, postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.7.1: - version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -property-information@^6.0.0: - version "6.5.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" - integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -pump@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" - integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode.js@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" - integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -qrcode@^1.5.4: - version "1.5.4" - resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz#5cb81d86eb57c675febb08cf007fff963405da88" - integrity sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg== - dependencies: - dijkstrajs "^1.0.1" - pngjs "^5.0.0" - yargs "^15.3.1" - -qs@^6.4.0: - version "6.14.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== - dependencies: - side-channel "^1.1.0" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quickselect@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" - integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== - -rbush@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" - integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== - dependencies: - quickselect "^2.0.0" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdir-glob@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" - integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== - dependencies: - minimatch "^5.1.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regenerator-runtime@^0.13.10: - version "0.13.11" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -rehype-highlight@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-6.0.0.tgz#8097219d8813b51f4c2b6d92db27dac6cbc9a641" - integrity sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw== - dependencies: - "@types/hast" "^2.0.0" - hast-util-to-text "^3.0.0" - lowlight "^2.0.0" - unified "^10.0.0" - unist-util-visit "^4.0.0" - -rehype-raw@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz#81bbef3793bd7abacc6bf8335879d1b6c868c9d4" - integrity sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ== - dependencies: - "@types/hast" "^2.0.0" - hast-util-raw "^7.2.0" - unified "^10.0.0" - -rehype-sanitize@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/rehype-sanitize/-/rehype-sanitize-5.0.1.tgz#dac01a7417bdd329260c74c74449697b4be5eb56" - integrity sha512-da/jIOjq8eYt/1r9GN6GwxIR3gde7OZ+WV8pheu1tL8K0D9KxM2AyMh+UEfke+FfdM3PvGHeYJU0Td5OWa7L5A== - dependencies: - "@types/hast" "^2.0.0" - hast-util-sanitize "^4.0.0" - unified "^10.0.0" - -rehype-stringify@^9.0.3: - version "9.0.4" - resolved "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.4.tgz#31dbb9de6f5034c6964760a1b1083218059c4343" - integrity sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ== - dependencies: - "@types/hast" "^2.0.0" - hast-util-to-html "^8.0.0" - unified "^10.0.0" - -remark-gfm@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" - integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-gfm "^2.0.0" - micromark-extension-gfm "^2.0.0" - unified "^10.0.0" - -remark-parse@^10.0.1: - version "10.0.2" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" - integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-from-markdown "^1.0.0" - unified "^10.0.0" - -remark-rehype@^10.1.0: - version "10.1.0" - resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" - integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== - dependencies: - "@types/hast" "^2.0.0" - "@types/mdast" "^3.0.0" - mdast-util-to-hast "^12.1.0" - unified "^10.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resize-detector@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz#fe495112e184695500a8f51e0389f15774cb1cfc" - integrity sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ== - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.1.7, resolve@^1.22.1, resolve@^1.22.8: - version "1.22.10" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" - integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== - dependencies: - is-core-module "^2.16.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rimraf@2: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rollup-plugin-visualizer@^5.9.2: - version "5.14.0" - resolved "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.14.0.tgz#be82d43fb3c644e396e2d50ac8a53d354022d57c" - integrity sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA== - dependencies: - open "^8.4.0" - picomatch "^4.0.2" - source-map "^0.7.4" - yargs "^17.5.1" - -rollup@^2.79.1: - version "2.79.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090" - integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -sade@^1.7.3: - version "1.8.1" - resolved "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@>=0.6.0, sax@^1.2.4: - version "1.4.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scroll-into-view-if-needed@^2.2.25: - version "2.2.31" - resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" - integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== - dependencies: - compute-scroll-into-view "^1.0.20" - -sdk-base@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz#ba40289e8bdf272ed11dd9ea97eaf98e036d24c6" - integrity sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q== - dependencies: - get-ready "~1.0.0" - -select-files@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/select-files/-/select-files-1.0.1.tgz#974991a69c5dba26cfa57dcbc6d27f0917741acb" - integrity sha512-8h4DSpjfFa0hyMP3z3ye4SxyhdaE5RgaXeScRpH7xl4YblnZSHwexmLdLNdSKwTO8H9ccDKj7Votz0io+18+BQ== - -semver@^5.0.1, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^7.3.6, semver@^7.3.7, semver@^7.6.3: - version "7.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" - integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -setimmediate@^1.0.5, setimmediate@~1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -shallow-equal@^1.0.0: - version "1.2.1" - resolved "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - -side-channel-map@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" - integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - -side-channel-weakmap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" - integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - side-channel-map "^1.0.1" - -side-channel@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" - side-channel-map "^1.0.1" - side-channel-weakmap "^1.0.2" - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -socket.io-client@^4.7.1: - version "4.8.1" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz#1941eca135a5490b94281d0323fe2a35f6f291cb" - integrity sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.6.1" - socket.io-parser "~4.2.4" - -socket.io-parser@~4.2.4: - version "4.2.4" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" - integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - -sortablejs@1.14.0: - version "1.14.0" - resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" - integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== - -sortablejs@^1.15.0: - version "1.15.6" - resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.6.tgz#ff93699493f5b8ab8d828f933227b4988df1d393" - integrity sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A== - -source-map-js@^1.0.2, source-map-js@^1.2.0, source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.4: - version "0.7.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" - integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== - -source-map@~0.1.34: - version "0.1.43" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ== - dependencies: - amdefine ">=0.0.4" - -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -space-separated-tokens@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" - integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== - -ssf@~0.11.2: - version "0.11.2" - resolved "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" - integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== - dependencies: - frac "~1.1.2" - -statuses@^1.3.1: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stream-http@2.8.2: - version "2.8.2" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87" - integrity sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-wormhole@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz#300aff46ced553cfec642a05251885417693c33d" - integrity sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew== - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" - integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== - dependencies: - character-entities-html4 "^2.0.0" - character-entities-legacy "^3.0.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-mod@^4.0.0, style-mod@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" - integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== - -sucrase@^3.35.0: - version "3.35.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" - integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "^10.3.10" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-path-parser@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/svg-path-parser/-/svg-path-parser-1.1.0.tgz#e16b4b39df0d2b0d39e8347db79fdda1453a6046" - integrity sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A== - -systemjs@^6.13.0: - version "6.15.1" - resolved "https://registry.npmjs.org/systemjs/-/systemjs-6.15.1.tgz#74175b6810e27a79e1177d21db5f0e3057118cea" - integrity sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA== - -tailwindcss@^3.4.6: - version "3.4.17" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz#ae8406c0f96696a631c790768ff319d46d5e5a63" - integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== - dependencies: - "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.6.0" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.3.2" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.21.6" - lilconfig "^3.1.3" - micromatch "^4.0.8" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.1.1" - postcss "^8.4.47" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.2" - postcss-nested "^6.2.0" - postcss-selector-parser "^6.1.2" - resolve "^1.22.8" - sucrase "^3.35.0" - -tar-stream@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -terser@^5.15.0: - version "5.43.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz#88387f4f9794ff1a29e7ad61fb2932e25b4fdb6d" - integrity sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.14.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -through@~2.3: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tinymce@^5.10.5: - version "5.10.9" - resolved "https://registry.npmjs.org/tinymce/-/tinymce-5.10.9.tgz#1dfacb3231c71a688d90ff44a0b3f2e91b3b9edf" - integrity sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg== - -tippy.js@^6.3.7: - version "6.3.7" - resolved "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" - integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ== - dependencies: - "@popperjs/core" "^2.9.0" - -tmp@^0.2.0: - version "0.2.5" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" - integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== - -trim-lines@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" - integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== - -trough@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" - integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -tslib@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.5.3: - version "2.8.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type@^2.7.2: - version "2.7.3" - resolved "https://registry.npmjs.org/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486" - integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== - -typescript@^4.8.2: - version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@~7.10.0: - version "7.10.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" - integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== - -unescape@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz#956e430f61cad8a4d57d82c518f5e6cc5d0dda96" - integrity sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ== - dependencies: - extend-shallow "^2.0.1" - -unidragger@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/unidragger/-/unidragger-2.4.0.tgz#4cd7e564317af0ef42632d5984a82d4ae6314d8d" - integrity sha512-MueZK2oXuGE6OAlGKIrSXK2zCq+8yb1QUZgqyTDCSJzvwYL0g2Llrad+TtoQTYxtFnNyxxSw0IMnKNIgEMia1w== - dependencies: - unipointer "^2.4.0" - -unified@^10.0.0, unified@^10.1.2: - version "10.1.2" - resolved "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" - integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== - dependencies: - "@types/unist" "^2.0.0" - bail "^2.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^4.0.0" - trough "^2.0.0" - vfile "^5.0.0" - -unipointer@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/unipointer/-/unipointer-2.4.0.tgz#ac7316aff6170ff87a4b008e55e842fb4bf13181" - integrity sha512-VjzDLPjGK7aYpQKH7bnDZS8X4axF5AFU/LQi+NQe1oyEHfaz6lWKhaQ7n4o7vJ1iJ4i2T0quCIfrQM139p05Sw== - dependencies: - ev-emitter "^1.0.1" - -unist-util-find-after@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz#80c69c92b0504033638ce11973f4135f2c822e2d" - integrity sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-generated@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" - integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== - -unist-util-is@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" - integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== - dependencies: - "@types/unist" "^2.0.0" - -unist-util-position@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" - integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== - dependencies: - "@types/unist" "^2.0.0" - -unist-util-stringify-position@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" - integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== - dependencies: - "@types/unist" "^2.0.0" - -unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: - version "5.1.3" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" - integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^4.0.0, unist-util-visit@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" - integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.1.1" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unplugin-vue-components@^0.22.4: - version "0.22.12" - resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz#39013f77be72d32df9d6ca1599e592a484015612" - integrity sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA== - dependencies: - "@antfu/utils" "^0.7.2" - "@rollup/pluginutils" "^5.0.2" - chokidar "^3.5.3" - debug "^4.3.4" - fast-glob "^3.2.12" - local-pkg "^0.4.2" - magic-string "^0.27.0" - minimatch "^5.1.1" - resolve "^1.22.1" - unplugin "^1.0.1" - -unplugin@^1.0.1: - version "1.16.1" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199" - integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== - dependencies: - acorn "^8.14.0" - webpack-virtual-modules "^0.6.2" - -unzipper@^0.10.11: - version "0.10.14" - resolved "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1" - integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - -update-browserslist-db@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" - integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urllib@^2.44.0: - version "2.44.0" - resolved "https://registry.npmjs.org/urllib/-/urllib-2.44.0.tgz#0da4b037550bdc03eb9a408de498fb4025ddc0b4" - integrity sha512-zRCJqdfYllRDA9bXUtx+vccyRqtJPKsw85f44zH7zPD28PIvjMqIgw9VwoTLV7xTBWZsbebUFVHU5ghQcWku2A== - dependencies: - any-promise "^1.3.0" - content-type "^1.0.2" - default-user-agent "^1.0.0" - digest-header "^1.0.0" - ee-first "~1.1.1" - formstream "^1.1.0" - humanize-ms "^1.2.0" - iconv-lite "^0.6.3" - pump "^3.0.0" - qs "^6.4.0" - statuses "^1.3.1" - utility "^1.16.1" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utility@^1.16.1, utility@^1.18.0: - version "1.18.0" - resolved "https://registry.npmjs.org/utility/-/utility-1.18.0.tgz#af55f62e6d5a272e0cb02b0ab3e7f37c46435f36" - integrity sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA== - dependencies: - copy-to "^2.0.1" - escape-html "^1.0.3" - mkdirp "^0.5.1" - mz "^2.7.0" - unescape "^1.0.1" - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uvu@^0.5.0: - version "0.5.6" - resolved "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" - integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== - dependencies: - dequal "^2.0.0" - diff "^5.0.0" - kleur "^4.0.3" - sade "^1.7.3" - -vfile-location@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" - integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== - dependencies: - "@types/unist" "^2.0.0" - vfile "^5.0.0" - -vfile-message@^3.0.0: - version "3.1.4" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" - integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^3.0.0" - -vfile@^5.0.0, vfile@^5.3.7: - version "5.3.7" - resolved "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" - integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message "^3.0.0" - -vite-plugin-compression@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz#a75b0d8f48357ebb377b65016da9f20885ef39b6" - integrity sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg== - dependencies: - chalk "^4.1.2" - debug "^4.3.3" - fs-extra "^10.0.0" - -vite@^3.0.9: - version "3.2.11" - resolved "https://registry.npmjs.org/vite/-/vite-3.2.11.tgz#8d1c8e05ef2f24b04c8693f56d3e01fe8835e6d7" - integrity sha512-K/jGKL/PgbIgKCiJo5QbASQhFiV02X9Jh+Qq0AKCRCRKZtOTVi4t6wh75FDpGf2N9rYOnzH87OEFQNaFy6pdxQ== - dependencies: - esbuild "^0.15.9" - postcss "^8.4.18" - resolve "^1.22.1" - rollup "^2.79.1" - optionalDependencies: - fsevents "~2.3.2" - -vue-demi@^0.13.11: - version "0.13.11" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" - integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== - -vue-demi@^0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" - integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== - -vue-echarts@^6.2.3: - version "6.7.3" - resolved "https://registry.npmjs.org/vue-echarts/-/vue-echarts-6.7.3.tgz#30efafc51a4a9de1b8117d3b63e74b0c761ff3ba" - integrity sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA== - dependencies: - resize-detector "^0.3.0" - vue-demi "^0.13.11" - -vue-eslint-parser@^9.0.3, vue-eslint-parser@^9.4.3: - version "9.4.3" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" - integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-i18n@^9.2.2: - version "9.14.5" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.14.5.tgz#72fbf4384b83a1c59ec9e01ff5d30224bd9150cf" - integrity sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g== - dependencies: - "@intlify/core-base" "9.14.5" - "@intlify/shared" "9.14.5" - "@vue/devtools-api" "^6.5.0" - -vue-router@^4.1.5: - version "4.5.1" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz#47bffe2d3a5479d2886a9a244547a853aa0abf69" - integrity sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw== - dependencies: - "@vue/devtools-api" "^6.6.4" - -vue-tsc@^0.40.5: - version "0.40.13" - resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.13.tgz#0a193014f7cadb47459cf0809ce3953b74a1348c" - integrity sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA== - dependencies: - "@volar/vue-language-core" "0.40.13" - "@volar/vue-typescript" "0.40.13" - -vue-types@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d" - integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== - dependencies: - is-plain-object "3.0.1" - -vue@3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/vue/-/vue-3.5.3.tgz#1f621023b123341ab5f427e2a6d7320d0e47d72b" - integrity sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q== - dependencies: - "@vue/compiler-dom" "3.5.3" - "@vue/compiler-sfc" "3.5.3" - "@vue/runtime-dom" "3.5.3" - "@vue/server-renderer" "3.5.3" - "@vue/shared" "3.5.3" - -vuedraggable@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz#edece68adb8a4d9e06accff9dfc9040e66852270" - integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww== - dependencies: - sortablejs "1.14.0" - -w3c-keyname@^2.2.4: - version "2.2.8" - resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" - integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== - -warning@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -web-namespaces@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" - integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== - -webpack-virtual-modules@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" - integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -win-release@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz#5fa55e02be7ca934edfc12665632e849b72e5209" - integrity sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw== - dependencies: - semver "^5.0.1" - -wmf@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" - integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== - -word-count@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/word-count/-/word-count-0.2.2.tgz#699192fca6829fe936d41cb0d95db9248c570451" - integrity sha512-tPRTbQ+nTCPY3F0z1f/y0PX22ScE6l/4/8j9KqA3h77JhlZ/w6cbVS8LIO5Pq/aV96SWBOoiE2IEgzxF0Cn+kA== - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -word@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" - integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@~8.17.1: - version "8.17.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - -xgplayer-subtitles@1.0.19: - version "1.0.19" - resolved "https://registry.npmjs.org/xgplayer-subtitles/-/xgplayer-subtitles-1.0.19.tgz#8359a180211282628a68cfb59c9d2b14dc40db40" - integrity sha512-ITvMTgnHD0uytWUYYoS3Qtz10T0o8W0YW3J7/GbfipeJQs4IiFyzhnvTXYB2KnZ6wRXLO6LrNhK9esY9iISJWA== - dependencies: - eventemitter3 "^4.0.7" - generate-source-map "0.0.5" - -xgplayer@^2.31.7: - version "2.32.6" - resolved "https://registry.npmjs.org/xgplayer/-/xgplayer-2.32.6.tgz#ff4ae7739fd0ff7c781078c8a7d24a20cd2951af" - integrity sha512-ESwYYcG8SQciPaN43tZkN3r0dS/jQ5RtyxyGbxn2+qcKgZQ861M899xq8Cab/z6qVVX+/4eIsxDbm3lfYGYzvA== - dependencies: - chalk "^2.3.2" - commander "^2.15.1" - danmu.js "^1.1.2" - downloadjs "1.4.7" - draggabilly "^2.2.0" - event-emitter "^0.3.5" - fs-extra "^5.0.0" - xgplayer-subtitles "1.0.19" - -xlsx@^0.18.5: - version "0.18.5" - resolved "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" - integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== - dependencies: - adler-32 "~1.3.0" - cfb "~1.2.1" - codepage "~1.15.0" - crc-32 "~1.2.1" - ssf "~0.11.2" - wmf "~1.0.1" - word "~0.3.0" - -xml-js@^1.6.8: - version "1.6.11" - resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xml2js@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz#dd0b630083aa09c161e25a4d0901e2b2a929b499" - integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xml@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" - integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmlhttprequest-ssl@~2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz#e9e8023b3f29ef34b97a859f584c5e6c61418e23" - integrity sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ== - -xss@^1.0.15: - version "1.0.15" - resolved "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a" - integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg== - dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yaml@^2.3.4: - version "2.8.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" - integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.5.1: - version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zip-stream@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" - integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== - dependencies: - archiver-utils "^3.0.4" - compress-commons "^4.1.2" - readable-stream "^3.6.0" - -zrender@5.6.1: - version "5.6.1" - resolved "https://registry.npmjs.org/zrender/-/zrender-5.6.1.tgz#e08d57ecf4acac708c4fcb7481eb201df7f10a6b" - integrity sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag== - dependencies: - tslib "2.3.0" - -zwitch@^2.0.0, zwitch@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" - integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== diff --git a/dict/taro/babel.config.js b/dict/taro/babel.config.js deleted file mode 100644 index 30e4f9b..0000000 --- a/dict/taro/babel.config.js +++ /dev/null @@ -1,24 +0,0 @@ -// babel-preset-taro 更多选项和默认值: -// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md -module.exports = { - presets: [ - ['taro', - { - framework: 'react', - ts: 'true', - compiler: 'webpack5', - }] - ], - plugins: [ - [ - "import", - { - "libraryName": "@nutui/nutui-react-taro", - "libraryDirectory": "dist/esm", - "style": 'css', - "camel2DashComponentName": false - }, - 'nutui-react-taro' - ] - ] -} diff --git a/dict/taro/config/app.ts b/dict/taro/config/app.ts deleted file mode 100644 index d9325e5..0000000 --- a/dict/taro/config/app.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { API_BASE_URL } from './env' - -// 租户ID - 请根据实际情况修改 -export const TenantId = '10519'; -// 接口地址 - 请根据实际情况修改 -export const BaseUrl = API_BASE_URL; -// 当前版本 -export const Version = 'v3.0.8'; -// 版权信息 -export const Copyright = 'WebSoft Inc.'; diff --git a/dict/taro/config/dev.ts b/dict/taro/config/dev.ts deleted file mode 100644 index 051a2e7..0000000 --- a/dict/taro/config/dev.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { UserConfigExport } from "@tarojs/cli"; -export default { - logger: { - quiet: false, - stats: true - }, - mini: { - miniCssExtractPluginOption: { - ignoreOrder: true - } - }, - h5: {} -} satisfies UserConfigExport<'webpack5'> diff --git a/dict/taro/config/env.ts b/dict/taro/config/env.ts deleted file mode 100644 index 05c55bd..0000000 --- a/dict/taro/config/env.ts +++ /dev/null @@ -1,42 +0,0 @@ -// 环境变量配置 -export const ENV_CONFIG = { - // 开发环境 - development: { - API_BASE_URL: 'https://cms-api.websoft.top/api', - APP_NAME: '开发环境', - DEBUG: 'true', - }, - // 生产环境 - production: { - API_BASE_URL: 'https://cms-api.websoft.top/api', - APP_NAME: '邕递+', - DEBUG: 'false', - }, - // 测试环境 - test: { - API_BASE_URL: 'https://cms-api.s209.websoft.top/api', - APP_NAME: '测试环境', - DEBUG: 'true', - } -} - -// 获取当前环境配置 -export function getEnvConfig() { - const env = process.env.NODE_ENV || 'development' - if (env === 'production') { - return ENV_CONFIG.production - } else { // @ts-ignore - if (env === 'test') { - return ENV_CONFIG.test - } else { - return ENV_CONFIG.development - } - } -} - -// 导出环境变量 -export const { - API_BASE_URL, - APP_NAME, - DEBUG -} = getEnvConfig() diff --git a/dict/taro/config/index.ts b/dict/taro/config/index.ts deleted file mode 100644 index 13be4ad..0000000 --- a/dict/taro/config/index.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { defineConfig, type UserConfigExport } from '@tarojs/cli' -import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin' -import devConfig from './dev' -import prodConfig from './prod' - -// import vitePluginImp from 'vite-plugin-imp' -// https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数 -export default defineConfig<'webpack5'>(async (merge, {}) => { - const baseConfig: UserConfigExport<'webpack5'> = { - projectName: 'websoft-react', - date: '2024-12-30', - plugins: ['@tarojs/plugin-html'], - designWidth (input:any) { - // 配置 NutUI 375 尺寸 - if (input?.file?.replace(/\\+/g, '/').indexOf('@nutui') > -1) { - return 375 - } - // 全局使用 Taro 默认的 750 尺寸 - return 750 - }, - deviceRatio: { - 640: 2.34 / 2, - 750: 1, - 828: 1.81 / 2, - 375: 2 / 1 - }, - sourceRoot: 'src', - outputRoot: 'dist', - defineConstants: { - }, - copy: { - patterns: [ - ], - options: { - } - }, - framework: 'react', - compiler: { - - type: 'webpack5', - prebundle: { - exclude: ['@nutui/nutui-react-taro', '@nutui/icons-react-taro'], - enable: false - } - }, - cache: { - enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache - }, - mini: { - postcss: { - pxtransform: { - enable: true, - config: { - selectorBlackList: ['nut-'] - } - }, - cssModules: { - enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true - config: { - namingPattern: 'module', // 转换模式,取值为 global/module - generateScopedName: '[name]__[local]___[hash:base64:5]' - } - } - }, - webpackChain(chain) { - chain.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin) - } - }, - h5: { - publicPath: '/', - staticDirectory: 'static', - output: { - filename: 'js/[name].[hash:8].js', - chunkFilename: 'js/[name].[chunkhash:8].js' - }, - miniCssExtractPluginOption: { - ignoreOrder: true, - filename: 'css/[name].[hash].css', - chunkFilename: 'css/[name].[chunkhash].css' - }, - postcss: { - autoprefixer: { - enable: true, - config: {} - }, - cssModules: { - enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true - config: { - namingPattern: 'module', // 转换模式,取值为 global/module - generateScopedName: '[name]__[local]___[hash:base64:5]' - } - } - }, - webpackChain(chain) { - chain.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin) - } - }, - rn: { - appName: 'taroDemo', - postcss: { - cssModules: { - enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true - } - } - } - } - if (process.env.NODE_ENV === 'development') { - // 本地开发构建配置(不混淆压缩) - return merge({}, baseConfig, devConfig) - } - // 生产构建配置(默认开启压缩混淆等) - return merge({}, baseConfig, prodConfig) -}) diff --git a/dict/taro/config/prod.ts b/dict/taro/config/prod.ts deleted file mode 100644 index e0fae1e..0000000 --- a/dict/taro/config/prod.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { UserConfigExport } from "@tarojs/cli"; -export default { - mini: { - miniCssExtractPluginOption: { - ignoreOrder: true - } - }, - h5: { - /** - * WebpackChain 插件配置 - * @docs https://github.com/neutrinojs/webpack-chain - */ - // webpackChain (chain) { - // /** - // * 如果 h5 端编译后体积过大,可以使用 webpack-bundle-analyzer 插件对打包体积进行分析。 - // * @docs https://github.com/webpack-contrib/webpack-bundle-analyzer - // */ - // chain.plugin('analyzer') - // .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, []) - // /** - // * 如果 h5 端首屏加载时间过长,可以使用 prerender-spa-plugin 插件预加载首页。 - // * @docs https://github.com/chrisvfritz/prerender-spa-plugin - // */ - // const path = require('path') - // const Prerender = require('prerender-spa-plugin') - // const staticDir = path.join(__dirname, '..', 'dist') - // chain - // .plugin('prerender') - // .use(new Prerender({ - // staticDir, - // routes: [ '/pages/index/index' ], - // postProcess: (context) => ({ ...context, outputPath: path.join(staticDir, 'index.html') }) - // })) - // } - } -} satisfies UserConfigExport<'webpack5'> diff --git a/dict/taro/package.json b/dict/taro/package.json deleted file mode 100644 index 8b369b6..0000000 --- a/dict/taro/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "template-10519", - "version": "1.0.0", - "private": true, - "description": "WebSoft Inc.", - "templateInfo": { - "name": "react-NutUI", - "typescript": true, - "css": "Sass", - "framework": "React" - }, - "scripts": { - "build:weapp": "taro build --type weapp", - "build:swan": "taro build --type swan", - "build:alipay": "taro build --type alipay", - "build:tt": "taro build --type tt", - "build:h5": "taro build --type h5", - "build:rn": "taro build --type rn", - "build:qq": "taro build --type qq", - "build:jd": "taro build --type jd", - "build:quickapp": "taro build --type quickapp", - "dev:weapp": "npm run build:weapp -- --watch", - "dev:swan": "npm run build:swan -- --watch", - "dev:alipay": "npm run build:alipay -- --watch", - "dev:tt": "npm run build:tt -- --watch", - "dev:h5": "npm run build:h5 -- --watch", - "dev:rn": "npm run build:rn -- --watch", - "dev:qq": "npm run build:qq -- --watch", - "dev:jd": "npm run build:jd -- --watch", - "dev:quickapp": "npm run build:quickapp -- --watch", - "build:tailwind": "postcss --config tailwind.config.js -o ./dist/index.css ./src/app.css" - }, - "browserslist": [ - "last 3 versions", - "Android >= 4.1", - "ios >= 8" - ], - "author": "", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@nutui/icons-react-taro": "^2.0.1", - "@nutui/nutui-react-taro": "^2.7.4", - "@tarojs/components": "4.0.8", - "@tarojs/helper": "4.0.8", - "@tarojs/plugin-framework-react": "4.0.8", - "@tarojs/plugin-html": "4.0.8", - "@tarojs/plugin-platform-alipay": "4.0.8", - "@tarojs/plugin-platform-h5": "4.0.8", - "@tarojs/plugin-platform-jd": "4.0.8", - "@tarojs/plugin-platform-qq": "4.0.8", - "@tarojs/plugin-platform-swan": "4.0.8", - "@tarojs/plugin-platform-tt": "4.0.8", - "@tarojs/plugin-platform-weapp": "4.0.8", - "@tarojs/react": "4.0.8", - "@tarojs/runtime": "4.0.8", - "@tarojs/shared": "4.0.8", - "@tarojs/taro": "4.0.8", - "crypto-js": "^4.2.0", - "dayjs": "^1.11.13", - "echarts-taro3-react": "^1.0.13", - "js-base64": "^3.7.7", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-markdown": "^10.1.0", - "react-router-dom": "^7.1.1" - }, - "devDependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-proposal-class-properties": "7.14.5", - "@babel/preset-react": "^7.26.3", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", - "@tarojs/cli": "4.0.8", - "@tarojs/taro-loader": "4.0.8", - "@tarojs/webpack5-runner": "4.0.8", - "@types/node": "^18.19.68", - "@types/react": "^18.3.18", - "@types/webpack-env": "^1.18.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "autoprefixer": "^10.4.20", - "babel-plugin-import": "^1.13.8", - "babel-preset-taro": "4.0.8", - "eslint": "^8.57.1", - "eslint-config-taro": "4.0.8", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-react": "^7.37.3", - "eslint-plugin-react-hooks": "^4.6.2", - "postcss": "^8.4.49", - "react-refresh": "^0.11.0", - "stylelint": "^14.16.1", - "tailwindcss": "^3.4.17", - "ts-node": "^10.9.2", - "tsconfig-paths-webpack-plugin": "^4.2.0", - "typescript": "^5.7.2", - "webpack": "5.78.0" - } -} diff --git a/dict/taro/pnpm-lock.yaml b/dict/taro/pnpm-lock.yaml deleted file mode 100644 index c995be0..0000000 --- a/dict/taro/pnpm-lock.yaml +++ /dev/null @@ -1,14161 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@babel/runtime': - specifier: ^7.26.0 - version: 7.26.0 - '@nutui/icons-react-taro': - specifier: ^2.0.1 - version: 2.0.1 - '@nutui/nutui-react-taro': - specifier: ^2.7.4 - version: 2.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tarojs/components': - specifier: 4.0.8 - version: 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/helper': - specifier: 4.0.8 - version: 4.0.8 - '@tarojs/plugin-framework-react': - specifier: 4.0.8 - version: 4.0.8(@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.11.0)(type-fest@2.19.0)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)(react@18.3.1)(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/plugin-html': - specifier: 4.0.8 - version: 4.0.8(@tarojs/helper@4.0.8)(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/plugin-platform-alipay': - specifier: 4.0.8 - version: 4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/plugin-platform-h5': - specifier: 4.0.8 - version: 4.0.8(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(solid-js@1.9.3)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/plugin-platform-jd': - specifier: 4.0.8 - version: 4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/plugin-platform-qq': - specifier: 4.0.8 - version: 4.0.8(@tarojs/plugin-platform-weapp@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8))(@tarojs/shared@4.0.8) - '@tarojs/plugin-platform-swan': - specifier: 4.0.8 - version: 4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/plugin-platform-tt': - specifier: 4.0.8 - version: 4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/plugin-platform-weapp': - specifier: 4.0.8 - version: 4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/react': - specifier: 4.0.8 - version: 4.0.8(react@18.3.1) - '@tarojs/runtime': - specifier: 4.0.8 - version: 4.0.8 - '@tarojs/shared': - specifier: 4.0.8 - version: 4.0.8 - '@tarojs/taro': - specifier: 4.0.8 - version: 4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - crypto-js: - specifier: ^4.2.0 - version: 4.2.0 - dayjs: - specifier: ^1.11.13 - version: 1.11.13 - echarts-taro3-react: - specifier: ^1.0.13 - version: 1.0.13 - js-base64: - specifier: ^3.7.7 - version: 3.7.7 - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - react-markdown: - specifier: ^10.1.0 - version: 10.1.0(@types/react@18.3.18)(react@18.3.1) - react-router-dom: - specifier: ^7.1.1 - version: 7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - devDependencies: - '@babel/core': - specifier: ^7.26.0 - version: 7.26.0 - '@babel/plugin-proposal-class-properties': - specifier: 7.14.5 - version: 7.14.5(@babel/core@7.26.0) - '@babel/preset-react': - specifier: ^7.26.3 - version: 7.26.3(@babel/core@7.26.0) - '@pmmmwh/react-refresh-webpack-plugin': - specifier: ^0.5.15 - version: 0.5.15(react-refresh@0.11.0)(type-fest@2.19.0)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/cli': - specifier: 4.0.8 - version: 4.0.8 - '@tarojs/taro-loader': - specifier: 4.0.8 - version: 4.0.8(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/webpack5-runner': - specifier: 4.0.8 - version: 4.0.8(@babel/core@7.26.0)(@swc/core@1.3.96)(@tarojs/runtime@4.0.8)(less@3.13.1)(postcss@8.4.49)(sass@1.83.0)(stylus@0.64.0)(typescript@5.7.2)(webpack@5.78.0(@swc/core@1.3.96)) - '@types/node': - specifier: ^18.19.68 - version: 18.19.68 - '@types/react': - specifier: ^18.3.18 - version: 18.3.18 - '@types/webpack-env': - specifier: ^1.18.5 - version: 1.18.5 - '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.7.2) - autoprefixer: - specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.49) - babel-plugin-import: - specifier: ^1.13.8 - version: 1.13.8 - babel-preset-taro: - specifier: 4.0.8 - version: 4.0.8(@babel/core@7.26.0)(@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0))(@babel/preset-react@7.26.3(@babel/core@7.26.0))(react-refresh@0.11.0) - eslint: - specifier: ^8.57.1 - version: 8.57.1 - eslint-config-taro: - specifier: 4.0.8 - version: 4.0.8(@babel/core@7.26.0)(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.3(eslint@8.57.1))(eslint@8.57.1)(typescript@5.7.2) - eslint-plugin-import: - specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) - eslint-plugin-react: - specifier: ^7.37.3 - version: 7.37.3(eslint@8.57.1) - eslint-plugin-react-hooks: - specifier: ^4.6.2 - version: 4.6.2(eslint@8.57.1) - postcss: - specifier: ^8.4.49 - version: 8.4.49 - react-refresh: - specifier: ^0.11.0 - version: 0.11.0 - stylelint: - specifier: ^14.16.1 - version: 14.16.1 - tailwindcss: - specifier: ^3.4.17 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2)) - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2) - tsconfig-paths-webpack-plugin: - specifier: ^4.2.0 - version: 4.2.0 - typescript: - specifier: ^5.7.2 - version: 5.7.2 - webpack: - specifier: 5.78.0 - version: 5.78.0(@swc/core@1.3.96) - -packages: - - '@adobe/css-tools@4.3.3': - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, tarball: https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.26.2.tgz} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.3': - resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.26.3.tgz} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.26.0.tgz} - engines: {node: '>=6.9.0'} - - '@babel/eslint-parser@7.25.9': - resolution: {integrity: sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==, tarball: https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - - '@babel/generator@7.26.3': - resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.26.3.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==, tarball: https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==, tarball: https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==, tarball: https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==, tarball: https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==, tarball: https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.18.6': - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==, tarball: https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==, tarball: https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.25.9': - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==, tarball: https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==, tarball: https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz} - 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.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz} - 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.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==, tarball: https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.0.tgz} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==, tarball: https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-class-properties@7.14.5': - resolution: {integrity: sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-decorators@7.25.9': - resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, tarball: https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-decorators@7.25.9': - resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.25.9': - resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.25.9': - resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.25.9': - resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.25.9': - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.25.9': - resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-runtime@7.25.9': - resolution: {integrity: sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.26.3': - resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.26.0': - resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==, tarball: https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, tarball: https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-react@7.26.3': - resolution: {integrity: sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==, tarball: https://registry.npmmirror.com/@babel/preset-react/-/preset-react-7.26.3.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-typescript@7.26.0': - resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==, tarball: https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime-corejs3@7.26.0': - resolution: {integrity: sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==, tarball: https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.0.tgz} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.25.9.tgz} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.26.4': - resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.4.tgz} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.3': - resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} - engines: {node: '>=6.9.0'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, tarball: https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} - engines: {node: '>=12'} - - '@csstools/selector-specificity@2.2.0': - resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==, tarball: https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss-selector-parser: ^6.0.10 - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz} - 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==, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.41.0': - resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.41.0.tgz} - 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==, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.57.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==, tarball: https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==, tarball: https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, tarball: https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, tarball: https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz} - deprecated: Use @eslint/object-schema instead - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, tarball: https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz} - engines: {node: '>=12'} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, tarball: https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@26.6.2': - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==, tarball: https://registry.npmmirror.com/@jest/types/-/types-26.6.2.tgz} - engines: {node: '>= 10.14.2'} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, tarball: https://registry.npmmirror.com/@jest/types/-/types-29.6.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, tarball: https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} - - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==, tarball: https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz} - - '@napi-rs/triples@1.2.0': - resolution: {integrity: sha512-HAPjR3bnCsdXBsATpDIP5WCrw0JcACwhhrwIAQhiR46n+jm+a2F8kBsfseAuWtSyQ+H3Yebt2k43B5dy+04yMA==, tarball: https://registry.npmmirror.com/@napi-rs/triples/-/triples-1.2.0.tgz} - - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==, tarball: https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} - engines: {node: '>= 8'} - - '@nutui/icons-react-taro@1.0.5': - resolution: {integrity: sha512-p7dCW29wASH/qQ1OaUGGKA6PRV33wDPb80+qrHnWtT40syIb0W+e92mpplbULWM01s+GYVGyUU3i8b7Iy7qfvw==, tarball: https://registry.npmmirror.com/@nutui/icons-react-taro/-/icons-react-taro-1.0.5.tgz} - - '@nutui/icons-react-taro@2.0.1': - resolution: {integrity: sha512-/DYmt8Rfp0NGx37/67Nd+k85zB2sJMLjlJiLpLbKxXk75SY0inwka51HhgawFTUk53zeta0CH/sDscTZdN005w==, tarball: https://registry.npmmirror.com/@nutui/icons-react-taro/-/icons-react-taro-2.0.1.tgz} - - '@nutui/jdesign-icons-react-taro@1.0.6-beta.2': - resolution: {integrity: sha512-2Scz5c9o14gA7Mw5JdiEkc/KEbNlNWMcJMuqVyFVipYeeYN/118N/fvHVpocmJviN0Gc4P+u3ZB3dIQSA2j4Fw==, tarball: https://registry.npmmirror.com/@nutui/jdesign-icons-react-taro/-/jdesign-icons-react-taro-1.0.6-beta.2.tgz} - - '@nutui/nutui-react-taro@2.7.4': - resolution: {integrity: sha512-r47l2rkY5HbObyTHxt2ZCTMKolM+v9CxX7QwSQGyuVRCi5G5cwPbSEz3NucvWGyZ69NaD3XA4Oc2LumLhaHmGg==, tarball: https://registry.npmmirror.com/@nutui/nutui-react-taro/-/nutui-react-taro-2.7.4.tgz} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@nutui/touch-emulator@1.0.0': - resolution: {integrity: sha512-k2hvI/9LlRA7Ph1Chni27pTuvPmKPt+/I10sWWd2sWzqiCOYRerD79eIwCMRGUF/q6WVDEKVnv00t9CEUL4sPA==, tarball: https://registry.npmmirror.com/@nutui/touch-emulator/-/touch-emulator-1.0.0.tgz} - - '@parcel/watcher-android-arm64@2.5.0': - resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.0': - resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.0': - resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.0': - resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.0': - resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.0': - resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.0': - resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.0': - resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.0': - resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.0': - resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-win32-arm64@2.5.0': - resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.0': - resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.0': - resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.0': - resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} - engines: {node: '>= 10.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pmmmwh/react-refresh-webpack-plugin@0.5.15': - resolution: {integrity: sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==, tarball: https://registry.npmmirror.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz} - engines: {node: '>= 10.13'} - peerDependencies: - '@types/webpack': 4.x || 5.x - react-refresh: '>=0.10.0 <1.0.0' - sockjs-client: ^1.4.0 - type-fest: '>=0.17.0 <5.0.0' - webpack: '>=4.43.0 <6.0.0' - webpack-dev-server: 3.x || 4.x || 5.x - webpack-hot-middleware: 2.x - webpack-plugin-serve: 0.x || 1.x - peerDependenciesMeta: - '@types/webpack': - optional: true - sockjs-client: - optional: true - type-fest: - optional: true - webpack-dev-server: - optional: true - webpack-hot-middleware: - optional: true - webpack-plugin-serve: - optional: true - - '@react-spring/animated@9.6.1': - resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==, tarball: https://registry.npmmirror.com/@react-spring/animated/-/animated-9.6.1.tgz} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/core@9.6.1': - resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==, tarball: https://registry.npmmirror.com/@react-spring/core/-/core-9.6.1.tgz} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/rafz@9.6.1': - resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==, tarball: https://registry.npmmirror.com/@react-spring/rafz/-/rafz-9.6.1.tgz} - - '@react-spring/shared@9.6.1': - resolution: {integrity: sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==, tarball: https://registry.npmmirror.com/@react-spring/shared/-/shared-9.6.1.tgz} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/types@9.6.1': - resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==, tarball: https://registry.npmmirror.com/@react-spring/types/-/types-9.6.1.tgz} - - '@react-spring/web@9.6.1': - resolution: {integrity: sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw==, tarball: https://registry.npmmirror.com/@react-spring/web/-/web-9.6.1.tgz} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@rnx-kit/babel-preset-metro-react-native@1.1.8': - resolution: {integrity: sha512-8DotuBK1ZgV0H/tmCmtW/3ofA7JR/8aPqSu9lKnuqwBfq4bxz+w1sMyfFl89m4teWlkhgyczWBGD6NCLqTgi9A==, tarball: https://registry.npmmirror.com/@rnx-kit/babel-preset-metro-react-native/-/babel-preset-metro-react-native-1.1.8.tgz} - peerDependencies: - '@babel/core': ^7.20.0 - '@babel/plugin-transform-typescript': ^7.20.0 - '@babel/runtime': ^7.20.0 - '@react-native/babel-preset': '*' - metro-react-native-babel-preset: '*' - peerDependenciesMeta: - '@babel/plugin-transform-typescript': - optional: true - '@react-native/babel-preset': - optional: true - metro-react-native-babel-preset: - optional: true - - '@rnx-kit/console@1.1.0': - resolution: {integrity: sha512-N+zFhTSXroiK4eL26vs61Pmtl7wzTPAKLd4JKw9/fk5cNAHUscCXF/uclzuYN61Ye5AwygIvcwbm9wv4Jfa92A==, tarball: https://registry.npmmirror.com/@rnx-kit/console/-/console-1.1.0.tgz} - - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==, tarball: https://registry.npmmirror.com/@rtsao/scc/-/scc-1.1.0.tgz} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==, tarball: https://registry.npmmirror.com/@sideway/address/-/address-4.1.5.tgz} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==, tarball: https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==, tarball: https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, tarball: https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz} - - '@sindresorhus/is@0.14.0': - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==, tarball: https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz} - engines: {node: '>=6'} - - '@sindresorhus/is@0.7.0': - resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==, tarball: https://registry.npmmirror.com/@sindresorhus/is/-/is-0.7.0.tgz} - engines: {node: '>=4'} - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==, tarball: https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz} - engines: {node: '>=18'} - - '@stencil/core@2.22.3': - resolution: {integrity: sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==, tarball: https://registry.npmmirror.com/@stencil/core/-/core-2.22.3.tgz} - engines: {node: '>=12.10.0', npm: '>=6.0.0'} - hasBin: true - - '@swc/core-darwin-arm64@1.3.96': - resolution: {integrity: sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.3.96': - resolution: {integrity: sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.3.96': - resolution: {integrity: sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.3.96': - resolution: {integrity: sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.3.96': - resolution: {integrity: sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.3.96': - resolution: {integrity: sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.3.96': - resolution: {integrity: sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.3.96': - resolution: {integrity: sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.3.96': - resolution: {integrity: sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.3.96': - resolution: {integrity: sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.3.96': - resolution: {integrity: sha512-zwE3TLgoZwJfQygdv2SdCK9mRLYluwDOM53I+dT6Z5ZvrgVENmY3txvWDvduzkV+/8IuvrRbVezMpxcojadRdQ==, tarball: https://registry.npmmirror.com/@swc/core/-/core-1.3.96.tgz} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, tarball: https://registry.npmmirror.com/@swc/counter/-/counter-0.1.3.tgz} - - '@swc/register@0.1.10': - resolution: {integrity: sha512-6STwH/q4dc3pitXLVkV7sP0Hiy+zBsU2wOF1aXpXR95pnH3RYHKIsDC+gvesfyB7jxNT9OOZgcqOp9RPxVTx9A==, tarball: https://registry.npmmirror.com/@swc/register/-/register-0.1.10.tgz} - deprecated: Use @swc-node/register instead - hasBin: true - peerDependencies: - '@swc/core': ^1.0.46 - - '@swc/types@0.1.17': - resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==, tarball: https://registry.npmmirror.com/@swc/types/-/types-0.1.17.tgz} - - '@szmarczak/http-timer@1.1.2': - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==, tarball: https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz} - engines: {node: '>=6'} - - '@tarojs/api@3.0.8': - resolution: {integrity: sha512-i1vHc3hRRJ2OJHTDhxfQj5mGnZvIJLhkNjRWRduthk/SLaffz2nd74Dd1FJFUXYwWASanP7ATIccH3pSHnVrLg==} - - '@tarojs/api@4.0.8': - resolution: {integrity: sha512-4NP/aiDaD/B7WeMQVjIEUE475r6pkfC764zE+iD/vCH5ECBTC/pzbvgl9/Kbvkc4UqL6krnVF4P7T5D6cGyePw==, tarball: https://registry.npmmirror.com/@tarojs/api/-/api-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/binding-darwin-arm64@4.0.8': - resolution: {integrity: sha512-QOhUNT+hoEb3M1p81GI+Qr6ACfoTpab6DSaz+7VH4dwc755G0lY13RiaPljCfWcjv/7ORTcYjqOVSJ16CvWczw==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [darwin] - - '@tarojs/binding-darwin-x64@4.0.8': - resolution: {integrity: sha512-MFcyD4JoL1t914SfkCKGWBqWCNyiJZD0GAeTZ2IrLQymS+DlRUqbn2bcV96WaF44oKTm2B3nBxaTbX2h3Uzhng==} - engines: {node: '>= 18'} - cpu: [x64] - os: [darwin] - - '@tarojs/binding-linux-x64-gnu@4.0.8': - resolution: {integrity: sha512-EWNVDiVj4Vijv5ddp15suy6A5hxsydqAIid/SXRNlf3WOYnytcwXjFVCBN7lA21dC8ZSihPo8HBwouX0eB9SHg==} - engines: {node: '>= 18'} - cpu: [x64] - os: [linux] - - '@tarojs/binding-win32-x64-msvc@4.0.8': - resolution: {integrity: sha512-PflvI85GgwuK8I24CUrbHBzwKsuhCynsxCpH/V0DYTH5OUegkcuf0v7LSXFeKpbD4UeaUkX0S+3eaYhZh2AMSw==} - engines: {node: '>= 18'} - cpu: [x64] - os: [win32] - - '@tarojs/binding@4.0.8': - resolution: {integrity: sha512-7ibu82rz2nThpyrAR+sZotG0OgXDQhGfE818VPUkNmGnLGqY3IEnNSdR7Jvn695P+VEV/JorrAimgAb/Wpmwpg==, tarball: https://registry.npmmirror.com/@tarojs/binding/-/binding-4.0.8.tgz} - - '@tarojs/cli@4.0.8': - resolution: {integrity: sha512-fIhgJ/6eLXrtXvDrD2nvhuYcMdbRxxq7J70dXM4cwrt/lsrJId8ipLcImjzc7AOLUw76/qwvhveFLVlIG7LuMQ==, tarball: https://registry.npmmirror.com/@tarojs/cli/-/cli-4.0.8.tgz} - engines: {node: '>= 18'} - hasBin: true - - '@tarojs/components-advanced@4.0.8': - resolution: {integrity: sha512-9yawTVXaMQcTvOombPoHkOTTGP8dZzBE6QcWOxlB7zzaZtWvdKd++llG0mt4GHBHdEq+sIIVwf+TlgjNcl+Ufw==, tarball: https://registry.npmmirror.com/@tarojs/components-advanced/-/components-advanced-4.0.8.tgz} - peerDependencies: - '@tarojs/runtime': ~4.0.8 - '@tarojs/shared': ~4.0.8 - '@tarojs/taro': ~4.0.8 - react: '>=17' - vue: '*' - peerDependenciesMeta: - react: - optional: true - vue: - optional: true - - '@tarojs/components-react@4.0.8': - resolution: {integrity: sha512-m+48fPHVe1lE/R8teATPgfdbzDVUZVzXDEkH7BGT5obzJWryDg3OBWG8LIbVWdazJI61O6ayryjNbe88wgOJlQ==, tarball: https://registry.npmmirror.com/@tarojs/components-react/-/components-react-4.0.8.tgz} - peerDependencies: - react: '*' - solid-js: '*' - - '@tarojs/components@4.0.8': - resolution: {integrity: sha512-bmC94tY0eMNgChrbANkqlmkWk95BJp9/Nt+ghek+Qt3Vf5G1MOx2sGbLosj/VHA4EiBofGNSC1Pii2JWxvYIJw==, tarball: https://registry.npmmirror.com/@tarojs/components/-/components-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@types/react': '*' - vue: '*' - peerDependenciesMeta: - '@types/react': - optional: true - vue: - optional: true - - '@tarojs/helper@4.0.8': - resolution: {integrity: sha512-cP76ecAwTyXdnL7Glyitr3FGiTjDQE2GnGU1UdIYOXcdX0+NRr7R4NzIz0WGiXIfP8s4asE5YPSqsr1X0hKfig==, tarball: https://registry.npmmirror.com/@tarojs/helper/-/helper-4.0.8.tgz} - engines: {node: '>= 18'} - - '@tarojs/plugin-doctor-darwin-arm64@0.0.13': - resolution: {integrity: sha512-BRqMB6jOflPIVdQEJ5vJ7j1OcEcgg65IPPY9YVNx5MnYE/SoZj6/yWvmDNc507ZEkWd4H1sJ4Jfk7eKUxm44PQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@tarojs/plugin-doctor-darwin-universal@0.0.13': - resolution: {integrity: sha512-qIv94zgybce+Wq6/Bgy+Np+3BM2SYipuuKTg4LU3ALfJ+YxJetYDcbat9GPxulZqyvxKshYaYtusfwzCu+QWEw==} - engines: {node: '>= 10'} - os: [darwin] - - '@tarojs/plugin-doctor-darwin-x64@0.0.13': - resolution: {integrity: sha512-zjx3OGlcyOTr+VoRcFmQQcsXscwNucpynlhEYS3ZlofVe9qI0LeTMb/jbMriT/W0c1b4nlVaM8sv+HKz4NKUeA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@tarojs/plugin-doctor-linux-arm-gnueabihf@0.0.13': - resolution: {integrity: sha512-WkViXfZNrB7HRoDySNhm6JG1IaIBmYGWZDwz0BuhkDQPZLfCCy6v01rSo5wfHGdyLnDg6CkENBS1IrdIU9zK+A==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@tarojs/plugin-doctor-linux-arm64-gnu@0.0.13': - resolution: {integrity: sha512-C6ZjqhyOqBcI4y+BFXYjBHBZY6441fO5YIoMv3Sc+nAV+LR1vvyGJ95JcC+Vma+sEjxRMP0IO9lvcLRIcrbrsA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tarojs/plugin-doctor-linux-arm64-musl@0.0.13': - resolution: {integrity: sha512-V1HnFITOLgHVyQ+OCa1oPFKOtGFRtP91vlbUGfOwMA4GeOVw9g28W/hfTyucTCkfZWlrssLehgW6L2AGAMXh2w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tarojs/plugin-doctor-linux-x64-gnu@0.0.13': - resolution: {integrity: sha512-oetfzBW60uenPBBF4/NE6Mf0Iwkw1YGqIIBiN++aVQynbWrmMzWBsW8kleZ5vN1npxI9aud9EfRU1uM37DrG2A==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tarojs/plugin-doctor-linux-x64-musl@0.0.13': - resolution: {integrity: sha512-OdIF/kFwwM0kQPDnpkanhvfWRaAI6EtDmpM9rQA/Lu2QcJq86w5d7X/WSN0U2xF1nialAUrfl79NyIaEzp4Fcw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tarojs/plugin-doctor-win32-ia32-msvc@0.0.13': - resolution: {integrity: sha512-nIbG2SliRhRwACLa1kNMskcfjsihp+3tZQMAxl+LoYUq6JRaWgP3vH2nHkDyZHTCheBTDtAaupqXWrYF3w+U6g==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@tarojs/plugin-doctor-win32-x64-msvc@0.0.13': - resolution: {integrity: sha512-G1mjsGzyeb4TPw7RoqOl4xPPhf5Lfp4BH9hjfBYbGM0RL5UFHmhfzvn2Icrriyk68v2GoQeHroZ2p6qAtbXdBw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@tarojs/plugin-doctor@0.0.13': - resolution: {integrity: sha512-X4aq/VS9Xr5UYkiZv5T0vSx1OycuzjYgbJDFs4YPWwJDaY1LOzn8Nlzb/rQchkBlxDPHmqUQQvejL0o6+REgbw==, tarball: https://registry.npmmirror.com/@tarojs/plugin-doctor/-/plugin-doctor-0.0.13.tgz} - engines: {node: '>= 10'} - - '@tarojs/plugin-framework-react@4.0.8': - resolution: {integrity: sha512-oMYso3zAj4zsDVk4GzJSmZxxRGde+TH0Jf76KE43t22WfoLphwJfwIhCp0sPsta+6K+NHWm43O1rCe0lVPuCHw==, tarball: https://registry.npmmirror.com/@tarojs/plugin-framework-react/-/plugin-framework-react-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@pmmmwh/react-refresh-webpack-plugin': '*' - '@preact/preset-vite': ^2 - '@prefresh/webpack': ^4 - '@tarojs/helper': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@vitejs/plugin-react': ^4 - preact: ^10 - react: ^18 - vite: ^4 - webpack: ^5 - peerDependenciesMeta: - '@pmmmwh/react-refresh-webpack-plugin': - optional: true - '@preact/preset-vite': - optional: true - '@prefresh/webpack': - optional: true - '@vitejs/plugin-react': - optional: true - preact: - optional: true - react: - optional: true - vite: - optional: true - webpack: - optional: true - - '@tarojs/plugin-html@4.0.8': - resolution: {integrity: sha512-96f6l9FKfwXD/ZTC0YdlUu8HFIseB1WAZaUQYYzIoVBd0a5UgG/dIx1yiLUNgPWbn6kiZNAPSXNcWnjJq9GMqw==, tarball: https://registry.npmmirror.com/@tarojs/plugin-html/-/plugin-html-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/helper': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-alipay@4.0.8': - resolution: {integrity: sha512-/2/K7Gbmf2sncfZlKcDTZI43hcfxV+gX0N4kB8fANw6ecIQ3t+N1UdRu0StxPIEK9aBc3cd7qvr/4zkrRP+J4A==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-alipay/-/plugin-platform-alipay-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-h5@4.0.8': - resolution: {integrity: sha512-rXH5pHhVTy8c1k0EcUMY6Dft7/ysU1c08o3wexIeYL6+xjkGirsi9b8snA93MbBBhLJEsEzb8PPH3rc3k+lbhw==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-h5/-/plugin-platform-h5-4.0.8.tgz} - - '@tarojs/plugin-platform-jd@4.0.8': - resolution: {integrity: sha512-0C6JGJeu4iPBR27RQWaFuTI0vU+io/BPumY63VI+CZa2E6yNGP8gRb4bVUYbUMrw2/Uyjxrb7mX5asdmiN4H3w==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-jd/-/plugin-platform-jd-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-qq@4.0.8': - resolution: {integrity: sha512-9tD2C+qZvMGPx4Rbqrfszcbz9C1D59ucnn4lnkOneNJcbwVyM+b7uffIBTS6+craaICxx5q2OcjwyOF7amXrAQ==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-qq/-/plugin-platform-qq-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/plugin-platform-weapp': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-swan@4.0.8': - resolution: {integrity: sha512-PBx27og+MdLsjAVOdz6kIW4PkOFSWP74fbuQAGBVdyrC+87G0JN2RQu+ZZymAZt9Sht/4c09re9JqtcMSkNnIw==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-swan/-/plugin-platform-swan-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-tt@4.0.8': - resolution: {integrity: sha512-hsSoWYQMZOekEXfosKU7GPNH5qkbyqXS9HlIhTSqlaqXA2eCzEo8FKC5HgDVfc3PKjH88OYPoWjx/odd7Gspmw==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-tt/-/plugin-platform-tt-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-weapp@4.0.8': - resolution: {integrity: sha512-suN3/RMOxWiw6EHxOVjM5hmaPeNxtzYZKJzVrK/w2A7r3mB2ymHjV0ry1H1zKc4r8Z6xuLqXQ+AD90Vdo6c8xg==, tarball: https://registry.npmmirror.com/@tarojs/plugin-platform-weapp/-/plugin-platform-weapp-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/react@3.0.8': - resolution: {integrity: sha512-AJNKIq7MdgzOXp1ydHacnTU81xDcbuuB2ZWJZ+YW55ZnFkPoVhUHHHu0ZIiJOeg5Aza42lCSsfkw4fOsQIfvjw==} - - '@tarojs/react@4.0.8': - resolution: {integrity: sha512-+T7WPAsTcEEPqKW1wK1RwPOOjallCrVAshBs1A/bkuvrmdYzlLd7tuTS4AZCmV7suuAhwzyG98LMmlG5uHiT4Q==, tarball: https://registry.npmmirror.com/@tarojs/react/-/react-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - react: ^18 - - '@tarojs/router@3.0.8': - resolution: {integrity: sha512-HfGH3Olu0CKh4cd6IO0zAGXhLrcycfOm38PVKChVnKkUturpbjl9jokiNh0uVu8sUppGqU9GeR/4ZZUfydavoA==} - - '@tarojs/router@4.0.8': - resolution: {integrity: sha512-66R2Kh1Qx+KIHMzhO2KjqLmYNjNw9FqUUN+ns1x/Ri0g9JCmJKE7A7k96r0WwhNHy9hjndXJrk9+nQloqQ8rrg==, tarball: https://registry.npmmirror.com/@tarojs/router/-/router-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@tarojs/taro': 4.0.8 - - '@tarojs/runner-utils@4.0.8': - resolution: {integrity: sha512-oXd1Te4hS8RBMvdTZ5IRW6II3ih9ZTYeea89ixuu/FTdS7kU+v0VWrKYtI9cW2bBZU+5fbZxtocGedsFx0kr9Q==, tarball: https://registry.npmmirror.com/@tarojs/runner-utils/-/runner-utils-4.0.8.tgz} - engines: {node: '>= 18'} - - '@tarojs/runtime@3.0.8': - resolution: {integrity: sha512-x1I70byvRwlqh+XuB04KYkM487GrrEMWgjmKAWcgkkAF9FTpL+7EN69VcXvdUFqU+dAqi0tp0np4LvOjd87PiA==} - - '@tarojs/runtime@4.0.8': - resolution: {integrity: sha512-/eGP/x7WOs5NPK/effJm0Z5VRXM8I8F4B0Y0CaF2VFz93YmqgQCo8P1BKvXsD8juvezcI55Rey42Wippy8Y/sA==, tarball: https://registry.npmmirror.com/@tarojs/runtime/-/runtime-4.0.8.tgz} - engines: {node: '>= 18'} - - '@tarojs/service@4.0.8': - resolution: {integrity: sha512-sQ3Phg1ecjXMTfC4wX16laYWyZCXNJ/8EUqvb33gfJmnH4bo7YtMme5xQA6riSYoWbk3MAn5oZDBZzU2f6fg6Q==, tarball: https://registry.npmmirror.com/@tarojs/service/-/service-4.0.8.tgz} - engines: {node: '>= 18'} - - '@tarojs/shared@4.0.8': - resolution: {integrity: sha512-U7i6S1jZaQ4fbbeUh1zqc+JVPQjTOTb2st+V7S42Oj01xhFa+q5tbHGOJH27Ftg75XHW8H/b2iNAUtl7WL/FCA==, tarball: https://registry.npmmirror.com/@tarojs/shared/-/shared-4.0.8.tgz} - engines: {node: '>= 18'} - - '@tarojs/taro-h5@3.0.8': - resolution: {integrity: sha512-TZoKp/4Gidwbh3cmFcUrL0TJtVX6wiJ0PjqbPftvyV+pT3JPoCnblWJ5zj/OnWgYgSA4/8nAE69AZMt5ZHy/6Q==} - - '@tarojs/taro-h5@4.0.8': - resolution: {integrity: sha512-mHKc44WhAdFzXeomqalYXd06BrW3bM1WDXMg+lQWMHa0BVrn2Qgb88r4b9TVNoPqENKhU+2bqH+/EnDcko4S7g==, tarball: https://registry.npmmirror.com/@tarojs/taro-h5/-/taro-h5-4.0.8.tgz} - peerDependencies: - '@tarojs/components': ~4.0.8 - - '@tarojs/taro-loader@4.0.8': - resolution: {integrity: sha512-npXxqOQtKE/G232/fLtWLakMvdQhhx5WyP9vi8Ez+8KrExlc+MSSIo5QWDsv6GrJx8jMOLxx739rjLwMjCu/Fg==, tarball: https://registry.npmmirror.com/@tarojs/taro-loader/-/taro-loader-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - webpack: 5.91.0 - - '@tarojs/taro@3.0.8': - resolution: {integrity: sha512-IbLDjK5zQTYASYAMerb0HxF7TvMgGUJxpO8Rs/q8rtJhgaalvBjD2boJYxxRgKrLpBm4LCobu+jM7+H4lx9qYw==} - - '@tarojs/taro@4.0.8': - resolution: {integrity: sha512-jozEMEZNl/VB4POJdtW9yT41fKm+KtJVrxmZNDX23rB+4D3ecbCNPsp6EJu/NOwZ2Y+7eXrZOTZrXmJbBQiFJw==, tarball: https://registry.npmmirror.com/@tarojs/taro/-/taro-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@tarojs/components': 4.0.8 - '@tarojs/helper': 4.0.8 - '@tarojs/shared': 4.0.8 - '@types/react': ^18 - html-webpack-plugin: ^5 - postcss: ^8 - rollup: ^3 - vue: ^3 - webpack: ^5 - webpack-chain: ^6 - webpack-dev-server: ^4 - peerDependenciesMeta: - '@types/react': - optional: true - html-webpack-plugin: - optional: true - rollup: - optional: true - vue: - optional: true - webpack: - optional: true - webpack-chain: - optional: true - webpack-dev-server: - optional: true - - '@tarojs/webpack5-prebundle@4.0.8': - resolution: {integrity: sha512-XrKYHV+4i+nuwEl8in21rwJ/ZqH8IQ0ASIVjvjdI2UuvvZf/4Qj9QbK8GkSZG4IvIZx9tDbuSBWTM3uHJ60B9A==, tarball: https://registry.npmmirror.com/@tarojs/webpack5-prebundle/-/webpack5-prebundle-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - webpack: 5.91.0 - - '@tarojs/webpack5-runner@4.0.8': - resolution: {integrity: sha512-zC0QQSeJTQLjcPFkl/hhu6qH154ZIS/ENRWb86nH2loUzBEwvZ0TD+avkzUNYm7fe9DRS6vYW5aRfYMApsYPkQ==, tarball: https://registry.npmmirror.com/@tarojs/webpack5-runner/-/webpack5-runner-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@babel/core': ^7.12.0 - '@tarojs/runtime': 4.0.8 - less: ^4 - postcss: ^8 - sass: ^1.3.0 - stylus: '>=0.52.4' - webpack: 5.91.0 - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, tarball: https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz} - engines: {node: '>=10.13.0'} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, tarball: https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, tarball: https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, tarball: https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, tarball: https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz} - - '@types/archy@0.0.31': - resolution: {integrity: sha512-v+dxizsFVyXgD3EpFuqT9YjdEjbJmPxNf1QIX9ohZOhxh1ZF2yhqv3vYaeum9lg3VghhxS5S0a6yldN9J9lPEQ==, tarball: https://registry.npmmirror.com/@types/archy/-/archy-0.0.31.tgz} - - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, tarball: https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz} - - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==, tarball: https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.13.tgz} - - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==, tarball: https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, tarball: https://registry.npmmirror.com/@types/connect/-/connect-3.4.38.tgz} - - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, tarball: https://registry.npmmirror.com/@types/cookie/-/cookie-0.6.0.tgz} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, tarball: https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==, tarball: https://registry.npmmirror.com/@types/eslint/-/eslint-9.6.1.tgz} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==, tarball: https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz} - - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==, tarball: https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz} - - '@types/express-serve-static-core@5.0.2': - resolution: {integrity: sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==, tarball: https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==, tarball: https://registry.npmmirror.com/@types/express/-/express-4.17.21.tgz} - - '@types/fs-extra@8.1.5': - resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-8.1.5.tgz} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, tarball: https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==, tarball: https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, tarball: https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.4.tgz} - - '@types/http-proxy@1.17.15': - resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==, tarball: https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.15.tgz} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, tarball: https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, tarball: https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, tarball: https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz} - - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} - - '@types/lodash.debounce@4.0.9': - resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==, tarball: https://registry.npmmirror.com/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz} - - '@types/lodash@4.17.13': - resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==, tarball: https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.13.tgz} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==, tarball: https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==, tarball: https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz} - - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==, tarball: https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.5.tgz} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==, tarball: https://registry.npmmirror.com/@types/node-forge/-/node-forge-1.3.11.tgz} - - '@types/node@18.19.68': - resolution: {integrity: sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==, tarball: https://registry.npmmirror.com/@types/node/-/node-18.19.68.tgz} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, tarball: https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, tarball: https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz} - - '@types/postcss-url@10.0.4': - resolution: {integrity: sha512-5QIO9NgbWmAkle65haRqkdgYPCOXheNsaFdbTJJQjT302yK3H49ql4t9a4y0NfpuPtU/UBo15VcV64WCSIMJKg==, tarball: https://registry.npmmirror.com/@types/postcss-url/-/postcss-url-10.0.4.tgz} - - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.14.tgz} - - '@types/qs@6.9.17': - resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==, tarball: https://registry.npmmirror.com/@types/qs/-/qs-6.9.17.tgz} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==, tarball: https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz} - - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==, tarball: https://registry.npmmirror.com/@types/react/-/react-18.3.18.tgz} - - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==, tarball: https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz} - - '@types/sass@1.45.0': - resolution: {integrity: sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==, tarball: https://registry.npmmirror.com/@types/sass/-/sass-1.45.0.tgz} - deprecated: This is a stub types definition. sass provides its own type definitions, so you do not need this installed. - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==, tarball: https://registry.npmmirror.com/@types/send/-/send-0.17.4.tgz} - - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==, tarball: https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.4.tgz} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==, tarball: https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.7.tgz} - - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==, tarball: https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.36.tgz} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@types/webpack-env@1.18.5': - resolution: {integrity: sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA==, tarball: https://registry.npmmirror.com/@types/webpack-env/-/webpack-env-1.18.5.tgz} - - '@types/ws@8.5.13': - resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==, tarball: https://registry.npmmirror.com/@types/ws/-/ws-8.5.13.tgz} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, tarball: https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz} - - '@types/yargs@15.0.19': - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-15.0.19.tgz} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.33.tgz} - - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz} - engines: {node: ^16.0.0 || >=18.0.0} - - '@ungap/structured-clone@1.2.1': - resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==, tarball: https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.1.tgz} - - '@use-gesture/core@10.2.20': - resolution: {integrity: sha512-4lFhHc8so4yIHkBEs641DnEsBxPyhJ5GEjB4PURFDH4p/FcZriH6w99knZgI63zN/MBFfylMyb8+PDuj6RIXKQ==, tarball: https://registry.npmmirror.com/@use-gesture/core/-/core-10.2.20.tgz} - - '@use-gesture/react@10.2.20': - resolution: {integrity: sha512-KnJq9ZSqprWA6uNhWTUHZqTCh+rfa0j8ehTzqeBhktUPrmTj7yVOBvEQ/vSFU/7d72cGgWSsJ0f5T6GQCHXnvg==, tarball: https://registry.npmmirror.com/@use-gesture/react/-/react-10.2.20.tgz} - peerDependencies: - react: '>= 16.8.0' - - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} - - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} - - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} - - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} - peerDependencies: - vue: 3.5.13 - - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - - '@webassemblyjs/ast@1.11.1': - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz} - - '@webassemblyjs/floating-point-hex-parser@1.11.1': - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==, tarball: https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz} - - '@webassemblyjs/helper-api-error@1.11.1': - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz} - - '@webassemblyjs/helper-buffer@1.11.1': - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz} - - '@webassemblyjs/helper-numbers@1.11.1': - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz} - - '@webassemblyjs/helper-wasm-bytecode@1.11.1': - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz} - - '@webassemblyjs/helper-wasm-section@1.11.1': - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz} - - '@webassemblyjs/ieee754@1.11.1': - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==, tarball: https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz} - - '@webassemblyjs/leb128@1.11.1': - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==, tarball: https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz} - - '@webassemblyjs/utf8@1.11.1': - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==, tarball: https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz} - - '@webassemblyjs/wasm-edit@1.11.1': - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz} - - '@webassemblyjs/wasm-gen@1.11.1': - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz} - - '@webassemblyjs/wasm-opt@1.11.1': - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz} - - '@webassemblyjs/wasm-parser@1.11.1': - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz} - - '@webassemblyjs/wast-printer@1.11.1': - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==, tarball: https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, tarball: https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, tarball: https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz} - - abortcontroller-polyfill@1.7.8: - resolution: {integrity: sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==, tarball: https://registry.npmmirror.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, tarball: https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz} - engines: {node: '>= 0.6'} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==, tarball: https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz} - deprecated: package has been renamed to acorn-import-attributes - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==, tarball: https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.4.tgz} - engines: {node: '>=0.4.0'} - - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz} - engines: {node: '>=0.4.0'} - hasBin: true - - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==, tarball: https://registry.npmmirror.com/address/-/address-1.2.2.tgz} - engines: {node: '>= 10.0.0'} - - adjust-sourcemap-loader@4.0.0: - resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==, tarball: https://registry.npmmirror.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz} - engines: {node: '>=8.9'} - - adm-zip@0.5.16: - resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==, tarball: https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.16.tgz} - engines: {node: '>=12.0'} - - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==, tarball: https://registry.npmmirror.com/agent-base/-/agent-base-7.1.3.tgz} - engines: {node: '>= 14'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, tarball: https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} - - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, tarball: https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz} - engines: {node: '>=8'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, tarball: https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-html@0.0.9: - resolution: {integrity: sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==, tarball: https://registry.npmmirror.com/ansi-html/-/ansi-html-0.0.9.tgz} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, tarball: https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} - engines: {node: '>= 8'} - - archive-type@4.0.0: - resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==, tarball: https://registry.npmmirror.com/archive-type/-/archive-type-4.0.0.tgz} - engines: {node: '>=4'} - - archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==, tarball: https://registry.npmmirror.com/archy/-/archy-1.0.0.tgz} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, tarball: https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, tarball: https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz} - engines: {node: '>= 0.4'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, tarball: https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.8.tgz} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==, tarball: https://registry.npmmirror.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==, tarball: https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==, tarball: https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==, tarball: https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz} - engines: {node: '>= 0.4'} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, tarball: https://registry.npmmirror.com/arrify/-/arrify-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} - engines: {node: '>=8'} - - async-validator@4.2.5: - resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz} - - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, tarball: https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.20.tgz} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz} - engines: {node: '>= 0.4'} - - axios@1.7.9: - resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==, tarball: https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz} - - babel-loader@8.2.1: - resolution: {integrity: sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==, tarball: https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.1.tgz} - engines: {node: '>= 8.9'} - peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' - - babel-plugin-const-enum@1.2.0: - resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==, tarball: https://registry.npmmirror.com/babel-plugin-const-enum/-/babel-plugin-const-enum-1.2.0.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - - babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, tarball: https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz} - - babel-plugin-import@1.13.8: - resolution: {integrity: sha512-36babpjra5m3gca44V6tSTomeBlPA7cHUynrE2WiQIm3rEGD9xy28MKsx5IdO45EbnpJY7Jrgd00C6Dwt/l/2Q==, tarball: https://registry.npmmirror.com/babel-plugin-import/-/babel-plugin-import-1.13.8.tgz} - - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==, tarball: https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==, tarball: https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==, tarball: https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-transform-imports-api@1.0.0: - resolution: {integrity: sha512-EtPFtwUFwXy4HyRwXiR7dCijk2b1dd12bVs39oY8aMZUnypFEMrctGX6/YrhQzhCPFweV7NTPhc+fD4zItWzUA==, tarball: https://registry.npmmirror.com/babel-plugin-transform-imports-api/-/babel-plugin-transform-imports-api-1.0.0.tgz} - - babel-plugin-transform-solid-jsx@4.0.8: - resolution: {integrity: sha512-I5p0Vs0usfzZfBshQ4ypXl/6BU40tSSBy1aZtRnTS57VCVamxor66pBh+/Fa/r51sS6C7wVEHxng//aowqSiWQ==, tarball: https://registry.npmmirror.com/babel-plugin-transform-solid-jsx/-/babel-plugin-transform-solid-jsx-4.0.8.tgz} - - babel-plugin-transform-taroapi@4.0.8: - resolution: {integrity: sha512-FPZSXVDkzCI07sCDu/ft4F3zpFDvUudkt8YzgYmtlUC8itCIjrXTc8XFX3LA6ov4ECmrOAfJSZTVTqtzAc3h5A==, tarball: https://registry.npmmirror.com/babel-plugin-transform-taroapi/-/babel-plugin-transform-taroapi-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-taro@4.0.8: - resolution: {integrity: sha512-xKk7eNbBtquPEwIuvEUQPbZeA52KHs4llaob/vZjYjbw1JgEpmKhPwsK6JcULjENkmc2k58hSonAKsMFNFuuKg==, tarball: https://registry.npmmirror.com/babel-preset-taro/-/babel-preset-taro-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/preset-react': ^7.24.1 - '@prefresh/babel-plugin': ^0.5.1 - '@tarojs/taro-rn': 4.0.8 - '@vue/babel-plugin-jsx': ^1.2.2 - babel-preset-solid: ^1.8.16 - react-refresh: ^0.14.0 - peerDependenciesMeta: - '@babel/preset-react': - optional: true - '@prefresh/babel-plugin': - optional: true - '@tarojs/taro-rn': - optional: true - '@vue/babel-plugin-jsx': - optional: true - babel-preset-solid: - optional: true - react-refresh: - optional: true - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} - - balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-2.0.0.tgz} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, tarball: https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz} - - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, tarball: https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz} - engines: {node: '>=8'} - - bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==, tarball: https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, tarball: https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz} - - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==, tarball: https://registry.npmmirror.com/body-parser/-/body-parser-1.20.3.tgz} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bonjour-service@1.3.0: - resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==, tarball: https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.3.0.tgz} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, tarball: https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz} - engines: {node: '>=8'} - - browserslist@4.24.3: - resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.24.3.tgz} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==, tarball: https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz} - - buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==, tarball: https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz} - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, tarball: https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz} - - buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==, tarball: https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, tarball: https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, tarball: https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz} - engines: {node: '>= 0.8'} - - cacheable-request@2.1.4: - resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==, tarball: https://registry.npmmirror.com/cacheable-request/-/cacheable-request-2.1.4.tgz} - - cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==, tarball: https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz} - engines: {node: '>=8'} - - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==, tarball: https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz} - engines: {node: '>= 0.4'} - - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==, tarball: https://registry.npmmirror.com/call-bound/-/call-bound-1.0.3.tgz} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} - engines: {node: '>=6'} - - camel-case@3.0.0: - resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==, tarball: https://registry.npmmirror.com/camel-case/-/camel-case-3.0.0.tgz} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, tarball: https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, tarball: https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz} - engines: {node: '>= 6'} - - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz} - engines: {node: '>=8'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} - engines: {node: '>=6'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==, tarball: https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz} - - caniuse-lite@1.0.30001721: - resolution: {integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==} - - capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==, tarball: https://registry.npmmirror.com/capital-case/-/capital-case-1.0.4.tgz} - - caw@2.0.1: - resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==, tarball: https://registry.npmmirror.com/caw/-/caw-2.0.1.tgz} - engines: {node: '>=4'} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, tarball: https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz} - engines: {node: '>=8'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} - engines: {node: '>=10'} - - change-case@4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==, tarball: https://registry.npmmirror.com/change-case/-/change-case-4.1.2.tgz} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, tarball: https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} - - charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, tarball: https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz} - engines: {node: '>= 14.16.0'} - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, tarball: https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz} - engines: {node: '>=8'} - - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz} - - clean-css@4.2.4: - resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz} - engines: {node: '>= 4.0'} - - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-5.3.3.tgz} - engines: {node: '>= 10.0'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz} - engines: {node: '>=8'} - - cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==, tarball: https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, tarball: https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.2.tgz} - engines: {node: '>=6'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz} - engines: {node: '>= 10'} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, tarball: https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==, tarball: https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz} - engines: {node: '>=6'} - - clone-response@1.0.2: - resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==, tarball: https://registry.npmmirror.com/clone-response/-/clone-response-1.0.2.tgz} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==, tarball: https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, tarball: https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz} - engines: {node: '>=0.8'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, tarball: https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, tarball: https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, tarball: https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz} - engines: {node: '>= 0.8'} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, tarball: https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz} - engines: {node: '>= 12'} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, tarball: https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, tarball: https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz} - engines: {node: '>= 0.6'} - - compression@1.7.5: - resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==, tarball: https://registry.npmmirror.com/compression/-/compression-1.7.5.tgz} - engines: {node: '>= 0.8.0'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, tarball: https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz} - - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==, tarball: https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz} - engines: {node: '>=0.8'} - - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, tarball: https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz} - - constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==, tarball: https://registry.npmmirror.com/constant-case/-/constant-case-3.0.4.tgz} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, tarball: https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, tarball: https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz} - engines: {node: '>= 0.6'} - - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, tarball: https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz} - - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==, tarball: https://registry.npmmirror.com/cookie/-/cookie-0.7.1.tgz} - engines: {node: '>= 0.6'} - - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==, tarball: https://registry.npmmirror.com/cookie/-/cookie-1.0.2.tgz} - engines: {node: '>=18'} - - copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, tarball: https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz} - - copy-webpack-plugin@12.0.2: - resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==, tarball: https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.1.0 - - core-js-compat@3.39.0: - resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==, tarball: https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.39.0.tgz} - - core-js-pure@3.39.0: - resolution: {integrity: sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==, tarball: https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.39.0.tgz} - - core-js@3.39.0: - resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz} - engines: {node: '>=10'} - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, tarball: https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz} - engines: {node: '>= 8'} - - crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, tarball: https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz} - - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==, tarball: https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz} - - css-declaration-sorter@7.2.0: - resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==, tarball: https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - - css-functions-list@3.2.3: - resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==, tarball: https://registry.npmmirror.com/css-functions-list/-/css-functions-list-3.2.3.tgz} - engines: {node: '>=12 || >=16'} - - css-loader@7.1.2: - resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==, tarball: https://registry.npmmirror.com/css-loader/-/css-loader-7.1.2.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.27.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-minimizer-webpack-plugin@6.0.0: - resolution: {integrity: sha512-BLpR9CCDkKvhO3i0oZQgad6v9pCxUuhSc5RT6iUEy9M8hBXi4TJb5vqF2GQ2deqYHmRi3O6IR9hgAZQWg0EBwA==, tarball: https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-6.0.0.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, tarball: https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: https://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz} - - css-tree@1.0.0-alpha.29: - resolution: {integrity: sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz} - engines: {node: '>=0.10.0'} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-2.2.1.tgz} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, tarball: https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-default@6.1.2: - resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==, tarball: https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-utils@4.0.2: - resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==, tarball: https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano@6.1.2: - resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==, tarball: https://registry.npmmirror.com/cssnano/-/cssnano-6.1.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - csso@3.5.1: - resolution: {integrity: sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==, tarball: https://registry.npmmirror.com/csso/-/csso-3.5.1.tgz} - engines: {node: '>=0.10.0'} - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, tarball: https://registry.npmmirror.com/csso/-/csso-5.0.5.tgz} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - cssstyle@4.1.0: - resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==, tarball: https://registry.npmmirror.com/cssstyle/-/cssstyle-4.1.0.tgz} - engines: {node: '>=18'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz} - - cuint@0.2.2: - resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==, tarball: https://registry.npmmirror.com/cuint/-/cuint-0.2.2.tgz} - - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==, tarball: https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz} - engines: {node: '>=18'} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==, tarball: https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==, tarball: https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, tarball: https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz} - engines: {node: '>= 0.4'} - - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==, tarball: https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, tarball: https://registry.npmmirror.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, tarball: https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} - engines: {node: '>=0.10.0'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, tarball: https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz} - - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} - - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz} - engines: {node: '>=0.10'} - - decode-uri-component@0.4.1: - resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.4.1.tgz} - engines: {node: '>=14.16'} - - decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==, tarball: https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz} - engines: {node: '>=4'} - - decompress-tar@4.1.1: - resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==, tarball: https://registry.npmmirror.com/decompress-tar/-/decompress-tar-4.1.1.tgz} - engines: {node: '>=4'} - - decompress-tarbz2@4.1.1: - resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==, tarball: https://registry.npmmirror.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz} - engines: {node: '>=4'} - - decompress-targz@4.1.1: - resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==, tarball: https://registry.npmmirror.com/decompress-targz/-/decompress-targz-4.1.1.tgz} - engines: {node: '>=4'} - - decompress-unzip@4.0.1: - resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==, tarball: https://registry.npmmirror.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz} - engines: {node: '>=4'} - - decompress@4.2.1: - resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==, tarball: https://registry.npmmirror.com/decompress/-/decompress-4.2.1.tgz} - engines: {node: '>=4'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, tarball: https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} - - deepmerge@1.5.2: - resolution: {integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz} - engines: {node: '>=0.10.0'} - - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==, tarball: https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz} - engines: {node: '>= 10'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, tarball: https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz} - - defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==, tarball: https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz} - engines: {node: '>=8'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} - engines: {node: '>=0.4.0'} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, tarball: https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, tarball: https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz} - engines: {node: '>= 0.8'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, tarball: https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, tarball: https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz} - engines: {node: '>=0.10'} - hasBin: true - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, tarball: https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz} - - detect-port@1.6.1: - resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==, tarball: https://registry.npmmirror.com/detect-port/-/detect-port-1.6.1.tgz} - engines: {node: '>= 4.0.0'} - hasBin: true - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, tarball: https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, tarball: https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz} - engines: {node: '>=0.3.1'} - - dingtalk-jsapi@2.15.4: - resolution: {integrity: sha512-pPETqUhLJYKNZIewnS9hU1/QqcdRbP2Q9sHySimko0C2nm/n9NoakVLtcKwdqgORq1dkPIP/jqv7RnESxhA2bA==, tarball: https://registry.npmmirror.com/dingtalk-jsapi/-/dingtalk-jsapi-2.15.4.tgz} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} - engines: {node: '>=8'} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, tarball: https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==, tarball: https://registry.npmmirror.com/dns-packet/-/dns-packet-5.6.1.tgz} - engines: {node: '>=6'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz} - engines: {node: '>=6.0.0'} - - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==, tarball: https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz} - - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==, tarball: https://registry.npmmirror.com/dom-helpers/-/dom-helpers-5.2.1.tgz} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} - engines: {node: '>= 4'} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} - - domutils@3.2.1: - resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==, tarball: https://registry.npmmirror.com/domutils/-/domutils-3.2.1.tgz} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, tarball: https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz} - - dotenv-expand@11.0.7: - resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==, tarball: https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-11.0.7.tgz} - engines: {node: '>=12'} - - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==, tarball: https://registry.npmmirror.com/dotenv/-/dotenv-16.4.7.tgz} - engines: {node: '>=12'} - - download-git-repo@3.0.2: - resolution: {integrity: sha512-N8hWXD4hXqmEcNoR8TBYFntaOcYvEQ7Bz90mgm3bZRTuteGQqwT32VDMnTyD0KTEvb8BWrMc1tVmzuV9u/WrAg==, tarball: https://registry.npmmirror.com/download-git-repo/-/download-git-repo-3.0.2.tgz} - - download@7.1.0: - resolution: {integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==, tarball: https://registry.npmmirror.com/download/-/download-7.1.0.tgz} - engines: {node: '>=6'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, tarball: https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz} - engines: {node: '>= 0.4'} - - duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, tarball: https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, tarball: https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz} - - echarts-taro3-react@1.0.13: - resolution: {integrity: sha512-l7C2uxrEIrtAjV/w6LvupamsyU9rsT0kLKG+/OONwojrd7qObH/dxEktRds3/o/FWXJniL5qXPldsDa2No0aGw==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, tarball: https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz} - - electron-to-chromium@1.5.76: - resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz} - - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, tarball: https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz} - engines: {node: '>= 4'} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, tarball: https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, tarball: https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz} - engines: {node: '>= 0.8'} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} - - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz} - engines: {node: '>=10.13.0'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, tarball: https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, tarball: https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz} - engines: {node: '>=6'} - - envinfo@7.14.0: - resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==, tarball: https://registry.npmmirror.com/envinfo/-/envinfo-7.14.0.tgz} - engines: {node: '>=4'} - hasBin: true - - errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} - - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, tarball: https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz} - - es-abstract@1.23.8: - resolution: {integrity: sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.8.tgz} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, tarball: https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, tarball: https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==, tarball: https://registry.npmmirror.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz} - engines: {node: '>= 0.4'} - - es-module-lexer@0.10.5: - resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==, tarball: https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.10.5.tgz} - - es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==, tarball: https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, tarball: https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz} - engines: {node: '>= 0.4'} - - esbuild-loader@4.2.2: - resolution: {integrity: sha512-Mdq/A1L8p37hkibp8jGFwuQTDSWhDmlueAefsrCPRwNWThEOlQmIglV7Gd6GE2mO5bt7ksfxKOMwkuY7jjVTXg==, tarball: https://registry.npmmirror.com/esbuild-loader/-/esbuild-loader-4.2.2.tgz} - peerDependencies: - webpack: ^4.40.0 || ^5.0.0 - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz} - engines: {node: '>=12'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz} - engines: {node: '>=6'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} - engines: {node: '>=10'} - - eslint-config-taro@4.0.8: - resolution: {integrity: sha512-RrbzeOkUUgI5REQ1x3TrnZOnm4mVaNl7cDOzYkVVt8vL+XybF2t0wm4xAq0CpRctlWOKV1nry8elkYzw/wqpOw==, tarball: https://registry.npmmirror.com/eslint-config-taro/-/eslint-config-taro-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - eslint: ^8 - eslint-plugin-react: ^7.33.2 - eslint-plugin-react-hooks: ^4.4.0 - eslint-plugin-vue: ^9.17.0 - peerDependenciesMeta: - eslint-plugin-react: - optional: true - eslint-plugin-react-hooks: - optional: true - eslint-plugin-vue: - optional: true - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, tarball: https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz} - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==, tarball: https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==, tarball: https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==, tarball: https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react@7.37.3: - resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==, tarball: https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.41.0.tgz} - 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 - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.57.1.tgz} - 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==, tarball: https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==, tarball: https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} - engines: {node: '>=4.0'} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, tarball: https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz} - engines: {node: '>= 0.6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, tarball: https://registry.npmmirror.com/events/-/events-3.3.0.tgz} - engines: {node: '>=0.8.x'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, tarball: https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz} - engines: {node: '>=10'} - - expr-parser@1.0.0: - resolution: {integrity: sha512-ncuWTCWH0M5KbaYikXxZ3FG3Q+FTYIEXeXAbxYscdZLFNnR5Le5gRU2r/a/JUZHnxwBDZcxWEWzCoPQlW9Engg==, tarball: https://registry.npmmirror.com/expr-parser/-/expr-parser-1.0.0.tgz} - - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==, tarball: https://registry.npmmirror.com/express/-/express-4.21.2.tgz} - engines: {node: '>= 0.10.0'} - - ext-list@2.2.2: - resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==, tarball: https://registry.npmmirror.com/ext-list/-/ext-list-2.2.2.tgz} - engines: {node: '>=0.10.0'} - - ext-name@5.0.0: - resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==, tarball: https://registry.npmmirror.com/ext-name/-/ext-name-5.0.0.tgz} - engines: {node: '>=4'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, tarball: https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} - engines: {node: '>=4'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} - - fast-uri@3.0.3: - resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==, tarball: https://registry.npmmirror.com/fast-uri/-/fast-uri-3.0.3.tgz} - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==, tarball: https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz} - engines: {node: '>= 4.9.1'} - - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.18.0.tgz} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==, tarball: https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz} - engines: {node: '>=0.8.0'} - - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, tarball: https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz} - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, tarball: https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz} - engines: {node: '>=8'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} - engines: {node: ^10.12.0 || >=12.0.0} - - file-type@3.9.0: - resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==, tarball: https://registry.npmmirror.com/file-type/-/file-type-3.9.0.tgz} - engines: {node: '>=0.10.0'} - - file-type@4.4.0: - resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==, tarball: https://registry.npmmirror.com/file-type/-/file-type-4.4.0.tgz} - engines: {node: '>=4'} - - file-type@5.2.0: - resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==, tarball: https://registry.npmmirror.com/file-type/-/file-type-5.2.0.tgz} - engines: {node: '>=4'} - - file-type@6.2.0: - resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==, tarball: https://registry.npmmirror.com/file-type/-/file-type-6.2.0.tgz} - engines: {node: '>=4'} - - file-type@8.1.0: - resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==, tarball: https://registry.npmmirror.com/file-type/-/file-type-8.1.0.tgz} - engines: {node: '>=6'} - - filename-reserved-regex@2.0.0: - resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==, tarball: https://registry.npmmirror.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz} - engines: {node: '>=4'} - - filenamify@2.1.0: - resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==, tarball: https://registry.npmmirror.com/filenamify/-/filenamify-2.1.0.tgz} - engines: {node: '>=4'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz} - engines: {node: '>=8'} - - filter-obj@5.1.0: - resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==, tarball: https://registry.npmmirror.com/filter-obj/-/filter-obj-5.1.0.tgz} - engines: {node: '>=14.16'} - - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==, tarball: https://registry.npmmirror.com/finalhandler/-/finalhandler-1.3.1.tgz} - engines: {node: '>= 0.8'} - - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==, tarball: https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz} - engines: {node: '>=6'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==, tarball: https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz} - engines: {node: '>=6'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, tarball: https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, tarball: https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} - engines: {node: '>=10'} - - find-yarn-workspace-root@2.0.0: - resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==, tarball: https://registry.npmmirror.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, tarball: https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz} - hasBin: true - - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.3.2.tgz} - - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} - - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, tarball: https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.0.tgz} - engines: {node: '>=14'} - - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.1.tgz} - engines: {node: '>= 6'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, tarball: https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz} - engines: {node: '>= 0.6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, tarball: https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, tarball: https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz} - engines: {node: '>= 0.6'} - - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==, tarball: https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz} - - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, tarball: https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz} - engines: {node: '>=14.14'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz} - engines: {node: '>=6 <7 || >=8'} - - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==, tarball: https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.6.tgz} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} - - 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==, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, tarball: https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz} - engines: {node: '>= 0.4'} - - get-proxy@2.1.0: - resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==, tarball: https://registry.npmmirror.com/get-proxy/-/get-proxy-2.1.0.tgz} - engines: {node: '>=4'} - - get-stream@2.3.1: - resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-2.3.1.tgz} - engines: {node: '>=0.10.0'} - - get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz} - engines: {node: '>=4'} - - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz} - engines: {node: '>=6'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz} - engines: {node: '>=8'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} - engines: {node: '>=10'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz} - engines: {node: '>= 0.4'} - - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==, tarball: https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz} - - git-clone@0.1.0: - resolution: {integrity: sha512-zs9rlfa7HyaJAKG9o+V7C6qfMzyc+tb1IIXdUFcOBcR1U7siKy/uPdauLlrH1mc0vOgUwIv4BF+QxPiiTYz3Rw==, tarball: https://registry.npmmirror.com/git-clone/-/git-clone-0.1.0.tgz} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, tarball: https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} - - glob@10.2.6: - resolution: {integrity: sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==, tarball: https://registry.npmmirror.com/glob/-/glob-10.2.6.tgz} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, tarball: https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} - deprecated: Glob versions prior to v9 are no longer supported - - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} - engines: {node: '>=6'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, tarball: https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} - engines: {node: '>=10'} - - globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==, tarball: https://registry.npmmirror.com/globby/-/globby-14.0.2.tgz} - engines: {node: '>=18'} - - globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==, tarball: https://registry.npmmirror.com/globjoin/-/globjoin-0.1.4.tgz} - - globs@0.1.4: - resolution: {integrity: sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==, tarball: https://registry.npmmirror.com/globs/-/globs-0.1.4.tgz} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz} - engines: {node: '>= 0.4'} - - got@8.3.2: - resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==, tarball: https://registry.npmmirror.com/got/-/got-8.3.2.tgz} - engines: {node: '>=4'} - - got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==, tarball: https://registry.npmmirror.com/got/-/got-9.6.0.tgz} - engines: {node: '>=8.6'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, tarball: https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz} - - hammerjs@2.0.8: - resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==, tarball: https://registry.npmmirror.com/hammerjs/-/hammerjs-2.0.8.tgz} - engines: {node: '>=0.8.0'} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, tarball: https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz} - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, tarball: https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz} - engines: {node: '>=6'} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.1.0.tgz} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.2.0.tgz} - engines: {node: '>= 0.4'} - - has-symbol-support-x@1.4.2: - resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==, tarball: https://registry.npmmirror.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz} - engines: {node: '>= 0.4'} - - has-to-string-tag-x@1.4.1: - resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==, tarball: https://registry.npmmirror.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz} - engines: {node: '>= 0.4'} - - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} - hasBin: true - - header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==, tarball: https://registry.npmmirror.com/header-case/-/header-case-2.0.4.tgz} - - highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, tarball: https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz} - - history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} - - history@5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==, tarball: https://registry.npmmirror.com/history/-/history-5.3.0.tgz} - - hls.js@1.5.18: - resolution: {integrity: sha512-znxR+2jecWluu/0KOBqUcvVyAB5tLff10vjMGrpAlz1eFY+ZhF1bY3r82V+Bk7WJdk03iTjtja9KFFz5BrqjSA==, tarball: https://registry.npmmirror.com/hls.js/-/hls.js-1.5.18.tgz} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} - engines: {node: '>=10'} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, tarball: https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz} - - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==, tarball: https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz} - engines: {node: '>=18'} - - html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==, tarball: https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz} - - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==, tarball: https://registry.npmmirror.com/html-entities/-/html-entities-2.5.2.tgz} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==, tarball: https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} - engines: {node: '>=12'} - hasBin: true - - html-minifier@4.0.0: - resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==, tarball: https://registry.npmmirror.com/html-minifier/-/html-minifier-4.0.0.tgz} - engines: {node: '>=6'} - hasBin: true - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz} - engines: {node: '>=8'} - - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - - html-webpack-plugin@5.6.3: - resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==, tarball: https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz} - - http-cache-semantics@3.8.1: - resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==, tarball: https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, tarball: https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, tarball: https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==, tarball: https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, tarball: https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==, tarball: https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, tarball: https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz} - engines: {node: '>= 14'} - - http-proxy-middleware@2.0.7: - resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==, tarball: https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, tarball: https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz} - engines: {node: '>=8.0.0'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, tarball: https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz} - engines: {node: '>= 14'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} - engines: {node: '>=10.17.0'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} - engines: {node: '>=0.10.0'} - - ics@3.8.1: - resolution: {integrity: sha512-UqQlfkajfhrS4pUGQfGIJMYz/Jsl/ob3LqcfEhUmLbwumg+ZNkU0/6S734Vsjq3/FYNpEcZVKodLBoe+zBM69g==, tarball: https://registry.npmmirror.com/ics/-/ics-3.8.1.tgz} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, tarball: https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz} - engines: {node: '>= 4'} - - image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - immutable@5.0.3: - resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==, tarball: https://registry.npmmirror.com/immutable/-/immutable-5.0.3.tgz} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-4.0.0.tgz} - engines: {node: '>=8'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} - 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.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} - - inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-8.2.6.tgz} - engines: {node: '>=12.0.0'} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz} - engines: {node: '>= 0.4'} - - into-stream@3.1.0: - resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==, tarball: https://registry.npmmirror.com/into-stream/-/into-stream-3.1.0.tgz} - engines: {node: '>=4'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, tarball: https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz} - engines: {node: '>= 0.10'} - - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==, tarball: https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz} - engines: {node: '>= 10'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} - - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, tarball: https://registry.npmmirror.com/is-async-function/-/is-async-function-2.0.0.tgz} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.1.0.tgz} - engines: {node: '>= 0.4'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} - engines: {node: '>=8'} - - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz} - engines: {node: '>= 0.4'} - - is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==, tarball: https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.2.tgz} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.1.0.tgz} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} - engines: {node: '>=8'} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==, tarball: https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz} - engines: {node: '>= 0.4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} - engines: {node: '>=8'} - - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, tarball: https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, tarball: https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz} - engines: {node: '>=8'} - - is-invalid-path@1.0.2: - resolution: {integrity: sha512-6KLcFrPCEP3AFXMfnWrIFkZpYNBVzZAoBJJDEZKtI3LXkaDjM3uFMJQjxiizUuZTZ9Oh9FNv/soXbx5TcpaDmA==, tarball: https://registry.npmmirror.com/is-invalid-path/-/is-invalid-path-1.0.2.tgz} - engines: {node: '>=6.0'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, tarball: https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz} - engines: {node: '>= 0.4'} - - is-mobile@4.0.0: - resolution: {integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==, tarball: https://registry.npmmirror.com/is-mobile/-/is-mobile-4.0.0.tgz} - - is-natural-number@4.0.1: - resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==, tarball: https://registry.npmmirror.com/is-natural-number/-/is-natural-number-4.0.1.tgz} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} - engines: {node: '>=0.12.0'} - - is-object@1.0.2: - resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==, tarball: https://registry.npmmirror.com/is-object/-/is-object-1.0.2.tgz} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} - engines: {node: '>=0.10.0'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz} - engines: {node: '>=10'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, tarball: https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz} - engines: {node: '>= 0.4'} - - is-retry-allowed@1.2.0: - resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, tarball: https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz} - engines: {node: '>=0.10.0'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, tarball: https://registry.npmmirror.com/is-set/-/is-set-2.0.3.tgz} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz} - engines: {node: '>= 0.4'} - - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} - engines: {node: '>=8'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.1.1.tgz} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.1.1.tgz} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz} - engines: {node: '>= 0.4'} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, tarball: https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} - engines: {node: '>=10'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, tarball: https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz} - engines: {node: '>= 0.4'} - - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.1.0.tgz} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==, tarball: https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.4.tgz} - engines: {node: '>= 0.4'} - - is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, tarball: https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} - engines: {node: '>=8'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, tarball: https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, tarball: https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz} - engines: {node: '>=0.10.0'} - - isurl@1.0.0: - resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==, tarball: https://registry.npmmirror.com/isurl/-/isurl-1.0.0.tgz} - engines: {node: '>= 4'} - - iterator.prototype@1.1.4: - resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==, tarball: https://registry.npmmirror.com/iterator.prototype/-/iterator.prototype-1.1.4.tgz} - engines: {node: '>= 0.4'} - - j-component@1.4.9: - resolution: {integrity: sha512-7TaTylECTW4sRaDLaj463sTj9BK6/3rSD67um47ypLPwtZW3wPwynCQ9sdnEJmTIw9Jfy2ZLKWiSDRdaINv50w==, tarball: https://registry.npmmirror.com/j-component/-/j-component-1.4.9.tgz} - - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, tarball: https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz} - engines: {node: '>=14'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, tarball: https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz} - - javascript-stringify@2.1.0: - resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==, tarball: https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, tarball: https://registry.npmmirror.com/jest-util/-/jest-util-29.7.0.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.7.0.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==, tarball: https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz} - hasBin: true - - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==, tarball: https://registry.npmmirror.com/joi/-/joi-17.13.3.tgz} - - js-base64@3.7.7: - resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==, tarball: https://registry.npmmirror.com/js-base64/-/js-base64-3.7.7.tgz} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} - hasBin: true - - jsdom@24.1.3: - resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==, tarball: https://registry.npmmirror.com/jsdom/-/jsdom-24.1.3.tgz} - engines: {node: '>=18'} - peerDependencies: - canvas: ^2.11.2 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-3.0.2.tgz} - engines: {node: '>=6'} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz} - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, tarball: https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, tarball: https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} - engines: {node: '>=6'} - hasBin: true - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} - - jsonp-retry@1.0.3: - resolution: {integrity: sha512-/jmE9+shtKP+oIt2AWO9Wx+C27NTGpLCEw4QHOqpoV2X6ta374HE9C+EEdgu8r3iLKgFMx7u5j0mCwxWN8UdlA==, tarball: https://registry.npmmirror.com/jsonp-retry/-/jsonp-retry-1.0.3.tgz} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, tarball: https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz} - engines: {node: '>=4.0'} - - keyv@3.0.0: - resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==, tarball: https://registry.npmmirror.com/keyv/-/keyv-3.0.0.tgz} - - keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==, tarball: https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} - engines: {node: '>=0.10.0'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} - engines: {node: '>=6'} - - known-css-properties@0.26.0: - resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.26.0.tgz} - - latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==, tarball: https://registry.npmmirror.com/latest-version/-/latest-version-5.1.0.tgz} - engines: {node: '>=8'} - - launch-editor@2.9.1: - resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==, tarball: https://registry.npmmirror.com/launch-editor/-/launch-editor-2.9.1.tgz} - - less-loader@12.2.0: - resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==, tarball: https://registry.npmmirror.com/less-loader/-/less-loader-12.2.0.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - less: ^3.5.0 || ^4.0.0 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - less@3.13.1: - resolution: {integrity: sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==, tarball: https://registry.npmmirror.com/less/-/less-3.13.1.tgz} - engines: {node: '>=6'} - hasBin: true - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} - engines: {node: '>= 0.8.0'} - - lightningcss-darwin-arm64@1.28.2: - resolution: {integrity: sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - - lightningcss-darwin-x64@1.28.2: - resolution: {integrity: sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - - lightningcss-freebsd-x64@1.28.2: - resolution: {integrity: sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - - lightningcss-linux-arm-gnueabihf@1.28.2: - resolution: {integrity: sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - - lightningcss-linux-arm64-gnu@1.28.2: - resolution: {integrity: sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-arm64-musl@1.28.2: - resolution: {integrity: sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-x64-gnu@1.28.2: - resolution: {integrity: sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.28.2: - resolution: {integrity: sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-win32-arm64-msvc@1.28.2: - resolution: {integrity: sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - - lightningcss-win32-x64-msvc@1.28.2: - resolution: {integrity: sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - - lightningcss@1.28.2: - resolution: {integrity: sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==, tarball: https://registry.npmmirror.com/lightningcss/-/lightningcss-1.28.2.tgz} - engines: {node: '>= 12.0.0'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==, tarball: https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, tarball: https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz} - engines: {node: '>=6.11.5'} - - loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz} - engines: {node: '>=4.0.0'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz} - engines: {node: '>=8.9.0'} - - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-3.3.1.tgz} - engines: {node: '>= 12.13.0'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz} - engines: {node: '>=6'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} - engines: {node: '>=10'} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, tarball: https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz} - - lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==, tarball: https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, tarball: https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz} - - lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, tarball: https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, tarball: https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} - - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, tarball: https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, tarball: https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz} - engines: {node: '>=10'} - - loglevel-plugin-prefix@0.8.4: - resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==, tarball: https://registry.npmmirror.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz} - - loglevel@1.9.2: - resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==, tarball: https://registry.npmmirror.com/loglevel/-/loglevel-1.9.2.tgz} - engines: {node: '>= 0.6.0'} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} - hasBin: true - - lower-case@1.1.4: - resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==, tarball: https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, tarball: https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz} - - lowercase-keys@1.0.0: - resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz} - engines: {node: '>=0.10.0'} - - lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz} - engines: {node: '>=8'} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} - engines: {node: '>=10'} - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz} - engines: {node: '>=4'} - - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} - engines: {node: '>=6'} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz} - engines: {node: '>=8'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, tarball: https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz} - engines: {node: '>=8'} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, tarball: https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz} - engines: {node: '>= 0.4'} - - mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==, tarball: https://registry.npmmirror.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz} - - md5@2.3.0: - resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, tarball: https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz} - - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@1.1.4: - resolution: {integrity: sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-1.1.4.tgz} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.28.tgz} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, tarball: https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz} - engines: {node: '>= 0.6'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, tarball: https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz} - engines: {node: '>= 4.0.0'} - - memoize-one@6.0.0: - resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==, tarball: https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz} - - meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, tarball: https://registry.npmmirror.com/meow/-/meow-9.0.0.tgz} - engines: {node: '>=10'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==, tarball: https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, tarball: https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} - engines: {node: '>= 0.6'} - - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.53.0.tgz} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} - engines: {node: '>=4'} - hasBin: true - - mime@2.5.2: - resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==, tarball: https://registry.npmmirror.com/mime/-/mime-2.5.2.tgz} - engines: {node: '>=4.0.0'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} - engines: {node: '>=6'} - - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, tarball: https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz} - engines: {node: '>=4'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, tarball: https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz} - engines: {node: '>=4'} - - mini-css-extract-plugin@2.9.2: - resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==, tarball: https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, tarball: https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.0.8.tgz} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz} - engines: {node: '>=16 || 14 >=14.17'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz} - engines: {node: '>=16 || 14 >=14.17'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz} - engines: {node: '>= 6'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} - - minipass@6.0.2: - resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==, tarball: https://registry.npmmirror.com/minipass/-/minipass-6.0.2.tgz} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, tarball: https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz} - engines: {node: '>=16 || 14 >=14.17'} - - miniprogram-api-typings@3.12.3: - resolution: {integrity: sha512-o7bOfrU28MEMCBWo83nXv0ROQSBFxJcfCl4f2wTYqah64ipC5RGqLJfvWJTWhlQt2ECVwspSzM8LgvnfMo7TEQ==, tarball: https://registry.npmmirror.com/miniprogram-api-typings/-/miniprogram-api-typings-3.12.3.tgz} - - miniprogram-compiler@0.2.3: - resolution: {integrity: sha512-/MfFiXTBUwYxnrTbj1hgwk1+qGkMCTL1zi8IReOq/0SPVkUxpx19E89w+ohYCELFXkMfVbD+6ejrHh3Y1u5sVg==} - - miniprogram-exparser@2.29.1: - resolution: {integrity: sha512-f2LUVYcQ5O664nOHhrEbtR//hlqln88dRY0mIwuRncJfuXMCdK9FBk0vzNDG6EgaaeTt3iGLeFQLRHlhYktkXw==} - - miniprogram-simulate@1.6.1: - resolution: {integrity: sha512-WO+T1A1fYZV6qW4mLNEl/+Rtdpw339mPd8q0KkyGHUFbRCIMzIHVutn2UrhUbn6UWZpkGurKwDUckNkpLhJ9QA==, tarball: https://registry.npmmirror.com/miniprogram-simulate/-/miniprogram-simulate-1.6.1.tgz} - - mobile-detect@1.4.5: - resolution: {integrity: sha512-yc0LhH6tItlvfLBugVUEtgawwFU2sIe+cSdmRJJCTMZ5GEJyLxNyC/NIOAOGk67Fa8GNpOttO3Xz/1bHpXFD/g==, tarball: https://registry.npmmirror.com/mobile-detect/-/mobile-detect-1.4.5.tgz} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} - - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==, tarball: https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz} - hasBin: true - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, tarball: https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.8.tgz} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, tarball: https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - native-request@1.1.2: - resolution: {integrity: sha512-/etjwrK0J4Ebbcnt35VMWnfiUX/B04uwGJxyJInagxDqf2z5drSt/lsOvEMWGYunz1kaLZAFrV4NDAbOoDKvAQ==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, tarball: https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz} - engines: {node: '>= 0.6'} - - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==, tarball: https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, tarball: https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} - - no-case@2.3.2: - resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==, tarball: https://registry.npmmirror.com/no-case/-/no-case-2.3.2.tgz} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, tarball: https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz} - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, tarball: https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz} - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, tarball: https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz} - engines: {node: '>= 6.13.0'} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz} - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} - engines: {node: '>=10'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, tarball: https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz} - engines: {node: '>=0.10.0'} - - normalize-url@2.0.1: - resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==, tarball: https://registry.npmmirror.com/normalize-url/-/normalize-url-2.0.1.tgz} - engines: {node: '>=4'} - - normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==, tarball: https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz} - engines: {node: '>=8'} - - npm-conf@1.1.3: - resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==, tarball: https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz} - engines: {node: '>=4'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz} - engines: {node: '>=8'} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz} - - nwsapi@2.2.16: - resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==, tarball: https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.16.tgz} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, tarball: https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz} - engines: {node: '>= 6'} - - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.3.tgz} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz} - engines: {node: '>= 0.4'} - - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.8.tgz} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==, tarball: https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.8.tgz} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==, tarball: https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.3.tgz} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.2.1.tgz} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, tarball: https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, tarball: https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, tarball: https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} - engines: {node: '>=6'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, tarball: https://registry.npmmirror.com/open/-/open-8.4.2.tgz} - engines: {node: '>=12'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, tarball: https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, tarball: https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz} - engines: {node: '>=10'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, tarball: https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} - engines: {node: '>=0.10.0'} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==, tarball: https://registry.npmmirror.com/own-keys/-/own-keys-1.0.1.tgz} - engines: {node: '>= 0.4'} - - p-cancelable@0.4.1: - resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==, tarball: https://registry.npmmirror.com/p-cancelable/-/p-cancelable-0.4.1.tgz} - engines: {node: '>=4'} - - p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==, tarball: https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz} - engines: {node: '>=6'} - - p-event@2.3.1: - resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==, tarball: https://registry.npmmirror.com/p-event/-/p-event-2.3.1.tgz} - engines: {node: '>=6'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, tarball: https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz} - engines: {node: '>=4'} - - p-is-promise@1.1.0: - resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==, tarball: https://registry.npmmirror.com/p-is-promise/-/p-is-promise-1.1.0.tgz} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} - engines: {node: '>=10'} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} - engines: {node: '>=10'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==, tarball: https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz} - engines: {node: '>=8'} - - p-timeout@2.0.1: - resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==, tarball: https://registry.npmmirror.com/p-timeout/-/p-timeout-2.0.1.tgz} - engines: {node: '>=4'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, tarball: https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, tarball: https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz} - - package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==, tarball: https://registry.npmmirror.com/package-json/-/package-json-6.5.0.tgz} - engines: {node: '>=8'} - - param-case@2.1.1: - resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==, tarball: https://registry.npmmirror.com/param-case/-/param-case-2.1.1.tgz} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==, tarball: https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} - engines: {node: '>=6'} - - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} - engines: {node: '>=8'} - - parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==, tarball: https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz} - - parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==, tarball: https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz} - - parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, tarball: https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz} - - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==, tarball: https://registry.npmmirror.com/parse5/-/parse5-7.2.1.tgz} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, tarball: https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} - - path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==, tarball: https://registry.npmmirror.com/path-case/-/path-case-3.0.4.tgz} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, tarball: https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz} - - path-to-regexp@3.3.0: - resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} - engines: {node: '>=8'} - - path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==, tarball: https://registry.npmmirror.com/path-type/-/path-type-5.0.0.tgz} - engines: {node: '>=12'} - - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, tarball: https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz} - - performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - - picocolors@0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, tarball: https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz} - engines: {node: '>=0.10.0'} - - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, tarball: https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz} - engines: {node: '>=4'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, tarball: https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz} - engines: {node: '>=6'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==, tarball: https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==, tarball: https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, tarball: https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz} - engines: {node: '>= 6'} - - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==, tarball: https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz} - engines: {node: '>=6'} - - platform@1.3.6: - resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==, tarball: https://registry.npmmirror.com/platform/-/platform-1.3.6.tgz} - - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, tarball: https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz} - engines: {node: '>= 0.4'} - - postcss-calc@9.0.1: - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==, tarball: https://registry.npmmirror.com/postcss-calc/-/postcss-calc-9.0.1.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.2 - - postcss-colormin@6.1.0: - resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==, tarball: https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-convert-values@6.1.0: - resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==, tarball: https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-comments@6.0.2: - resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==, tarball: https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-duplicates@6.0.3: - resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==, tarball: https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-empty@6.0.3: - resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==, tarball: https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-overridden@6.0.2: - resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==, tarball: https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-html-transform@4.0.8: - resolution: {integrity: sha512-Sr67SoRMgl42Hd7/3sZB6zNVWYxm2KWd+4LwUV5w1q7lX3JaM3j3fMBvpPfwff5m+sXHgaoesFrp6wIxkFvifA==, tarball: https://registry.npmmirror.com/postcss-html-transform/-/postcss-html-transform-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - postcss: ^8 - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, tarball: https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-import@16.1.0: - resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==, tarball: https://registry.npmmirror.com/postcss-import/-/postcss-import-16.1.0.tgz} - engines: {node: '>=18.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, tarball: https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, tarball: https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-loader@8.1.1: - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==, tarball: https://registry.npmmirror.com/postcss-loader/-/postcss-loader-8.1.1.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} - - postcss-merge-longhand@6.0.5: - resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==, tarball: https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-rules@6.1.1: - resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==, tarball: https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-font-values@6.1.0: - resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==, tarball: https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-gradients@6.0.3: - resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==, tarball: https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-params@6.1.0: - resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==, tarball: https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-selectors@6.0.4: - resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==, tarball: https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, tarball: https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==, tarball: https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==, tarball: https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, tarball: https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==, tarball: https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.2.0.tgz} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@6.0.2: - resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==, tarball: https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-display-values@6.0.2: - resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==, tarball: https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-positions@6.0.2: - resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==, tarball: https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-repeat-style@6.0.2: - resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==, tarball: https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-string@6.0.2: - resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==, tarball: https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-timing-functions@6.0.2: - resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==, tarball: https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-unicode@6.1.0: - resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==, tarball: https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-url@6.0.2: - resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==, tarball: https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-whitespace@6.0.2: - resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==, tarball: https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-ordered-values@6.0.2: - resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==, tarball: https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-plugin-constparse@4.0.8: - resolution: {integrity: sha512-sF301xGZxKpJhho6ztzSRRsf6fiW77o2360BOPy4zIF1bBfDp8Wdzb9Zzw97ci6RHFhcHSoxIP3ZBDMtgLDG2w==, tarball: https://registry.npmmirror.com/postcss-plugin-constparse/-/postcss-plugin-constparse-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - postcss: ^8 - - postcss-pxtransform@4.0.8: - resolution: {integrity: sha512-w7eolk4KNedWtk8K60cVz3F8mZFeH/nHqN8zqrLkJpcqU7SsPJ5ra9wW3TPnWkiVQFovdiZbNDz/3K9CpiYEhQ==, tarball: https://registry.npmmirror.com/postcss-pxtransform/-/postcss-pxtransform-4.0.8.tgz} - engines: {node: '>= 18'} - peerDependencies: - postcss: ^8 - - postcss-reduce-initial@6.1.0: - resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==, tarball: https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-transforms@6.0.2: - resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==, tarball: https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-resolve-nested-selector@0.1.6: - resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==, tarball: https://registry.npmmirror.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz} - - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz} - engines: {node: '>=4'} - - postcss-selector-parser@7.0.0: - resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz} - engines: {node: '>=4'} - - postcss-svgo@6.0.3: - resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==, tarball: https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz} - engines: {node: ^14 || ^16 || >= 18} - peerDependencies: - postcss: ^8.4.31 - - postcss-unique-selectors@6.0.4: - resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==, tarball: https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-url@10.1.3: - resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==, tarball: https://registry.npmmirror.com/postcss-url/-/postcss-url-10.1.3.tgz} - engines: {node: '>=10'} - peerDependencies: - postcss: ^8.0.0 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} - - postcss@7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==, tarball: https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz} - engines: {node: '>=6.0.0'} - - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.4: - resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz} - engines: {node: '>= 0.8.0'} - - prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==, tarball: https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz} - engines: {node: '>=4'} - - pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, tarball: https://registry.npmmirror.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz} - engines: {node: '>=6'} - - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==, tarball: https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz} - - pretty-format@26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==, tarball: https://registry.npmmirror.com/pretty-format/-/pretty-format-26.6.2.tgz} - engines: {node: '>= 10'} - - pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==, tarball: https://registry.npmmirror.com/pretty-time/-/pretty-time-1.1.0.tgz} - engines: {node: '>=4'} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, tarball: https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} - - promise-polyfill@7.1.2: - resolution: {integrity: sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==, tarball: https://registry.npmmirror.com/promise-polyfill/-/promise-polyfill-7.1.2.tgz} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, tarball: https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz} - - property-expr@2.0.6: - resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==, tarball: https://registry.npmmirror.com/property-expr/-/property-expr-2.0.6.tgz} - - property-information@7.0.0: - resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, tarball: https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, tarball: https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz} - engines: {node: '>= 0.10'} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, tarball: https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz} - - prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, tarball: https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz} - - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==, tarball: https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz} - - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, tarball: https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz} - engines: {node: '>=6'} - - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, tarball: https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz} - engines: {node: '>=0.6'} - - query-string@5.1.1: - resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==, tarball: https://registry.npmmirror.com/query-string/-/query-string-5.1.1.tgz} - engines: {node: '>=0.10.0'} - - query-string@9.1.1: - resolution: {integrity: sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==, tarball: https://registry.npmmirror.com/query-string/-/query-string-9.1.1.tgz} - engines: {node: '>=18'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, tarball: https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} - engines: {node: '>=8'} - - raf@3.4.1: - resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, tarball: https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, tarball: https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, tarball: https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, tarball: https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz} - hasBin: true - - react-dom@16.14.0: - resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==} - peerDependencies: - react: ^16.14.0 - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==, tarball: https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz} - peerDependencies: - react: ^18.3.1 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, tarball: https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz} - - react-markdown@10.1.0: - resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - - react-reconciler@0.23.0: - resolution: {integrity: sha512-vV0KlLimP9a/NuRcM6GRVakkmT6MKSzhfo8K72fjHMnlXMOhz9GlPe+/tCp5CWBkg+lsMUt/CR1nypJBTPfwuw==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^16.0.0 - - react-reconciler@0.29.0: - resolution: {integrity: sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==, tarball: https://registry.npmmirror.com/react-reconciler/-/react-reconciler-0.29.0.tgz} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.2.0 - - react-refresh@0.11.0: - resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.11.0.tgz} - engines: {node: '>=0.10.0'} - - react-router-dom@7.1.1: - resolution: {integrity: sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-7.1.1.tgz} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - - react-router@7.1.1: - resolution: {integrity: sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==, tarball: https://registry.npmmirror.com/react-router/-/react-router-7.1.1.tgz} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - peerDependenciesMeta: - react-dom: - optional: true - - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==, tarball: https://registry.npmmirror.com/react-transition-group/-/react-transition-group-4.4.5.tgz} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - - react@16.14.0: - resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} - engines: {node: '>=0.10.0'} - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, tarball: https://registry.npmmirror.com/react/-/react-18.3.1.tgz} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, tarball: https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz} - engines: {node: '>=8'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} - engines: {node: '>=8.10.0'} - - readdirp@4.0.2: - resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-4.0.2.tgz} - engines: {node: '>= 14.16.0'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, tarball: https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz} - engines: {node: '>=8'} - - reflect.getprototypeof@1.0.9: - resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==, tarball: https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz} - engines: {node: '>= 0.4'} - - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==, tarball: https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, tarball: https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz} - - regenerator-runtime@0.11.1: - resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, tarball: https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz} - - regex-parser@2.3.0: - resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==, tarball: https://registry.npmmirror.com/regex-parser/-/regex-parser-2.3.0.tgz} - - regexp.prototype.flags@1.5.3: - resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz} - engines: {node: '>= 0.4'} - - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==, tarball: https://registry.npmmirror.com/regexpu-core/-/regexpu-core-6.2.0.tgz} - engines: {node: '>=4'} - - registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==, tarball: https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz} - engines: {node: '>=6.0.0'} - - registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==, tarball: https://registry.npmmirror.com/registry-url/-/registry-url-5.1.0.tgz} - engines: {node: '>=8'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==, tarball: https://registry.npmmirror.com/regjsgen/-/regjsgen-0.8.0.tgz} - - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==, tarball: https://registry.npmmirror.com/regjsparser/-/regjsparser-0.12.0.tgz} - hasBin: true - - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, tarball: https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz} - engines: {node: '>= 0.10'} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==, tarball: https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, tarball: https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} - engines: {node: '>=0.10.0'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, tarball: https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz} - engines: {node: '>=8'} - - resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==, tarball: https://registry.npmmirror.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, tarball: https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} - - resolve-url-loader@5.0.0: - resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==, tarball: https://registry.npmmirror.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz} - engines: {node: '>=12'} - - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.10.tgz} - engines: {node: '>= 0.4'} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, tarball: https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.5.tgz} - hasBin: true - - responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==, tarball: https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz} - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz} - engines: {node: '>=8'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, tarball: https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@3.29.5: - resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.5.tgz} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==, tarball: https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz} - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, tarball: https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} - - runes2@1.1.4: - resolution: {integrity: sha512-LNPnEDPOOU4ehF71m5JoQyzT2yxwD6ZreFJ7MxZUAoMKNMY1XrAo60H1CUoX5ncSm0rIuKlqn9JZNRrRkNou2g==, tarball: https://registry.npmmirror.com/runes2/-/runes2-1.1.4.tgz} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==, tarball: https://registry.npmmirror.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz} - engines: {node: '>= 0.4'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} - - sass-loader@14.2.1: - resolution: {integrity: sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==, tarball: https://registry.npmmirror.com/sass-loader/-/sass-loader-14.2.1.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - sass: ^1.3.0 - sass-embedded: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - node-sass: - optional: true - sass: - optional: true - sass-embedded: - optional: true - webpack: - optional: true - - sass@1.83.0: - resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==, tarball: https://registry.npmmirror.com/sass/-/sass-1.83.0.tgz} - engines: {node: '>=14.0.0'} - hasBin: true - - sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, tarball: https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, tarball: https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz} - engines: {node: '>=v12.22.7'} - - scheduler@0.17.0: - resolution: {integrity: sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==} - - scheduler@0.19.1: - resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==, tarball: https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz} - - schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz} - engines: {node: '>= 8.9.0'} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-4.3.0.tgz} - engines: {node: '>= 10.13.0'} - - scss-bundle@3.1.2: - resolution: {integrity: sha512-lvxTwCKDLgzmRWhGwJ834ggtnEhs0G9FxSJRWte+NwlshVvBcQ/kOHHkpAGDpCxIMNGz/Utl0yd/MWyQAOBhqg==, tarball: https://registry.npmmirror.com/scss-bundle/-/scss-bundle-3.1.2.tgz} - hasBin: true - - seek-bzip@1.0.6: - resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==, tarball: https://registry.npmmirror.com/seek-bzip/-/seek-bzip-1.0.6.tgz} - hasBin: true - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, tarball: https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==, tarball: https://registry.npmmirror.com/selfsigned/-/selfsigned-2.4.1.tgz} - engines: {node: '>=10'} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, tarball: https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, tarball: https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz} - engines: {node: '>=10'} - hasBin: true - - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, tarball: https://registry.npmmirror.com/send/-/send-0.19.0.tgz} - engines: {node: '>= 0.8.0'} - - sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==, tarball: https://registry.npmmirror.com/sentence-case/-/sentence-case-3.0.4.tgz} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, tarball: https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz} - - seroval-plugins@1.3.2: - resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==} - engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 - - seroval@1.3.2: - resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} - engines: {node: '>=10'} - - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, tarball: https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz} - engines: {node: '>= 0.8.0'} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, tarball: https://registry.npmmirror.com/serve-static/-/serve-static-1.16.2.tgz} - engines: {node: '>= 0.8.0'} - - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==, tarball: https://registry.npmmirror.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, tarball: https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, tarball: https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz} - engines: {node: '>= 0.4'} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==, tarball: https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, tarball: https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==, tarball: https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz} - engines: {node: '>=8'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} - engines: {node: '>=8'} - - shell-quote@1.8.2: - resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==, tarball: https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.2.tgz} - engines: {node: '>= 0.4'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==, tarball: https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, tarball: https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, tarball: https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz} - engines: {node: '>=14'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} - engines: {node: '>=8'} - - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==, tarball: https://registry.npmmirror.com/slash/-/slash-5.1.0.tgz} - engines: {node: '>=14.16'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz} - engines: {node: '>=10'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, tarball: https://registry.npmmirror.com/snake-case/-/snake-case-3.0.4.tgz} - - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==, tarball: https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz} - - solid-js@1.9.3: - resolution: {integrity: sha512-5ba3taPoZGt9GY3YlsCB24kCg0Lv/rie/HTD4kG6h4daZZz7+yK02xn8Vx8dLYBc9i6Ps5JwAbEiqjmKaLB3Ag==} - - sort-keys-length@1.0.1: - resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==, tarball: https://registry.npmmirror.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - sort-keys@1.1.2: - resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==, tarball: https://registry.npmmirror.com/sort-keys/-/sort-keys-1.1.2.tgz} - engines: {node: '>=0.10.0'} - - sort-keys@2.0.0: - resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==, tarball: https://registry.npmmirror.com/sort-keys/-/sort-keys-2.0.0.tgz} - engines: {node: '>=4'} - - source-list-map@2.0.1: - resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==, tarball: https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} - - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} - engines: {node: '>= 8'} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, tarball: https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, tarball: https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} - - spdx-license-ids@3.0.20: - resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==, tarball: https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, tarball: https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, tarball: https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz} - engines: {node: '>=6.0.0'} - - split-on-first@3.0.0: - resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==, tarball: https://registry.npmmirror.com/split-on-first/-/split-on-first-3.0.0.tgz} - engines: {node: '>=12'} - - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, tarball: https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, tarball: https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, tarball: https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz} - engines: {node: '>= 0.8'} - - std-env@3.8.0: - resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==, tarball: https://registry.npmmirror.com/std-env/-/std-env-3.8.0.tgz} - - strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz} - engines: {node: '>=0.10.0'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, tarball: https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz} - engines: {node: '>=12'} - - string.fromcodepoint@0.2.1: - resolution: {integrity: sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==, tarball: https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==, tarball: https://registry.npmmirror.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz} - engines: {node: '>= 0.4'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, tarball: https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz} - engines: {node: '>=4'} - - strip-dirs@2.1.0: - resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==, tarball: https://registry.npmmirror.com/strip-dirs/-/strip-dirs-2.1.0.tgz} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} - engines: {node: '>=6'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} - engines: {node: '>=8'} - - strip-outer@1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==, tarball: https://registry.npmmirror.com/strip-outer/-/strip-outer-1.0.1.tgz} - engines: {node: '>=0.10.0'} - - style-loader@3.3.4: - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==, tarball: https://registry.npmmirror.com/style-loader/-/style-loader-3.3.4.tgz} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, tarball: https://registry.npmmirror.com/style-search/-/style-search-0.1.0.tgz} - - style-to-js@1.1.16: - resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} - - style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - - stylehacks@6.1.1: - resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==, tarball: https://registry.npmmirror.com/stylehacks/-/stylehacks-6.1.1.tgz} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - stylelint@14.16.1: - resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==, tarball: https://registry.npmmirror.com/stylelint/-/stylelint-14.16.1.tgz} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - stylus-loader@8.1.1: - resolution: {integrity: sha512-Ohe29p3gwJiu1kxq16P80g1qq0FxGtwQevKctLE4su8KUq+Ea06Q6lp7SpcJjaKNrWIuEZQGvESUPt8JpukKVw==, tarball: https://registry.npmmirror.com/stylus-loader/-/stylus-loader-8.1.1.tgz} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - stylus: '>=0.52.4' - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - stylus@0.64.0: - resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} - engines: {node: '>=16'} - hasBin: true - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, tarball: https://registry.npmmirror.com/sucrase/-/sucrase-3.35.0.tgz} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} - engines: {node: '>=10'} - - supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, tarball: https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} - engines: {node: '>=8'} - - supports-hyperlinks@3.1.0: - resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==, tarball: https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz} - engines: {node: '>=14.18'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} - engines: {node: '>= 0.4'} - - svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, tarball: https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz} - - svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==, tarball: https://registry.npmmirror.com/svgo/-/svgo-3.3.2.tgz} - engines: {node: '>=14.0.0'} - hasBin: true - - swiper@11.1.0: - resolution: {integrity: sha512-Pm78CgU7Wvg+w/MgIL/1NwMSLgx0XqFof25EnVyX8iZFCYJv5CppH7LHkBj43qW2k5Cp3Iz7FcdBxrox7XX2AQ==, tarball: https://registry.npmmirror.com/swiper/-/swiper-11.1.0.tgz} - engines: {node: '>= 4.7.0'} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, tarball: https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz} - - table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==, tarball: https://registry.npmmirror.com/table/-/table-6.9.0.tgz} - engines: {node: '>=10.0.0'} - - tailwindcss@3.4.17: - resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==, tarball: https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.17.tgz} - engines: {node: '>=14.0.0'} - hasBin: true - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} - engines: {node: '>=6'} - - tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==, tarball: https://registry.npmmirror.com/tar-stream/-/tar-stream-1.6.2.tgz} - engines: {node: '>= 0.8.0'} - - terser-webpack-plugin@5.3.11: - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==, tarball: https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.37.0: - resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==, tarball: https://registry.npmmirror.com/terser/-/terser-5.37.0.tgz} - engines: {node: '>=10'} - hasBin: true - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, tarball: https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, tarball: https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} - - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==, tarball: https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz} - - timed-out@4.0.1: - resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, tarball: https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz} - engines: {node: '>=0.10.0'} - - tiny-case@1.0.3: - resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==, tarball: https://registry.npmmirror.com/tiny-case/-/tiny-case-1.0.3.tgz} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, tarball: https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz} - engines: {node: '>=0.6.0'} - - to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==, tarball: https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz} - - to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==, tarball: https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz} - engines: {node: '>=6'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} - engines: {node: '>=8.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, tarball: https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz} - engines: {node: '>=0.6'} - - toposort@2.0.2: - resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==, tarball: https://registry.npmmirror.com/toposort/-/toposort-2.0.2.tgz} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==, tarball: https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz} - engines: {node: '>=6'} - - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==, tarball: https://registry.npmmirror.com/tr46/-/tr46-5.0.0.tgz} - engines: {node: '>=18'} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz} - engines: {node: '>=8'} - - trim-repeated@1.0.0: - resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==, tarball: https://registry.npmmirror.com/trim-repeated/-/trim-repeated-1.0.0.tgz} - engines: {node: '>=0.10.0'} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==, tarball: https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, tarball: https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz} - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, tarball: https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tsconfig-paths-webpack-plugin@4.2.0: - resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==, tarball: https://registry.npmmirror.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz} - engines: {node: '>=10.13.0'} - - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, tarball: https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz} - - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, tarball: https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz} - engines: {node: '>=6'} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz} - - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, tarball: https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz} - - turbo-stream@2.4.0: - resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==, tarball: https://registry.npmmirror.com/turbo-stream/-/turbo-stream-2.4.0.tgz} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz} - engines: {node: '>= 0.8.0'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz} - engines: {node: '>=10'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz} - engines: {node: '>=8'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz} - engines: {node: '>=12.20'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, tarball: https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz} - engines: {node: '>= 0.4'} - - typescript@5.7.2: - resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==, tarball: https://registry.npmmirror.com/typescript/-/typescript-5.7.2.tgz} - engines: {node: '>=14.17'} - hasBin: true - - uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-3.19.3.tgz} - engines: {node: '>=0.8.0'} - hasBin: true - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz} - engines: {node: '>= 0.4'} - - unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==, tarball: https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} - - unescape-js@1.1.4: - resolution: {integrity: sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==} - - unfetch@4.2.0: - resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==, tarball: https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, tarball: https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==, tarball: https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, tarball: https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz} - engines: {node: '>=4'} - - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, tarball: https://registry.npmmirror.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz} - engines: {node: '>=18'} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universal-router@8.3.0: - resolution: {integrity: sha512-cBkihRoHvRQAjdUnDE1GGuuw/TPAIi8z2pEsSmUVAWLeZdgjHzzAb1+0VOO6NvBOvySItOTQikzaGlRxRdJBnA==} - - universal-router@9.2.1: - resolution: {integrity: sha512-i3XDhyfg0znwCu2Ue1zwWIWgfed+XYDqlUYXgriGnS58tzO3RgKHe4KWtq9HLQOl/Tknnh0C6jEH0+FLTrrBiQ==, tarball: https://registry.npmmirror.com/universal-router/-/universal-router-9.2.1.tgz} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, tarball: https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz} - engines: {node: '>= 4.0.0'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, tarball: https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, tarball: https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz} - engines: {node: '>= 0.8'} - - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==, tarball: https://registry.npmmirror.com/upper-case-first/-/upper-case-first-2.0.2.tgz} - - upper-case@1.1.3: - resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==, tarball: https://registry.npmmirror.com/upper-case/-/upper-case-1.1.3.tgz} - - upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==, tarball: https://registry.npmmirror.com/upper-case/-/upper-case-2.0.2.tgz} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} - - url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==, tarball: https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz} - engines: {node: '>=4'} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, tarball: https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz} - - url-to-options@1.0.1: - resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==, tarball: https://registry.npmmirror.com/url-to-options/-/url-to-options-1.0.1.tgz} - engines: {node: '>= 4'} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==, tarball: https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, tarball: https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, tarball: https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} - - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz} - - validate-html-nesting@1.2.2: - resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==, tarball: https://registry.npmmirror.com/validate-html-nesting/-/validate-html-nesting-1.2.2.tgz} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, tarball: https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==, tarball: https://registry.npmmirror.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, tarball: https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} - engines: {node: '>= 0.8'} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - vm2@3.9.19: - resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==, tarball: https://registry.npmmirror.com/vm2/-/vm2-3.9.19.tgz} - engines: {node: '>=6.0'} - deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm. - hasBin: true - - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==, tarball: https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz} - engines: {node: '>=18'} - - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==, tarball: https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, tarball: https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, tarball: https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, tarball: https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz} - engines: {node: '>=12'} - - webpack-chain@6.5.1: - resolution: {integrity: sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==, tarball: https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz} - engines: {node: '>=8'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==, tarball: https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==, tarball: https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-format-messages@3.0.1: - resolution: {integrity: sha512-fugZKtOjc7Qz2sQHIJlHnGeBAg9C7lHfrcZVge5HT9pNfNWgedlZVtoPg1E/7cdrUuIczuqFex2wtGfp6F+DgA==, tarball: https://registry.npmmirror.com/webpack-format-messages/-/webpack-format-messages-3.0.1.tgz} - engines: {node: '>=6'} - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==, tarball: https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.10.0.tgz} - engines: {node: '>=10.0.0'} - - webpack-sources@1.4.3: - resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} - engines: {node: '>=10.13.0'} - - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==, tarball: https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz} - - webpack@5.78.0: - resolution: {integrity: sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==, tarball: https://registry.npmmirror.com/webpack/-/webpack-5.78.0.tgz} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpackbar@5.0.2: - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==, tarball: https://registry.npmmirror.com/webpackbar/-/webpackbar-5.0.2.tgz} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==, tarball: https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==, tarball: https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz} - engines: {node: '>=0.8.0'} - - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, tarball: https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz} - engines: {node: '>=18'} - - whatwg-fetch@2.0.4: - resolution: {integrity: sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==} - - whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==, tarball: https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, tarball: https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz} - engines: {node: '>=18'} - - whatwg-url@14.1.0: - resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==, tarball: https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.1.0.tgz} - engines: {node: '>=18'} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==, tarball: https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, tarball: https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.18.tgz} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, tarball: https://registry.npmmirror.com/which/-/which-1.3.1.tgz} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} - engines: {node: '>= 8'} - hasBin: true - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==, tarball: https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz} - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz} - engines: {node: '>=0.10.0'} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, tarball: https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==, tarball: https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz} - engines: {node: '>=18'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, tarball: https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, tarball: https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} - engines: {node: '>=0.4'} - - xxhashjs@0.2.2: - resolution: {integrity: sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==, tarball: https://registry.npmmirror.com/xxhashjs/-/xxhashjs-0.2.2.tgz} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, tarball: https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, tarball: https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, tarball: https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} - engines: {node: '>= 6'} - - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==, tarball: https://registry.npmmirror.com/yaml/-/yaml-2.6.1.tgz} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} - engines: {node: '>=10'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, tarball: https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz} - engines: {node: '>=10'} - - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, tarball: https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, tarball: https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} - engines: {node: '>=10'} - - yup@1.6.1: - resolution: {integrity: sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==, tarball: https://registry.npmmirror.com/yup/-/yup-1.6.1.tgz} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@adobe/css-tools@4.3.3': {} - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.3': {} - - '@babel/core@7.26.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@8.57.1)': - dependencies: - '@babel/core': 7.26.0 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - - '@babel/generator@7.26.3': - dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.26.3 - - '@babel/helper-compilation-targets@7.25.9': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.3 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - debug: 4.4.0 - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.18.6': - dependencies: - '@babel/types': 7.26.3 - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.26.3 - - '@babel/helper-plugin-utils@7.25.9': {} - - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-string-parser@7.27.1': - optional: true - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-identifier@7.27.1': - optional: true - - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helper-wrap-function@7.25.9': - dependencies: - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - - '@babel/parser@7.26.3': - dependencies: - '@babel/types': 7.26.3 - - '@babel/parser@7.27.5': - dependencies: - '@babel/types': 7.27.6 - optional: true - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-class-properties@7.14.5(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/preset-env@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.3 - esutils: 2.0.3 - - '@babel/preset-react@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/runtime-corejs3@7.26.0': - dependencies: - core-js-pure: 3.39.0 - regenerator-runtime: 0.14.1 - - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.25.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - - '@babel/traverse@7.26.4': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.26.3': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.27.6': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - optional: true - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.2)': - dependencies: - postcss-selector-parser: 6.1.2 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@8.41.0)': - dependencies: - eslint: 8.41.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.4.1(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.0 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.41.0': {} - - '@eslint/js@8.57.1': {} - - '@hapi/hoek@9.3.0': {} - - '@hapi/topo@5.1.0': - dependencies: - '@hapi/hoek': 9.3.0 - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/types@26.6.2': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.68 - '@types/yargs': 15.0.19 - chalk: 4.1.2 - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.68 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@leichtgewicht/ip-codec@2.0.5': {} - - '@napi-rs/triples@1.2.0': {} - - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 - - '@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.18.0 - - '@nutui/icons-react-taro@1.0.5': {} - - '@nutui/icons-react-taro@2.0.1': {} - - '@nutui/jdesign-icons-react-taro@1.0.6-beta.2': {} - - '@nutui/nutui-react-taro@2.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.0 - '@nutui/icons-react-taro': 1.0.5 - '@nutui/jdesign-icons-react-taro': 1.0.6-beta.2 - '@nutui/touch-emulator': 1.0.0 - '@react-spring/web': 9.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@use-gesture/react': 10.2.20(react@18.3.1) - async-validator: 4.2.5 - classnames: 2.5.1 - lodash.isequal: 4.5.0 - lodash.kebabcase: 4.1.1 - react: 18.3.1 - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - react-dom - - '@nutui/touch-emulator@1.0.0': {} - - '@parcel/watcher-android-arm64@2.5.0': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.0': - optional: true - - '@parcel/watcher-darwin-x64@2.5.0': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.0': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.0': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.0': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.0': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.0': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.0': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.0': - optional: true - - '@parcel/watcher-win32-arm64@2.5.0': - optional: true - - '@parcel/watcher-win32-ia32@2.5.0': - optional: true - - '@parcel/watcher-win32-x64@2.5.0': - optional: true - - '@parcel/watcher@2.5.0': - 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.0 - '@parcel/watcher-darwin-arm64': 2.5.0 - '@parcel/watcher-darwin-x64': 2.5.0 - '@parcel/watcher-freebsd-x64': 2.5.0 - '@parcel/watcher-linux-arm-glibc': 2.5.0 - '@parcel/watcher-linux-arm-musl': 2.5.0 - '@parcel/watcher-linux-arm64-glibc': 2.5.0 - '@parcel/watcher-linux-arm64-musl': 2.5.0 - '@parcel/watcher-linux-x64-glibc': 2.5.0 - '@parcel/watcher-linux-x64-musl': 2.5.0 - '@parcel/watcher-win32-arm64': 2.5.0 - '@parcel/watcher-win32-ia32': 2.5.0 - '@parcel/watcher-win32-x64': 2.5.0 - optional: true - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.11.0)(type-fest@2.19.0)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - ansi-html: 0.0.9 - core-js-pure: 3.39.0 - error-stack-parser: 2.1.4 - html-entities: 2.5.2 - loader-utils: 2.0.4 - react-refresh: 0.11.0 - schema-utils: 4.3.0 - source-map: 0.7.4 - webpack: 5.78.0(@swc/core@1.3.96) - optionalDependencies: - type-fest: 2.19.0 - webpack-dev-server: 4.15.2(webpack@5.78.0(@swc/core@1.3.96)) - - '@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) - - '@rnx-kit/babel-preset-metro-react-native@1.1.8(@babel/core@7.26.0)(@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0))(@babel/runtime@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/runtime': 7.26.0 - '@rnx-kit/console': 1.1.0 - babel-plugin-const-enum: 1.2.0(@babel/core@7.26.0) - optionalDependencies: - '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@rnx-kit/console@1.1.0': {} - - '@rtsao/scc@1.1.0': {} - - '@sideway/address@4.1.5': - dependencies: - '@hapi/hoek': 9.3.0 - - '@sideway/formula@3.0.1': {} - - '@sideway/pinpoint@2.0.0': {} - - '@sinclair/typebox@0.27.8': {} - - '@sindresorhus/is@0.14.0': {} - - '@sindresorhus/is@0.7.0': {} - - '@sindresorhus/merge-streams@2.3.0': {} - - '@stencil/core@2.22.3': {} - - '@swc/core-darwin-arm64@1.3.96': - optional: true - - '@swc/core-darwin-x64@1.3.96': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.3.96': - optional: true - - '@swc/core-linux-arm64-gnu@1.3.96': - optional: true - - '@swc/core-linux-arm64-musl@1.3.96': - optional: true - - '@swc/core-linux-x64-gnu@1.3.96': - optional: true - - '@swc/core-linux-x64-musl@1.3.96': - optional: true - - '@swc/core-win32-arm64-msvc@1.3.96': - optional: true - - '@swc/core-win32-ia32-msvc@1.3.96': - optional: true - - '@swc/core-win32-x64-msvc@1.3.96': - optional: true - - '@swc/core@1.3.96': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.17 - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.96 - '@swc/core-darwin-x64': 1.3.96 - '@swc/core-linux-arm-gnueabihf': 1.3.96 - '@swc/core-linux-arm64-gnu': 1.3.96 - '@swc/core-linux-arm64-musl': 1.3.96 - '@swc/core-linux-x64-gnu': 1.3.96 - '@swc/core-linux-x64-musl': 1.3.96 - '@swc/core-win32-arm64-msvc': 1.3.96 - '@swc/core-win32-ia32-msvc': 1.3.96 - '@swc/core-win32-x64-msvc': 1.3.96 - - '@swc/counter@0.1.3': {} - - '@swc/register@0.1.10(@swc/core@1.3.96)': - dependencies: - '@swc/core': 1.3.96 - lodash.clonedeep: 4.5.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - - '@swc/types@0.1.17': - dependencies: - '@swc/counter': 0.1.3 - - '@szmarczak/http-timer@1.1.2': - dependencies: - defer-to-connect: 1.1.3 - - '@tarojs/api@3.0.8': - dependencies: - '@tarojs/runtime': 3.0.8 - - '@tarojs/api@4.0.8(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/binding-darwin-arm64@4.0.8': - optional: true - - '@tarojs/binding-darwin-x64@4.0.8': - optional: true - - '@tarojs/binding-linux-x64-gnu@4.0.8': - optional: true - - '@tarojs/binding-win32-x64-msvc@4.0.8': - optional: true - - '@tarojs/binding@4.0.8': - dependencies: - '@napi-rs/triples': 1.2.0 - optionalDependencies: - '@tarojs/binding-darwin-arm64': 4.0.8 - '@tarojs/binding-darwin-x64': 4.0.8 - '@tarojs/binding-linux-x64-gnu': 4.0.8 - '@tarojs/binding-win32-x64-msvc': 4.0.8 - - '@tarojs/cli@4.0.8': - dependencies: - '@tarojs/binding': 4.0.8 - '@tarojs/helper': 4.0.8 - '@tarojs/plugin-doctor': 0.0.13 - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - adm-zip: 0.5.16 - axios: 1.7.9 - cli-highlight: 2.1.11 - download-git-repo: 3.0.2 - envinfo: 7.14.0 - inquirer: 8.2.6 - latest-version: 5.1.0 - minimist: 1.2.8 - ora: 5.4.1 - semver: 7.6.3 - validate-npm-package-name: 5.0.1 - transitivePeerDependencies: - - '@swc/helpers' - - debug - - supports-color - - '@tarojs/components-advanced@4.0.8(@tarojs/helper@4.0.8)(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@tarojs/components': 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@tarojs/taro': 4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - classnames: 2.5.1 - csstype: 3.1.3 - memoize-one: 6.0.0 - tslib: 2.8.1 - optionalDependencies: - react: 18.3.1 - vue: 3.5.13(typescript@5.7.2) - transitivePeerDependencies: - - '@tarojs/helper' - - '@types/react' - - html-webpack-plugin - - postcss - - rollup - - webpack - - webpack-chain - - webpack-dev-server - - '@tarojs/components-react@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(solid-js@1.9.3)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@babel/runtime': 7.26.0 - '@tarojs/components': 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/shared': 4.0.8 - '@tarojs/taro': 4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - classnames: 2.5.1 - react: 18.3.1 - solid-js: 1.9.3 - swiper: 11.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - '@tarojs/helper' - - '@types/react' - - html-webpack-plugin - - postcss - - rollup - - vue - - webpack - - webpack-chain - - webpack-dev-server - - '@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@stencil/core': 2.22.3 - '@tarojs/components-advanced': 4.0.8(@tarojs/helper@4.0.8)(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@tarojs/taro': 4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - classnames: 2.5.1 - hammerjs: 2.0.8 - hls.js: 1.5.18 - resolve-pathname: 3.0.0 - swiper: 11.1.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - vue: 3.5.13(typescript@5.7.2) - transitivePeerDependencies: - - '@tarojs/helper' - - html-webpack-plugin - - postcss - - react - - rollup - - webpack - - webpack-chain - - webpack-dev-server - - '@tarojs/helper@4.0.8': - dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - '@swc/core': 1.3.96 - '@swc/register': 0.1.10(@swc/core@1.3.96) - ansi-escapes: 4.3.2 - chalk: 4.1.2 - chokidar: 3.6.0 - cross-spawn: 7.0.6 - debug: 4.4.0 - dotenv: 16.4.7 - dotenv-expand: 11.0.7 - esbuild: 0.21.5 - find-yarn-workspace-root: 2.0.0 - fs-extra: 11.2.0 - lodash: 4.17.21 - require-from-string: 2.0.2 - resolve: 1.22.10 - supports-hyperlinks: 3.1.0 - transitivePeerDependencies: - - '@swc/helpers' - - supports-color - - '@tarojs/plugin-doctor-darwin-arm64@0.0.13': - optional: true - - '@tarojs/plugin-doctor-darwin-universal@0.0.13': - optional: true - - '@tarojs/plugin-doctor-darwin-x64@0.0.13': - optional: true - - '@tarojs/plugin-doctor-linux-arm-gnueabihf@0.0.13': - optional: true - - '@tarojs/plugin-doctor-linux-arm64-gnu@0.0.13': - optional: true - - '@tarojs/plugin-doctor-linux-arm64-musl@0.0.13': - optional: true - - '@tarojs/plugin-doctor-linux-x64-gnu@0.0.13': - optional: true - - '@tarojs/plugin-doctor-linux-x64-musl@0.0.13': - optional: true - - '@tarojs/plugin-doctor-win32-ia32-msvc@0.0.13': - optional: true - - '@tarojs/plugin-doctor-win32-x64-msvc@0.0.13': - optional: true - - '@tarojs/plugin-doctor@0.0.13': - dependencies: - eslint: 8.41.0 - glob: 10.2.6 - optionalDependencies: - '@tarojs/plugin-doctor-darwin-arm64': 0.0.13 - '@tarojs/plugin-doctor-darwin-universal': 0.0.13 - '@tarojs/plugin-doctor-darwin-x64': 0.0.13 - '@tarojs/plugin-doctor-linux-arm-gnueabihf': 0.0.13 - '@tarojs/plugin-doctor-linux-arm64-gnu': 0.0.13 - '@tarojs/plugin-doctor-linux-arm64-musl': 0.0.13 - '@tarojs/plugin-doctor-linux-x64-gnu': 0.0.13 - '@tarojs/plugin-doctor-linux-x64-musl': 0.0.13 - '@tarojs/plugin-doctor-win32-ia32-msvc': 0.0.13 - '@tarojs/plugin-doctor-win32-x64-msvc': 0.0.13 - transitivePeerDependencies: - - supports-color - - '@tarojs/plugin-framework-react@4.0.8(@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.11.0)(type-fest@2.19.0)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)(react@18.3.1)(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@tarojs/helper': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - acorn: 8.14.0 - acorn-walk: 8.3.4 - lodash: 4.17.21 - tslib: 2.8.1 - optionalDependencies: - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.11.0)(type-fest@2.19.0)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - react: 18.3.1 - webpack: 5.78.0(@swc/core@1.3.96) - - '@tarojs/plugin-html@4.0.8(@tarojs/helper@4.0.8)(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/helper': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-alipay@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-h5@4.0.8(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(solid-js@1.9.3)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@babel/core': 7.26.0 - '@tarojs/components': 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/components-react': 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(solid-js@1.9.3)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/helper': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - '@tarojs/taro-h5': 4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))) - babel-plugin-transform-taroapi: 4.0.8(@babel/core@7.26.0) - change-case: 4.1.2 - lodash-es: 4.17.21 - tslib: 2.8.1 - transitivePeerDependencies: - - '@swc/helpers' - - '@tarojs/taro' - - '@types/react' - - html-webpack-plugin - - postcss - - react - - rollup - - solid-js - - supports-color - - vue - - webpack - - webpack-chain - - webpack-dev-server - - '@tarojs/plugin-platform-jd@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-qq@4.0.8(@tarojs/plugin-platform-weapp@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8))(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/plugin-platform-weapp': 4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-swan@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/plugin-platform-tt@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - webpack-sources: 3.2.3 - - '@tarojs/plugin-platform-weapp@4.0.8(@tarojs/service@4.0.8)(@tarojs/shared@4.0.8)': - dependencies: - '@tarojs/service': 4.0.8 - '@tarojs/shared': 4.0.8 - - '@tarojs/react@3.0.8(react@16.14.0)': - dependencies: - '@tarojs/runtime': 3.0.8 - react-reconciler: 0.23.0(react@16.14.0) - scheduler: 0.17.0 - transitivePeerDependencies: - - react - - '@tarojs/react@4.0.8(react@18.3.1)': - dependencies: - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - react: 18.3.1 - react-reconciler: 0.29.0(react@18.3.1) - - '@tarojs/router@3.0.8': - dependencies: - '@tarojs/runtime': 3.0.8 - history: 4.10.1 - universal-router: 8.3.0 - url-parse: 1.5.10 - - '@tarojs/router@4.0.8(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))': - dependencies: - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@tarojs/taro': 4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - dingtalk-jsapi: 2.15.4 - history: 5.3.0 - mobile-detect: 1.4.5 - query-string: 9.1.1 - tslib: 2.8.1 - universal-router: 9.2.1 - - '@tarojs/runner-utils@4.0.8': - dependencies: - '@tarojs/helper': 4.0.8 - rollup: 3.29.5 - scss-bundle: 3.1.2 - transitivePeerDependencies: - - '@swc/helpers' - - supports-color - - '@tarojs/runtime@3.0.8': {} - - '@tarojs/runtime@4.0.8': - dependencies: - '@tarojs/shared': 4.0.8 - tslib: 2.8.1 - - '@tarojs/service@4.0.8': - dependencies: - '@tarojs/helper': 4.0.8 - '@tarojs/runner-utils': 4.0.8 - '@tarojs/shared': 4.0.8 - joi: 17.13.3 - lodash: 4.17.21 - ora: 5.4.1 - resolve: 1.22.10 - tapable: 2.2.1 - webpack-merge: 5.10.0 - transitivePeerDependencies: - - '@swc/helpers' - - supports-color - - '@tarojs/shared@4.0.8': {} - - '@tarojs/taro-h5@3.0.8': - dependencies: - '@tarojs/api': 3.0.8 - '@tarojs/router': 3.0.8 - '@tarojs/runtime': 3.0.8 - base64-js: 1.5.1 - jsonp-retry: 1.0.3 - mobile-detect: 1.4.5 - raf: 3.4.1 - unfetch: 4.2.0 - whatwg-fetch: 2.0.4 - - '@tarojs/taro-h5@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))': - dependencies: - '@tarojs/api': 4.0.8(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/components': 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/router': 4.0.8(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8)(@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))) - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - abortcontroller-polyfill: 1.7.8 - base64-js: 1.5.1 - ics: 3.8.1 - is-mobile: 4.0.0 - jsonp-retry: 1.0.3 - lodash-es: 4.17.21 - platform: 1.3.6 - query-string: 9.1.1 - tslib: 2.8.1 - whatwg-fetch: 3.6.20 - transitivePeerDependencies: - - '@tarojs/taro' - - '@tarojs/taro-loader@4.0.8(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@tarojs/helper': 4.0.8 - '@tarojs/shared': 4.0.8 - webpack: 5.78.0(@swc/core@1.3.96) - transitivePeerDependencies: - - '@swc/helpers' - - supports-color - - '@tarojs/taro@3.0.8': - dependencies: - '@tarojs/api': 3.0.8 - '@tarojs/taro-h5': 3.0.8 - - '@tarojs/taro@4.0.8(@tarojs/components@4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.8)(@tarojs/shared@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@tarojs/api': 4.0.8(@tarojs/runtime@4.0.8)(@tarojs/shared@4.0.8) - '@tarojs/components': 4.0.8(@tarojs/helper@4.0.8)(@types/react@18.3.18)(html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)))(postcss@8.4.49)(react@18.3.1)(rollup@3.29.5)(vue@3.5.13(typescript@5.7.2))(webpack-chain@6.5.1)(webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)))(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/helper': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@types/postcss-url': 10.0.4 - postcss: 8.4.49 - optionalDependencies: - '@types/react': 18.3.18 - html-webpack-plugin: 5.6.3(webpack@5.78.0(@swc/core@1.3.96)) - rollup: 3.29.5 - vue: 3.5.13(typescript@5.7.2) - webpack: 5.78.0(@swc/core@1.3.96) - webpack-chain: 6.5.1 - webpack-dev-server: 4.15.2(webpack@5.78.0(@swc/core@1.3.96)) - - '@tarojs/webpack5-prebundle@4.0.8(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@tarojs/helper': 4.0.8 - '@tarojs/shared': 4.0.8 - enhanced-resolve: 5.18.0 - es-module-lexer: 0.10.5 - lodash: 4.17.21 - webpack: 5.78.0(@swc/core@1.3.96) - webpack-virtual-modules: 0.6.2 - transitivePeerDependencies: - - '@swc/helpers' - - supports-color - - '@tarojs/webpack5-runner@4.0.8(@babel/core@7.26.0)(@swc/core@1.3.96)(@tarojs/runtime@4.0.8)(less@3.13.1)(postcss@8.4.49)(sass@1.83.0)(stylus@0.64.0)(typescript@5.7.2)(webpack@5.78.0(@swc/core@1.3.96))': - dependencies: - '@babel/core': 7.26.0 - '@tarojs/helper': 4.0.8 - '@tarojs/runner-utils': 4.0.8 - '@tarojs/runtime': 4.0.8 - '@tarojs/shared': 4.0.8 - '@tarojs/taro-loader': 4.0.8(webpack@5.78.0(@swc/core@1.3.96)) - '@tarojs/webpack5-prebundle': 4.0.8(webpack@5.78.0(@swc/core@1.3.96)) - acorn: 8.14.0 - acorn-walk: 8.3.4 - autoprefixer: 10.4.20(postcss@8.4.49) - babel-loader: 8.2.1(@babel/core@7.26.0)(webpack@5.78.0(@swc/core@1.3.96)) - copy-webpack-plugin: 12.0.2(webpack@5.78.0(@swc/core@1.3.96)) - css-loader: 7.1.2(webpack@5.78.0(@swc/core@1.3.96)) - css-minimizer-webpack-plugin: 6.0.0(esbuild@0.21.5)(lightningcss@1.28.2)(webpack@5.78.0(@swc/core@1.3.96)) - detect-port: 1.6.1 - esbuild: 0.21.5 - esbuild-loader: 4.2.2(webpack@5.78.0(@swc/core@1.3.96)) - html-minifier: 4.0.0 - html-webpack-plugin: 5.6.3(webpack@5.78.0(@swc/core@1.3.96)) - jsdom: 24.1.3 - less-loader: 12.2.0(less@3.13.1)(webpack@5.78.0(@swc/core@1.3.96)) - lightningcss: 1.28.2 - loader-utils: 3.3.1 - lodash: 4.17.21 - md5: 2.3.0 - mini-css-extract-plugin: 2.9.2(webpack@5.78.0(@swc/core@1.3.96)) - miniprogram-simulate: 1.6.1 - ora: 5.4.1 - picomatch: 4.0.2 - postcss: 8.4.49 - postcss-html-transform: 4.0.8(postcss@8.4.49) - postcss-import: 16.1.0(postcss@8.4.49) - postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.7.2)(webpack@5.78.0(@swc/core@1.3.96)) - postcss-plugin-constparse: 4.0.8(postcss@8.4.49) - postcss-pxtransform: 4.0.8(postcss@8.4.49) - postcss-url: 10.1.3(postcss@8.4.49) - regenerator-runtime: 0.11.1 - resolve-url-loader: 5.0.0 - sass-loader: 14.2.1(sass@1.83.0)(webpack@5.78.0(@swc/core@1.3.96)) - sax: 1.2.4 - style-loader: 3.3.4(webpack@5.78.0(@swc/core@1.3.96)) - stylus-loader: 8.1.1(stylus@0.64.0)(webpack@5.78.0(@swc/core@1.3.96)) - terser-webpack-plugin: 5.3.11(@swc/core@1.3.96)(esbuild@0.21.5)(webpack@5.78.0(@swc/core@1.3.96)) - vm2: 3.9.19 - webpack: 5.78.0(@swc/core@1.3.96) - webpack-chain: 6.5.1 - webpack-dev-server: 4.15.2(webpack@5.78.0(@swc/core@1.3.96)) - webpack-format-messages: 3.0.1 - webpack-virtual-modules: 0.6.2 - webpackbar: 5.0.2(webpack@5.78.0(@swc/core@1.3.96)) - optionalDependencies: - less: 3.13.1 - sass: 1.83.0 - stylus: 0.64.0 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/helpers' - - bufferutil - - canvas - - clean-css - - csso - - debug - - node-sass - - sass-embedded - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@trysound/sax@0.2.0': {} - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/archy@0.0.31': {} - - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 18.19.68 - - '@types/bonjour@3.5.13': - dependencies: - '@types/node': 18.19.68 - - '@types/connect-history-api-fallback@1.5.4': - dependencies: - '@types/express-serve-static-core': 5.0.2 - '@types/node': 18.19.68 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 18.19.68 - - '@types/cookie@0.6.0': {} - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 0.7.34 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 0.0.51 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 0.0.51 - '@types/json-schema': 7.0.15 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.7 - - '@types/estree@0.0.51': {} - - '@types/estree@1.0.7': {} - - '@types/express-serve-static-core@4.19.6': - dependencies: - '@types/node': 18.19.68 - '@types/qs': 6.9.17 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express-serve-static-core@5.0.2': - dependencies: - '@types/node': 18.19.68 - '@types/qs': 6.9.17 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.17 - '@types/serve-static': 1.15.7 - - '@types/fs-extra@8.1.5': - dependencies: - '@types/node': 18.19.68 - - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.19.68 - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/html-minifier-terser@6.1.0': {} - - '@types/http-errors@2.0.4': {} - - '@types/http-proxy@1.17.15': - dependencies: - '@types/node': 18.19.68 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/json-schema@7.0.15': {} - - '@types/json5@0.0.29': {} - - '@types/keyv@3.1.4': - dependencies: - '@types/node': 18.19.68 - - '@types/lodash.debounce@4.0.9': - dependencies: - '@types/lodash': 4.17.13 - - '@types/lodash@4.17.13': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/mime@1.3.5': {} - - '@types/minimatch@5.1.2': {} - - '@types/minimist@1.2.5': {} - - '@types/ms@0.7.34': {} - - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 18.19.68 - - '@types/node@18.19.68': - dependencies: - undici-types: 5.26.5 - - '@types/normalize-package-data@2.4.4': {} - - '@types/parse-json@4.0.2': {} - - '@types/postcss-url@10.0.4': - dependencies: - '@types/node': 18.19.68 - postcss: 8.4.49 - - '@types/prop-types@15.7.14': {} - - '@types/qs@6.9.17': {} - - '@types/range-parser@1.2.7': {} - - '@types/react@18.3.18': - dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 18.19.68 - - '@types/retry@0.12.0': {} - - '@types/sass@1.45.0': - dependencies: - sass: 1.83.0 - - '@types/semver@7.5.8': {} - - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 18.19.68 - - '@types/serve-index@1.9.4': - dependencies: - '@types/express': 4.17.21 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 18.19.68 - '@types/send': 0.17.4 - - '@types/sockjs@0.3.36': - dependencies: - '@types/node': 18.19.68 - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@types/webpack-env@1.18.5': {} - - '@types/ws@8.5.13': - dependencies: - '@types/node': 18.19.68 - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@15.0.19': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - eslint: 8.57.1 - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - debug: 4.4.0 - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.7.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - eslint: 8.57.1 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.1': {} - - '@use-gesture/core@10.2.20': {} - - '@use-gesture/react@10.2.20(react@18.3.1)': - dependencies: - '@use-gesture/core': 10.2.20 - react: 18.3.1 - - '@vue/compiler-core@3.5.13': - dependencies: - '@babel/parser': 7.27.5 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - optional: true - - '@vue/compiler-dom@3.5.13': - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - optional: true - - '@vue/compiler-sfc@3.5.13': - dependencies: - '@babel/parser': 7.27.5 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - estree-walker: 2.0.2 - magic-string: 0.30.17 - postcss: 8.5.4 - source-map-js: 1.2.1 - optional: true - - '@vue/compiler-ssr@3.5.13': - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - optional: true - - '@vue/reactivity@3.5.13': - dependencies: - '@vue/shared': 3.5.13 - optional: true - - '@vue/runtime-core@3.5.13': - dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 - optional: true - - '@vue/runtime-dom@3.5.13': - dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 - csstype: 3.1.3 - optional: true - - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.2))': - dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.7.2) - optional: true - - '@vue/shared@3.5.13': - optional: true - - '@webassemblyjs/ast@1.11.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - - '@webassemblyjs/floating-point-hex-parser@1.11.1': {} - - '@webassemblyjs/helper-api-error@1.11.1': {} - - '@webassemblyjs/helper-buffer@1.11.1': {} - - '@webassemblyjs/helper-numbers@1.11.1': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.1': {} - - '@webassemblyjs/helper-wasm-section@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - - '@webassemblyjs/ieee754@1.11.1': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.1': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.1': {} - - '@webassemblyjs/wasm-edit@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/helper-wasm-section': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-opt': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - '@webassemblyjs/wast-printer': 1.11.1 - - '@webassemblyjs/wasm-gen@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - - '@webassemblyjs/wasm-opt@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - - '@webassemblyjs/wasm-parser@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - - '@webassemblyjs/wast-printer@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abortcontroller-polyfill@1.7.8: {} - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-import-assertions@1.9.0(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - - acorn-jsx@5.3.2(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - - acorn-walk@8.3.4: - dependencies: - acorn: 8.14.0 - - acorn@8.14.0: {} - - address@1.2.2: {} - - adjust-sourcemap-loader@4.0.0: - dependencies: - loader-utils: 2.0.4 - regex-parser: 2.3.0 - - adm-zip@0.5.16: {} - - agent-base@7.1.3: {} - - ajv-formats@2.1.1(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 - - 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 - - ajv@8.17.1: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-html-community@0.0.8: {} - - ansi-html@0.0.9: {} - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - archive-type@4.0.0: - dependencies: - file-type: 4.4.0 - - archy@1.0.0: {} - - arg@4.1.3: {} - - arg@5.0.2: {} - - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 - - array-flatten@1.1.1: {} - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 - is-string: 1.1.1 - - 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.23.8 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-shim-unscopables: 1.0.2 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-shim-unscopables: 1.0.2 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - - 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.23.8 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - is-array-buffer: 3.0.5 - - arrify@1.0.1: {} - - astral-regex@2.0.0: {} - - async-validator@4.2.5: {} - - asynckit@0.4.0: {} - - autoprefixer@10.4.20(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - caniuse-lite: 1.0.30001721 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.0.0 - - axios@1.7.9: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - babel-loader@8.2.1(@babel/core@7.26.0)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - '@babel/core': 7.26.0 - find-cache-dir: 2.1.0 - loader-utils: 1.4.2 - make-dir: 2.1.0 - pify: 4.0.1 - schema-utils: 2.7.1 - webpack: 5.78.0(@swc/core@1.3.96) - - babel-plugin-const-enum@1.2.0(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - babel-plugin-dynamic-import-node@2.3.3: - dependencies: - object.assign: 4.1.7 - - babel-plugin-import@1.13.8: - dependencies: - '@babel/helper-module-imports': 7.25.9 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - babel-plugin-transform-imports-api@1.0.0: - dependencies: - is-invalid-path: 1.0.2 - - babel-plugin-transform-solid-jsx@4.0.8(@babel/core@7.26.0): - dependencies: - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - html-entities: 2.3.3 - validate-html-nesting: 1.2.2 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-transform-taroapi@4.0.8(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - lodash: 4.17.21 - - babel-preset-taro@4.0.8(@babel/core@7.26.0)(@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0))(@babel/preset-react@7.26.3(@babel/core@7.26.0))(react-refresh@0.11.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@babel/runtime': 7.26.0 - '@babel/runtime-corejs3': 7.26.0 - '@rnx-kit/babel-preset-metro-react-native': 1.1.8(@babel/core@7.26.0)(@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0))(@babel/runtime@7.26.0) - '@tarojs/helper': 4.0.8 - babel-plugin-dynamic-import-node: 2.3.3 - babel-plugin-transform-imports-api: 1.0.0 - babel-plugin-transform-solid-jsx: 4.0.8(@babel/core@7.26.0) - core-js: 3.39.0 - optionalDependencies: - '@babel/preset-react': 7.26.3(@babel/core@7.26.0) - react-refresh: 0.11.0 - transitivePeerDependencies: - - '@babel/plugin-transform-typescript' - - '@react-native/babel-preset' - - '@swc/helpers' - - metro-react-native-babel-preset - - supports-color - - bail@2.0.2: {} - - balanced-match@1.0.2: {} - - balanced-match@2.0.0: {} - - base64-js@1.5.1: {} - - batch@0.6.1: {} - - big.js@5.2.2: {} - - binary-extensions@2.3.0: {} - - bl@1.2.3: - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - body-parser@1.20.3: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - bonjour-service@1.3.0: - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - - boolbase@1.0.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.24.3: - dependencies: - caniuse-lite: 1.0.30001721 - electron-to-chromium: 1.5.76 - node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.3) - - buffer-alloc-unsafe@1.1.0: {} - - buffer-alloc@1.2.0: - dependencies: - buffer-alloc-unsafe: 1.1.0 - buffer-fill: 1.0.0 - - buffer-crc32@0.2.13: {} - - buffer-fill@1.0.0: {} - - buffer-from@1.1.2: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bytes@3.1.2: {} - - cacheable-request@2.1.4: - dependencies: - clone-response: 1.0.2 - get-stream: 3.0.0 - http-cache-semantics: 3.8.1 - keyv: 3.0.0 - lowercase-keys: 1.0.0 - normalize-url: 2.0.1 - responselike: 1.0.2 - - cacheable-request@6.1.0: - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - - call-bind-apply-helpers@1.0.1: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.6 - set-function-length: 1.2.2 - - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 - - callsites@3.1.0: {} - - camel-case@3.0.0: - dependencies: - no-case: 2.3.2 - upper-case: 1.1.3 - - camel-case@4.1.2: - dependencies: - pascal-case: 3.1.2 - tslib: 2.8.1 - - camelcase-css@2.0.1: {} - - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - - camelcase@5.3.1: {} - - caniuse-api@3.0.0: - dependencies: - browserslist: 4.24.3 - caniuse-lite: 1.0.30001721 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - - caniuse-lite@1.0.30001721: {} - - capital-case@1.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case-first: 2.0.2 - - caw@2.0.1: - dependencies: - get-proxy: 2.1.0 - isurl: 1.0.0 - tunnel-agent: 0.6.0 - url-to-options: 1.0.1 - - ccount@2.0.1: {} - - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - change-case@4.1.2: - dependencies: - camel-case: 4.1.2 - capital-case: 1.0.4 - constant-case: 3.0.4 - dot-case: 3.0.4 - header-case: 2.0.4 - no-case: 3.0.4 - param-case: 3.0.4 - pascal-case: 3.1.2 - path-case: 3.0.4 - sentence-case: 3.0.4 - snake-case: 3.0.4 - tslib: 2.8.1 - - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - character-entities@2.0.2: {} - - character-reference-invalid@2.0.1: {} - - chardet@0.7.0: {} - - charenc@0.0.2: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.0.2 - - chrome-trace-event@1.0.4: {} - - ci-info@3.9.0: {} - - classnames@2.5.1: {} - - clean-css@4.2.4: - dependencies: - source-map: 0.6.1 - - clean-css@5.3.3: - dependencies: - source-map: 0.6.1 - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-highlight@2.1.11: - dependencies: - chalk: 4.1.2 - highlight.js: 10.7.3 - mz: 2.7.0 - parse5: 5.1.1 - parse5-htmlparser2-tree-adapter: 6.0.1 - yargs: 16.2.0 - - cli-spinners@2.9.2: {} - - cli-width@3.0.0: {} - - cliui@7.0.4: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clone-response@1.0.2: - dependencies: - mimic-response: 1.0.1 - - clone-response@1.0.3: - dependencies: - mimic-response: 1.0.1 - - clone@1.0.4: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colord@2.9.3: {} - - colorette@2.0.20: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - comma-separated-tokens@2.0.3: {} - - commander@2.20.3: {} - - commander@4.1.1: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - commondir@1.0.1: {} - - compressible@2.0.18: - dependencies: - mime-db: 1.53.0 - - compression@1.7.5: - dependencies: - bytes: 3.1.2 - compressible: 2.0.18 - debug: 2.6.9 - negotiator: 0.6.4 - on-headers: 1.0.2 - safe-buffer: 5.2.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - concat-map@0.0.1: {} - - config-chain@1.1.13: - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - - connect-history-api-fallback@2.0.0: {} - - consola@2.15.3: {} - - constant-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case: 2.0.2 - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - - convert-source-map@1.9.0: {} - - convert-source-map@2.0.0: {} - - cookie-signature@1.0.6: {} - - cookie@0.7.1: {} - - cookie@1.0.2: {} - - copy-anything@2.0.6: - dependencies: - is-what: 3.14.1 - - copy-webpack-plugin@12.0.2(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - fast-glob: 3.3.2 - glob-parent: 6.0.2 - globby: 14.0.2 - normalize-path: 3.0.0 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - webpack: 5.78.0(@swc/core@1.3.96) - - core-js-compat@3.39.0: - dependencies: - browserslist: 4.24.3 - - core-js-pure@3.39.0: {} - - core-js@3.39.0: {} - - core-util-is@1.0.3: {} - - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cosmiconfig@9.0.0(typescript@5.7.2): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.7.2 - - create-require@1.1.1: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crypt@0.0.2: {} - - crypto-js@4.2.0: {} - - css-declaration-sorter@7.2.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - css-functions-list@3.2.3: {} - - css-loader@7.1.2(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) - postcss-value-parser: 4.2.0 - semver: 7.6.3 - optionalDependencies: - webpack: 5.78.0(@swc/core@1.3.96) - - css-minimizer-webpack-plugin@6.0.0(esbuild@0.21.5)(lightningcss@1.28.2)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.49) - jest-worker: 29.7.0 - postcss: 8.4.49 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - webpack: 5.78.0(@swc/core@1.3.96) - optionalDependencies: - esbuild: 0.21.5 - lightningcss: 1.28.2 - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.2.1 - nth-check: 2.1.1 - - css-tree@1.0.0-alpha.29: - dependencies: - mdn-data: 1.1.4 - source-map: 0.5.7 - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - - css-what@6.1.0: {} - - cssesc@3.0.0: {} - - cssnano-preset-default@6.1.2(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - css-declaration-sorter: 7.2.0(postcss@8.4.49) - cssnano-utils: 4.0.2(postcss@8.4.49) - postcss: 8.4.49 - postcss-calc: 9.0.1(postcss@8.4.49) - postcss-colormin: 6.1.0(postcss@8.4.49) - postcss-convert-values: 6.1.0(postcss@8.4.49) - postcss-discard-comments: 6.0.2(postcss@8.4.49) - postcss-discard-duplicates: 6.0.3(postcss@8.4.49) - postcss-discard-empty: 6.0.3(postcss@8.4.49) - postcss-discard-overridden: 6.0.2(postcss@8.4.49) - postcss-merge-longhand: 6.0.5(postcss@8.4.49) - postcss-merge-rules: 6.1.1(postcss@8.4.49) - postcss-minify-font-values: 6.1.0(postcss@8.4.49) - postcss-minify-gradients: 6.0.3(postcss@8.4.49) - postcss-minify-params: 6.1.0(postcss@8.4.49) - postcss-minify-selectors: 6.0.4(postcss@8.4.49) - postcss-normalize-charset: 6.0.2(postcss@8.4.49) - postcss-normalize-display-values: 6.0.2(postcss@8.4.49) - postcss-normalize-positions: 6.0.2(postcss@8.4.49) - postcss-normalize-repeat-style: 6.0.2(postcss@8.4.49) - postcss-normalize-string: 6.0.2(postcss@8.4.49) - postcss-normalize-timing-functions: 6.0.2(postcss@8.4.49) - postcss-normalize-unicode: 6.1.0(postcss@8.4.49) - postcss-normalize-url: 6.0.2(postcss@8.4.49) - postcss-normalize-whitespace: 6.0.2(postcss@8.4.49) - postcss-ordered-values: 6.0.2(postcss@8.4.49) - postcss-reduce-initial: 6.1.0(postcss@8.4.49) - postcss-reduce-transforms: 6.0.2(postcss@8.4.49) - postcss-svgo: 6.0.3(postcss@8.4.49) - postcss-unique-selectors: 6.0.4(postcss@8.4.49) - - cssnano-utils@4.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - cssnano@6.1.2(postcss@8.4.49): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.4.49) - lilconfig: 3.1.3 - postcss: 8.4.49 - - csso@3.5.1: - dependencies: - css-tree: 1.0.0-alpha.29 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - - cssstyle@4.1.0: - dependencies: - rrweb-cssom: 0.7.1 - - csstype@3.1.3: {} - - cuint@0.2.2: {} - - data-urls@5.0.0: - dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 14.1.0 - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - dayjs@1.11.13: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@3.2.7: - dependencies: - ms: 2.1.3 - - debug@4.4.0: - dependencies: - ms: 2.1.3 - - debug@4.4.1: - dependencies: - ms: 2.1.3 - - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} - - decimal.js@10.4.3: {} - - decode-named-character-reference@1.1.0: - dependencies: - character-entities: 2.0.2 - - decode-uri-component@0.2.2: {} - - decode-uri-component@0.4.1: {} - - decompress-response@3.3.0: - dependencies: - mimic-response: 1.0.1 - - decompress-tar@4.1.1: - dependencies: - file-type: 5.2.0 - is-stream: 1.1.0 - tar-stream: 1.6.2 - - decompress-tarbz2@4.1.1: - dependencies: - decompress-tar: 4.1.1 - file-type: 6.2.0 - is-stream: 1.1.0 - seek-bzip: 1.0.6 - unbzip2-stream: 1.4.3 - - decompress-targz@4.1.1: - dependencies: - decompress-tar: 4.1.1 - file-type: 5.2.0 - is-stream: 1.1.0 - - decompress-unzip@4.0.1: - dependencies: - file-type: 3.9.0 - get-stream: 2.3.1 - pify: 2.3.0 - yauzl: 2.10.0 - - decompress@4.2.1: - dependencies: - decompress-tar: 4.1.1 - decompress-tarbz2: 4.1.1 - decompress-targz: 4.1.1 - decompress-unzip: 4.0.1 - graceful-fs: 4.2.11 - make-dir: 1.3.0 - pify: 2.3.0 - strip-dirs: 2.1.0 - - deep-extend@0.6.0: {} - - deep-is@0.1.4: {} - - deepmerge@1.5.2: {} - - default-gateway@6.0.3: - dependencies: - execa: 5.1.1 - - defaults@1.0.4: - dependencies: - clone: 1.0.4 - - defer-to-connect@1.1.3: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-lazy-prop@2.0.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: {} - - depd@1.1.2: {} - - depd@2.0.0: {} - - dequal@2.0.3: {} - - destroy@1.2.0: {} - - detect-libc@1.0.3: {} - - detect-node@2.1.0: {} - - detect-port@1.6.1: - dependencies: - address: 1.2.2 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - didyoumean@1.2.2: {} - - diff@4.0.2: {} - - dingtalk-jsapi@2.15.4: - dependencies: - promise-polyfill: 7.1.2 - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - dlv@1.1.3: {} - - dns-packet@5.6.1: - dependencies: - '@leichtgewicht/ip-codec': 2.0.5 - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dom-converter@0.2.0: - dependencies: - utila: 0.4.0 - - dom-helpers@5.2.1: - dependencies: - '@babel/runtime': 7.26.0 - csstype: 3.1.3 - - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - - domutils@3.2.1: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - - dotenv-expand@11.0.7: - dependencies: - dotenv: 16.4.7 - - dotenv@16.4.7: {} - - download-git-repo@3.0.2: - dependencies: - download: 7.1.0 - git-clone: 0.1.0 - rimraf: 3.0.2 - - download@7.1.0: - dependencies: - archive-type: 4.0.0 - caw: 2.0.1 - content-disposition: 0.5.4 - decompress: 4.2.1 - ext-name: 5.0.0 - file-type: 8.1.0 - filenamify: 2.1.0 - get-stream: 3.0.0 - got: 8.3.2 - make-dir: 1.3.0 - p-event: 2.3.1 - pify: 3.0.0 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - duplexer3@0.1.5: {} - - eastasianwidth@0.2.0: {} - - echarts-taro3-react@1.0.13: - dependencies: - '@tarojs/react': 3.0.8(react@16.14.0) - '@tarojs/taro': 3.0.8 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - - ee-first@1.1.1: {} - - electron-to-chromium@1.5.76: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - emojis-list@3.0.0: {} - - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - enhanced-resolve@5.18.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - entities@2.2.0: {} - - entities@4.5.0: {} - - env-paths@2.2.1: {} - - envinfo@7.14.0: {} - - errno@0.1.8: - dependencies: - prr: 1.0.1 - optional: true - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - error-stack-parser@2.1.4: - dependencies: - stackframe: 1.3.4 - - es-abstract@1.23.8: - 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.3 - 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.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.2.6 - 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-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.0 - math-intrinsics: 1.1.0 - object-inspect: 1.13.3 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.3 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 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.18 - - 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.3 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.6 - 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.4 - safe-array-concat: 1.1.3 - - es-module-lexer@0.10.5: {} - - es-module-lexer@0.9.3: {} - - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.6 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.0.2: - 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-loader@4.2.2(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - esbuild: 0.21.5 - get-tsconfig: 4.8.1 - loader-utils: 2.0.4 - webpack: 5.78.0(@swc/core@1.3.96) - webpack-sources: 1.4.3 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.2.0: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - eslint-config-taro@4.0.8(@babel/core@7.26.0)(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.3(eslint@8.57.1))(eslint@8.57.1)(typescript@5.7.2): - dependencies: - '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) - optionalDependencies: - eslint-plugin-react: 7.37.3(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) - transitivePeerDependencies: - - '@babel/core' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - typescript - - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react@7.37.3(eslint@8.57.1): - dependencies: - array-includes: 3.1.8 - 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.8 - 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@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@2.1.0: {} - - eslint-visitor-keys@3.4.3: {} - - eslint@8.41.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.41.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - 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 - import-fresh: 3.3.0 - 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 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.1(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.2.1 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - 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.14.0 - acorn-jsx: 5.3.2(acorn@8.14.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@4.3.0: {} - - estraverse@5.3.0: {} - - estree-util-is-identifier-name@3.0.0: {} - - estree-walker@2.0.2: - optional: true - - esutils@2.0.3: {} - - etag@1.8.1: {} - - eventemitter3@4.0.7: {} - - events@3.3.0: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - expr-parser@1.0.0: {} - - express@4.21.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - ext-list@2.2.2: - dependencies: - mime-db: 1.53.0 - - ext-name@5.0.0: - dependencies: - ext-list: 2.2.2 - sort-keys-length: 1.0.1 - - extend@3.0.2: {} - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - 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: {} - - fast-uri@3.0.3: {} - - fastest-levenshtein@1.0.16: {} - - fastq@1.18.0: - dependencies: - reusify: 1.0.4 - - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - file-type@3.9.0: {} - - file-type@4.4.0: {} - - file-type@5.2.0: {} - - file-type@6.2.0: {} - - file-type@8.1.0: {} - - filename-reserved-regex@2.0.0: {} - - filenamify@2.1.0: - dependencies: - filename-reserved-regex: 2.0.0 - strip-outer: 1.0.1 - trim-repeated: 1.0.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - filter-obj@5.1.0: {} - - finalhandler@1.3.1: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - find-yarn-workspace-root@2.0.0: - dependencies: - micromatch: 4.0.8 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.2 - keyv: 4.5.4 - rimraf: 3.0.2 - - flat@5.0.2: {} - - flatted@3.3.2: {} - - follow-redirects@1.15.9: {} - - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.1: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - forwarded@0.2.0: {} - - fraction.js@4.3.7: {} - - fresh@0.5.2: {} - - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - - fs-constants@1.0.0: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-monkey@1.0.6: {} - - 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.3 - 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-caller-file@2.0.5: {} - - get-intrinsic@1.2.6: - dependencies: - call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - function-bind: 1.1.2 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proxy@2.1.0: - dependencies: - npm-conf: 1.1.3 - - get-stream@2.3.1: - dependencies: - object-assign: 4.1.1 - pinkie-promise: 2.0.1 - - get-stream@3.0.0: {} - - get-stream@4.1.0: - dependencies: - pump: 3.0.2 - - get-stream@5.2.0: - dependencies: - pump: 3.0.2 - - get-stream@6.0.1: {} - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - - get-tsconfig@4.8.1: - dependencies: - resolve-pkg-maps: 1.0.0 - - git-clone@0.1.0: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regexp@0.4.1: {} - - glob@10.2.6: - dependencies: - foreground-child: 3.3.0 - jackspeak: 2.3.6 - minimatch: 9.0.5 - minipass: 6.0.2 - path-scurry: 1.11.1 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - 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 - - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 - - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - - globals@11.12.0: {} - - 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.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - globby@14.0.2: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.2 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - - globjoin@0.1.4: {} - - globs@0.1.4: - dependencies: - glob: 7.2.3 - - gopd@1.2.0: {} - - got@8.3.2: - dependencies: - '@sindresorhus/is': 0.7.0 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-request: 2.1.4 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 3.0.0 - into-stream: 3.1.0 - is-retry-allowed: 1.2.0 - isurl: 1.0.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 0.4.1 - p-timeout: 2.0.1 - pify: 3.0.0 - safe-buffer: 5.2.1 - timed-out: 4.0.1 - url-parse-lax: 3.0.0 - url-to-options: 1.0.1 - - got@9.6.0: - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - hammerjs@2.0.8: {} - - handle-thing@2.0.1: {} - - hard-rejection@2.1.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-symbol-support-x@1.4.2: {} - - has-symbols@1.1.0: {} - - has-to-string-tag-x@1.4.1: - dependencies: - has-symbol-support-x: 1.4.2 - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hast-util-to-jsx-runtime@2.3.6: - dependencies: - '@types/estree': 1.0.7 - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.0.0 - space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 - unist-util-position: 5.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - he@1.2.0: {} - - header-case@2.0.4: - dependencies: - capital-case: 1.0.4 - tslib: 2.8.1 - - highlight.js@10.7.3: {} - - history@4.10.1: - dependencies: - '@babel/runtime': 7.26.0 - loose-envify: 1.4.0 - resolve-pathname: 3.0.0 - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - value-equal: 1.0.1 - - history@5.3.0: - dependencies: - '@babel/runtime': 7.26.0 - - hls.js@1.5.18: {} - - hosted-git-info@2.8.9: {} - - hosted-git-info@4.1.0: - dependencies: - lru-cache: 6.0.0 - - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - - html-encoding-sniffer@4.0.0: - dependencies: - whatwg-encoding: 3.1.1 - - html-entities@2.3.3: {} - - html-entities@2.5.2: {} - - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.37.0 - - html-minifier@4.0.0: - dependencies: - camel-case: 3.0.0 - clean-css: 4.2.4 - commander: 2.20.3 - he: 1.2.0 - param-case: 2.1.1 - relateurl: 0.2.7 - uglify-js: 3.19.3 - - html-tags@3.3.1: {} - - html-url-attributes@3.0.1: {} - - html-webpack-plugin@5.6.3(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - optionalDependencies: - webpack: 5.78.0(@swc/core@1.3.96) - - htmlparser2@6.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - - http-cache-semantics@3.8.1: {} - - http-cache-semantics@4.1.1: {} - - http-deceiver@1.2.7: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - http-parser-js@0.5.8: {} - - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.3 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - - http-proxy-middleware@2.0.7(@types/express@4.17.21): - dependencies: - '@types/http-proxy': 1.17.15 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.8 - optionalDependencies: - '@types/express': 4.17.21 - transitivePeerDependencies: - - debug - - http-proxy@1.18.1: - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.9 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.3 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - - human-signals@2.1.0: {} - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - ics@3.8.1: - dependencies: - nanoid: 3.3.8 - runes2: 1.1.4 - yup: 1.6.1 - - icss-utils@5.1.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - ieee754@1.2.1: {} - - ignore@5.3.2: {} - - image-size@0.5.5: - optional: true - - immutable@5.0.3: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.3: {} - - inherits@2.0.4: {} - - ini@1.3.8: {} - - inline-style-parser@0.2.4: {} - - inquirer@8.2.6: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - into-stream@3.1.0: - dependencies: - from2: 2.3.0 - p-is-promise: 1.1.0 - - ipaddr.js@1.9.1: {} - - ipaddr.js@2.2.0: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - - is-arrayish@0.2.1: {} - - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.2 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-boolean-object@1.2.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-buffer@1.1.6: {} - - 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.3 - get-intrinsic: 1.2.6 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-decimal@2.0.1: {} - - is-docker@2.2.1: {} - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.3 - - is-fullwidth-code-point@3.0.0: {} - - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.2 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-hexadecimal@2.0.1: {} - - is-interactive@1.0.0: {} - - is-invalid-path@1.0.2: {} - - is-map@2.0.3: {} - - is-mobile@4.0.0: {} - - is-natural-number@4.0.1: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-object@1.0.2: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@1.1.0: {} - - is-plain-obj@3.0.0: {} - - is-plain-obj@4.1.0: {} - - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - - is-plain-object@5.0.0: {} - - is-potential-custom-element-name@1.0.1: {} - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-retry-allowed@1.2.0: {} - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.3 - - is-stream@1.1.0: {} - - is-stream@2.0.1: {} - - is-string@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.18 - - is-unicode-supported@0.1.0: {} - - is-weakmap@2.0.2: {} - - is-weakref@1.1.0: - dependencies: - call-bound: 1.0.3 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - - is-what@3.14.1: {} - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - isarray@1.0.0: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isobject@3.0.1: {} - - isurl@1.0.0: - dependencies: - has-to-string-tag-x: 1.4.1 - is-object: 1.0.2 - - iterator.prototype@1.1.4: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 - has-symbols: 1.1.0 - reflect.getprototypeof: 1.0.9 - set-function-name: 2.0.2 - - j-component@1.4.9: - dependencies: - expr-parser: 1.0.0 - miniprogram-api-typings: 3.12.3 - miniprogram-exparser: 2.29.1 - - jackspeak@2.3.6: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - javascript-stringify@2.1.0: {} - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 18.19.68 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-worker@27.5.1: - dependencies: - '@types/node': 18.19.68 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@29.7.0: - dependencies: - '@types/node': 18.19.68 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jiti@1.21.7: {} - - joi@17.13.3: - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - - js-base64@3.7.7: {} - - js-tokens@4.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsdom@24.1.3: - dependencies: - cssstyle: 4.1.0 - data-urls: 5.0.0 - decimal.js: 10.4.3 - form-data: 4.0.1 - html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.16 - parse5: 7.2.1 - rrweb-cssom: 0.7.1 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.1.0 - ws: 8.18.0 - xml-name-validator: 5.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - jsesc@3.0.2: {} - - jsesc@3.1.0: {} - - json-buffer@3.0.0: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@1.0.2: - dependencies: - minimist: 1.2.8 - - json5@2.2.3: {} - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsonp-retry@1.0.3: - dependencies: - object-assign: 4.1.1 - - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - - keyv@3.0.0: - dependencies: - json-buffer: 3.0.0 - - keyv@3.1.0: - dependencies: - json-buffer: 3.0.0 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kind-of@6.0.3: {} - - kleur@4.1.5: {} - - known-css-properties@0.26.0: {} - - latest-version@5.1.0: - dependencies: - package-json: 6.5.0 - - launch-editor@2.9.1: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.2 - - less-loader@12.2.0(less@3.13.1)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - less: 3.13.1 - optionalDependencies: - webpack: 5.78.0(@swc/core@1.3.96) - - less@3.13.1: - dependencies: - copy-anything: 2.0.6 - tslib: 1.14.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - native-request: 1.1.2 - source-map: 0.6.1 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lightningcss-darwin-arm64@1.28.2: - optional: true - - lightningcss-darwin-x64@1.28.2: - optional: true - - lightningcss-freebsd-x64@1.28.2: - optional: true - - lightningcss-linux-arm-gnueabihf@1.28.2: - optional: true - - lightningcss-linux-arm64-gnu@1.28.2: - optional: true - - lightningcss-linux-arm64-musl@1.28.2: - optional: true - - lightningcss-linux-x64-gnu@1.28.2: - optional: true - - lightningcss-linux-x64-musl@1.28.2: - optional: true - - lightningcss-win32-arm64-msvc@1.28.2: - optional: true - - lightningcss-win32-x64-msvc@1.28.2: - optional: true - - lightningcss@1.28.2: - dependencies: - detect-libc: 1.0.3 - optionalDependencies: - lightningcss-darwin-arm64: 1.28.2 - lightningcss-darwin-x64: 1.28.2 - lightningcss-freebsd-x64: 1.28.2 - lightningcss-linux-arm-gnueabihf: 1.28.2 - lightningcss-linux-arm64-gnu: 1.28.2 - lightningcss-linux-arm64-musl: 1.28.2 - lightningcss-linux-x64-gnu: 1.28.2 - lightningcss-linux-x64-musl: 1.28.2 - lightningcss-win32-arm64-msvc: 1.28.2 - lightningcss-win32-x64-msvc: 1.28.2 - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - loader-runner@4.3.0: {} - - loader-utils@1.4.2: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - - loader-utils@3.3.1: {} - - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash-es@4.17.21: {} - - lodash.clonedeep@4.5.0: {} - - lodash.debounce@4.0.8: {} - - lodash.isequal@4.5.0: {} - - lodash.kebabcase@4.1.1: {} - - lodash.memoize@4.1.2: {} - - lodash.merge@4.6.2: {} - - lodash.truncate@4.4.2: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.21: {} - - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - loglevel-plugin-prefix@0.8.4: {} - - loglevel@1.9.2: {} - - longest-streak@3.1.0: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lower-case@1.1.4: {} - - lower-case@2.0.2: - dependencies: - tslib: 2.8.1 - - lowercase-keys@1.0.0: {} - - lowercase-keys@1.0.1: {} - - lowercase-keys@2.0.0: {} - - lru-cache@10.4.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - optional: true - - make-dir@1.3.0: - dependencies: - pify: 3.0.0 - - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - - make-error@1.3.6: {} - - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - - math-intrinsics@1.1.0: {} - - mathml-tag-names@2.1.3: {} - - md5@2.3.0: - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - is-buffer: 1.1.6 - - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-expression@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@3.2.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - - mdast-util-to-hast@13.2.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.1 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.1 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - mdn-data@1.1.4: {} - - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - - media-typer@0.3.0: {} - - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - - memoize-one@6.0.0: {} - - meow@9.0.0: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - - merge-descriptors@1.0.3: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - methods@1.1.2: {} - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.1.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.0 - decode-named-character-reference: 1.1.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-db@1.53.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@1.6.0: {} - - mime@2.5.2: {} - - mimic-fn@2.1.0: {} - - mimic-response@1.0.1: {} - - min-indent@1.0.1: {} - - mini-css-extract-plugin@2.9.2(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - schema-utils: 4.3.0 - tapable: 2.2.1 - webpack: 5.78.0(@swc/core@1.3.96) - - minimalistic-assert@1.0.1: {} - - minimatch@3.0.8: - dependencies: - brace-expansion: 1.1.11 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - - minimist@1.2.8: {} - - minipass@6.0.2: {} - - minipass@7.1.2: {} - - miniprogram-api-typings@3.12.3: {} - - miniprogram-compiler@0.2.3: - dependencies: - glob: 7.2.3 - unescape-js: 1.1.4 - - miniprogram-exparser@2.29.1: {} - - miniprogram-simulate@1.6.1: - dependencies: - csso: 3.5.1 - j-component: 1.4.9 - less: 3.13.1 - miniprogram-compiler: 0.2.3 - postcss: 7.0.39 - pretty-format: 26.6.2 - - mobile-detect@1.4.5: {} - - ms@2.0.0: {} - - ms@2.1.3: {} - - multicast-dns@7.2.5: - dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 - - mute-stream@0.0.8: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.11: - optional: true - - nanoid@3.3.8: {} - - native-request@1.1.2: - optional: true - - natural-compare@1.4.0: {} - - negotiator@0.6.3: {} - - negotiator@0.6.4: {} - - neo-async@2.6.2: {} - - no-case@2.3.2: - dependencies: - lower-case: 1.1.4 - - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.8.1 - - node-addon-api@7.1.1: - optional: true - - node-forge@1.3.1: {} - - node-releases@2.0.19: {} - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.6.3 - validate-npm-package-license: 3.0.4 - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - normalize-url@2.0.1: - dependencies: - prepend-http: 2.0.0 - query-string: 5.1.1 - sort-keys: 2.0.0 - - normalize-url@4.5.1: {} - - npm-conf@1.1.3: - dependencies: - config-chain: 1.1.13 - pify: 3.0.0 - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - nwsapi@2.2.16: {} - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - object-inspect@1.13.3: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-object-atoms: 1.0.0 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.8 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - obuf@1.1.2: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - on-headers@1.0.2: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - 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 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - os-tmpdir@1.0.2: {} - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.2.6 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - p-cancelable@0.4.1: {} - - p-cancelable@1.1.0: {} - - p-event@2.3.1: - dependencies: - p-timeout: 2.0.1 - - p-finally@1.0.0: {} - - p-is-promise@1.1.0: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-retry@4.6.2: - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - - p-timeout@2.0.1: - dependencies: - p-finally: 1.0.0 - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - package-json@6.5.0: - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 6.3.1 - - param-case@2.1.1: - dependencies: - no-case: 2.3.2 - - param-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-entities@4.0.2: - dependencies: - '@types/unist': 2.0.11 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.1.0 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse5-htmlparser2-tree-adapter@6.0.1: - dependencies: - parse5: 6.0.1 - - parse5@5.1.1: {} - - parse5@6.0.1: {} - - parse5@7.2.1: - dependencies: - entities: 4.5.0 - - parseurl@1.3.3: {} - - pascal-case@3.1.2: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - - path-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - - path-exists@3.0.0: {} - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 6.0.2 - - path-to-regexp@0.1.12: {} - - path-to-regexp@3.3.0: {} - - path-to-regexp@6.3.0: {} - - path-type@4.0.0: {} - - path-type@5.0.0: {} - - pend@1.2.0: {} - - performance-now@2.1.0: {} - - picocolors@0.2.1: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pify@2.3.0: {} - - pify@3.0.0: {} - - pify@4.0.1: {} - - pinkie-promise@2.0.1: - dependencies: - pinkie: 2.0.4 - - pinkie@2.0.4: {} - - pirates@4.0.6: {} - - pkg-dir@3.0.0: - dependencies: - find-up: 3.0.0 - - platform@1.3.6: {} - - possible-typed-array-names@1.0.0: {} - - postcss-calc@9.0.1(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - - postcss-colormin@6.1.0(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-convert-values@6.1.0(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-discard-duplicates@6.0.3(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-discard-empty@6.0.3(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-discard-overridden@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-html-transform@4.0.8(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-import@15.1.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.10 - - postcss-import@16.1.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.10 - - postcss-js@4.0.1(postcss@8.4.49): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.49 - - postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2)): - dependencies: - lilconfig: 3.1.3 - yaml: 2.6.1 - optionalDependencies: - postcss: 8.4.49 - ts-node: 10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2) - - postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.7.2)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - cosmiconfig: 9.0.0(typescript@5.7.2) - jiti: 1.21.7 - postcss: 8.4.49 - semver: 7.6.3 - optionalDependencies: - webpack: 5.78.0(@swc/core@1.3.96) - transitivePeerDependencies: - - typescript - - postcss-media-query-parser@0.2.3: {} - - postcss-merge-longhand@6.0.5(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.4.49) - - postcss-merge-rules@6.1.1(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.4.49) - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - - postcss-minify-font-values@6.1.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@6.0.3(postcss@8.4.49): - dependencies: - colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.4.49) - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-minify-params@6.1.0(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - cssnano-utils: 4.0.2(postcss@8.4.49) - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@6.0.4(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - - postcss-modules-extract-imports@3.1.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-modules-local-by-default@4.2.0(postcss@8.4.49): - dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-selector-parser: 7.0.0 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-selector-parser: 7.0.0 - - postcss-modules-values@4.0.0(postcss@8.4.49): - dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - - postcss-nested@6.2.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - - postcss-normalize-charset@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-normalize-display-values@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@6.1.0(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@6.0.2(postcss@8.4.49): - dependencies: - cssnano-utils: 4.0.2(postcss@8.4.49) - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-plugin-constparse@4.0.8(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-pxtransform@4.0.8(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-reduce-initial@6.1.0(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - caniuse-api: 3.0.0 - postcss: 8.4.49 - - postcss-reduce-transforms@6.0.2(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - - postcss-resolve-nested-selector@0.1.6: {} - - postcss-safe-parser@6.0.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@7.0.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-svgo@6.0.3(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - - postcss-unique-selectors@6.0.4(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - - postcss-url@10.1.3(postcss@8.4.49): - dependencies: - make-dir: 3.1.0 - mime: 2.5.2 - minimatch: 3.0.8 - postcss: 8.4.49 - xxhashjs: 0.2.2 - - postcss-value-parser@4.2.0: {} - - postcss@7.0.39: - dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 - - postcss@8.4.49: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.4: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - optional: true - - prelude-ls@1.2.1: {} - - prepend-http@2.0.0: {} - - pretty-bytes@5.6.0: {} - - pretty-error@4.0.0: - dependencies: - lodash: 4.17.21 - renderkid: 3.0.0 - - pretty-format@26.6.2: - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 17.0.2 - - pretty-time@1.1.0: {} - - process-nextick-args@2.0.1: {} - - promise-polyfill@7.1.2: {} - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - property-expr@2.0.6: {} - - property-information@7.0.0: {} - - proto-list@1.2.4: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - proxy-from-env@1.1.0: {} - - prr@1.0.1: - optional: true - - psl@1.15.0: - dependencies: - punycode: 2.3.1 - - pump@3.0.2: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - punycode@2.3.1: {} - - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - - query-string@5.1.1: - dependencies: - decode-uri-component: 0.2.2 - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - - query-string@9.1.1: - dependencies: - decode-uri-component: 0.4.1 - filter-obj: 5.1.0 - split-on-first: 3.0.0 - - querystringify@2.2.0: {} - - queue-microtask@1.2.3: {} - - quick-lru@4.0.1: {} - - raf@3.4.1: - dependencies: - performance-now: 2.1.0 - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - react-dom@16.14.0(react@16.14.0): - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - prop-types: 15.8.1 - react: 16.14.0 - scheduler: 0.19.1 - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-is@16.13.1: {} - - react-is@17.0.2: {} - - react-markdown@10.1.0(@types/react@18.3.18)(react@18.3.1): - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/react': 18.3.18 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.6 - html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.0 - react: 18.3.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - unified: 11.0.5 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - react-reconciler@0.23.0(react@16.14.0): - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - prop-types: 15.8.1 - react: 16.14.0 - scheduler: 0.17.0 - - react-reconciler@0.29.0(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-refresh@0.11.0: {} - - react-router-dom@7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - react-router@7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@types/cookie': 0.6.0 - cookie: 1.0.2 - react: 18.3.1 - set-cookie-parser: 2.7.1 - turbo-stream: 2.4.0 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react@16.14.0: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - prop-types: 15.8.1 - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - readdirp@4.0.2: {} - - redent@3.0.0: - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - - reflect.getprototypeof@1.0.9: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - dunder-proto: 1.0.1 - es-abstract: 1.23.8 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - gopd: 1.2.0 - which-builtin-type: 1.2.1 - - regenerate-unicode-properties@10.2.0: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - - regenerator-runtime@0.11.1: {} - - regenerator-runtime@0.14.1: {} - - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.0 - - regex-parser@2.3.0: {} - - regexp.prototype.flags@1.5.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 - - regexpu-core@6.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 - - registry-auth-token@4.2.2: - dependencies: - rc: 1.2.8 - - registry-url@5.1.0: - dependencies: - rc: 1.2.8 - - regjsgen@0.8.0: {} - - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - - relateurl@0.2.7: {} - - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-rehype@11.1.2: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 - unified: 11.0.5 - vfile: 6.0.3 - - renderkid@3.0.0: - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 6.0.1 - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - requires-port@1.0.0: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve-pathname@3.0.0: {} - - resolve-pkg-maps@1.0.0: {} - - resolve-url-loader@5.0.0: - dependencies: - adjust-sourcemap-loader: 4.0.0 - convert-source-map: 1.9.0 - loader-utils: 2.0.4 - postcss: 8.4.49 - source-map: 0.6.1 - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.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 - - responselike@1.0.2: - dependencies: - lowercase-keys: 1.0.1 - - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - retry@0.13.1: {} - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@3.29.5: - optionalDependencies: - fsevents: 2.3.3 - - rrweb-cssom@0.7.1: {} - - run-async@2.4.1: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - runes2@1.1.4: {} - - rxjs@7.8.1: - dependencies: - tslib: 2.8.1 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - 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.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safer-buffer@2.1.2: {} - - sass-loader@14.2.1(sass@1.83.0)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - neo-async: 2.6.2 - optionalDependencies: - sass: 1.83.0 - webpack: 5.78.0(@swc/core@1.3.96) - - sass@1.83.0: - dependencies: - chokidar: 4.0.3 - immutable: 5.0.3 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.0 - - sax@1.2.4: {} - - sax@1.4.1: {} - - saxes@6.0.0: - dependencies: - xmlchars: 2.2.0 - - scheduler@0.17.0: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - - scheduler@0.19.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - schema-utils@2.7.1: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - - scss-bundle@3.1.2: - dependencies: - '@types/archy': 0.0.31 - '@types/debug': 4.1.12 - '@types/fs-extra': 8.1.5 - '@types/glob': 7.2.0 - '@types/lodash.debounce': 4.0.9 - '@types/sass': 1.45.0 - archy: 1.0.0 - chalk: 3.0.0 - chokidar: 3.6.0 - commander: 4.1.1 - fs-extra: 8.1.0 - globs: 0.1.4 - lodash.debounce: 4.0.8 - loglevel: 1.9.2 - loglevel-plugin-prefix: 0.8.4 - pretty-bytes: 5.6.0 - sass: 1.83.0 - tslib: 1.14.1 - - seek-bzip@1.0.6: - dependencies: - commander: 2.20.3 - - select-hose@2.0.0: {} - - selfsigned@2.4.1: - dependencies: - '@types/node-forge': 1.3.11 - node-forge: 1.3.1 - - semver@5.7.2: {} - - semver@6.3.1: {} - - semver@7.6.3: {} - - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - sentence-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case-first: 2.0.2 - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - seroval-plugins@1.3.2(seroval@1.3.2): - dependencies: - seroval: 1.3.2 - - seroval@1.3.2: {} - - serve-index@1.9.1: - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - - set-cookie-parser@2.7.1: {} - - 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.2.6 - 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 - - setprototypeof@1.1.0: {} - - setprototypeof@1.2.0: {} - - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shell-quote@1.8.2: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - slash@3.0.0: {} - - slash@5.1.0: {} - - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - - sockjs@0.3.24: - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - - solid-js@1.9.3: - dependencies: - csstype: 3.1.3 - seroval: 1.3.2 - seroval-plugins: 1.3.2(seroval@1.3.2) - - sort-keys-length@1.0.1: - dependencies: - sort-keys: 1.1.2 - - sort-keys@1.1.2: - dependencies: - is-plain-obj: 1.1.0 - - sort-keys@2.0.0: - dependencies: - is-plain-obj: 1.1.0 - - source-list-map@2.0.1: {} - - source-map-js@1.2.1: {} - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.5.7: {} - - source-map@0.6.1: {} - - source-map@0.7.4: {} - - space-separated-tokens@2.0.2: {} - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.20 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 - - spdx-license-ids@3.0.20: {} - - spdy-transport@3.0.0: - dependencies: - debug: 4.4.0 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - - spdy@4.0.2: - dependencies: - debug: 4.4.0 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - - split-on-first@3.0.0: {} - - stackframe@1.3.4: {} - - statuses@1.5.0: {} - - statuses@2.0.1: {} - - std-env@3.8.0: {} - - strict-uri-encode@1.1.0: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string.fromcodepoint@0.2.1: {} - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.3 - 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.23.8 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.8 - es-object-atoms: 1.0.0 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-bom@3.0.0: {} - - strip-dirs@2.1.0: - dependencies: - is-natural-number: 4.0.1 - - strip-final-newline@2.0.0: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@2.0.1: {} - - strip-json-comments@3.1.1: {} - - strip-outer@1.0.1: - dependencies: - escape-string-regexp: 1.0.5 - - style-loader@3.3.4(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - webpack: 5.78.0(@swc/core@1.3.96) - - style-search@0.1.0: {} - - style-to-js@1.1.16: - dependencies: - style-to-object: 1.0.8 - - style-to-object@1.0.8: - dependencies: - inline-style-parser: 0.2.4 - - stylehacks@6.1.1(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - - stylelint@14.16.1: - dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) - balanced-match: 2.0.0 - colord: 2.9.3 - cosmiconfig: 7.1.0 - css-functions-list: 3.2.3 - debug: 4.4.0 - fast-glob: 3.3.2 - fastest-levenshtein: 1.0.16 - file-entry-cache: 6.0.1 - global-modules: 2.0.0 - globby: 11.1.0 - globjoin: 0.1.4 - html-tags: 3.3.1 - ignore: 5.3.2 - import-lazy: 4.0.0 - imurmurhash: 0.1.4 - is-plain-object: 5.0.0 - known-css-properties: 0.26.0 - mathml-tag-names: 2.1.3 - meow: 9.0.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - picocolors: 1.1.1 - postcss: 8.4.49 - postcss-media-query-parser: 0.2.3 - postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 6.0.0(postcss@8.4.49) - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - resolve-from: 5.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - style-search: 0.1.0 - supports-hyperlinks: 2.3.0 - svg-tags: 1.0.0 - table: 6.9.0 - v8-compile-cache: 2.4.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - stylus-loader@8.1.1(stylus@0.64.0)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - fast-glob: 3.3.2 - normalize-path: 3.0.0 - stylus: 0.64.0 - optionalDependencies: - webpack: 5.78.0(@swc/core@1.3.96) - - stylus@0.64.0: - dependencies: - '@adobe/css-tools': 4.3.3 - debug: 4.4.1 - glob: 10.4.5 - sax: 1.4.1 - source-map: 0.7.4 - transitivePeerDependencies: - - supports-color - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-hyperlinks@2.3.0: - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - - supports-hyperlinks@3.1.0: - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - svg-tags@1.0.0: {} - - svgo@3.3.2: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.1.1 - - swiper@11.1.0: {} - - symbol-tree@3.2.4: {} - - table@6.9.0: - dependencies: - ajv: 8.17.1 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2)): - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.4.49 - postcss-import: 15.1.0(postcss@8.4.49) - postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2)) - postcss-nested: 6.2.0(postcss@8.4.49) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - - tapable@2.2.1: {} - - tar-stream@1.6.2: - dependencies: - bl: 1.2.3 - buffer-alloc: 1.2.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - readable-stream: 2.3.8 - to-buffer: 1.1.1 - xtend: 4.0.2 - - terser-webpack-plugin@5.3.11(@swc/core@1.3.96)(esbuild@0.21.5)(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - terser: 5.37.0 - webpack: 5.78.0(@swc/core@1.3.96) - optionalDependencies: - '@swc/core': 1.3.96 - esbuild: 0.21.5 - - terser@5.37.0: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 - commander: 2.20.3 - source-map-support: 0.5.21 - - text-table@0.2.0: {} - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - through@2.3.8: {} - - thunky@1.1.0: {} - - timed-out@4.0.1: {} - - tiny-case@1.0.3: {} - - tiny-invariant@1.3.3: {} - - tiny-warning@1.0.3: {} - - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - to-buffer@1.1.1: {} - - to-readable-stream@1.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toidentifier@1.0.1: {} - - toposort@2.0.2: {} - - tough-cookie@4.1.4: - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - - tr46@5.0.0: - dependencies: - punycode: 2.3.1 - - trim-lines@3.0.1: {} - - trim-newlines@3.0.1: {} - - trim-repeated@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - - trough@2.2.0: {} - - ts-api-utils@1.4.3(typescript@5.7.2): - dependencies: - typescript: 5.7.2 - - ts-interface-checker@0.1.13: {} - - ts-node@10.9.2(@swc/core@1.3.96)(@types/node@18.19.68)(typescript@5.7.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.68 - acorn: 8.14.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.7.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.3.96 - - tsconfig-paths-webpack-plugin@4.2.0: - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.18.0 - tapable: 2.2.1 - tsconfig-paths: 4.2.0 - - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tsconfig-paths@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tslib@1.14.1: {} - - tslib@2.8.1: {} - - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - - turbo-stream@2.4.0: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.18.1: {} - - type-fest@0.20.2: {} - - type-fest@0.21.3: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - - type-fest@2.19.0: {} - - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.3 - 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.3 - 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.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.9 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.9 - - typescript@5.7.2: {} - - uglify-js@3.19.3: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - unbzip2-stream@1.4.3: - dependencies: - buffer: 5.7.1 - through: 2.3.8 - - undici-types@5.26.5: {} - - unescape-js@1.1.4: - dependencies: - string.fromcodepoint: 0.2.1 - - unfetch@4.2.0: {} - - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.2.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} - - unicorn-magic@0.1.0: {} - - unified@11.0.5: - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - universal-router@8.3.0: - dependencies: - path-to-regexp: 3.3.0 - - universal-router@9.2.1: - dependencies: - path-to-regexp: 6.3.0 - - universalify@0.1.2: {} - - universalify@0.2.0: {} - - universalify@2.0.1: {} - - unpipe@1.0.0: {} - - update-browserslist-db@1.1.1(browserslist@4.24.3): - dependencies: - browserslist: 4.24.3 - escalade: 3.2.0 - picocolors: 1.1.1 - - upper-case-first@2.0.2: - dependencies: - tslib: 2.8.1 - - upper-case@1.1.3: {} - - upper-case@2.0.2: - dependencies: - tslib: 2.8.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - url-parse-lax@3.0.0: - dependencies: - prepend-http: 2.0.0 - - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - url-to-options@1.0.1: {} - - util-deprecate@1.0.2: {} - - utila@0.4.0: {} - - utils-merge@1.0.1: {} - - uuid@8.3.2: {} - - v8-compile-cache-lib@3.0.1: {} - - v8-compile-cache@2.4.0: {} - - validate-html-nesting@1.2.2: {} - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validate-npm-package-name@5.0.1: {} - - value-equal@1.0.1: {} - - vary@1.1.2: {} - - vfile-message@4.0.2: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.2 - - vm2@3.9.19: - dependencies: - acorn: 8.14.0 - acorn-walk: 8.3.4 - - vue@3.5.13(typescript@5.7.2): - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.2)) - '@vue/shared': 3.5.13 - optionalDependencies: - typescript: 5.7.2 - optional: true - - w3c-xmlserializer@5.0.0: - dependencies: - xml-name-validator: 5.0.0 - - watchpack@2.4.2: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - webidl-conversions@7.0.0: {} - - webpack-chain@6.5.1: - dependencies: - deepmerge: 1.5.2 - javascript-stringify: 2.1.0 - - webpack-dev-middleware@5.3.4(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.3.0 - webpack: 5.78.0(@swc/core@1.3.96) - - webpack-dev-server@4.15.2(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.21 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.7 - '@types/sockjs': 0.3.36 - '@types/ws': 8.5.13 - ansi-html-community: 0.0.8 - bonjour-service: 1.3.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.7.5 - connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.21.2 - graceful-fs: 4.2.11 - html-entities: 2.5.2 - http-proxy-middleware: 2.0.7(@types/express@4.17.21) - ipaddr.js: 2.2.0 - launch-editor: 2.9.1 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 - schema-utils: 4.3.0 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.78.0(@swc/core@1.3.96)) - ws: 8.18.0 - optionalDependencies: - webpack: 5.78.0(@swc/core@1.3.96) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack-format-messages@3.0.1: - dependencies: - kleur: 4.1.5 - - webpack-merge@5.10.0: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-sources@1.4.3: - dependencies: - source-list-map: 2.0.1 - source-map: 0.6.1 - - webpack-sources@3.2.3: {} - - webpack-virtual-modules@0.6.2: {} - - webpack@5.78.0(@swc/core@1.3.96): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 0.0.51 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.14.0 - acorn-import-assertions: 1.9.0(acorn@8.14.0) - browserslist: 4.24.3 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.0 - es-module-lexer: 0.9.3 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.3.96)(esbuild@0.21.5)(webpack@5.78.0(@swc/core@1.3.96)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpackbar@5.0.2(webpack@5.78.0(@swc/core@1.3.96)): - dependencies: - chalk: 4.1.2 - consola: 2.15.3 - pretty-time: 1.1.0 - std-env: 3.8.0 - webpack: 5.78.0(@swc/core@1.3.96) - - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} - - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-fetch@2.0.4: {} - - whatwg-fetch@3.6.20: {} - - whatwg-mimetype@4.0.0: {} - - whatwg-url@14.1.0: - dependencies: - tr46: 5.0.0 - webidl-conversions: 7.0.0 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.1 - 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.3 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 - is-regex: 1.2.1 - is-weakref: 1.1.0 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.18 - - 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.18: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@1.3.1: - dependencies: - isexe: 2.0.0 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - wildcard@2.0.1: {} - - word-wrap@1.2.5: {} - - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - ws@8.18.0: {} - - xml-name-validator@5.0.0: {} - - xmlchars@2.2.0: {} - - xtend@4.0.2: {} - - xxhashjs@0.2.2: - dependencies: - cuint: 0.2.2 - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yallist@4.0.0: {} - - yaml@1.10.2: {} - - yaml@2.6.1: {} - - yargs-parser@20.2.9: {} - - yargs@16.2.0: - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - - yn@3.1.1: {} - - yocto-queue@0.1.0: {} - - yup@1.6.1: - dependencies: - property-expr: 2.0.6 - tiny-case: 1.0.3 - toposort: 2.0.2 - type-fest: 2.19.0 - - zwitch@2.0.4: {} diff --git a/dict/taro/postcss.config.js b/dict/taro/postcss.config.js deleted file mode 100644 index 33ad091..0000000 --- a/dict/taro/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/dict/taro/project.config.json b/dict/taro/project.config.json deleted file mode 100644 index b6b92f3..0000000 --- a/dict/taro/project.config.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "miniprogramRoot": "dist/", - "projectname": "websoft", - "description": "网宿软件", - "appid": "wxd2723d1afd9c4553", - "setting": { - "urlCheck": true, - "es6": false, - "enhance": false, - "compileHotReLoad": false, - "postcss": false, - "preloadBackgroundData": false, - "minified": false, - "newFeature": true, - "autoAudits": false, - "coverView": true, - "showShadowRootInWxmlPanel": false, - "scopeDataCheck": false, - "useCompilerModule": false - }, - "compileType": "miniprogram", - "simulatorType": "wechat", - "simulatorPluginLibVersion": {}, - "condition": {} -} diff --git a/dict/taro/project.tt.json b/dict/taro/project.tt.json deleted file mode 100644 index 4f9172b..0000000 --- a/dict/taro/project.tt.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "miniprogramRoot": "./", - "projectname": "bszx-react", - "description": "百色中学小程序", - "appid": "touristappid", - "setting": { - "urlCheck": true, - "es6": false, - "postcss": false, - "minified": false - }, - "compileType": "miniprogram" -} diff --git a/dict/taro/src/api/index.ts b/dict/taro/src/api/index.ts deleted file mode 100644 index 6dc3459..0000000 --- a/dict/taro/src/api/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** - * 接口统一返回结果 - */ -export interface ApiResult { - // 状态码 - code: number; - // 状态信息 - message?: string; - // 返回数据 - data?: T; -} - -/** - * 分页查询统一结果 - */ -export interface PageResult { - // 返回数据 - list: T[]; - // 总数量 - count: number; -} - -/** - * 分页查询基本参数 - */ -export interface PageParam { - // 第几页 - page?: number; - // 每页多少条 - limit?: number; - // 排序字段 - sort?: string; - sortNum?: string; - // 排序方式, asc升序, desc降序 - order?: string; - // 租户ID - tenantId?: number; - // 企业ID - companyId?: number; - // 商户ID - merchantId?: number; - merchantName?: string; - categoryIds?: any; - // 商品分类 - categoryId?: number; - categoryName?: string; - // 搜素关键词 - keywords?: string; - // 起始时间 - createTimeStart?: string; - // 结束时间 - createTimeEnd?: string; - timeStart?: number; - timeEnd?: number; - isExpireTime?: number; - showSoldStatus?: boolean; - dateTime?: string; - lang?: string; - model?: string; - type?: string; - BaseUrl?: string; -} diff --git a/dict/taro/src/app.config.ts b/dict/taro/src/app.config.ts deleted file mode 100644 index d142db4..0000000 --- a/dict/taro/src/app.config.ts +++ /dev/null @@ -1,129 +0,0 @@ -export default defineAppConfig({ - pages: [ - 'pages/index/index', - 'pages/order/order', - 'pages/kefu/kefu', - 'pages/user/user', - 'pages/article/article', - 'pages/study/study' - ], - "subpackages": [ - { - "root": "passport", - "pages": [ - "wxLogin", - "login", - "register", - "forget", - "setting", - "agreement", - "sms-login" - ] - }, - { - "root": "cms", - "pages": [ - "about", - "article", - "detail", - "help" - ] - }, - { - "root": "user", - "pages": [ - "car/index", - "company/company", - "profile/profile", - "setting/setting", - "userVerify/index", - "userVerify/admin" - ] - }, - { - "root": "hjm", - "pages": [ - "list", - "location", - "query", - "fence", - "practice/practice", - "exam/exam", - "bx/bx", - "bx/bx-add", - "violation/add", - "violation/list", - "violation/detail", - "trajectory/trajectory", - "gps-log/gps-log" - // "bx/bx-list", - // "question/detail" - ] - } - // { - // "root": "shop", - // "pages": [ - // "bm", - // "bm/detail", - // "item", - // "pdf", - // "flash", - // "bm-log/bm-log", - // 'bm-cert/bm-cert', - // "pay/pay", - // "pay/detail", - // 'pay-log/pay-log', - // 'pay-record/pay-record', - // 'pay-cert/pay-cert', - // 'cert-query/cert-query' - // ] - // } - ], - window: { - backgroundTextStyle: 'dark', - navigationBarBackgroundColor: '#fff', - navigationBarTitleText: 'WeChat', - navigationBarTextStyle: 'black' - }, - tabBar: { - custom: false, - color: "#8a8a8a", - selectedColor: "#9a23d4", - backgroundColor: "#ffffff", - list: [ - { - pagePath: "pages/index/index", - iconPath: "assets/tabbar/home.png", - selectedIconPath: "assets/tabbar/home-active.png", - text: "首页", - }, - { - pagePath: "pages/study/study", - iconPath: "assets/tabbar/order.png", - selectedIconPath: "assets/tabbar/order-active.png", - text: "学习", - }, - // { - // pagePath: "pages/kefu/kefu", - // iconPath: "assets/tabbar/kefu.png", - // selectedIconPath: "assets/tabbar/kefu-active.png", - // text: "客服", - // }, - { - pagePath: "pages/user/user", - iconPath: "assets/tabbar/user.png", - selectedIconPath: "assets/tabbar/user-active.png", - text: "我的", - }, - ], - }, - requiredPrivateInfos: [ - "getLocation", - "chooseLocation" - ], - permission: { - "scope.userLocation": { - "desc": "你的位置信息将用于小程序位置接口的效果展示" - } - } -}) diff --git a/dict/taro/src/app.scss b/dict/taro/src/app.scss deleted file mode 100644 index c546fd5..0000000 --- a/dict/taro/src/app.scss +++ /dev/null @@ -1,36 +0,0 @@ -/* ./src/index.css */ -@tailwind base; -@tailwind components; -@tailwind utilities; - -page{ - background-color: #f5f5f5; - background-repeat: no-repeat; - background-size: 100%; - background-position: bottom; -} - -// 在全局样式文件中添加 -button { - &::after { - border: none !important; - } -} - -// 微信授权按钮的特殊样式 -button[open-type="getPhoneNumber"] { - background: none !important; - padding: 0 !important; - margin: 0 !important; - border: none !important; - line-height: inherit !important; - border-radius: 0 !important; -} -button[open-type="chooseAvatar"] { - background: none !important; - padding: 0 !important; - margin: 0 !important; - border: none !important; - line-height: inherit !important; - border-radius: 0 !important; -} diff --git a/dict/taro/src/app.ts b/dict/taro/src/app.ts deleted file mode 100644 index 67b1c72..0000000 --- a/dict/taro/src/app.ts +++ /dev/null @@ -1,49 +0,0 @@ -import {useEffect} from 'react' -import Taro, {useDidShow, useDidHide} from '@tarojs/taro' - -// 全局样式 -import './app.scss' -import {loginByOpenId} from "@/api/layout"; -import {TenantId} from "@/utils/config"; -// import {saveStorageByLoginUser} from "@/utils/server"; -// import {mqttStart} from "@/api/hjm/hjmCar"; - -function App(props) { - const reload = () => { - Taro.login({ - success: (res) => { - loginByOpenId({ - code: res.code, - tenantId: TenantId - }).then(data => { - if (data) { - // saveStorageByLoginUser(data.access_token, data.user) - } - }) - } - }) - }; - // 可以使用所有的 React Hooks - useEffect(() => { - // Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。 - Taro.getSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - reload(); - } - } - }); - }, []); - - // 对应 onShow - useDidShow(() => { - }) - - // 对应 onHide - useDidHide(() => { - }) - - return props.children -} - -export default App diff --git a/dict/taro/src/assets/tabbar/home-active.png b/dict/taro/src/assets/tabbar/home-active.png deleted file mode 100644 index 9b4aec7240868a7b4de1628121233ce783b592b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1628 zcmZWpZ8)2U8h+lq6=6%{U^a=0owNArh?)+a*6XX9n$Olp(bTTBrMQ&XDy=TwuEEAS z)@pQ`5{DCWe8e%TsK}yLZBKoMuC$0Vdaw*7lPYqu?dSRNJokOwKknzcpC9*^VIhHJ zW12Alkl6?QBlL*>J|v=k_w4`Zp&pRTh(KRx?6;Z+AX>2feU9)r>YL$bl`gLb+)T^m zD`-h?9*#LM?Yc2PpBZEVK z)9Rh_f4}p?doDa}I)Dq0NHk$k^zwjwTGfMyV41hYHS=rFe)U3RW(s}xqw+t_;dF0a zpPT1@J8rI6eYP~vrmQ7EvScsq&FEJZ)U+{$w8lMn)oIiSus}tGr1{uN_G5rUwwEtg zlDY+J>h;7I3R@F5AI!PKRK5 z>8*auTvme)#8Ht74Nbus>GMQ3Z|70bJo6LSVeK%HN(r+`UASVQK=BesW8GB5ADSEv zq^MG87=$4hOYztZ2QlE20%@%dY*3t&YY3Kq6~3-MrY+MOr27gCR4H@}noykiCn3oH zzTB!|fPnh$YbJ20qhmeAi*$SfDD%J(JWqmrg8as^6?vKpyf@0LwmS{+S9uQ$gnqva zKh1_Vvy5|bT9P8u4gb|D!Cci&!`$I3Td!y|$r=yOeVz=D2reDVJ%of{t+v{E{i?S} zGxZf3^Yr1pnok<%=6At&KOu4E{3qq?f}Er6mKEqHwmzlLAu6{>$dJ7BnW-FT_@dPi zV|?&sfx!cQZKUdPzH3nhr=mJF=Vp2|#8}93waie2(J&@q$~%?|XYURCJQDjdK2RPU zgnz1a_5wO!MS z$l~iL&y+8nPiF4VLi;GVyDHnPq7ylR%Bz+aohF-4Cbz#R^-O;s9|fK{zq5Cdec@MP z(_0`_Fh+l}j*|Ir4G`tuFK267+j#9+@B}tD*7h=PI>c?ScNN7H%?zxrDG$fTcM~}G z{I`!`MMf%W;+aSdZC4h0T@77IUy7>e){(9P))360gOyG~c~e_&p>*VXt*OSFjx(Q( zrS-@AaZCEjdrQX=bCk+zAzh4IVTM3yfKM8ssD6w<3KULts->CELlEUDKhNFgm;Rem zY}bU$63(m1{WQCvnV>y*DrK;WF4|cZV|u(9F-OF$^lF*MP?`1$S!@qZXN?`|TI^*? zggW7jbE#EB?@0RZHxw)pfbH%vG2@gTYvDbcTw=g`U$S9klSL4vVeGF@uKa_Jtyp6( zmXmhqsr(cue=)Zgo|zZ0X2lV9_&@W7zX#qcYsf`|4+Eg3N+8vzVqYNda*xiv$t}YnDjtDPQJOpJ+$R9|6&mXqX2tfLF zeF0)M3<`$V_fi4-cSp40U^1w{f3PM0^k@!<8{S>n0@xjH9fY6S%15a_BUVIkZB`E< zZgk88Bc{gs?OF7O!H7No`3$fF&3CSWdc(vp<_C+EC4H?(&UFkV6n|6yivEn>{ z6OG#*ckUvG?mkYxG=A=l>Lu>|uq=a2=1~PXR;jCm;-;7oeS*sTa9I!Ld!c_43-Z6qkZw!wkazS2W0{E#LCG;31!eO@r}{!mj_azR>AA O9oPXO{*Ar~pZ^bL!ro^9 diff --git a/dict/taro/src/assets/tabbar/home.png b/dict/taro/src/assets/tabbar/home.png deleted file mode 100644 index 12a12e872ed0d3863902f5ef25828b6b0062b099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1632 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 BQWXFI diff --git a/dict/taro/src/assets/tabbar/order-active.png b/dict/taro/src/assets/tabbar/order-active.png deleted file mode 100644 index 4aa1ea9a1a6286897e720e544b9f9bd31c548b04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1858 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 T;d*rO&;Z^${I=I@*}%LhHAB13aK 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 A0ssI2 diff --git a/dict/taro/src/assets/tabbar/user.png b/dict/taro/src/assets/tabbar/user.png deleted file mode 100644 index 0cee24d1000b83cc766787c727875609f0ce0060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1541 zcmb`H=U0;l6vprSW+H?H5Qz{mD1yk8MnzV_GALz=GKEw{WwanTScU`v16UbVK&Xr! z5DryThBAbN(Nirds|>XPL`7pHARD!z^bhE_ez^DdoO7Q~&pFRc_i$sA)@iN-0MdSE zN3S*V{v9HIZFky!*S!WL#*1waHP2`g0Gx2Yqn&qb(A14S|JQU%YEj!r4f#;3w`l{p zqRqE9v!pS?wNUwqh-NX`$bCsEn2Vv7>J0Fi4s4EQ^FqW|J}4<82pul6IWv<32vIby zLVdV$22itDEI!h96AzTM`RzsSg#WV0&6J~TOOgn;-^IzlUa;0qa++FGf>m4Xtm(=D z$%XYM&3JkS*Mg>s!>FK+P#yB6zf8wS`-WSkmE^23lZ@lBrNZ@O z5=sT@fYo(avjGPxP~wwvDIH2U3eeNDb{o=R-$v>I6F@{#sq|?1PoejgmX>6%rESTA z#Vm#r1supMD*i7FFKji(aJrKh4%w6Ps_ss#D2hmQN*LQ5MS^HlkV{mBV}u#`5d>wy z<*gnbiDU;@3%8M5ELx!Sb~3V+J;uQXM4_Az=$Ms`NtR*~iS_eEouP4iLsWPubX4@~ zb4~JtDuycuTkEH3>=6zBAfI%PnI7PFN<4j zzb{;RGo4Vk!y!vA-#J;BpNK1+VC-b*(J*S<;DkQ|=H#wu9m=RaS0)iq$(&tZL!HRD26%_jciOzFn~wGkAvT-tjgx==Za0u8Qf-iELs& zqbFiwNy^@kaV0JNB-}(42<$wXc`8FzIhBST@5W`&v;E&T^dyYUH2I%@%BtV)V(At> zq%yeJ62;4X&c|Z~3c-8!iu@hQ>n^GivyE44#dr6L@_2dl`F?4O7HYIf=NUELa&s&Z zj&6P3EIeMQu_x7j<9l|yjC58^LJ~+<4nCT(iXi^>W2s7)%u?Z@Q!ID#BsT2~B+rRb zQwjsan^@Jd@K+|dLg_NIF6}VIo4|^G!FG#IO?1tCNAid9MX~Vqs~jVr@WF;1P%ppm zJdBJRTyuY!&^Np`IBF9}g2yYi4=z>rxDV0RRfA~Ml+ZBb;emri?p}D6p;>vQ03#YL z(U%YFU0Zp%?+L=0?je+>DHfoj(O^9;Ny7}sYZcN!x{<#TKK}i7V%S%M4)K=PuN{}5 zC!kk;HtuerY9X+`468G*o@hAe4D$`<27O^vGlaKzrw5SUEQ7%G4RO3?%#0TET%g|@ z!|Ya^%T(P^*eQw zUqwxJEY8mAqI1?szSit28F-TnQ7pKaF1%2Mh3up1&Tx0$>y9zvK{hzd{~r%Y@aRNw UjgzFackQpkekV7_8hcLiKQTO%TmS$7 diff --git a/dict/taro/src/components/AddCartBar.tsx b/dict/taro/src/components/AddCartBar.tsx deleted file mode 100644 index def5f75..0000000 --- a/dict/taro/src/components/AddCartBar.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import {Headphones, Share} from '@nutui/icons-react-taro' -import navTo from "@/utils/common"; -import Taro, { getCurrentInstance } from '@tarojs/taro'; -import {getUserInfo} from "@/api/layout"; -import {useEffect, useState} from "react"; -import {getCmsArticle} from "@/api/cms/cmsArticle"; -import {CmsArticle} from "@/api/cms/cmsArticle/model"; - -function AddCartBar() { - const { router } = getCurrentInstance(); - const [id, setId] = useState() - const [article, setArticle] = useState() - const [IsLogin, setIsLogin] = useState(false) - const onPay = () => { - if (!IsLogin) { - Taro.showToast({title: `请先登录`, icon: 'error'}) - setTimeout(() => { - Taro.switchTab( - { - url: '/pages/user/user', - }, - ) - }, 1000) - return false; - } - if (article?.model == 'bm') { - navTo('/bszx/bm/bm?id=' + id) - } - if (article?.model == 'pay') { - navTo('/bszx/pay/pay?id=' + id) - } - } - const reload = (id) => { - getCmsArticle(id).then(data => { - setArticle(data) - }) - getUserInfo().then((data) => { - if (data) { - setIsLogin(true); - Taro.setStorageSync('UserId', data.userId) - } - }).catch(() => { - console.log('未登录') - }); - } - - useEffect(() => { - const id = router?.params.id as number | undefined; - setId(id) - reload(id); - }, []); - - return ( -
-
- - -
-
{article?.model == 'pay' ? '我要捐款' : '我要报名'}
-
- ) -} - -// 监听页面分享事件 -export default AddCartBar diff --git a/dict/taro/src/components/Gap.tsx b/dict/taro/src/components/Gap.tsx deleted file mode 100644 index b385421..0000000 --- a/dict/taro/src/components/Gap.tsx +++ /dev/null @@ -1,6 +0,0 @@ -function MyGap({height}){ - return ( -
- ) -} -export default MyGap; diff --git a/dict/taro/src/components/GoodsList.tsx b/dict/taro/src/components/GoodsList.tsx deleted file mode 100644 index 4b1d3bd..0000000 --- a/dict/taro/src/components/GoodsList.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import {Avatar, Cell, Space, Tabs, Button, TabPane, Swiper} from '@nutui/nutui-react-taro' -import {useEffect, useState, CSSProperties, useRef} from "react"; -import {BszxPay} from "@/api/bszx/bszxPay/model"; -import {InfiniteLoading} from '@nutui/nutui-react-taro' -import dayjs from "dayjs"; -import {pageShopOrder} from "@/api/shop/shopOrder"; -import {ShopOrder} from "@/api/shop/shopOrder/model"; -import {copyText} from "@/utils/common"; - -const InfiniteUlStyle: CSSProperties = { - marginTop: '84px', - height: '82vh', - width: '100%', - padding: '0', - overflowY: 'auto', - overflowX: 'hidden', -} -const tabs = [ - { - index: 0, - key: '全部', - title: '全部' - }, - { - index: 1, - key: '已上架', - title: '已上架' - }, - { - index: 2, - key: '已下架', - title: '已下架' - }, - { - index: 3, - key: '已售罄', - title: '已售罄' - }, - { - index: 4, - key: '警戒库存', - title: '警戒库存' - }, - { - index: 5, - key: '回收站', - title: '回收站' - }, -] - -function GoodsList(props: any) { - const [list, setList] = useState([]) - const [page, setPage] = useState(1) - const [hasMore, setHasMore] = useState(true) - const swiperRef = useRef | null>(null) - const [tabIndex, setTabIndex] = useState(0) - - console.log(props.statusBarHeight, 'ppp') - const reload = async () => { - pageShopOrder({page}).then(res => { - let newList: BszxPay[] | undefined = [] - if (res?.list && res?.list.length > 0) { - newList = list?.concat(res.list) - setHasMore(true) - } else { - newList = res?.list - setHasMore(false) - } - setList(newList || []); - }) - } - - const reloadMore = async () => { - setPage(page + 1) - reload(); - } - - useEffect(() => { - setPage(2) - reload() - }, []) - - return ( - <> - { - swiperRef.current?.to(page) - setTabIndex(page) - }} - > - { - tabs?.map((item, index) => { - return - }) - } - -
- { - - }} - onScrollToUpper={() => { - - }} - loadingText={ - <> - 加载中 - - } - loadMoreText={ - <> - 没有更多了 - - } - > - {list?.map(item => { - return ( - - -
- copyText(`${item.orderNo}`)}>{item.orderNo} - 待付款 -
-
{dayjs(item.createTime).format('YYYY年MM月DD日 HH:mm:ss')}
-
-
-
- -
{item.realName}
-
-
{item.totalNum}件商品
-
-
-
实付金额:¥{item.payPrice}
- - - - -
-
- ) - })} -
-
- - ) -} - -export default GoodsList diff --git a/dict/taro/src/components/Header.tsx b/dict/taro/src/components/Header.tsx deleted file mode 100644 index 72e11cf..0000000 --- a/dict/taro/src/components/Header.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import {NavBar} from '@nutui/nutui-react-taro' -import {ArrowLeft} from '@nutui/icons-react-taro' -import Taro from '@tarojs/taro' - -function Header(props) { - return ( - <> - { - }} - back={ - <> -
Taro.navigateBack()}> - - 返回 -
- - } - > - {props?.title || '标题'} -
- - ) -} - -export default Header; diff --git a/dict/taro/src/components/OrderList.tsx b/dict/taro/src/components/OrderList.tsx deleted file mode 100644 index bc37c37..0000000 --- a/dict/taro/src/components/OrderList.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import {Avatar, Cell, Space, Tabs, Button, TabPane} from '@nutui/nutui-react-taro' -import {useEffect, useState, CSSProperties} from "react"; -import {BszxPay} from "@/api/bszx/bszxPay/model"; -import {InfiniteLoading} from '@nutui/nutui-react-taro' -import dayjs from "dayjs"; -import {pageShopOrder} from "@/api/shop/shopOrder"; -import {ShopOrder} from "@/api/shop/shopOrder/model"; -import {copyText} from "@/utils/common"; - -const InfiniteUlStyle: CSSProperties = { - marginTop: '84px', - height: '82vh', - width: '100%', - padding: '0', - overflowY: 'auto', - overflowX: 'hidden', -} -const tabs = [ - { - index: 0, - key: '全部', - title: '全部' - }, - { - index: 1, - key: '待发货', - title: '待发货' - }, - { - index: 2, - key: '待发货', - title: '待发货' - }, - { - index: 3, - key: '待核销', - title: '待核销' - }, - { - index: 4, - key: '已收货', - title: '已收货' - }, - { - index: 5, - key: '已完成', - title: '已完成' - }, - { - index: 5, - key: '已退款', - title: '已退款' - }, - { - index: 6, - key: '已删除', - title: '已删除' - } -] - -function OrderList(props: any) { - const [list, setList] = useState([]) - const [page, setPage] = useState(1) - const [hasMore, setHasMore] = useState(true) - const [tapIndex, setTapIndex] = useState('0') - - console.log(props.statusBarHeight, 'ppp') - const reload = async () => { - pageShopOrder({page}).then(res => { - let newList: BszxPay[] | undefined = [] - if (res?.list && res?.list.length > 0) { - newList = list?.concat(res.list) - setHasMore(true) - } else { - newList = res?.list - setHasMore(false) - } - setList(newList || []); - }) - } - - const reloadMore = async () => { - setPage(page + 1) - reload(); - } - - useEffect(() => { - setPage(2) - reload() - }, []) - - return ( - <> - { - setTapIndex(paneKey) - }} - > - { - tabs?.map((item, index) => { - return - }) - } - -
- { - - }} - onScrollToUpper={() => { - - }} - loadingText={ - <> - 加载中 - - } - loadMoreText={ - <> - 没有更多了 - - } - > - {list?.map(item => { - return ( - - -
- copyText(`${item.orderNo}`)}>{item.orderNo} - 待付款 -
-
{dayjs(item.createTime).format('YYYY年MM月DD日 HH:mm:ss')}
-
-
-
- -
{item.realName}
-
-
{item.totalNum}件商品
-
-
-
实付金额:¥{item.payPrice}
- - - - -
-
- ) - })} -
-
- - ) -} - -export default OrderList diff --git a/dict/taro/src/components/PayRecord.tsx b/dict/taro/src/components/PayRecord.tsx deleted file mode 100644 index 5763bdf..0000000 --- a/dict/taro/src/components/PayRecord.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import {Avatar, Cell, Space} from '@nutui/nutui-react-taro' -import {useEffect, useState, CSSProperties} from "react"; -import {BszxPay} from "@/api/bszx/bszxPay/model"; -import {getCount, pageBszxPay} from "@/api/bszx/bszxPay"; -import {InfiniteLoading} from '@nutui/nutui-react-taro' -import dayjs from "dayjs"; - -const InfiniteUlStyle: CSSProperties = { - height: '70vh', - width: '100%', - padding: '0', - overflowY: 'auto', - overflowX: 'hidden', -} -function PayRecord() { - const [list, setList] = useState([]) - const [page, setPage] = useState(1) - const [hasMore, setHasMore] = useState(true) - const [totalMoney, setTotalMoney] = useState() - const [numbers, setNumbers] = useState() - const reload = async () => { - pageBszxPay({page}).then(res => { - let newList: BszxPay[] | undefined = [] - if (res?.list && res?.list.length > 0) { - newList = list?.concat(res.list) - setHasMore(true) - } else { - newList = res?.list - setHasMore(false) - } - setList(newList || []); - }) - getCount().then(res => { - setNumbers(res.numbers); - setTotalMoney(res.totalMoney); - }) - } - - const reloadMore = async () => { - setPage(page + 1) - reload(); - } - - useEffect(() => { - setPage(2) - reload() - }, []) - - return ( -
- -
-
- 已筹资金(元) - ¥{totalMoney}元 -
-
- 爱心人次 - {numbers}次 -
-
-
- -
    - { - console.log('onScroll') - }} - onScrollToUpper={() => { - console.log('onScrollToUpper') - }} - loadingText={ - <> - 加载中 - - } - loadMoreText={ - <> - 没有更多了 - - } - > - {list?.map(item => { - return ( - -
    -
    - - -
    -
    - {item.name || '匿名'} -
    -
    {item.formName},{dayjs(item.createTime).format('YYYY-MM-DD HH:mm')}
    -
    心愿:{item.comments}
    -
    -
    -
    -
    - ¥{item.price} -
    -
    -
    - ) - })} -
    -
-
-
- ) -} - -export default PayRecord diff --git a/dict/taro/src/components/Questions.tsx b/dict/taro/src/components/Questions.tsx deleted file mode 100644 index a665bd9..0000000 --- a/dict/taro/src/components/Questions.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import {useEffect, useState} from "react"; -import {pageHjmQuestions} from "@/api/hjm/hjmQuestions"; -import {HjmQuestions} from "@/api/hjm/hjmQuestions/model"; - -/** - * 文章终极列表 - * @constructor - */ -const Questions = () => { - const [list, setList] = useState([]) - - const reload = () => { - pageHjmQuestions({}).then(res => { - if (res?.list) { - setList(res?.list) - } - }) - } - - useEffect(() => { - reload() - }, []) - - return ( -
-
-
- { - list.map((item, index) => { - return ( -
-
{item.question}
-
- ) - }) - } -
-
-
- ) -} -export default Questions diff --git a/dict/taro/src/components/TabBar.tsx b/dict/taro/src/components/TabBar.tsx deleted file mode 100644 index e41c8cc..0000000 --- a/dict/taro/src/components/TabBar.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Tabbar } from '@nutui/nutui-react-taro' -import { Home, User } from '@nutui/icons-react-taro' -import Taro from '@tarojs/taro' - -function TabBar(){ - return ( - { - console.log(index) - if(index == 0){ - Taro.switchTab({ url: '/pages/index/index' }) - } - // if(index == 1){ - // Taro.navigateTo({ url: '/pages/detail/detail' }) - // } - if(index == 1){ - Taro.switchTab({ url: '/pages/user/user' }) - } - }} - > - } /> - {/*} />*/} - } /> - - ) -} -export default TabBar; diff --git a/dict/taro/src/components/UnifiedQRButton.tsx b/dict/taro/src/components/UnifiedQRButton.tsx deleted file mode 100644 index 18fee99..0000000 --- a/dict/taro/src/components/UnifiedQRButton.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import React from 'react'; -import { Button } from '@nutui/nutui-react-taro'; -import { View } from '@tarojs/components'; -import { Scan } from '@nutui/icons-react-taro'; -import Taro from '@tarojs/taro'; -import { useUnifiedQRScan, ScanType, type UnifiedScanResult } from '@/hooks/useUnifiedQRScan'; - -export interface UnifiedQRButtonProps { - /** 按钮类型 */ - type?: 'primary' | 'success' | 'warning' | 'danger' | 'default'; - /** 按钮大小 */ - size?: 'large' | 'normal' | 'small'; - /** 按钮文本 */ - text?: string; - /** 是否显示图标 */ - showIcon?: boolean; - /** 自定义样式类名 */ - className?: string; - /** 扫码成功回调 */ - onSuccess?: (result: UnifiedScanResult) => void; - /** 扫码失败回调 */ - onError?: (error: string) => void; - /** 是否使用页面模式(跳转到专门页面) */ - usePageMode?: boolean; -} - -/** - * 统一扫码按钮组件 - * 支持登录和核销两种类型的二维码扫描 - */ -const UnifiedQRButton: React.FC = ({ - type = 'default', - size = 'small', - text = '扫码', - showIcon = true, - onSuccess, - onError, - usePageMode = false -}) => { - const { startScan, isLoading, canScan, state, result } = useUnifiedQRScan(); - console.log(result,'useUnifiedQRScan>>result') - // 处理点击事件 - const handleClick = async () => { - if (usePageMode) { - // 跳转到专门的统一扫码页面 - if (canScan()) { - Taro.navigateTo({ - url: '/passport/unified-qr/index' - }); - } else { - Taro.showToast({ - title: '请先登录小程序', - icon: 'error' - }); - } - return; - } - - // 直接执行扫码 - try { - const scanResult = await startScan(); - if (scanResult) { - onSuccess?.(scanResult); - - // 根据扫码类型给出不同的后续提示 - if (scanResult.type === ScanType.VERIFICATION) { - // 核销成功后可以继续扫码 - setTimeout(() => { - Taro.showModal({ - title: '核销成功', - content: '是否继续扫码核销其他礼品卡?', - success: (res) => { - if (res.confirm) { - handleClick(); // 递归调用继续扫码 - } - } - }); - }, 2000); - } - } - } catch (error: any) { - onError?.(error.message || '扫码失败'); - } - }; - - const disabled = !canScan() || isLoading; - - // 根据当前状态动态显示文本 - const getButtonText = () => { - if (isLoading) { - switch (state) { - case 'scanning': - return '扫码中...'; - case 'processing': - return '处理中...'; - default: - return '扫码中...'; - } - } - - if (disabled && !canScan()) { - return '请先登录'; - } - - return text; - }; - - return ( - - ); -}; - -export default UnifiedQRButton; diff --git a/dict/taro/src/hooks/useAdminMode.ts b/dict/taro/src/hooks/useAdminMode.ts deleted file mode 100644 index f20b96b..0000000 --- a/dict/taro/src/hooks/useAdminMode.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { useState, useCallback, useEffect } from 'react'; -import Taro from '@tarojs/taro'; - -/** - * 管理员模式Hook - * 用于管理管理员用户的模式切换(普通用户模式 vs 管理员模式) - */ -export function useAdminMode() { - const [isAdminMode, setIsAdminMode] = useState(false); - - // 从本地存储加载管理员模式状态 - useEffect(() => { - try { - const savedMode = Taro.getStorageSync('admin_mode'); - if (savedMode !== undefined) { - setIsAdminMode(savedMode === 'true' || savedMode === true); - } - } catch (error) { - console.warn('Failed to load admin mode from storage:', error); - } - }, []); - - // 切换管理员模式 - const toggleAdminMode = useCallback(() => { - const newMode = !isAdminMode; - setIsAdminMode(newMode); - - try { - // 保存到本地存储 - Taro.setStorageSync('admin_mode', newMode); - - // 显示切换提示 - Taro.showToast({ - title: newMode ? '已切换到管理员模式' : '已切换到普通用户模式', - icon: 'success', - duration: 1500 - }); - } catch (error) { - console.error('Failed to save admin mode to storage:', error); - } - }, [isAdminMode]); - - // 设置管理员模式 - const setAdminMode = useCallback((mode: boolean) => { - if (mode !== isAdminMode) { - setIsAdminMode(mode); - try { - Taro.setStorageSync('admin_mode', mode); - } catch (error) { - console.error('Failed to save admin mode to storage:', error); - } - } - }, [isAdminMode]); - - // 重置为普通用户模式 - const resetToUserMode = useCallback(() => { - setAdminMode(false); - }, [setAdminMode]); - - return { - isAdminMode, - toggleAdminMode, - setAdminMode, - resetToUserMode - }; -} diff --git a/dict/taro/src/hooks/useCart.ts b/dict/taro/src/hooks/useCart.ts deleted file mode 100644 index e1f1d7f..0000000 --- a/dict/taro/src/hooks/useCart.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { useState, useEffect } from 'react'; -import Taro from '@tarojs/taro'; - -// 购物车商品接口 -export interface CartItem { - goodsId: number; - name: string; - price: string; - image: string; - quantity: number; - addTime: number; - skuId?: number; - specInfo?: string; -} - -// 购物车Hook -export const useCart = () => { - const [cartItems, setCartItems] = useState([]); - const [cartCount, setCartCount] = useState(0); - - // 从本地存储加载购物车数据 - const loadCartFromStorage = () => { - try { - const cartData = Taro.getStorageSync('cart_items'); - if (cartData) { - const items = JSON.parse(cartData) as CartItem[]; - setCartItems(items); - updateCartCount(items); - } - } catch (error) { - console.error('加载购物车数据失败:', error); - } - }; - - // 保存购物车数据到本地存储 - const saveCartToStorage = (items: CartItem[]) => { - try { - Taro.setStorageSync('cart_items', JSON.stringify(items)); - } catch (error) { - console.error('保存购物车数据失败:', error); - } - }; - - // 更新购物车数量 - const updateCartCount = (items: CartItem[]) => { - const count = items.reduce((total, item) => total + item.quantity, 0); - setCartCount(count); - }; - - // 添加商品到购物车 - const addToCart = (goods: { - goodsId: number; - name: string; - price: string; - image: string; - skuId?: number; - specInfo?: string; - }, quantity: number = 1) => { - const newItems = [...cartItems]; - // 如果有SKU,需要根据goodsId和skuId来判断是否为同一商品 - const existingItemIndex = newItems.findIndex(item => - item.goodsId === goods.goodsId && - (goods.skuId ? item.skuId === goods.skuId : !item.skuId) - ); - - if (existingItemIndex >= 0) { - // 如果商品已存在,增加数量 - newItems[existingItemIndex].quantity += quantity; - } else { - // 如果商品不存在,添加新商品 - const newItem: CartItem = { - goodsId: goods.goodsId, - name: goods.name, - price: goods.price, - image: goods.image, - quantity, - addTime: Date.now(), - skuId: goods.skuId, - specInfo: goods.specInfo - }; - newItems.push(newItem); - } - - setCartItems(newItems); - updateCartCount(newItems); - saveCartToStorage(newItems); - - // 显示成功提示 - Taro.showToast({ - title: '加入购物车成功', - icon: 'success', - duration: 1500 - }); - }; - - // 从购物车移除商品 - const removeFromCart = (goodsId: number) => { - const newItems = cartItems.filter(item => item.goodsId !== goodsId); - setCartItems(newItems); - updateCartCount(newItems); - saveCartToStorage(newItems); - }; - - // 更新商品数量 - const updateQuantity = (goodsId: number, quantity: number) => { - if (quantity <= 0) { - removeFromCart(goodsId); - return; - } - - const newItems = cartItems.map(item => - item.goodsId === goodsId ? { ...item, quantity } : item - ); - setCartItems(newItems); - updateCartCount(newItems); - saveCartToStorage(newItems); - }; - - // 清空购物车 - const clearCart = () => { - setCartItems([]); - setCartCount(0); - Taro.removeStorageSync('cart_items'); - }; - - // 获取购物车总价 - const getTotalPrice = () => { - return cartItems.reduce((total, item) => { - return total + (parseFloat(item.price) * item.quantity); - }, 0).toFixed(2); - }; - - // 检查商品是否在购物车中 - const isInCart = (goodsId: number) => { - return cartItems.some(item => item.goodsId === goodsId); - }; - - // 获取商品在购物车中的数量 - const getItemQuantity = (goodsId: number) => { - const item = cartItems.find(item => item.goodsId === goodsId); - return item ? item.quantity : 0; - }; - - // 初始化时加载购物车数据 - useEffect(() => { - loadCartFromStorage(); - }, []); - - return { - cartItems, - cartCount, - addToCart, - removeFromCart, - updateQuantity, - clearCart, - getTotalPrice, - isInCart, - getItemQuantity, - loadCartFromStorage - }; -}; diff --git a/dict/taro/src/hooks/useDealerApply.ts b/dict/taro/src/hooks/useDealerApply.ts deleted file mode 100644 index be0c7c5..0000000 --- a/dict/taro/src/hooks/useDealerApply.ts +++ /dev/null @@ -1,81 +0,0 @@ -import {useState, useEffect, useCallback} from 'react' -import Taro from '@tarojs/taro' -import {getShopDealerApply} from '@/api/shop/shopDealerApply' -import type {ShopDealerApply} from '@/api/shop/shopDealerApply/model' - -// Hook 返回值接口 -export interface UseDealerApplyReturn { - // 经销商用户信息 - dealerApply: ShopDealerApply | null - // 加载状态 - loading: boolean - // 错误信息 - error: string | null - // 刷新数据 - refresh: () => Promise -} - - -/** - * 经销商用户 Hook - 简化版本 - * 只查询经销商用户信息和判断是否存在 - */ -export const useDealerApply = (): UseDealerApplyReturn => { - const [dealerApply, setDealerApply] = useState(null) - const [loading, setLoading] = useState(false) - const [error, setError] = useState(null) - - const userId = Taro.getStorageSync('UserId'); - - // 获取经销商用户数据 - const fetchDealerData = useCallback(async () => { - - if (!userId) { - console.log('🔍 用户未登录,提前返回') - setDealerApply(null) - return - } - - try { - setLoading(true) - setError(null) - - // 查询当前用户的经销商信息 - const dealer = await getShopDealerApply(userId) - - if (dealer) { - setDealerApply(dealer) - } else { - setDealerApply(null) - } - } catch (err) { - const errorMessage = err instanceof Error ? err.message : '获取经销商信息失败' - setError(errorMessage) - setDealerApply(null) - } finally { - setLoading(false) - } - }, [userId]) - - // 刷新数据 - const refresh = useCallback(async () => { - await fetchDealerData() - }, [fetchDealerData]) - - // 初始化加载数据 - useEffect(() => { - if (userId) { - console.log('🔍 调用 fetchDealerData') - fetchDealerData() - } else { - console.log('🔍 用户ID不存在,不调用 fetchDealerData') - } - }, [fetchDealerData, userId]) - - return { - dealerApply, - loading, - error, - refresh - } -} diff --git a/dict/taro/src/hooks/useDealerUser.ts b/dict/taro/src/hooks/useDealerUser.ts deleted file mode 100644 index 062777d..0000000 --- a/dict/taro/src/hooks/useDealerUser.ts +++ /dev/null @@ -1,81 +0,0 @@ -import {useState, useEffect, useCallback} from 'react' -import Taro from '@tarojs/taro' -import {getShopDealerUser} from '@/api/shop/shopDealerUser' -import type {ShopDealerUser} from '@/api/shop/shopDealerUser/model' - -// Hook 返回值接口 -export interface UseDealerUserReturn { - // 经销商用户信息 - dealerUser: ShopDealerUser | null - // 加载状态 - loading: boolean - // 错误信息 - error: string | null - // 刷新数据 - refresh: () => Promise -} - - -/** - * 经销商用户 Hook - 简化版本 - * 只查询经销商用户信息和判断是否存在 - */ -export const useDealerUser = (): UseDealerUserReturn => { - const [dealerUser, setDealerUser] = useState(null) - const [loading, setLoading] = useState(false) - const [error, setError] = useState(null) - - const userId = Taro.getStorageSync('UserId'); - - // 获取经销商用户数据 - const fetchDealerData = useCallback(async () => { - - if (!userId) { - console.log('🔍 用户未登录,提前返回') - setDealerUser(null) - return - } - - try { - setLoading(true) - setError(null) - - // 查询当前用户的经销商信息 - const dealer = await getShopDealerUser(userId) - - if (dealer) { - setDealerUser(dealer) - } else { - setDealerUser(null) - } - } catch (err) { - const errorMessage = err instanceof Error ? err.message : '获取经销商信息失败' - setError(errorMessage) - setDealerUser(null) - } finally { - setLoading(false) - } - }, [userId]) - - // 刷新数据 - const refresh = useCallback(async () => { - await fetchDealerData() - }, [fetchDealerData]) - - // 初始化加载数据 - useEffect(() => { - if (userId) { - console.log('🔍 调用 fetchDealerData') - fetchDealerData() - } else { - console.log('🔍 用户ID不存在,不调用 fetchDealerData') - } - }, [fetchDealerData, userId]) - - return { - dealerUser, - loading, - error, - refresh - } -} diff --git a/dict/taro/src/hooks/useOrderStats.ts b/dict/taro/src/hooks/useOrderStats.ts deleted file mode 100644 index a26c29e..0000000 --- a/dict/taro/src/hooks/useOrderStats.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { useState, useEffect, useCallback } from 'react'; -import { UserOrderStats } from '@/api/user'; -import Taro from '@tarojs/taro'; -import {pageShopOrder} from "@/api/shop/shopOrder"; - -/** - * 订单统计Hook - * 用于管理用户订单各状态的数量统计 - */ -export const useOrderStats = () => { - const [orderStats, setOrderStats] = useState({ - pending: 0, // 待付款 - paid: 0, // 待发货 - shipped: 0, // 待收货 - completed: 0, // 已完成 - refund: 0, // 退货/售后 - total: 0 // 总订单数 - }); - - const [loading, setLoading] = useState(false); - const [error, setError] = useState(null); - - /** - * 获取订单统计数据 - */ - const fetchOrderStats = useCallback(async (showToast = false) => { - try { - setLoading(true); - setError(null); - - if(!Taro.getStorageSync('UserId')){ - return false; - } - // TODO 读取订单数量 - const pending = await pageShopOrder({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), statusFilter: 0}) - const paid = await pageShopOrder({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), statusFilter: 1}) - const shipped = await pageShopOrder({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), statusFilter: 3}) - const completed = await pageShopOrder({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), statusFilter: 5}) - const refund = await pageShopOrder({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), statusFilter: 6}) - const total = await pageShopOrder({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId')}) - setOrderStats({ - pending: pending?.count || 0, - paid: paid?.count || 0, - shipped: shipped?.count || 0, - completed: completed?.count || 0, - refund: refund?.count || 0, - total: total?.count || 0 - }) - - if (showToast) { - Taro.showToast({ - title: '数据已更新', - icon: 'success', - duration: 1500 - }); - } - } catch (err: any) { - const errorMessage = err.message || '获取订单统计失败'; - setError(errorMessage); - - console.error('获取订单统计失败:', err); - - if (showToast) { - Taro.showToast({ - title: errorMessage, - icon: 'error', - duration: 2000 - }); - } - } finally { - setLoading(false); - } - }, []); - - /** - * 刷新订单统计数据 - */ - const refreshOrderStats = useCallback(() => { - return fetchOrderStats(true); - }, [fetchOrderStats]); - - /** - * 获取指定状态的订单数量 - */ - const getOrderCount = useCallback((status: keyof UserOrderStats) => { - return orderStats[status] || 0; - }, [orderStats]); - - /** - * 检查是否有待处理的订单 - */ - const hasPendingOrders = useCallback(() => { - return orderStats.pending > 0 || orderStats.paid > 0 || orderStats.shipped > 0; - }, [orderStats]); - - /** - * 获取总的待处理订单数量 - */ - const getTotalPendingCount = useCallback(() => { - return orderStats.pending + orderStats.paid + orderStats.shipped; - }, [orderStats]); - - // 组件挂载时自动获取数据 - useEffect(() => { - fetchOrderStats(); - }, [fetchOrderStats]); - - return { - orderStats, - loading, - error, - fetchOrderStats, - refreshOrderStats, - getOrderCount, - hasPendingOrders, - getTotalPendingCount - }; -}; - -export default useOrderStats; diff --git a/dict/taro/src/hooks/usePaymentCountdown.ts b/dict/taro/src/hooks/usePaymentCountdown.ts deleted file mode 100644 index a4caa5f..0000000 --- a/dict/taro/src/hooks/usePaymentCountdown.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { useState, useEffect, useMemo } from 'react'; -import dayjs from 'dayjs'; -import duration from 'dayjs/plugin/duration'; - -// 扩展dayjs支持duration -dayjs.extend(duration); - -export interface CountdownTime { - hours: number; - minutes: number; - seconds: number; - isExpired: boolean; - totalMinutes: number; // 总剩余分钟数 -} - -/** - * 支付倒计时Hook - * @param createTime 订单创建时间 - * @param payStatus 支付状态 - * @param realTime 是否实时更新(详情页用true,列表页用false) - * @param timeoutHours 超时小时数,默认24小时 - */ -export const usePaymentCountdown = ( - createTime?: string, - payStatus?: boolean, - realTime: boolean = false, - timeoutHours: number = 24 -): CountdownTime => { - const [timeLeft, setTimeLeft] = useState({ - hours: 0, - minutes: 0, - seconds: 0, - isExpired: false, - totalMinutes: 0 - }); - - // 计算剩余时间的函数 - const calculateTimeLeft = useMemo(() => { - return (): CountdownTime => { - if (!createTime || payStatus) { - return { - hours: 0, - minutes: 0, - seconds: 0, - isExpired: false, - totalMinutes: 0 - }; - } - - const createTimeObj = dayjs(createTime); - const expireTime = createTimeObj.add(timeoutHours, 'hour'); - const now = dayjs(); - const diff = expireTime.diff(now); - - if (diff <= 0) { - return { - hours: 0, - minutes: 0, - seconds: 0, - isExpired: true, - totalMinutes: 0 - }; - } - - const durationObj = dayjs.duration(diff); - const hours = Math.floor(durationObj.asHours()); - const minutes = durationObj.minutes(); - const seconds = durationObj.seconds(); - const totalMinutes = Math.floor(durationObj.asMinutes()); - - return { - hours, - minutes, - seconds, - isExpired: false, - totalMinutes - }; - }; - }, [createTime, payStatus, timeoutHours]); - - useEffect(() => { - if (!createTime || payStatus) { - setTimeLeft({ - hours: 0, - minutes: 0, - seconds: 0, - isExpired: false, - totalMinutes: 0 - }); - return; - } - - // 立即计算一次 - const initialTime = calculateTimeLeft(); - setTimeLeft(initialTime); - - // 如果不需要实时更新,直接返回 - if (!realTime) { - return; - } - - // 如果需要实时更新,设置定时器 - const timer = setInterval(() => { - const newTimeLeft = calculateTimeLeft(); - setTimeLeft(newTimeLeft); - - // 如果已过期,清除定时器 - if (newTimeLeft.isExpired) { - clearInterval(timer); - } - }, 1000); - - return () => clearInterval(timer); - }, [createTime, payStatus, realTime, calculateTimeLeft]); - - return timeLeft; -}; - -/** - * 格式化倒计时文本 - * @param timeLeft 倒计时时间对象 - * @param showSeconds 是否显示秒数 - */ -export const formatCountdownText = ( - timeLeft: CountdownTime, - showSeconds: boolean = false -): string => { - if (timeLeft.isExpired) { - return '已过期'; - } - - if (timeLeft.hours > 0) { - if (showSeconds) { - return `${timeLeft.hours}小时${timeLeft.minutes}分${timeLeft.seconds}秒`; - } else { - return `${timeLeft.hours}小时${timeLeft.minutes}分钟`; - } - } else if (timeLeft.minutes > 0) { - if (showSeconds) { - return `${timeLeft.minutes}分${timeLeft.seconds}秒`; - } else { - return `${timeLeft.minutes}分钟`; - } - } else { - return `${timeLeft.seconds}秒`; - } -}; - -/** - * 判断是否为紧急状态(剩余时间少于1小时) - */ -export const isUrgentCountdown = (timeLeft: CountdownTime): boolean => { - return !timeLeft.isExpired && timeLeft.totalMinutes < 60; -}; - -/** - * 判断是否为非常紧急状态(剩余时间少于10分钟) - */ -export const isCriticalCountdown = (timeLeft: CountdownTime): boolean => { - return !timeLeft.isExpired && timeLeft.totalMinutes < 10; -}; - -export default usePaymentCountdown; diff --git a/dict/taro/src/hooks/useQRLogin.ts b/dict/taro/src/hooks/useQRLogin.ts deleted file mode 100644 index 717a968..0000000 --- a/dict/taro/src/hooks/useQRLogin.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { useState, useCallback, useRef, useEffect } from 'react'; -import Taro from '@tarojs/taro'; -import { - confirmWechatQRLogin, - parseQRContent, - type ConfirmLoginResult -} from '@/api/passport/qr-login'; - -/** - * 扫码登录状态 - */ -export enum ScanLoginState { - IDLE = 'idle', // 空闲状态 - SCANNING = 'scanning', // 正在扫码 - CONFIRMING = 'confirming', // 正在确认登录 - SUCCESS = 'success', // 登录成功 - ERROR = 'error' // 登录失败 -} - -/** - * 扫码登录Hook - */ -export function useQRLogin() { - const [state, setState] = useState(ScanLoginState.IDLE); - const [error, setError] = useState(''); - const [result, setResult] = useState(null); - const [isLoading, setIsLoading] = useState(false); - - // 用于取消操作的引用 - const cancelRef = useRef(false); - - /** - * 重置状态 - */ - const reset = useCallback(() => { - setState(ScanLoginState.IDLE); - setError(''); - setResult(null); - setIsLoading(false); - cancelRef.current = false; - }, []); - - /** - * 开始扫码登录 - */ - const startScan = useCallback(async () => { - try { - reset(); - setState(ScanLoginState.SCANNING); - - // 检查用户是否已登录 - const userId = Taro.getStorageSync('UserId'); - if (!userId) { - throw new Error('请先登录小程序'); - } - - // 调用扫码API - const scanResult = await new Promise((resolve, reject) => { - Taro.scanCode({ - onlyFromCamera: true, - scanType: ['qrCode'], - success: (res) => { - if (res.result) { - resolve(res.result); - } else { - reject(new Error('扫码结果为空')); - } - }, - fail: (err) => { - reject(new Error(err.errMsg || '扫码失败')); - } - }); - }); - - // 检查是否被取消 - if (cancelRef.current) { - return; - } - - // 解析二维码内容 - const token = parseQRContent(scanResult); - console.log('解析二维码内容2:',token) - if (!token) { - throw new Error('无效的登录二维码'); - } - - // 确认登录 - setState(ScanLoginState.CONFIRMING); - setIsLoading(true); - - const confirmResult = await confirmWechatQRLogin(token, parseInt(userId)); - console.log(confirmResult,'confirmResult>>>>') - if (cancelRef.current) { - return; - } - - if (confirmResult.success) { - setState(ScanLoginState.SUCCESS); - setResult(confirmResult); - - // 显示成功提示 - Taro.showToast({ - title: '登录确认成功', - icon: 'success', - duration: 2000 - }); - } else { - throw new Error(confirmResult.message || '登录确认失败'); - } - - } catch (err: any) { - if (!cancelRef.current) { - setState(ScanLoginState.ERROR); - const errorMessage = err.message || '扫码登录失败'; - setError(errorMessage); - - // 显示错误提示 - Taro.showToast({ - title: errorMessage, - icon: 'error', - duration: 3000 - }); - } - } finally { - setIsLoading(false); - } - }, [reset]); - - /** - * 取消扫码登录 - */ - const cancel = useCallback(() => { - cancelRef.current = true; - reset(); - }, [reset]); - - /** - * 处理扫码结果(用于已有扫码结果的情况) - */ - const handleScanResult = useCallback(async (qrContent: string) => { - try { - reset(); - setState(ScanLoginState.CONFIRMING); - setIsLoading(true); - - // 检查用户是否已登录 - const userId = Taro.getStorageSync('UserId'); - if (!userId) { - throw new Error('请先登录小程序'); - } - - // 解析二维码内容 - const token = parseQRContent(qrContent); - if (!token) { - throw new Error('无效的登录二维码'); - } - - // 确认登录 - const confirmResult = await confirmWechatQRLogin(token, parseInt(userId)); - - if (confirmResult.success) { - setState(ScanLoginState.SUCCESS); - setResult(confirmResult); - - // 显示成功提示 - Taro.showToast({ - title: '登录确认成功', - icon: 'success', - duration: 2000 - }); - } else { - throw new Error(confirmResult.message || '登录确认失败'); - } - - } catch (err: any) { - setState(ScanLoginState.ERROR); - const errorMessage = err.message || '登录确认失败'; - setError(errorMessage); - - // 显示错误提示 - Taro.showToast({ - title: errorMessage, - icon: 'error', - duration: 3000 - }); - } finally { - setIsLoading(false); - } - }, [reset]); - - /** - * 检查是否可以进行扫码登录 - */ - const canScan = useCallback(() => { - const userId = Taro.getStorageSync('UserId'); - const accessToken = Taro.getStorageSync('access_token'); - return !!(userId && accessToken); - }, []); - - // 组件卸载时取消操作 - useEffect(() => { - return () => { - cancelRef.current = true; - }; - }, []); - - return { - // 状态 - state, - error, - result, - isLoading, - - // 方法 - startScan, - cancel, - reset, - handleScanResult, - canScan, - - // 便捷状态判断 - isIdle: state === ScanLoginState.IDLE, - isScanning: state === ScanLoginState.SCANNING, - isConfirming: state === ScanLoginState.CONFIRMING, - isSuccess: state === ScanLoginState.SUCCESS, - isError: state === ScanLoginState.ERROR - }; -} diff --git a/dict/taro/src/hooks/useShopInfo.ts b/dict/taro/src/hooks/useShopInfo.ts deleted file mode 100644 index f16ccbe..0000000 --- a/dict/taro/src/hooks/useShopInfo.ts +++ /dev/null @@ -1,323 +0,0 @@ -import {useState, useEffect, useCallback} from 'react'; -import Taro from '@tarojs/taro'; -import {AppInfo} from '@/api/cms/cmsWebsite/model'; -import {getShopInfo} from '@/api/layout'; - -// 本地存储键名 -const SHOP_INFO_STORAGE_KEY = 'shop_info'; -const SHOP_INFO_CACHE_TIME_KEY = 'shop_info_cache_time'; - -// 缓存有效期(毫秒)- 默认30分钟 -const CACHE_DURATION = 30 * 60 * 1000; - -/** - * 商店信息Hook - * 提供商店信息的获取、缓存和管理功能 - */ -export const useShopInfo = () => { - const [shopInfo, setShopInfo] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - // 从本地存储加载商店信息 - const loadShopInfoFromStorage = useCallback(() => { - try { - const cachedData = Taro.getStorageSync(SHOP_INFO_STORAGE_KEY); - const cacheTime = Taro.getStorageSync(SHOP_INFO_CACHE_TIME_KEY); - - if (cachedData && cacheTime) { - const now = Date.now(); - const timeDiff = now - cacheTime; - - // 检查缓存是否过期 - if (timeDiff < CACHE_DURATION) { - const shopData = typeof cachedData === 'string' ? JSON.parse(cachedData) : cachedData; - setShopInfo(shopData); - setLoading(false); - return true; // 返回true表示使用了缓存 - } else { - // 缓存过期,清除旧数据 - Taro.removeStorageSync(SHOP_INFO_STORAGE_KEY); - Taro.removeStorageSync(SHOP_INFO_CACHE_TIME_KEY); - } - } - } catch (error) { - console.error('加载商店信息缓存失败:', error); - } - return false; // 返回false表示没有使用缓存 - }, []); - - // 保存商店信息到本地存储 - const saveShopInfoToStorage = useCallback((data: AppInfo) => { - try { - Taro.setStorageSync(SHOP_INFO_STORAGE_KEY, data); - Taro.setStorageSync(SHOP_INFO_CACHE_TIME_KEY, Date.now()); - } catch (error) { - console.error('保存商店信息缓存失败:', error); - } - }, []); - - // 从服务器获取商店信息 - const fetchShopInfo = useCallback(async () => { - try { - setLoading(true); - setError(null); - - const data = await getShopInfo(); - setShopInfo(data); - - // 保存到本地存储 - saveShopInfoToStorage(data); - - return data; - } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error); - console.error('获取商店信息失败:', error); - setError(errorMessage); - - // 如果网络请求失败,尝试使用缓存数据(即使过期) - const cachedData = Taro.getStorageSync(SHOP_INFO_STORAGE_KEY); - if (cachedData) { - const shopData = typeof cachedData === 'string' ? JSON.parse(cachedData) : cachedData; - setShopInfo(shopData); - console.warn('网络请求失败,使用缓存数据'); - } - - return null; - } finally { - setLoading(false); - } - }, [saveShopInfoToStorage]); - - // 刷新商店信息 - const refreshShopInfo = useCallback(async () => { - try { - setLoading(true); - setError(null); - - const data = await getShopInfo(); - setShopInfo(data); - - // 保存到本地存储 - saveShopInfoToStorage(data); - - return data; - } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error); - console.error('刷新商店信息失败:', error); - setError(errorMessage); - return null; - } finally { - setLoading(false); - } - }, [saveShopInfoToStorage]); - - // 清除缓存 - const clearCache = useCallback(() => { - try { - Taro.removeStorageSync(SHOP_INFO_STORAGE_KEY); - Taro.removeStorageSync(SHOP_INFO_CACHE_TIME_KEY); - setShopInfo(null); - setError(null); - } catch (error) { - console.error('清除商店信息缓存失败:', error); - } - }, []); - - // 获取应用名称 - const getAppName = useCallback(() => { - return shopInfo?.appName || '商城'; - }, [shopInfo]); - - // 获取网站名称(兼容旧方法名) - const getWebsiteName = useCallback(() => { - return shopInfo?.appName || '商城'; - }, [shopInfo]); - - // 获取应用Logo - const getAppLogo = useCallback(() => { - return shopInfo?.logo || shopInfo?.icon || ''; - }, [shopInfo]); - - // 获取网站Logo(兼容旧方法名) - const getWebsiteLogo = useCallback(() => { - return shopInfo?.logo || shopInfo?.icon || ''; - }, [shopInfo]); - - // 获取应用图标 - const getAppIcon = useCallback(() => { - return shopInfo?.icon || shopInfo?.logo || ''; - }, [shopInfo]); - - // 获取深色模式Logo(AppInfo中无此字段,使用普通Logo) - const getDarkLogo = useCallback(() => { - return shopInfo?.logo || shopInfo?.icon || ''; - }, [shopInfo]); - - // 获取应用域名 - const getDomain = useCallback(() => { - return shopInfo?.domain || ''; - }, [shopInfo]); - - // 获取应用描述 - const getDescription = useCallback(() => { - return shopInfo?.description || ''; - }, [shopInfo]); - - // 获取应用关键词 - const getKeywords = useCallback(() => { - return shopInfo?.keywords || ''; - }, [shopInfo]); - - // 获取应用标题 - const getTitle = useCallback(() => { - return shopInfo?.title || shopInfo?.appName || ''; - }, [shopInfo]); - - // 获取小程序二维码 - const getMpQrCode = useCallback(() => { - return shopInfo?.mpQrCode || ''; - }, [shopInfo]); - - // 获取联系电话(AppInfo中无此字段,从config中获取) - const getPhone = useCallback(() => { - return (shopInfo?.config as any)?.phone || ''; - }, [shopInfo]); - - // 获取邮箱(AppInfo中无此字段,从config中获取) - const getEmail = useCallback(() => { - return (shopInfo?.config as any)?.email || ''; - }, [shopInfo]); - - // 获取地址(AppInfo中无此字段,从config中获取) - const getAddress = useCallback(() => { - return (shopInfo?.config as any)?.address || ''; - }, [shopInfo]); - - // 获取ICP备案号(AppInfo中无此字段,从config中获取) - const getIcpNo = useCallback(() => { - return (shopInfo?.config as any)?.icpNo || ''; - }, [shopInfo]); - - // 获取应用状态 - const getStatus = useCallback(() => { - return { - running: shopInfo?.running || 0, - statusText: shopInfo?.statusText || '', - statusIcon: shopInfo?.statusIcon || '', - expired: shopInfo?.expired || false, - expiredDays: shopInfo?.expiredDays || 0, - soon: shopInfo?.soon || 0 - }; - }, [shopInfo]); - - // 获取应用配置 - const getConfig = useCallback(() => { - return shopInfo?.config || {}; - }, [shopInfo]); - - // 获取应用设置 - const getSetting = useCallback(() => { - return shopInfo?.setting || {}; - }, [shopInfo]); - - // 获取服务器时间 - const getServerTime = useCallback(() => { - return shopInfo?.serverTime || {}; - }, [shopInfo]); - - // 获取导航菜单 - const getNavigation = useCallback(() => { - return { - topNavs: shopInfo?.topNavs || [], - bottomNavs: shopInfo?.bottomNavs || [] - }; - }, [shopInfo]); - - // 检查是否支持搜索(从config中获取) - const isSearchEnabled = useCallback(() => { - return (shopInfo?.config as any)?.search === true; - }, [shopInfo]); - - // 获取应用版本信息 - const getVersionInfo = useCallback(() => { - return { - version: shopInfo?.version || 10, - expirationTime: shopInfo?.expirationTime || '', - expired: shopInfo?.expired || false, - expiredDays: shopInfo?.expiredDays || 0, - soon: shopInfo?.soon || 0 - }; - }, [shopInfo]); - - // 检查应用是否过期 - const isExpired = useCallback(() => { - return shopInfo?.expired === true; - }, [shopInfo]); - - // 获取过期天数 - const getExpiredDays = useCallback(() => { - return shopInfo?.expiredDays || 0; - }, [shopInfo]); - - // 检查是否即将过期 - const isSoonExpired = useCallback(() => { - return (shopInfo?.soon || 0) > 0; - }, [shopInfo]); - - // 初始化时加载商店信息 - useEffect(() => { - const initShopInfo = async () => { - // 先尝试从缓存加载 - const hasCache = loadShopInfoFromStorage(); - - // 如果没有缓存或需要刷新,则从服务器获取 - if (!hasCache) { - await fetchShopInfo(); - } - }; - - initShopInfo(); - }, []); // 空依赖数组,只在组件挂载时执行一次 - - return { - // 状态 - shopInfo, - loading, - error, - - // 方法 - fetchShopInfo, - refreshShopInfo, - clearCache, - - // 新的工具方法(基于AppInfo字段) - getAppName, - getAppLogo, - getAppIcon, - getDescription, - getKeywords, - getTitle, - getMpQrCode, - getDomain, - getConfig, - getSetting, - getServerTime, - getNavigation, - getStatus, - getVersionInfo, - isExpired, - getExpiredDays, - isSoonExpired, - - // 兼容旧方法名 - getWebsiteName, - getWebsiteLogo, - getDarkLogo, - getPhone, - getEmail, - getAddress, - getIcpNo, - isSearchEnabled - }; -}; diff --git a/dict/taro/src/hooks/useTheme.ts b/dict/taro/src/hooks/useTheme.ts deleted file mode 100644 index f6684da..0000000 --- a/dict/taro/src/hooks/useTheme.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { useState, useEffect } from 'react' -import { gradientThemes, GradientTheme, gradientUtils } from '@/styles/gradients' -import Taro from '@tarojs/taro' - -export interface UseThemeReturn { - currentTheme: GradientTheme - setTheme: (themeName: string) => void - isAutoTheme: boolean - refreshTheme: () => void -} - -/** - * 主题管理Hook - * 提供主题切换和状态管理功能 - */ -export const useTheme = (): UseThemeReturn => { - const [currentTheme, setCurrentTheme] = useState(gradientThemes[0]) - const [isAutoTheme, setIsAutoTheme] = useState(true) - - // 获取当前主题 - const getCurrentTheme = (): GradientTheme => { - const savedTheme = Taro.getStorageSync('user_theme') || 'auto' - - if (savedTheme === 'auto') { - // 自动主题:根据用户ID生成 - const userId = Taro.getStorageSync('userId') || '1' - return gradientUtils.getThemeByUserId(userId) - } else { - // 手动选择的主题 - return gradientThemes.find(t => t.name === savedTheme) || gradientThemes[0] - } - } - - // 初始化主题 - useEffect(() => { - const savedTheme = Taro.getStorageSync('user_theme') || 'auto' - setIsAutoTheme(savedTheme === 'auto') - setCurrentTheme(getCurrentTheme()) - }, []) - - // 设置主题 - const setTheme = (themeName: string) => { - try { - Taro.setStorageSync('user_theme', themeName) - setIsAutoTheme(themeName === 'auto') - setCurrentTheme(getCurrentTheme()) - } catch (error) { - console.error('保存主题失败:', error) - } - } - - // 刷新主题(用于自动主题模式下用户信息变更时) - const refreshTheme = () => { - setCurrentTheme(getCurrentTheme()) - } - - return { - currentTheme, - setTheme, - isAutoTheme, - refreshTheme - } -} - -/** - * 获取当前主题的样式对象 - * 用于直接应用到组件样式中 - */ -export const useThemeStyles = () => { - const { currentTheme } = useTheme() - - return { - // 主要背景样式 - primaryBackground: { - background: currentTheme.background, - color: currentTheme.textColor - }, - - // 按钮样式 - primaryButton: { - background: currentTheme.background, - border: 'none', - color: currentTheme.textColor - }, - - // 强调色 - accentColor: currentTheme.primary, - - // 文字颜色 - textColor: currentTheme.textColor, - - // 完整主题对象 - theme: currentTheme - } -} diff --git a/dict/taro/src/hooks/useUnifiedQRScan.ts b/dict/taro/src/hooks/useUnifiedQRScan.ts deleted file mode 100644 index 5468046..0000000 --- a/dict/taro/src/hooks/useUnifiedQRScan.ts +++ /dev/null @@ -1,331 +0,0 @@ -import { useState, useCallback, useRef, useEffect } from 'react'; -import Taro from '@tarojs/taro'; -import { - confirmWechatQRLogin, - parseQRContent -} from '@/api/passport/qr-login'; -import { getShopGiftByCode, updateShopGift, decryptQrData } from "@/api/shop/shopGift"; -import { useUser } from "@/hooks/useUser"; -import { isValidJSON } from "@/utils/jsonUtils"; -import dayjs from 'dayjs'; - -/** - * 统一扫码状态 - */ -export enum UnifiedScanState { - IDLE = 'idle', // 空闲状态 - SCANNING = 'scanning', // 正在扫码 - PROCESSING = 'processing', // 正在处理 - SUCCESS = 'success', // 处理成功 - ERROR = 'error' // 处理失败 -} - -/** - * 扫码类型 - */ -export enum ScanType { - LOGIN = 'login', // 登录二维码 - VERIFICATION = 'verification', // 核销二维码 - UNKNOWN = 'unknown' // 未知类型 -} - -/** - * 统一扫码结果 - */ -export interface UnifiedScanResult { - type: ScanType; - data: any; - message: string; -} - -/** - * 统一扫码Hook - * 可以处理登录和核销两种类型的二维码 - */ -export function useUnifiedQRScan() { - const { isAdmin } = useUser(); - const [state, setState] = useState(UnifiedScanState.IDLE); - const [error, setError] = useState(''); - const [result, setResult] = useState(null); - const [isLoading, setIsLoading] = useState(false); - const [scanType, setScanType] = useState(ScanType.UNKNOWN); - - // 用于取消操作的引用 - const cancelRef = useRef(false); - - /** - * 重置状态 - */ - const reset = useCallback(() => { - setState(UnifiedScanState.IDLE); - setError(''); - setResult(null); - setIsLoading(false); - setScanType(ScanType.UNKNOWN); - cancelRef.current = false; - }, []); - - /** - * 检测二维码类型 - */ - const detectScanType = useCallback((scanResult: string): ScanType => { - try { - // 1. 检查是否为JSON格式(核销二维码) - if (isValidJSON(scanResult)) { - const json = JSON.parse(scanResult); - if (json.businessType === 'gift' && json.token && json.data) { - return ScanType.VERIFICATION; - } - } - - // 2. 检查是否为登录二维码 - const loginToken = parseQRContent(scanResult); - if (loginToken) { - return ScanType.LOGIN; - } - - // 3. 检查是否为纯文本核销码(6位数字) - if (/^\d{6}$/.test(scanResult.trim())) { - return ScanType.VERIFICATION; - } - - return ScanType.UNKNOWN; - } catch (error) { - console.error('检测二维码类型失败:', error); - return ScanType.UNKNOWN; - } - }, []); - - /** - * 处理登录二维码 - */ - const handleLoginQR = useCallback(async (scanResult: string): Promise => { - const userId = Taro.getStorageSync('UserId'); - if (!userId) { - throw new Error('请先登录小程序'); - } - - const token = parseQRContent(scanResult); - if (!token) { - throw new Error('无效的登录二维码'); - } - - const confirmResult = await confirmWechatQRLogin(token, parseInt(userId)); - if (confirmResult.status === 'confirmed') { - return { - type: ScanType.LOGIN, - data: confirmResult, - message: '登录成功' - }; - } else { - throw new Error(confirmResult.message || '登录确认失败'); - } - }, []); - - /** - * 处理核销二维码 - */ - const handleVerificationQR = useCallback(async (scanResult: string): Promise => { - if (!isAdmin()) { - throw new Error('您没有核销权限'); - } - - let code = ''; - - // 判断是否为加密的JSON格式 - if (isValidJSON(scanResult)) { - const json = JSON.parse(scanResult); - if (json.businessType === 'gift' && json.token && json.data) { - // 解密获取核销码 - const decryptedData = await decryptQrData({ - token: json.token, - encryptedData: json.data - }); - - if (decryptedData) { - code = decryptedData.toString(); - } else { - throw new Error('解密失败'); - } - } - } else { - // 直接使用扫码结果作为核销码 - code = scanResult.trim(); - } - - if (!code) { - throw new Error('无法获取有效的核销码'); - } - - // 验证核销码 - const gift = await getShopGiftByCode(code); - - if (!gift) { - throw new Error('核销码无效'); - } - - if (gift.status === 1) { - throw new Error('此礼品码已使用'); - } - - if (gift.status === 2) { - throw new Error('此礼品码已失效'); - } - - if (gift.userId === 0) { - throw new Error('此礼品码未认领'); - } - - // 执行核销 - await updateShopGift({ - ...gift, - status: 1, - operatorUserId: Number(Taro.getStorageSync('UserId')) || 0, - takeTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), - verificationTime: dayjs().format('YYYY-MM-DD HH:mm:ss') - }); - - return { - type: ScanType.VERIFICATION, - data: gift, - message: '核销成功' - }; - }, [isAdmin]); - - /** - * 开始扫码 - */ - const startScan = useCallback(async (): Promise => { - try { - reset(); - setState(UnifiedScanState.SCANNING); - - // 调用扫码API - const scanResult = await new Promise((resolve, reject) => { - Taro.scanCode({ - onlyFromCamera: true, - scanType: ['qrCode'], - success: (res) => { - if (res.result) { - resolve(res.result); - } else { - reject(new Error('扫码结果为空')); - } - }, - fail: (err) => { - reject(new Error(err.errMsg || '扫码失败')); - } - }); - }); - - // 检查是否被取消 - if (cancelRef.current) { - return null; - } - - // 检测二维码类型 - const type = detectScanType(scanResult); - setScanType(type); - - if (type === ScanType.UNKNOWN) { - throw new Error('不支持的二维码类型'); - } - - // 开始处理 - setState(UnifiedScanState.PROCESSING); - setIsLoading(true); - - let result: UnifiedScanResult; - - switch (type) { - case ScanType.LOGIN: - result = await handleLoginQR(scanResult); - break; - case ScanType.VERIFICATION: - result = await handleVerificationQR(scanResult); - break; - default: - throw new Error('未知的扫码类型'); - } - - if (cancelRef.current) { - return null; - } - - setState(UnifiedScanState.SUCCESS); - setResult(result); - - // 显示成功提示 - Taro.showToast({ - title: result.message, - icon: 'success', - duration: 2000 - }); - - return result; - - } catch (err: any) { - if (!cancelRef.current) { - setState(UnifiedScanState.ERROR); - const errorMessage = err.message || '处理失败'; - setError(errorMessage); - - // 显示错误提示 - Taro.showToast({ - title: errorMessage, - icon: 'error', - duration: 3000 - }); - } - return null; - } finally { - setIsLoading(false); - } - }, [reset, detectScanType, handleLoginQR, handleVerificationQR]); - - /** - * 取消扫码 - */ - const cancel = useCallback(() => { - cancelRef.current = true; - reset(); - }, [reset]); - - /** - * 检查是否可以进行扫码 - */ - const canScan = useCallback(() => { - const userId = Taro.getStorageSync('UserId'); - const accessToken = Taro.getStorageSync('access_token'); - return !!(userId && accessToken); - }, []); - - // 组件卸载时取消操作 - useEffect(() => { - return () => { - cancelRef.current = true; - }; - }, []); - - return { - // 状态 - state, - error, - result, - isLoading, - scanType, - - // 方法 - startScan, - cancel, - reset, - canScan, - - // 便捷状态判断 - isIdle: state === UnifiedScanState.IDLE, - isScanning: state === UnifiedScanState.SCANNING, - isProcessing: state === UnifiedScanState.PROCESSING, - isSuccess: state === UnifiedScanState.SUCCESS, - isError: state === UnifiedScanState.ERROR - }; -} diff --git a/dict/taro/src/hooks/useUser.ts b/dict/taro/src/hooks/useUser.ts deleted file mode 100644 index 439562b..0000000 --- a/dict/taro/src/hooks/useUser.ts +++ /dev/null @@ -1,334 +0,0 @@ -import { useState, useEffect } from 'react'; -import Taro from '@tarojs/taro'; -import { User } from '@/api/system/user/model'; -import { getUserInfo, updateUserInfo, loginByOpenId } from '@/api/layout'; -import {getStoredInviteParams, handleInviteRelation} from '@/utils/invite'; - -// 用户Hook -export const useUser = () => { - const [user, setUser] = useState(null); - const [isLoggedIn, setIsLoggedIn] = useState(false); - const [loading, setLoading] = useState(true); - - // 自动登录(通过OpenID) - const autoLoginByOpenId = async () => { - try { - const res = await new Promise((resolve, reject) => { - Taro.login({ - success: (loginRes) => { - loginByOpenId({ - code: loginRes.code, - tenantId: 10519 - }).then(async (data) => { - if (data) { - // 保存登录信息 - saveUserToStorage(data.access_token, data.user); - setUser(data.user); - setIsLoggedIn(true); - - // 处理邀请关系 - if (data.user?.userId) { - try { - const inviteSuccess = await handleInviteRelation(data.user.userId); - if (inviteSuccess) { - console.log('自动登录时邀请关系建立成功'); - } - } catch (error) { - console.error('自动登录时处理邀请关系失败:', error); - } - } - - resolve(data.user); - } else { - reject(new Error('自动登录失败')); - } - }).catch(_ => { - // 首次注册,跳转到邀请注册页面 - const pages = Taro.getCurrentPages(); - const currentPage = pages[pages.length - 1]; - const inviteParams = getStoredInviteParams() - if (currentPage?.route !== 'dealer/apply/add' && inviteParams?.inviter) { - return Taro.navigateTo({ - url: '/dealer/apply/add' - }); - } - }); - }, - fail: reject - }); - }); - return res; - } catch (error) { - console.error('自动登录失败:', error); - return null; - } - }; - - // 从本地存储加载用户数据 - const loadUserFromStorage = async () => { - try { - const token = Taro.getStorageSync('access_token'); - const userData = Taro.getStorageSync('User'); - const userId = Taro.getStorageSync('UserId'); - const tenantId = Taro.getStorageSync('TenantId'); - - if (token && userData) { - const userInfo = typeof userData === 'string' ? JSON.parse(userData) : userData; - setUser(userInfo); - setIsLoggedIn(true); - } else if (token && userId) { - // 如果有token和userId但没有完整用户信息,标记为已登录但需要获取用户信息 - setIsLoggedIn(true); - setUser({ userId, tenantId } as User); - } else { - // 没有本地登录信息,尝试自动登录 - console.log('没有本地登录信息,尝试自动登录...'); - const autoLoginResult = await autoLoginByOpenId(); - if (!autoLoginResult) { - setUser(null); - setIsLoggedIn(false); - } - } - } catch (error) { - console.error('加载用户数据失败:', error); - setUser(null); - setIsLoggedIn(false); - } finally { - setLoading(false); - } - }; - - // 保存用户数据到本地存储 - const saveUserToStorage = (token: string, userInfo: User) => { - try { - Taro.setStorageSync('access_token', token); - Taro.setStorageSync('User', userInfo); - - // 确保关键字段不为空时才保存,避免覆盖现有数据 - if (userInfo.userId) { - Taro.setStorageSync('UserId', userInfo.userId); - } - if (userInfo.tenantId) { - Taro.setStorageSync('TenantId', userInfo.tenantId); - } - if (userInfo.phone) { - Taro.setStorageSync('Phone', userInfo.phone); - } - // 保存头像和昵称信息 - if (userInfo.avatar) { - Taro.setStorageSync('Avatar', userInfo.avatar); - } - if (userInfo.nickname) { - Taro.setStorageSync('Nickname', userInfo.nickname); - } - } catch (error) { - console.error('保存用户数据失败:', error); - } - }; - - // 登录用户 - const loginUser = (token: string, userInfo: User) => { - setUser(userInfo); - setIsLoggedIn(true); - saveUserToStorage(token, userInfo); - }; - - // 退出登录 - const logoutUser = () => { - setUser(null); - setIsLoggedIn(false); - - // 清除本地存储 - try { - Taro.removeStorageSync('access_token'); - Taro.removeStorageSync('User'); - Taro.removeStorageSync('UserId'); - Taro.removeStorageSync('TenantId'); - Taro.removeStorageSync('Phone'); - Taro.removeStorageSync('userInfo'); - } catch (error) { - console.error('清除用户数据失败:', error); - } - }; - - // 从服务器获取最新用户信息 - const fetchUserInfo = async () => { - if (!isLoggedIn) { - return null; - } - - try { - setLoading(true); - const userInfo = await getUserInfo(); - setUser(userInfo); - - // 更新本地存储 - const token = Taro.getStorageSync('access_token'); - if (token) { - saveUserToStorage(token, userInfo); - } - - return userInfo; - } catch (error) { - console.error('获取用户信息失败:', error); - // 如果获取失败,可能是token过期,清除登录状态 - const errorMessage = error instanceof Error ? error.message : String(error); - if (errorMessage?.includes('401') || errorMessage?.includes('未授权')) { - logoutUser(); - } - return null; - } finally { - setLoading(false); - } - }; - - // 更新用户信息 - const updateUser = async (userData: Partial) => { - if (!user) { - throw new Error('用户未登录'); - } - - try { - // 先获取最新的用户信息,确保我们有完整的数据 - const latestUserInfo = await getUserInfo(); - - // 合并最新的用户信息和要更新的数据 - const updatedUser = { ...latestUserInfo, ...userData }; - - // 调用API更新用户信息 - await updateUserInfo(updatedUser); - - // 更新本地状态 - setUser(updatedUser); - - // 更新本地存储 - const token = Taro.getStorageSync('access_token'); - if (token) { - saveUserToStorage(token, updatedUser); - } - - Taro.showToast({ - title: '更新成功', - icon: 'success', - duration: 1500 - }); - - return updatedUser; - } catch (error) { - console.error('更新用户信息失败:', error); - Taro.showToast({ - title: '更新失败', - icon: 'error', - duration: 1500 - }); - throw error; - } - }; - - // 检查是否有特定权限 - const hasPermission = (permission: string) => { - if (!user || !user.authorities) { - return false; - } - return user.authorities.some(auth => auth.authority === permission); - }; - - // 检查是否有特定角色 - const hasRole = (roleCode: string) => { - if (!user || !user.roles) { - return false; - } - return user.roles.some(role => role.roleCode === roleCode); - }; - - // 获取用户头像URL - const getAvatarUrl = () => { - return user?.avatar || user?.avatarUrl || ''; - }; - - const getUserId = () => { - return user?.userId; - }; - - // 获取用户显示名称 - const getDisplayName = () => { - return user?.nickname || user?.realName || user?.username || '未登录'; - }; - - // 获取用户显示的角色(同步版本) - const getRoleName = () => { - if(hasRole('superAdmin')){ - return '超级管理员'; - } - if(hasRole('admin')){ - return '管理员'; - } - if(hasRole('staff')){ - return '员工'; - } - if(hasRole('vip')){ - return 'VIP会员'; - } - return '注册用户'; - } - - // 检查用户是否已实名认证 - const isCertified = () => { - return user?.certification === true; - }; - - // 检查用户是否是管理员 - const isAdmin = () => { - return user?.isAdmin === true; - }; - - const isSuperAdmin = () => { - return user?.isSuperAdmin === true; - }; - - // 获取用户余额 - const getBalance = () => { - return user?.balance || 0; - }; - - // 获取用户积分 - const getPoints = () => { - return user?.points || 0; - }; - - // 初始化时加载用户数据 - useEffect(() => { - loadUserFromStorage().catch(error => { - console.error('初始化用户数据失败:', error); - setLoading(false); - }); - }, []); - - return { - // 状态 - user, - isLoggedIn, - loading, - - // 方法 - loginUser, - logoutUser, - fetchUserInfo, - updateUser, - loadUserFromStorage, - autoLoginByOpenId, - - // 工具方法 - hasPermission, - hasRole, - getAvatarUrl, - getDisplayName, - getRoleName, - isCertified, - isAdmin, - getBalance, - getPoints, - getUserId, - isSuperAdmin - }; -}; diff --git a/dict/taro/src/hooks/useUserData.ts b/dict/taro/src/hooks/useUserData.ts deleted file mode 100644 index fcc0423..0000000 --- a/dict/taro/src/hooks/useUserData.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { useState, useEffect, useCallback } from 'react' -import {pageShopUserCoupon} from "@/api/shop/shopUserCoupon"; -import {pageShopGift} from "@/api/shop/shopGift"; -import {useUser} from "@/hooks/useUser"; -import Taro from '@tarojs/taro' -import {getUserInfo} from "@/api/layout"; - -interface UserData { - balance: number - points: number - coupons: number - giftCards: number - orders: { - pending: number - paid: number - shipped: number - completed: number - refund: number - } -} - -interface UseUserDataReturn { - data: UserData | null - loading: boolean - error: string | null - refresh: () => Promise - updateBalance: (newBalance: number) => void - updatePoints: (newPoints: number) => void -} - -export const useUserData = (): UseUserDataReturn => { - const [data, setData] = useState(null) - const [loading, setLoading] = useState(true) - const [error, setError] = useState(null) - - // 获取用户数据 - const fetchUserData = useCallback(async () => { - try { - setLoading(true) - setError(null) - - if(!Taro.getStorageSync('UserId')){ - return; - } - - // 并发请求所有数据 - const [userDataRes, couponsRes, giftCardsRes] = await Promise.all([ - getUserInfo(), - pageShopUserCoupon({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), status: 0}), - pageShopGift({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), status: 0}) - ]) - - const newData: UserData = { - balance: userDataRes?.balance || 0.00, - points: userDataRes?.points || 0, - coupons: couponsRes?.count || 0, - giftCards: giftCardsRes?.count || 0, - orders: { - pending: 0, - paid: 0, - shipped: 0, - completed: 0, - refund: 0 - } - } - - setData(newData) - } catch (err) { - setError(err instanceof Error ? err.message : '获取用户数据失败') - } finally { - setLoading(false) - } - }, []) - - // 刷新数据 - const refresh = useCallback(async () => { - await fetchUserData() - }, [fetchUserData]) - - // 更新余额(本地更新,避免频繁请求) - const updateBalance = useCallback((newBalance: number) => { - setData(prev => prev ? { ...prev, balance: newBalance } : null) - }, []) - - // 更新积分 - const updatePoints = useCallback((newPoints: number) => { - setData(prev => prev ? { ...prev, points: newPoints } : null) - }, []) - - // 初始化加载 - useEffect(() => { - fetchUserData().then() - }, [fetchUserData]) - - return { - data, - loading, - error, - refresh, - updateBalance, - updatePoints - } -} - -// 轻量级版本 - 只获取基础数据 -export const useUserBasicData = () => { - const {user} = useUser() - const [balance, setBalance] = useState(0) - const [points, setPoints] = useState(0) - const [loading, setLoading] = useState(false) - - const fetchBasicData = useCallback(async () => { - setLoading(true) - try { - setBalance(user?.balance || 0) - setPoints(user?.points || 0) - } catch (error) { - console.error('获取基础数据失败:', error) - } finally { - setLoading(false) - } - }, []) - - useEffect(() => { - fetchBasicData().then() - }, [fetchBasicData]) - - return { - balance, - points, - loading, - refresh: fetchBasicData, - updateBalance: setBalance, - updatePoints: setPoints - } -} diff --git a/dict/taro/src/index.html b/dict/taro/src/index.html deleted file mode 100644 index dc4042c..0000000 --- a/dict/taro/src/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - bszx-react - - - -
- - diff --git a/dict/taro/src/pages/article/article.config.ts b/dict/taro/src/pages/article/article.config.ts deleted file mode 100644 index f4b4cdf..0000000 --- a/dict/taro/src/pages/article/article.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: '学习' -}) diff --git a/dict/taro/src/pages/article/article.tsx b/dict/taro/src/pages/article/article.tsx deleted file mode 100644 index 913112e..0000000 --- a/dict/taro/src/pages/article/article.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import {useEffect, useState} from "react"; -import {ArrowRight} from '@nutui/icons-react-taro' -import {pageCmsArticle} from "@/api/cms/cmsArticle"; -import {CmsArticle} from "@/api/cms/cmsArticle/model"; -import Taro from '@tarojs/taro' - -/** - * 文章终极列表 - * @constructor - */ -const Article = () => { - // const {params} = useRouter(); - // const [categoryId, setCategoryId] = useState(3494) - const [list, setList] = useState([]) - - const reload = () => { - // if (params.id) { - // setCategoryId(Number(params.id)) - // } - pageCmsArticle({}).then(res => { - if (res?.list) { - setList(res?.list) - } - }) - } - - useEffect(() => { - reload() - }, []) - - return ( -
-
-
- { - list.map((item, index) => { - return ( -
Taro.navigateTo({url: `/cms/help?id=${item.articleId}`}) }> -
{item.title}
- -
- ) - }) - } -
-
-
- ) -} -export default Article diff --git a/dict/taro/src/pages/index/Banner.tsx b/dict/taro/src/pages/index/Banner.tsx deleted file mode 100644 index 6de0425..0000000 --- a/dict/taro/src/pages/index/Banner.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useEffect, useState } from 'react' -import { Swiper } from '@nutui/nutui-react-taro' -import {CmsAd} from "@/api/cms/cmsAd/model"; -import {getCmsAd} from "@/api/cms/cmsAd"; - -const MyPage = () => { - const [item, setItem] = useState() - const reload = () => { - getCmsAd(366).then(data => { - setItem(data) - }) - } - - useEffect(() => { - reload() - }, []) - - return ( - <> - - {item?.imageList?.map((item) => ( - - - - ))} - - - ) -} -export default MyPage diff --git a/dict/taro/src/pages/index/BestSellers.tsx b/dict/taro/src/pages/index/BestSellers.tsx deleted file mode 100644 index 24a6e7a..0000000 --- a/dict/taro/src/pages/index/BestSellers.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import {useEffect} from "react"; -import {Image, Space} from '@nutui/nutui-react-taro' -import Taro from '@tarojs/taro' - -const BestSellers = (props: any) => { - const reload = () => { - - } - - useEffect(() => { - reload() - }, []) - - return ( -
-
- {props.data?.map((item, index) => { - return ( -
Taro.navigateTo({url: '/hjm/location?id=' + item.id})}> - -
- -
{item.code}
-
快递公司:{item.parentOrganization}
-
保险状态:{item.insuranceStatus} -
-
车架号:{item.vinCode}
-
绑定操作员:{item.driver}
-
-
-
- ) - })} -
-
-
- ) -} -export default BestSellers diff --git a/dict/taro/src/pages/index/Chart.tsx b/dict/taro/src/pages/index/Chart.tsx deleted file mode 100644 index 7445b5b..0000000 --- a/dict/taro/src/pages/index/Chart.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import {useEffect, useState} from "react"; -import {Tabs, TabPane} from '@nutui/nutui-react-taro' - -const list = [ - { - title: '今天', - id: 1 - }, - { - title: '昨天', - id: 2 - }, - { - title: '过去7天', - id: 3 - }, - { - title: '过去30天', - id: 4 - } -] -const Chart = () => { - const [tapIndex, setTapIndex] = useState('0') - const reload = () => { - - } - - useEffect(() => { - reload() - }, []) - - return ( - <> - { - setTapIndex(paneKey) - }} - > - { - list?.map((item, index) => { - return ( - - ) - }) - } - - { - list?.map((item, index) => { - console.log(item.title) - return ( -
- { - tapIndex != index ? null : -
- 线状图 -
- } -
- ) - }) - } - - - ) -} -export default Chart diff --git a/dict/taro/src/pages/index/ExpirationTime.tsx b/dict/taro/src/pages/index/ExpirationTime.tsx deleted file mode 100644 index a1138c1..0000000 --- a/dict/taro/src/pages/index/ExpirationTime.tsx +++ /dev/null @@ -1,259 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Button} from '@nutui/nutui-react-taro' -import {Target, Scan, Truck} from '@nutui/icons-react-taro' -import {getUserInfo} from "@/api/layout"; -import navTo from "@/utils/common"; -import {pageHjmCar} from "@/api/hjm/hjmCar"; -import { ScanType } from '@/hooks/useUnifiedQRScan'; -import { isValidJSON } from '@/utils/jsonUtils'; -import { parseQRContent, confirmWechatQRLogin } from '@/api/passport/qr-login'; -import { getShopGiftByCode, updateShopGift, decryptQrData } from "@/api/shop/shopGift"; -import { useUser } from '@/hooks/useUser'; -import dayjs from 'dayjs'; - -const ExpirationTime = () => { - const [isAdmin, setIsAdmin] = useState(false) - const [roleName, setRoleName] = useState() - const { isAdmin: isUserAdmin } = useUser(); - - // 检测二维码类型 - const detectScanType = (scanResult: string): ScanType => { - try { - // 1. 检查是否为JSON格式(核销二维码) - if (isValidJSON(scanResult)) { - const json = JSON.parse(scanResult); - if (json.businessType === 'gift' && json.token && json.data) { - return ScanType.VERIFICATION; - } - } - - // 2. 检查是否为登录二维码 - const loginToken = parseQRContent(scanResult); - if (loginToken) { - return ScanType.LOGIN; - } - - // 3. 检查是否为纯文本核销码(6位数字) - if (/^\d{6}$/.test(scanResult.trim())) { - return ScanType.VERIFICATION; - } - - return ScanType.UNKNOWN; - } catch (error) { - console.error('检测二维码类型失败:', error); - return ScanType.UNKNOWN; - } - }; - - // 处理登录二维码 - const handleLoginQR = async (scanResult: string) => { - const userId = Taro.getStorageSync('UserId'); - if (!userId) { - throw new Error('请先登录小程序'); - } - - const token = parseQRContent(scanResult); - if (!token) { - throw new Error('无效的登录二维码'); - } - - const confirmResult = await confirmWechatQRLogin(token, parseInt(userId)); - if (confirmResult.success || confirmResult.status === 'confirmed') { - Taro.showToast({ - title: '登录确认成功', - icon: 'success', - duration: 2000 - }); - return true; - } else { - throw new Error(confirmResult.message || '登录确认失败'); - } - }; - - // 处理核销二维码 - const handleVerificationQR = async (scanResult: string) => { - if (!isUserAdmin()) { - throw new Error('您没有核销权限'); - } - - let code = ''; - - // 判断是否为加密的JSON格式 - if (isValidJSON(scanResult)) { - const json = JSON.parse(scanResult); - if (json.businessType === 'gift' && json.token && json.data) { - // 解密获取核销码 - const decryptedData = await decryptQrData({ - token: json.token, - encryptedData: json.data - }); - - if (decryptedData) { - code = decryptedData.toString(); - } else { - throw new Error('解密失败'); - } - } - } else { - // 直接使用扫码结果作为核销码 - code = scanResult.trim(); - } - - if (!code) { - throw new Error('无法获取有效的核销码'); - } - - // 验证核销码 - const gift = await getShopGiftByCode(code); - - if (!gift) { - throw new Error('核销码无效'); - } - - if (gift.status === 1) { - throw new Error('此礼品码已使用'); - } - - if (gift.status === 2) { - throw new Error('此礼品码已失效'); - } - - if (gift.userId === 0) { - throw new Error('此礼品码未认领'); - } - - // 执行核销 - await updateShopGift({ - ...gift, - status: 1, - operatorUserId: Number(Taro.getStorageSync('UserId')) || 0, - takeTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), - verificationTime: dayjs().format('YYYY-MM-DD HH:mm:ss') - }); - - Taro.showToast({ - title: '核销成功', - icon: 'success', - duration: 2000 - }); - return true; - }; - - const onScanCode = () => { - Taro.scanCode({ - onlyFromCamera: true, - scanType: ['qrCode'], - success: async (res) => { - console.log(res, 'qrcode...') - const scanContent = res.result; - - // 检测二维码类型 - const scanType = detectScanType(scanContent); - - try { - if (scanType === ScanType.LOGIN) { - // 处理登录二维码 - await handleLoginQR(scanContent); - console.log('登录二维码处理成功'); - return; - } else if (scanType === ScanType.VERIFICATION) { - // 处理核销二维码 - await handleVerificationQR(scanContent); - console.log('核销二维码处理成功'); - return; - } - } catch (error: any) { - console.log('特殊二维码处理失败:', error.message); - Taro.showToast({ - title: error.message, - icon: 'error', - duration: 2000 - }); - return; - } - - // 如果不是特殊二维码,作为车辆查询处理 - console.log('作为车辆查询二维码处理:', scanContent); - Taro.navigateTo({url: '/hjm/query?id=' + scanContent}); - }, - fail: (res) => { - console.log(res, '扫码失败') - Taro.showToast({ - title: '扫码失败', - icon: 'none', - duration: 2000 - }) - } - }) - } - - const navToCarList = () => { - if (isAdmin) { - navTo('/hjm/list', true) - } - } - - useEffect(() => { - getUserInfo().then((data) => { - if (data) { - if(data.certification){ - setIsAdmin( true) - } - if(Taro.getStorageSync('Certification') == 'jj'){ - setIsAdmin(true) - } - if(Taro.getStorageSync('Certification') == 'yz'){ - setIsAdmin(true) - } - if(Taro.getStorageSync('RoleCode') == 'Installer'){ - setIsAdmin(true) - } - data.roles?.map((item, index) => { - if (index == 0) { - setRoleName(item.roleCode) - } - }) - } - }) - - pageHjmCar({driverId: Taro.getStorageSync('UserId')}).then(res => { - if(res?.list && res.list.length > 0){ - setIsAdmin(true) - } - }) - - }, []) - - return ( -
-
- <> - - - - - { - roleName == 'youzheng' && - } - - { - roleName == 'kuaidiyuan' && - } -
-
- ) -} -export default ExpirationTime diff --git a/dict/taro/src/pages/index/Header.tsx b/dict/taro/src/pages/index/Header.tsx deleted file mode 100644 index d92046a..0000000 --- a/dict/taro/src/pages/index/Header.tsx +++ /dev/null @@ -1,214 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro'; -import {Button, Space} from '@nutui/nutui-react-taro' -import {TriangleDown} from '@nutui/icons-react-taro' -import {Popup, Avatar, NavBar} from '@nutui/nutui-react-taro' -import {getUserInfo} from "@/api/layout"; -import {TenantId} from "@/utils/config"; -import {getOrganization} from "@/api/system/organization"; -import {myUserVerify} from "@/api/system/userVerify"; - -const Header = (props: any) => { - const [IsLogin, setIsLogin] = useState(true) - const [showBasic, setShowBasic] = useState(false) - const [statusBarHeight, setStatusBarHeight] = useState() - const [roleName, setRoleName] = useState() - - const onNav = () => { - if (!IsLogin) { - - return false; - } - Taro.switchTab({ - url: '/pages/user/user', - }) - } - const reload = () => { - Taro.getSystemInfo({ - success: (res) => { - setStatusBarHeight(res.statusBarHeight) - }, - }) - getUserInfo().then( async (data) => { - if (data) { - console.log(data.organizationName,'0000') - setIsLogin(true); - Taro.setStorageSync('UserId', data.userId) - Taro.setStorageSync('Phone',data.phone) - // 机构ID - Taro.setStorageSync('OrganizationId',data.organizationId) - // 父级机构ID - await getOrganization(Number(data.organizationId)).then(res => { - Taro.setStorageSync('OrganizationParentId',res.parentId) - }) - // 所属站点名称 - if(data.organizationName){ - Taro.setStorageSync('OrganizationName',data.organizationName) - } - // 是否已认证 - if(data.certification){ - Taro.setStorageSync('Certification','1') - } - // 安装人员 - const isInstaller = data.roles?.findIndex(item => item.roleCode == 'Installer') - if(isInstaller != -1){ - setRoleName('安装人员') - Taro.setStorageSync('RoleName', '安装人员') - Taro.setStorageSync('RoleCode', 'Installer') - return false; - } - // 管理员 - const isKdy = data.roles?.findIndex(item => item.roleCode == 'admin') - if(isKdy != -1){ - setRoleName('管理员') - Taro.setStorageSync('RoleName', '管理') - Taro.setStorageSync('RoleCode', 'admin') - return false; - } - // 交警 - const isJj = data.roles?.findIndex(item => item.roleCode == 'jiaojing') - if(isJj != -1){ - setRoleName('交警') - Taro.setStorageSync('RoleName', '交警') - Taro.setStorageSync('RoleCode', 'jiaojing') - Taro.setStorageSync('Certification', 'jj') - return false; - } - // 邮政协会/管局 - const isYz = data.roles?.findIndex(item => item.roleCode == 'youzheng') - if(isYz != -1){ - setRoleName('邮政协会/管局') - Taro.setStorageSync('RoleName', '邮政协会/管局') - Taro.setStorageSync('RoleCode', 'youzheng') - Taro.setStorageSync('Certification', 'yz') - return false; - } - // 快递公司 - const isKd = data.roles?.findIndex(item => item.roleCode == 'kuaidi') - if(isKd != -1){ - setRoleName('快递公司') - Taro.setStorageSync('RoleName', '快递公司') - Taro.setStorageSync('RoleCode', 'kuaidi') - return false; - } - const isZD = data.roles?.findIndex(item => item.roleCode == 'zhandian') - if(isZD != -1){ - setRoleName('快递站点') - Taro.setStorageSync('RoleName', '快递站点') - Taro.setStorageSync('RoleCode', 'zhandian') - } - // 快递员 - const isKdyy = data.roles?.findIndex(item => item.roleCode == 'kuaidiyuan') - if(isKdyy != -1){ - setRoleName('快递员') - Taro.setStorageSync('RoleName', '快递员') - Taro.setStorageSync('RoleCode', 'kuaidiyuan') - return false; - } - // 注册用户 - const isUser = data.roles?.findIndex(item => item.roleCode == 'user') - if(isUser != -1){ - setRoleName('注册用户') - Taro.setStorageSync('RoleName', '注册用户') - Taro.setStorageSync('RoleCode', 'user') - return false; - } - } - }).catch(() => { - setIsLogin(false); - console.log('未登录') - }); - myUserVerify({status: 1}).then(data => { - if(data?.realName){ - Taro.setStorageSync('RealName',data.realName) - } - }) - } - - /* 获取用户手机号 */ - const handleGetPhoneNumber = ({detail}) => { - const {code, encryptedData, iv} = detail - Taro.login({ - success: function () { - if (code) { - Taro.request({ - url: 'https://server.websoft.top/api/wx-login/loginByMpWxPhone', - method: 'POST', - data: { - code, - encryptedData, - iv, - notVerifyPhone: true, - refereeId: 0, - sceneType: 'save_referee', - tenantId: TenantId - }, - header: { - 'content-type': 'application/json', - TenantId - }, - success: function (res) { - Taro.setStorageSync('access_token', res.data.data.access_token) - Taro.setStorageSync('UserId', res.data.data.user.userId) - setIsLogin(true) - // 重新加载小程序 - Taro.reLaunch({ - url: '/pages/index/index' - }) - } - }) - } else { - console.log('登录失败!') - } - } - }) - } - - useEffect(() => { - reload() - }, []) - - return ( - <> - { - }} - left={ - !IsLogin ? ( -
Taro.navigateTo({url: '/passport/wxLogin'})}> - - - {props.user?.nickname} - - -
- ) : ( -
- - {props.user?.nickname}{roleName && ({roleName})} - -
- )}> -
- { - setShowBasic(false) - }} - > -
车辆信息
-
- - ) -} -export default Header diff --git a/dict/taro/src/pages/index/Help.tsx b/dict/taro/src/pages/index/Help.tsx deleted file mode 100644 index 59ce37b..0000000 --- a/dict/taro/src/pages/index/Help.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import {useEffect, useState} from "react"; -import {ArrowRight} from '@nutui/icons-react-taro' -import {CmsArticle} from "@/api/cms/cmsArticle/model"; -import Taro from '@tarojs/taro' -import {useRouter} from '@tarojs/taro' -import {BaseUrl} from "@/utils/config"; -import {TEMPLATE_ID} from "@/utils/server"; - -/** - * 帮助中心 - * @constructor - */ -const Help = () => { - const {params} = useRouter(); - const [categoryId, setCategoryId] = useState(3494) - const [list, setList] = useState([]) - - const reload = () => { - if (params.id) { - setCategoryId(Number(params.id)) - } - Taro.request({ - url: BaseUrl + '/cms/cms-article/page', - method: 'GET', - data: { - categoryId - }, - header: { - 'content-type': 'application/json', - TenantId: TEMPLATE_ID - }, - success: function (res) { - const data = res.data.data; - if (data?.list) { - setList(data?.list) - } - } - }) - } - - useEffect(() => { - reload() - }, []) - - return ( -
-
- -
- { - list.map((item, index) => { - return ( -
Taro.navigateTo({url: `/cms/help?id=${item.articleId}`}) }> -
{item.title}
- -
- ) - }) - } -
-
-
- ) -} -export default Help diff --git a/dict/taro/src/pages/index/Login.tsx b/dict/taro/src/pages/index/Login.tsx deleted file mode 100644 index a299192..0000000 --- a/dict/taro/src/pages/index/Login.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Input, Radio, Button} from '@nutui/nutui-react-taro' -import './login.scss'; -import {User} from "@/api/system/user/model"; - -interface LoginProps { - done?: (data: User) => void; -} - -const Login: React.FC = ({ done }) => { - const [isAgree, setIsAgree] = useState(false) - const [env, setEnv] = useState() - - const reload = () => { - Taro.hideTabBar() - setEnv(Taro.getEnv()) - } - - useEffect(() => { - reload() - }, []) - - return ( - <> -
-
登录
- { - env === 'WEAPP' && ( - <> -
- -
- - ) - } - { - env === 'WEB' && ( - <> -
- -
-
- -
- -
- -
- -
- setIsAgree(!isAgree)}> - setIsAgree(!isAgree)}>登录表示您已阅读并同意 Taro.navigateTo({url: '/passport/agreement'})} - className={'text-blue-600'}>《服务协议及隐私政策》 -
- - ) - } -
- - ) -} -export default Login diff --git a/dict/taro/src/pages/index/Menu.tsx b/dict/taro/src/pages/index/Menu.tsx deleted file mode 100644 index 34b8914..0000000 --- a/dict/taro/src/pages/index/Menu.tsx +++ /dev/null @@ -1,163 +0,0 @@ -import {useEffect, useState} from 'react' -import {navigateTo} from '@tarojs/taro' -import Taro from '@tarojs/taro' -import {Image} from '@nutui/nutui-react-taro' -import {getUserInfo, getWxOpenId} from "@/api/layout"; -import {User} from "@/api/system/user/model"; -import {myPageBszxBm} from "@/api/bszx/bszxBm"; -import {listCmsNavigation} from "@/api/cms/cmsNavigation"; - -const Page = () => { - - const [loading, setLoading] = useState(true) - const [isLogin, setIsLogin] = useState(false) - const [userInfo, setUserInfo] = useState() - const [bmLogs, setBmLogs] = useState() - const [navItems, setNavItems] = useState([]) - - const onLogin = (item: any, index: number) => { - if(!isLogin){ - return navigateTo({url: `/pages/category/category?id=${item.navigationId}`}) - }else { - // 报名链接 - if(index == 0){ - console.log(bmLogs,'bmLogs') - if(bmLogs && bmLogs.length > 0){ - return navigateTo({url: `/bszx/bm-cert/bm-cert?id=${bmLogs[0].id}`}) - }else { - navigateTo({url: `/user/profile/profile`}) - } - } - // 善款明细 - if(item.navigationId == 4119){ - return navigateTo({url: `/bszx/pay-record/pay-record`}) - } - return navigateTo({url: `/pages/category/category?id=${item.navigationId}`}) - } - } - - const reload = () => { - // 读取栏目 - listCmsNavigation({parentId: 2828,hide: 0}).then(res => { - console.log(res,'9999') - setNavItems(res); - }) - Taro.getUserInfo({ - success: (res) => { - const avatar = res.userInfo.avatarUrl; - setUserInfo({ - avatar, - nickname: res.userInfo.nickName, - sexName: res.userInfo.gender == 1 ? '男' : '女' - }) - getUserInfo().then((data) => { - if (data) { - setUserInfo(data) - setIsLogin(true); - console.log(userInfo, 'userInfo...') - Taro.setStorageSync('UserId', data.userId) - // 获取openId - if (!data.openid) { - Taro.login({ - success: (res) => { - getWxOpenId({code: res.code}).then(() => { - }) - } - }) - } - } - }).catch(() => { - console.log('未登录') - }); - } - }); - // 报名日志 - myPageBszxBm({limit: 1}).then(res => { - if (res.list) { - setBmLogs(res.list); - } - }) - setLoading(false); - }; - - const showAuthModal = () => { - Taro.showModal({ - title: '授权提示', - content: '需要获取您的用户信息', - confirmText: '去授权', - cancelText: '取消', - success: (res) => { - if (res.confirm) { - // 用户点击确认,打开授权设置页面 - openSetting(); - } - } - }); - }; - - const openSetting = () => { - // Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。 - Taro.openSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户授权成功,可以获取用户信息 - reload(); - } else { - // 用户拒绝授权,提示授权失败 - Taro.showToast({ - title: '授权失败', - icon: 'none' - }); - } - } - }); - }; - - useEffect(() => { - Taro.getSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户已经授权过,可以直接获取用户信息 - console.log('用户已经授权过,可以直接获取用户信息') - reload(); - } else { - // 用户未授权,需要弹出授权窗口 - console.log('用户未授权,需要弹出授权窗口') - showAuthModal(); - } - } - }); - reload(); - }, []) - - return ( -
-
-
- { - navItems.map((item, index) => ( -
- { - isLogin && !loading ? -
{ - onLogin(item, index) - }}> - -
{item?.title}
-
- : -
Taro.navigateTo({url: '/passport/wxLogin'})}> - -
{item?.title}
-
- } -
- )) - } -
-
-
- ) -} -export default Page diff --git a/dict/taro/src/pages/index/SiteUrl.tsx b/dict/taro/src/pages/index/SiteUrl.tsx deleted file mode 100644 index 2fc5723..0000000 --- a/dict/taro/src/pages/index/SiteUrl.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import {useEffect, useState} from "react"; -import {Input, Button} from '@nutui/nutui-react-taro' -import {copyText} from "@/utils/common"; -import Taro from '@tarojs/taro' - -const SiteUrl = (props: any) => { - const [siteUrl, setSiteUrl] = useState('') - const reload = () => { - if(props.tenantId){ - setSiteUrl(`https://${props.tenantId}.shoplnk.cn`) - }else { - setSiteUrl(`https://${Taro.getStorageSync('TenantId')}.shoplnk.cn`) - } - } - - useEffect(() => { - reload() - }, [props]) - - return ( -
-
- - -
-
- ) -} -export default SiteUrl diff --git a/dict/taro/src/pages/index/chart/DemoLine.tsx b/dict/taro/src/pages/index/chart/DemoLine.tsx deleted file mode 100644 index 3e55279..0000000 --- a/dict/taro/src/pages/index/chart/DemoLine.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { useRef, useEffect } from 'react' -import { View } from '@tarojs/components' -import { EChart } from "echarts-taro3-react"; -import './index.scss' - -export default function Index() { - const refBarChart = useRef() - const defautOption = { - xAxis: { - type: "category", - data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - }, - yAxis: { - type: "value", - }, - series: [ - { - data: [120, 200, 150, 80, 70, 110, 130], - type: "line", - showBackground: true, - backgroundStyle: { - color: "rgba(220, 220, 220, 0.8)", - }, - }, - ], - }; - useEffect(() => { - if(refBarChart.current) { - refBarChart.current?.refresh(defautOption); - } - }) - - return ( - - - - ) -} diff --git a/dict/taro/src/pages/index/chart/index.scss b/dict/taro/src/pages/index/chart/index.scss deleted file mode 100644 index 10b6a0a..0000000 --- a/dict/taro/src/pages/index/chart/index.scss +++ /dev/null @@ -1,7 +0,0 @@ -.index { - width: 100vw; - height: 100vh; - background-color: #F3F3F3; - background-repeat: no-repeat; - background-size: 100%; -} diff --git a/dict/taro/src/pages/index/index.config.ts b/dict/taro/src/pages/index/index.config.ts deleted file mode 100644 index 09f9fa8..0000000 --- a/dict/taro/src/pages/index/index.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: 'shopLnk.cn - 数灵云店', - navigationBarTextStyle: 'black', - navigationStyle: 'custom' -}) diff --git a/dict/taro/src/pages/index/index.scss b/dict/taro/src/pages/index/index.scss deleted file mode 100644 index 7ed1db0..0000000 --- a/dict/taro/src/pages/index/index.scss +++ /dev/null @@ -1,4 +0,0 @@ -page { - background: url("https://oss.wsdns.cn/20250414/5bed65bff2f8434995e6c22d67271c77.png"); - background-size: cover; -} diff --git a/dict/taro/src/pages/index/index.tsx b/dict/taro/src/pages/index/index.tsx deleted file mode 100644 index 9772ed4..0000000 --- a/dict/taro/src/pages/index/index.tsx +++ /dev/null @@ -1,387 +0,0 @@ -import Header from './Header' -import './index.scss' -import Taro from '@tarojs/taro'; -import {Map} from '@tarojs/components' -import {Search} from '@nutui/icons-react-taro' -import {Button, Input} from '@nutui/nutui-react-taro' -import {useShareAppMessage, useShareTimeline} from "@tarojs/taro" -import {useEffect, useState} from "react"; -import ExpirationTime from "./ExpirationTime"; -import {User} from "@/api/system/user/model"; -import {getSiteInfo, getUserInfo, getWxOpenId} from "@/api/layout"; -import Login from "./Login"; -import {pageByQQMap, pageHjmCar} from "@/api/hjm/hjmCar"; -import {HjmCar} from "@/api/hjm/hjmCar/model"; - -export interface Market { - // 自增ID - id?: number; - latitude?: number; - longitude?: number; - name?: string; - title?: string; -} - -function Home() { - const [loading, setLoading] = useState(false) - const [IsLogin, setIsLogin] = useState(true) - const [isAdmin, setIsAdmin] = useState(false) - const [search, setSearch] = useState(false) - const [userInfo, setUserInfo] = useState() - const [longitude, setLongitude] = useState() - const [latitude, setLatitude] = useState() - const [markers, setMarkers] = useState([]) - const [scale, setScale] = useState(12) - const [keywords, setKeywords] = useState('') - const [list, setList] = useState([]) - - useShareTimeline(() => { - return { - title: '注册即可开通 - webSoft云应用', - path: `/pages/index/index` - }; - }); - - useShareAppMessage(() => { - return { - title: '注册即可开通 - webSoft云应用', - path: `/pages/index/index`, - success: function (res) { - console.log('分享成功', res); - }, - fail: function (res) { - console.log('分享失败', res); - } - }; - }); - - // const reloadMore = async () => { - // setPage(page + 1) - // } - - const showAuthModal = () => { - Taro.showModal({ - title: '授权提示', - content: '需要获取您的用户信息', - confirmText: '去授权', - cancelText: '取消', - success: (res) => { - if (res.confirm) { - // 用户点击确认,打开授权设置页面 - openSetting(); - } - } - }); - }; - - const openSetting = () => { - // Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。 - Taro.openSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户授权成功,可以获取用户信息 - reload(); - } else { - // 用户拒绝授权,提示授权失败 - Taro.showToast({ - title: '授权失败', - icon: 'none' - }); - } - } - }); - }; - - const onKeywords = (keywords: string) => { - setKeywords(keywords) - } - - // 登录成功后回调 - const handleLogin = (data: User) => { - setIsLogin(true) - setUserInfo(data) - Taro.showTabBar() - reload(); - } - - // 获取当前位置 - const getLocation = async () => { - try { - const res = await Taro.getLocation({ - type: 'gcj02' //返回可以用于wx.openLocation的经纬度 - }) - - if (res.latitude) { - setLatitude(res.latitude) - } - if (res.longitude) { - setLongitude(res.longitude) - } - - // 已认证用户 - if (Taro.getStorageSync('Certification')) { - setIsAdmin(true) - setScale(11) - // pageHjmCarByMap(res.latitude, res.longitude) - } - - // 游客 - if (!Taro.getStorageSync('access_token') || Taro.getStorageSync('RoleName') == '注册用户') { - setScale(15) - } - return res; - } catch (err) { - console.error('获取位置失败:', err); - } - } - - const onQuery = () => { - if (!keywords) { - Taro.showToast({ - title: '请输入关键字', - icon: 'none' - }); - return false; - } - reload(); - } - - const pageHjmCarByMap = async (latitude?: any, longitude?: any) => { - // 搜索条件 - const where = {} - - const user = await getUserInfo(); - - // 交警和邮管不能在小程序主界面地图上看到任何一个车辆的定位 - if(Taro.getStorageSync('RoleCode') == 'jiaojing' || Taro.getStorageSync('RoleCode') == 'youzheng'){ - return false - } - if (latitude) { - // @ts-ignore - where.latitude = latitude - } - if (longitude) { - // @ts-ignore - where.longitude = longitude - } - // 判断身份 - const roleCode = Taro.getStorageSync('RoleCode'); - if (roleCode == 'kuaidiyuan') { - // @ts-ignore - where.driverId = user.userId; - } - if (roleCode == 'zhandian') { - // @ts-ignore - where.organizationId = user.organizationId; - } - if (roleCode == 'kuaidi') { - // @ts-ignore - where.organizationParentId = user.organizationId; - } - - pageByQQMap(where).then(res => { - console.log(res?.count, 'pageByQQMap') - if (res?.list && res?.list.length > 0) { - const data = res?.list; - const arr = [] - data?.map((item: HjmCar) => { - // @ts-ignore - arr.push({ - id: item.id, - latitude: item.latitude, - longitude: item.longitude, - label: { - content: `${item?.code}`, - color: '#000000', - fontSize: 12, - borderRadius: 5, - bgColor: '#FFFFFF', - // @ts-ignore - padding: '5px 5px', - borderWidth: 1 - }, - title: `${item.organization}`, - name: item.organization - }) - }) - setMarkers(arr) - } - }) - } - - const reload = async () => { - setLoading(true) - if (!Taro.getStorageSync('access_token')) { - return false; - } - - pageHjmCarByMap(latitude, longitude) - if (!isAdmin) { - return false; - } - setMarkers([]) - setScale(12) - pageHjmCar({keywords, deleted: 0}).then(res => { - if (res?.count == 0) { - Taro.showToast({ - title: '没有搜索结果', - icon: 'none' - }); - return false - } - setList(res?.list || []) - if (res?.list && res?.list.length > 0) { - const data = res?.list[0]; - setLongitude(data?.longitude) - setLatitude(data?.latitude) - if (isAdmin) { - setMarkers([{ - id: data.id, - latitude: data.latitude, - longitude: data.longitude, - // @ts-ignore - label: { - content: `${data?.code}`, - color: '#000000', - fontSize: 12, - borderRadius: 5, - bgColor: '#FFFFFF', - // @ts-ignore - padding: '5px 5px', - borderWidth: 1 - }, - title: `${data.organization}`, - name: `${data.organization}` - }]) - } - } - console.log(list.length, 'carList.length') - }) - }; - - useEffect(() => { - // Taro.hideTabBar() - getLocation().then() - // 获取站点信息 - getSiteInfo().then((data) => { - console.log(data, 'siteInfo') - if (data.search) { - setSearch(false); - } - }) - // Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。 - Taro.getSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户已经授权过,可以直接获取用户信息 - console.log('用户已经授权过,可以直接获取用户信息') - reload().then(() => { - setLoading(false) - }); - } else { - // 用户未授权,需要弹出授权窗口 - console.log('用户未授权,需要弹出授权窗口') - showAuthModal(); - } - } - }); - // 获取用户信息 - Taro.getUserInfo({ - success: (res) => { - const avatar = res.userInfo.avatarUrl; - setUserInfo({ - avatar, - nickname: res.userInfo.nickName, - sexName: res.userInfo.gender == 1 ? '男' : '女' - }) - getUserInfo().then((data) => { - if (data) { - // 是否管理员 - if (data.certification) { - setIsAdmin(true) - } - // 是否交警 - if (Taro.getStorageSync('Certification') == 'jj') { - console.log('交警', '12312') - setIsAdmin(true) - } - if (Taro.getStorageSync('RoleCode') == 'Installer') { - setIsAdmin(true) - } - setUserInfo(data) - setIsLogin(true); - Taro.setStorageSync('UserId', data.userId) - // 获取openId - if (!data.openid) { - Taro.login({ - success: (res) => { - // 排查交警和邮政角色不保存openid - if (Taro.getStorageSync('RoleCode') !== 'jiaojing' || Taro.getStorageSync('RoleCode') !== 'youzheng' || Taro.getStorageSync('RoleCode') !== 'Installer') { - getWxOpenId({code: res.code}).then(() => { - }) - } - } - }) - } - } - }).catch(() => { - setIsLogin(false); - console.log('未登录') - }); - } - }); - }, []); - - return ( - <> - {!IsLogin && search ? () : (<> -
- -
-
-
- - -
- -
-
-
-
- {!loading && ( - { - console.log('map tap', map) - }} - style={{width: '100%', height: '100vh'}} - /> - )} - )} - - ) -} - -export default Home diff --git a/dict/taro/src/pages/index/login.scss b/dict/taro/src/pages/index/login.scss deleted file mode 100644 index 97f2ab4..0000000 --- a/dict/taro/src/pages/index/login.scss +++ /dev/null @@ -1,10 +0,0 @@ -// 微信授权按钮的特殊样式 -button[open-type="getPhoneNumber"] { - width: 100%; - padding: 8px 0 !important; - height: 80px; - color: #ffffff !important; - margin: 0 !important; - border: none !important; - border-radius: 50px !important; -} diff --git a/dict/taro/src/pages/kefu/kefu.config.ts b/dict/taro/src/pages/kefu/kefu.config.ts deleted file mode 100644 index 6b4f39f..0000000 --- a/dict/taro/src/pages/kefu/kefu.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: '商品列表', - navigationBarTextStyle: 'black', - navigationStyle: 'custom' -}) diff --git a/dict/taro/src/pages/kefu/kefu.tsx b/dict/taro/src/pages/kefu/kefu.tsx deleted file mode 100644 index 2f2c56b..0000000 --- a/dict/taro/src/pages/kefu/kefu.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import {useEffect, useState} from "react"; // 添加 useCallback 引入 -import Taro, {useShareAppMessage, useShareTimeline} from '@tarojs/taro'; -import {Space, NavBar} from '@nutui/nutui-react-taro' -import {Search, Received, Scan} from '@nutui/icons-react-taro' -import GoodsList from "@/components/GoodsList"; - -function Kefu() { - const [statusBarHeight, setStatusBarHeight] = useState() - - useShareTimeline(() => { - return { - title: '注册即可开通 - webSoft云应用' - }; - }); - - useShareAppMessage(() => { - return { - title: '注册即可开通 - webSoft云应用', - success: function (res) { - console.log('分享成功', res); - }, - fail: function (res) { - console.log('分享失败', res); - } - }; - }); - - useEffect(() => { - Taro.getSystemInfo({ - success: (res) => { - setStatusBarHeight(res.statusBarHeight) - }, - }) - // 设置导航栏背景色(含状态栏) - Taro.setNavigationBarColor({ - backgroundColor: '#ffffff', // 状态栏+导航栏背景色 - frontColor: 'black', // 状态栏文字颜色(仅支持 black/white) - }); - }, []); // 新增: 添加滚动事件监听 - - return ( - <> - { - }} - left={ - <> -
- - - - - -
- - } - > - 商品 -
- - - ); -} - -export default Kefu; diff --git a/dict/taro/src/pages/order/order.config.ts b/dict/taro/src/pages/order/order.config.ts deleted file mode 100644 index 80f6efd..0000000 --- a/dict/taro/src/pages/order/order.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: '订单列表', - navigationBarTextStyle: 'black', - navigationStyle: 'custom' -}) diff --git a/dict/taro/src/pages/order/order.tsx b/dict/taro/src/pages/order/order.tsx deleted file mode 100644 index 6bc91af..0000000 --- a/dict/taro/src/pages/order/order.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import {useEffect, useState} from "react"; // 添加 useCallback 引入 -import Taro from '@tarojs/taro'; -import {NavBar, Space} from '@nutui/nutui-react-taro' -import {Filter,Search} from '@nutui/icons-react-taro' -import OrderList from "@/components/OrderList"; - -function Order() { - const [statusBarHeight, setStatusBarHeight] = useState() - - useEffect(() => { - Taro.getSystemInfo({ - success: (res) => { - setStatusBarHeight(res.statusBarHeight) - }, - }) - // 设置导航栏背景色(含状态栏) - Taro.setNavigationBarColor({ - backgroundColor: '#ffffff', // 状态栏+导航栏背景色 - frontColor: 'black', // 状态栏文字颜色(仅支持 black/white) - }); - }, []); // 新增: 添加滚动事件监听 - - return ( - <> - { - }} - left={ - <> -
- - - - -
- {/**/} - {/*
*/} - {/* */} - {/*
筛选
*/} - {/*
*/} - - } - > - 订单 -
- - - ); -} - -export default Order; diff --git a/dict/taro/src/pages/study/study.config.ts b/dict/taro/src/pages/study/study.config.ts deleted file mode 100644 index f4b4cdf..0000000 --- a/dict/taro/src/pages/study/study.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: '学习' -}) diff --git a/dict/taro/src/pages/study/study.tsx b/dict/taro/src/pages/study/study.tsx deleted file mode 100644 index e44ea30..0000000 --- a/dict/taro/src/pages/study/study.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import {useEffect, useState} from "react"; -import {Image} from '@nutui/nutui-react-taro'; -import Taro from '@tarojs/taro'; -import {pageCmsArticle} from "@/api/cms/cmsArticle"; -import {CmsArticle} from "@/api/cms/cmsArticle/model"; -import {checkMonthTaskCompleted} from "@/api/hjm/hjmExamLog"; -import Questions from '@/components/Questions'; -import {getWebsiteField} from "@/api/system/website/field"; - -/** - * 文章终极列表 - * @constructor - */ -const Study = () => { - const [isAdmin, setIsAdmin] = useState(false) - const [loading, setLoading] = useState(false) - const [list, setList] = useState() - const [monthTaskCompleted, setMonthTaskCompleted] = useState(false) - - const reload = async () => { - setLoading(true) - const field = await getWebsiteField(15524); - if (field.value == '0') { - setIsAdmin(true) - }else { - setIsAdmin(false) - } - const article = await pageCmsArticle({categoryId: 4289, status: 0}) - if(article){ - setList(article?.list) - } - const promise = await checkMonthTaskCompleted(); - if(promise){ - setMonthTaskCompleted(true) - } - } - - useEffect(() => { - reload().then(() => { - console.log('初始化完成') - }) - }, []) - - return ( - <> - {isAdmin && ( -
- {/* 已完成任务 */} - {monthTaskCompleted && !loading && ( -
-

🎉 - 本月学习任务已完成!

-
- 您已经完成了本月的学习任务,无需再进行考试。 -
-
- )} - { - !monthTaskCompleted && list?.map((item, index) => { - return ( -
Taro.navigateTo({url: `/hjm/practice/practice?id=${item.articleId}`})}> - -
- ) - }) - } -
- )} - {!isAdmin && } - - ) -} -export default Study diff --git a/dict/taro/src/pages/user/components/OrderIcon.tsx b/dict/taro/src/pages/user/components/OrderIcon.tsx deleted file mode 100644 index 748a9b7..0000000 --- a/dict/taro/src/pages/user/components/OrderIcon.tsx +++ /dev/null @@ -1,163 +0,0 @@ -import {useEffect, useState} from 'react' -import {navigateTo} from '@tarojs/taro' -import Taro from '@tarojs/taro' -import {Image} from '@nutui/nutui-react-taro' -import {getUserInfo, getWxOpenId} from "@/api/layout"; -import {User} from "@/api/system/user/model"; -import {myPageBszxBm} from "@/api/bszx/bszxBm"; -import {listCmsNavigation} from "@/api/cms/cmsNavigation"; - -const OrderIcon = () => { - - const [loading, setLoading] = useState(true) - const [isLogin, setIsLogin] = useState(false) - const [userInfo, setUserInfo] = useState() - const [bmLogs, setBmLogs] = useState() - const [navItems, setNavItems] = useState([]) - - const onLogin = (item: any, index: number) => { - if(!isLogin){ - return navigateTo({url: `/pages/category/category?id=${item.navigationId}`}) - }else { - // 报名链接 - if(index == 0){ - console.log(bmLogs,'bmLogs') - if(bmLogs && bmLogs.length > 0){ - return navigateTo({url: `/bszx/bm-cert/bm-cert?id=${bmLogs[0].id}`}) - }else { - navigateTo({url: `/user/profile/profile`}) - } - } - // 善款明细 - if(item.navigationId == 4119){ - return navigateTo({url: `/bszx/pay-record/pay-record`}) - } - return navigateTo({url: `/pages/category/category?id=${item.navigationId}`}) - } - } - - const reload = () => { - // 读取栏目 - listCmsNavigation({parentId: 2828,hide: 0}).then(res => { - console.log(res,'9999') - setNavItems(res); - }) - Taro.getUserInfo({ - success: (res) => { - const avatar = res.userInfo.avatarUrl; - setUserInfo({ - avatar, - nickname: res.userInfo.nickName, - sexName: res.userInfo.gender == 1 ? '男' : '女' - }) - getUserInfo().then((data) => { - if (data) { - setUserInfo(data) - setIsLogin(true); - console.log(userInfo, 'userInfo...') - Taro.setStorageSync('UserId', data.userId) - // 获取openId - if (!data.openid) { - Taro.login({ - success: (res) => { - getWxOpenId({code: res.code}).then(() => { - }) - } - }) - } - } - }).catch(() => { - console.log('未登录') - }); - } - }); - // 报名日志 - myPageBszxBm({limit: 1}).then(res => { - if (res.list) { - setBmLogs(res.list); - } - }) - setLoading(false); - }; - - const showAuthModal = () => { - Taro.showModal({ - title: '授权提示', - content: '需要获取您的用户信息', - confirmText: '去授权', - cancelText: '取消', - success: (res) => { - if (res.confirm) { - // 用户点击确认,打开授权设置页面 - openSetting(); - } - } - }); - }; - - const openSetting = () => { - // Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。 - Taro.openSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户授权成功,可以获取用户信息 - reload(); - } else { - // 用户拒绝授权,提示授权失败 - Taro.showToast({ - title: '授权失败', - icon: 'none' - }); - } - } - }); - }; - - useEffect(() => { - Taro.getSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户已经授权过,可以直接获取用户信息 - console.log('用户已经授权过,可以直接获取用户信息') - reload(); - } else { - // 用户未授权,需要弹出授权窗口 - console.log('用户未授权,需要弹出授权窗口') - showAuthModal(); - } - } - }); - reload(); - }, []) - - return ( -
-
-
- { - navItems.map((item, index) => ( -
- { - isLogin && !loading ? -
{ - onLogin(item, index) - }}> - -
{item?.title}
-
- : -
Taro.navigateTo({url: '/passport/wxLogin'})}> - -
{item?.title}
-
- } -
- )) - } -
-
-
- ) -} -export default OrderIcon diff --git a/dict/taro/src/pages/user/components/UserCard.tsx b/dict/taro/src/pages/user/components/UserCard.tsx deleted file mode 100644 index 12a4c28..0000000 --- a/dict/taro/src/pages/user/components/UserCard.tsx +++ /dev/null @@ -1,155 +0,0 @@ -import {Avatar, Tag, Space} from '@nutui/nutui-react-taro' -import {getUserInfo, getWxOpenId} from '@/api/layout'; -import Taro from '@tarojs/taro'; -import {useEffect, useState} from "react"; -import {User} from "@/api/system/user/model"; -import navTo from "@/utils/common"; - -function UserCard() { - const [IsLogin, setIsLogin] = useState(false) - const [userInfo, setUserInfo] = useState() - const [roleName, setRoleName] = useState('注册用户') - - - useEffect(() => { - // Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。 - Taro.getSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户已经授权过,可以直接获取用户信息 - console.log('用户已经授权过,可以直接获取用户信息') - reload(); - } else { - // 用户未授权,需要弹出授权窗口 - console.log('用户未授权,需要弹出授权窗口') - showAuthModal(); - } - } - }); - }, []); - - const reload = () => { - Taro.getUserInfo({ - success: (res) => { - const avatar = res.userInfo.avatarUrl; - setUserInfo({ - avatar, - nickname: res.userInfo.nickName, - sexName: res.userInfo.gender == 1 ? '男' : '女' - }) - getUserInfo().then((data) => { - if (data) { - setUserInfo(data) - setIsLogin(true); - Taro.setStorageSync('UserId', data.userId) - // 获取openId - if (!data.openid) { - Taro.login({ - success: (res) => { - getWxOpenId({code: res.code}).then(() => { - }) - } - }) - } - // 判断身份 - const roleName = Taro.getStorageSync('RoleName'); - if(roleName){ - setRoleName(roleName) - } - } - }).catch(() => { - console.log('未登录') - }); - } - }); - }; - - const showAuthModal = () => { - Taro.showModal({ - title: '授权提示', - content: '需要获取您的用户信息', - confirmText: '去授权', - cancelText: '取消', - success: (res) => { - if (res.confirm) { - // 用户点击确认,打开授权设置页面 - openSetting(); - } - } - }); - }; - - - const openSetting = () => { - // Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。 - Taro.openSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户授权成功,可以获取用户信息 - reload(); - } else { - // 用户拒绝授权,提示授权失败 - Taro.showToast({ - title: '授权失败', - icon: 'none' - }); - } - } - }); - }; - - return ( - <> -
-
-
-
- { - IsLogin ? ( - - ) : ( -
Taro.navigateTo({url: '/passport/wxLogin'})}> - -
- ) - } -
-
{IsLogin ? userInfo?.mobile : '请点击头像登录'}
- {IsLogin ? ( - - -
{roleName || '注册用户'}
-
- {/*{*/} - {/* userInfo?.organizationName && (*/} - {/* */} - {/*
{userInfo?.organizationName}
*/} - {/*
*/} - {/* )*/} - {/*}*/} -
- ) : ''} -
-
-
navTo('/user/profile/profile', true)}> - {'个人资料'} -
-
-
-
- - - ) -} - -export default UserCard; diff --git a/dict/taro/src/pages/user/components/UserCell.tsx b/dict/taro/src/pages/user/components/UserCell.tsx deleted file mode 100644 index 3fa0181..0000000 --- a/dict/taro/src/pages/user/components/UserCell.tsx +++ /dev/null @@ -1,272 +0,0 @@ -import {Cell, InfiniteLoading} from '@nutui/nutui-react-taro' -import navTo from "@/utils/common"; -import UserFooter from "./UserFooter"; -import Taro from '@tarojs/taro' -import {ArrowRight, ShieldCheck, Truck, LogisticsError} from '@nutui/icons-react-taro' -import {CSSProperties, useEffect, useState} from "react"; - -const UserCell = () => { - const [roleName, setRoleName] = useState('') - const InfiniteUlStyle: CSSProperties = { - height: '88vh', - padding: '16px', - overflowY: 'auto', - overflowX: 'hidden', - } - const onLogout = () => { - Taro.showModal({ - title: '提示', - content: '确定要退出登录吗?', - success: function (res) { - if (res.confirm) { - Taro.clearStorageSync() - Taro.removeStorageSync('access_token') - Taro.removeStorageSync('TenantId') - Taro.removeStorageSync('UserId') - Taro.removeStorageSync('userInfo') - Taro.reLaunch({ - url: '/pages/index/index' - }) - } - } - }) - } - - useEffect(() => { - setRoleName(Taro.getStorageSync('RoleCode')) - }, []); - - return ( - <> -
- - - - - 实名认证 -
- } - align="center" - extra={} - onClick={() => { - navTo('/user/userVerify/index', true) - }} - /> - - { - (roleName === 'kuaidi' || roleName == 'zhandian' || roleName == 'youzheng') && ( - <> - { - roleName != 'youzheng' && ( - - - - 实名认证审核 - - } - align="center" - extra={} - onClick={() => { - navTo('/user/userVerify/admin', true) - }} - /> - - ) - } - - - - 违章记录 - - } - align="center" - extra={} - onClick={() => { - navTo('/hjm/violation/list', true) - }} - /> - - - ) - } - { - roleName === 'kuaidiyuan' && ( - <> - - - - 车辆信息 - - } - align="center" - extra={} - onClick={() => { - navTo('/user/car/index', true) - }} - /> - - - - - 报险记录 - - } - align="center" - extra={} - onClick={() => { - navTo('/hjm/bx/bx', true) - }} - /> - - - ) - } - { - roleName === 'jiaojing' && ( - - - - 违章记录 - - } - align="center" - extra={} - onClick={() => { - navTo('/hjm/violation/list', true) - }} - /> - - ) - } - - {/**/} - {/* 管理*/} - {/* */} - {/*}>*/} - {/* */} - {/* */} - {/* 分析*/} - {/* */} - {/* }*/} - {/* align="center"*/} - {/* extra={}*/} - {/* onClick={() => {*/} - {/* navTo('/bszx/bm-cert/bm-cert', true)*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* 客户*/} - {/* */} - {/* }*/} - {/* align="center"*/} - {/* extra={}*/} - {/* onClick={() => {*/} - {/* navTo('/bszx/pay-log/pay-log', true)*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* 折扣*/} - {/* */} - {/* }*/} - {/* align="center"*/} - {/* extra={}*/} - {/* onClick={() => {*/} - {/* navTo('/user/profile/profile', true)*/} - {/* }}*/} - {/* />*/} - {/**/} - {/**/} - {/* 设置与帮助*/} - {/* */} - {/*}>*/} - {/* }*/} - {/* onClick={() => Taro.navigateTo({url: '/website/modify'})}*/} - {/* />*/} - {/* }*/} - {/* onClick={() => {*/} - {/* navTo('/user/profile/profile', true)*/} - {/* }}*/} - {/* />*/} - {/* }*/} - {/* onClick={() => {*/} - {/* navTo('/user/profile/profile', true)*/} - {/* }}*/} - {/* />*/} - {/**/} - - 账号管理 - - }> - } - onClick={() => navTo('/user/profile/profile', true)} - /> - } - onClick={() => navTo('/passport/login', true)} - /> - } - onClick={onLogout} - /> - - - - - - ) -} -export default UserCell diff --git a/dict/taro/src/pages/user/components/UserFooter.tsx b/dict/taro/src/pages/user/components/UserFooter.tsx deleted file mode 100644 index 63c7dae..0000000 --- a/dict/taro/src/pages/user/components/UserFooter.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import {loginBySms} from "@/api/passport/login"; -import {useState} from "react"; -import Taro from '@tarojs/taro' -import {Popup} from '@nutui/nutui-react-taro' -import {UserParam} from "@/api/system/user/model"; -import {Button} from '@nutui/nutui-react-taro' -import {Form, Input} from '@nutui/nutui-react-taro' -import {Copyright, Version} from "@/utils/config"; -const UserFooter = () => { - const [openLoginByPhone, setOpenLoginByPhone] = useState(false) - const [clickNum, setClickNum] = useState(0) - const [FormData, setFormData] = useState( - { - phone: undefined, - password: undefined - } - ) - - const onLoginByPhone = () => { - setFormData({}) - setClickNum(clickNum + 1); - if (clickNum > 10) { - setOpenLoginByPhone(true); - } - } - - const closeLoginByPhone = () => { - setClickNum(0) - setOpenLoginByPhone(false) - } - - // 提交表单 - const submitByPhone = (values: any) => { - loginBySms({ - phone: values.phone, - code: values.code - }).then(() => { - setOpenLoginByPhone(false); - setTimeout(() => { - Taro.reLaunch({ - url: '/pages/index/index' - }) - },1000) - }) - } - - return ( - <> -
-
当前版本:{Version}
-
Copyright © { new Date().getFullYear() } {Copyright}
-
- - -
submitByPhone(values)} - footer={ -
- -
- } - > - - - - - - -
-
- - ) -} -export default UserFooter diff --git a/dict/taro/src/pages/user/user.config.ts b/dict/taro/src/pages/user/user.config.ts deleted file mode 100644 index 2bd0633..0000000 --- a/dict/taro/src/pages/user/user.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: '我的' -}) diff --git a/dict/taro/src/pages/user/user.tsx b/dict/taro/src/pages/user/user.tsx deleted file mode 100644 index 33e25da..0000000 --- a/dict/taro/src/pages/user/user.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import {useEffect} from 'react' -import UserCard from "./components/UserCard"; -import UserCell from "./components/UserCell"; - -function User() { - - useEffect(() => { - }, []); - return ( - <> -
- - -
- - ) -} - -export default User diff --git a/dict/taro/src/passport/agreement.scss b/dict/taro/src/passport/agreement.scss deleted file mode 100644 index aa0274d..0000000 --- a/dict/taro/src/passport/agreement.scss +++ /dev/null @@ -1,4 +0,0 @@ -.content{ - padding: 32px; - line-height: 2.4rem; -} diff --git a/dict/taro/src/passport/agreement.tsx b/dict/taro/src/passport/agreement.tsx deleted file mode 100644 index 620a7d1..0000000 --- a/dict/taro/src/passport/agreement.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import {useEffect, useState} from 'react' -import {CmsArticle} from "@/api/cms/cmsArticle/model" -// import ReactMarkdown from 'react-markdown'; -// 显示html富文本 -import {View, RichText} from '@tarojs/components' -import Line from "@/components/Gap"; -import {wxParse} from "@/utils/common"; -import {getCmsArticle} from "@/api/cms/cmsArticle"; -import './agreement.scss' - -function Detail() { - // 文章详情 - const [item, setItem] = useState() - const reload = () => { - getCmsArticle(10112).then(data => { - if(data){ - data.content = wxParse(data.content) - setItem(data) - } - }) - } - - useEffect(() => { - reload(); - }, []); - - return ( -
-
{item?.title}
-
{item?.createTime}
- - { - item?.editor === 1 ? - : - null - } - - -
- ) -} - -export default Detail diff --git a/dict/taro/src/passport/forget.tsx b/dict/taro/src/passport/forget.tsx deleted file mode 100644 index a5699ab..0000000 --- a/dict/taro/src/passport/forget.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import {useEffect} from "react"; -import Taro from '@tarojs/taro' -import {Input, Button} from '@nutui/nutui-react-taro' -import {copyText} from "@/utils/common"; - -const Register = () => { - const reload = () => { - Taro.hideTabBar() - } - - useEffect(() => { - reload() - }, []) - - return ( - <> -
-
请验证您的登录账号,以进行重设密码
-
- -
-
- -
-
- - -
-
- -
-
- - ) -} -export default Register diff --git a/dict/taro/src/passport/login.tsx b/dict/taro/src/passport/login.tsx deleted file mode 100644 index fa14a11..0000000 --- a/dict/taro/src/passport/login.tsx +++ /dev/null @@ -1,411 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Input, Radio, Button} from '@nutui/nutui-react-taro' -import {loginBySms, getCaptcha, sendSmsCaptcha} from '@/api/passport/login' - -const Login = () => { - const [isAgree, setIsAgree] = useState(false) - // 只保留短信登录方式 - const [loginType, setLoginType] = useState('sms') - // const [username, setUsername] = useState('') - // const [password, setPassword] = useState('') - const [phone, setPhone] = useState('') - const [smsCode, setSmsCode] = useState('') - const [captchaImg, setCaptchaImg] = useState('') - const [captchaCode, setCaptchaCode] = useState('') - const [showCaptchaModal, setShowCaptchaModal] = useState(false) - const [countdown, setCountdown] = useState(0) // 短信验证码倒计时 - const [loading, setLoading] = useState(false) - - const reload = () => { - Taro.hideTabBar() - } - - // 获取图形验证码 - const fetchCaptcha = async () => { - try { - const res = await getCaptcha() - setCaptchaImg(res.base64) - } catch (error) { - Taro.showToast({ - title: '获取验证码失败', - icon: 'error' - }) - } - } - - // 发送短信验证码 - const handleSendSmsCode = async () => { - if (!phone) { - Taro.showToast({ - title: '请输入手机号', - icon: 'error' - }) - return - } - - // 验证手机号格式 - const phoneReg = /^1[3-9]\d{9}$/ - if (!phoneReg.test(phone)) { - Taro.showToast({ - title: '手机号格式不正确', - icon: 'error' - }) - return - } - - // 显示图形验证码弹窗 - fetchCaptcha() - setShowCaptchaModal(true) - } - - // 确认发送短信验证码 - const confirmSendSmsCode = async () => { - if (!captchaCode) { - Taro.showToast({ - title: '请输入图形验证码', - icon: 'error' - }) - return - } - - try { - setLoading(true) - // 发送短信验证码时需要传入手机号和图形验证码 - await sendSmsCaptcha({ phone, code: captchaCode }) - Taro.showToast({ - title: '短信验证码已发送', - icon: 'success' - }) - setShowCaptchaModal(false) - setCaptchaCode('') - - // 开始倒计时 - setCountdown(60) - } catch (error) { - Taro.showToast({ - title: error.message || '发送失败', - icon: 'error' - }) - } finally { - setLoading(false) - } - } - - // 短信验证码登录 - const handleSmsLogin = async () => { - if (!phone) { - Taro.showToast({ - title: '请输入手机号', - icon: 'error' - }) - return - } - - // 验证手机号格式 - const phoneReg = /^1[3-9]\d{9}$/ - if (!phoneReg.test(phone)) { - Taro.showToast({ - title: '手机号格式不正确', - icon: 'error' - }) - return - } - - if (!smsCode) { - Taro.showToast({ - title: '请输入短信验证码', - icon: 'error' - }) - return - } - - try { - setLoading(true) - // 短信登录时传入手机号和短信验证码 - const res = await loginBySms({ phone, code: smsCode }) - - console.log(res,'.......') - Taro.showToast({ - title: '登录成功', - icon: 'success' - }) - - // 跳转到首页 - setTimeout(() => { - Taro.switchTab({ url: '/pages/index/index' }) - }, 1500) - } catch (error) { - Taro.showToast({ - title: error.message || '登录失败', - icon: 'error' - }) - } finally { - setLoading(false) - } - } - - // 登录处理 - const onLogin = async () => { - if (!isAgree) { - Taro.showToast({ - title: '请先同意服务协议', - icon: 'error' - }) - return - } - - handleSmsLogin() - } - - // 倒计时处理 - useEffect(() => { - let timer: any - if (countdown > 0) { - timer = setTimeout(() => { - setCountdown(countdown - 1) - }, 1000) - } - return () => clearTimeout(timer) - }, [countdown]) - - useEffect(() => { - reload() - }, []) - - return ( - <> -
-
管理员登录
- - {/* 登录方式切换 - 隐藏账号登录 */} -
-
setLoginType('account')} - > - 账号登录 -
-
setLoginType('sms')} - > - 短信登录 -
-
- - {/* 短信验证码登录 - 始终显示 */} -
-
- setPhone(val)} - style={{ - backgroundColor: '#ffffff', - borderRadius: '8px', - width: '100%', - padding: '10px' - }} - /> -
-
-
- setSmsCode(val)} - style={{ - flex: 1, - border: 'none', - padding: '10px' - }} - /> - -
-
-
- -
- -
- -
- setIsAgree(!isAgree)} - /> - setIsAgree(!isAgree)}>勾选表示您已阅读并同意 - Taro.navigateTo({url: '/passport/agreement'})} - style={{color: '#1890ff'}} - > - 《服务协议及隐私政策》 - -
-
- - {/* 图形验证码弹窗 */} - {showCaptchaModal && ( -
-
-
请输入图形验证码
-
- {captchaImg && ( - 验证码 - )} -
- setCaptchaCode(val)} - style={{ - marginBottom: '15px' - }} - /> -
- - -
-
-
- )} - - ) -} - -export default Login diff --git a/dict/taro/src/passport/register.tsx b/dict/taro/src/passport/register.tsx deleted file mode 100644 index 553e0e0..0000000 --- a/dict/taro/src/passport/register.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Input, Radio, Button} from '@nutui/nutui-react-taro' - -const Register = () => { - const [isAgree, setIsAgree] = useState(false) - const reload = () => { - Taro.hideTabBar() - } - - useEffect(() => { - reload() - }, []) - - return ( - <> -
-
免费试用14天,快速上手独立站
-
建站、选品、营销、支付、物流,全部搞定
-
- WebSoft为您提供独立站的解决方案,提供专业、高效、安全的运营服务。 -
-
- -
-
- -
-
- -
-
- -
-
- setIsAgree(!isAgree)}> - setIsAgree(!isAgree)}>勾选表示您已阅读并同意 - Taro.navigateTo({url: '/passport/agreement'})} className={'text-blue-600'}>《服务协议及隐私政策》 -
-
- - - ) -} -export default Register diff --git a/dict/taro/src/passport/setting.tsx b/dict/taro/src/passport/setting.tsx deleted file mode 100644 index cdb3561..0000000 --- a/dict/taro/src/passport/setting.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Input, Button,Form} from '@nutui/nutui-react-taro' - -const Setting = () => { - const [FormData, setFormData] = useState( - { - domain: undefined - } - ) - - // 提交表单 - const submitSucceed = (values: any) => { - if(values.domain){ - Taro.setStorageSync('ServerUrl',values.domain) - setFormData({ - domain: values.domain - }) - Taro.showToast({ - title: '保存成功', - icon: 'success' - }); - setTimeout(() => { - Taro.navigateBack() - },500) - } - } - - const submitFailed = (error: any) => { - console.log(error, 'err...') - // Taro.showToast({ title: error[0].message, icon: 'error' }) - } - const reload = () => { - Taro.hideTabBar() - if (Taro.getStorageSync('ServerUrl')) { - setFormData({ - domain: Taro.getStorageSync('ServerUrl') - }) - } - } - - useEffect(() => { - reload() - }, []) - - return ( - <> -
submitSucceed(values)} - onFinishFailed={(errors) => submitFailed(errors)} - footer={ -
- -
- } - > -
-
服务域名
- - - -
-
- - ) -} -export default Setting diff --git a/dict/taro/src/passport/sms-login.config.ts b/dict/taro/src/passport/sms-login.config.ts deleted file mode 100644 index ae5d2c3..0000000 --- a/dict/taro/src/passport/sms-login.config.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default definePageConfig({ - navigationBarTitleText: '验证码登录', - navigationBarTextStyle: 'black' -}) diff --git a/dict/taro/src/passport/sms-login.tsx b/dict/taro/src/passport/sms-login.tsx deleted file mode 100644 index 62da43d..0000000 --- a/dict/taro/src/passport/sms-login.tsx +++ /dev/null @@ -1,204 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Input, Button} from '@nutui/nutui-react-taro' -import {loginBySms, sendSmsCaptcha} from "@/api/passport/login"; -import {LoginParam} from "@/api/passport/login/model"; - -const SmsLogin = () => { - const [loading, setLoading] = useState(false) - const [sendingCode, setSendingCode] = useState(false) - const [countdown, setCountdown] = useState(0) - const [formData, setFormData] = useState({ - phone: '', - code: '' - }) - - const reload = () => { - Taro.hideTabBar() - } - - useEffect(() => { - reload() - }, []) - - // 倒计时效果 - useEffect(() => { - let timer: NodeJS.Timeout - if (countdown > 0) { - timer = setTimeout(() => { - setCountdown(countdown - 1) - }, 1000) - } - return () => { - if (timer) clearTimeout(timer) - } - }, [countdown]) - - // 验证手机号格式 - const validatePhone = (phone: string): boolean => { - const phoneRegex = /^1[3-9]\d{9}$/ - return phoneRegex.test(phone) - } - - // 发送短信验证码 - const handleSendCode = async () => { - if (!formData.phone) { - Taro.showToast({ - title: '请输入手机号码', - icon: 'none' - }) - return - } - - if (!validatePhone(formData.phone)) { - Taro.showToast({ - title: '请输入正确的手机号码', - icon: 'none' - }) - return - } - - if (sendingCode || countdown > 0) { - return - } - - try { - setSendingCode(true) - await sendSmsCaptcha({ phone: formData.phone }) - - Taro.showToast({ - title: '验证码已发送', - icon: 'success' - }) - - // 开始60秒倒计时 - setCountdown(60) - } catch (error: any) { - Taro.showToast({ - title: error.message || '发送失败', - icon: 'error' - }) - } finally { - setSendingCode(false) - } - } - - // 处理登录 - const handleLogin = async () => { - // 防止重复提交 - if (loading) { - return - } - - // 表单验证 - if (!formData.phone) { - Taro.showToast({ - title: '请输入手机号码', - icon: 'none' - }) - return - } - - if (!validatePhone(formData.phone)) { - Taro.showToast({ - title: '请输入正确的手机号码', - icon: 'none' - }) - return - } - - if (!formData.code) { - Taro.showToast({ - title: '请输入验证码', - icon: 'none' - }) - return - } - - if (formData.code.length !== 6) { - Taro.showToast({ - title: '请输入6位验证码', - icon: 'none' - }) - return - } - - try { - setLoading(true) - - await loginBySms({ - phone: formData.phone, - code: formData.code - }) - - Taro.showToast({ - title: '登录成功', - icon: 'success' - }) - - // 延迟跳转到首页 - setTimeout(() => { - Taro.reLaunch({ - url: '/pages/index/index' - }) - }, 1500) - - } catch (error: any) { - Taro.showToast({ - title: error.message || '登录失败', - icon: 'error' - }) - } finally { - setLoading(false) - } - } - - return ( - <> -
-
- setFormData({...formData, phone: value})} - style={{backgroundColor: '#ffffff', borderRadius: '8px'}} - /> -
-
- setFormData({...formData, code: value})} - style={{ backgroundColor: '#ffffff', borderRadius: '8px'}} - /> - -
-
- -
-
- - ) -} -export default SmsLogin diff --git a/dict/taro/src/passport/wxLogin.tsx b/dict/taro/src/passport/wxLogin.tsx deleted file mode 100644 index f64c88e..0000000 --- a/dict/taro/src/passport/wxLogin.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import {useEffect, useState} from "react"; -import Taro from '@tarojs/taro' -import {Radio, Button} from '@nutui/nutui-react-taro' -import {createWxLoginHandler} from '@/utils/wxLogin' -import {TenantId} from "@/utils/config"; - -const Login = () => { - const [isAgree, setIsAgree] = useState(false) - - const reload = () => { - Taro.hideTabBar() - }; - - const showAuthModal = () => { - Taro.showModal({ - title: '授权提示', - content: '需要获取您的用户信息', - confirmText: '去授权', - cancelText: '取消', - success: (res) => { - if (res.confirm) { - // 用户点击确认,打开授权设置页面 - openSetting(); - } - } - }); - }; - - const openSetting = () => { - // Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。 - Taro.openSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户授权成功,可以获取用户信息 - reload(); - } else { - // 用户拒绝授权,提示授权失败 - Taro.showToast({ - title: '授权失败', - icon: 'none' - }); - } - } - }); - }; - - // 创建微信登录处理函数 - const handleGetPhoneNumber = createWxLoginHandler({ - onSuccess: (user) => { - console.log('登录成功:', user); - // 可以在这里添加额外的成功处理逻辑 - }, - onError: (error) => { - console.error('登录失败:', error); - }, - showToast: true, - navigateBack: true, - tenantId: TenantId - }); - - - useEffect(() => { - reload() - // Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。 - Taro.getSetting({ - success: (res) => { - if (res.authSetting['scope.userInfo']) { - // 用户已经授权过,可以直接获取用户信息 - console.log('用户已经授权过,可以直接获取用户信息') - reload(); - } else { - // 用户未授权,需要弹出授权窗口 - console.log('用户未授权,需要弹出授权窗口') - showAuthModal(); - } - } - }); - }, []); - - return ( - <> -
-
快捷登录
- - <> -
- -
- - -
- setIsAgree(!isAgree)}> - setIsAgree(!isAgree)}>勾选表示您已阅读并同意 Taro.navigateTo({url: '/passport/agreement'})} - className={'text-purple-700'}>《服务协议及隐私政策》 -
-
- - ) -} -export default Login diff --git a/dict/taro/src/utils/common.ts b/dict/taro/src/utils/common.ts deleted file mode 100644 index de7e170..0000000 --- a/dict/taro/src/utils/common.ts +++ /dev/null @@ -1,62 +0,0 @@ -import Taro from '@tarojs/taro' - -export default function navTo(url: string, isLogin = false) { - if (isLogin) { - if (!Taro.getStorageSync('access_token')) { - return false; - } - } - Taro.navigateTo({ - url: url - }) -} - - -// 转base64 -export function fileToBase64(filePath) { - return new Promise((resolve) => { - let fileManager = Taro.getFileSystemManager(); - fileManager.readFile({ - filePath, - encoding: 'base64', - success: (e: any) => { - resolve(`data:image/jpg;base64,${e.data}`); - } - }); - }); -}; - -/** - * 转义微信富文本图片样式 - * @param htmlText - */ -export function wxParse(htmlText) { - // Replace tags with max-width and height styles - htmlText = htmlText.replace(/\ { - const [key, value] = pair.split('=') - if (key && value) { - switch (key) { - case 'inviter': - params.inviter = decodeURIComponent(value) - break - case 'source': - params.source = decodeURIComponent(value) - break - case 't': - params.t = decodeURIComponent(value) - break - } - } - }) - - if (params.inviter) { - return params - } - } - - // 从 query 参数中解析邀请信息(处理首页分享链接) - if (options.query) { - const query = options.query - if (query.inviter) { - return { - inviter: query.inviter, - source: query.source || 'share', - t: query.t - } - } - - // 兼容旧版本 - if (query.referrer) { - return { - inviter: query.referrer, - source: 'link' - } - } - } - - return null - } catch (error) { - console.error('解析邀请参数失败:', error) - return null - } -} - -/** - * 保存邀请信息到本地存储 - */ -export function saveInviteParams(params: InviteParams) { - try { - const saveData = { - ...params, - timestamp: Date.now() - } - - Taro.setStorageSync('invite_params', saveData) - } catch (error) { - console.error('保存邀请参数失败:', error) - } -} - -/** - * 获取本地存储的邀请信息 - */ -export function getStoredInviteParams(): InviteParams | null { - try { - const stored = Taro.getStorageSync('invite_params') - - if (stored && stored.inviter) { - // 检查是否过期(24小时) - const now = Date.now() - const expireTime = 24 * 60 * 60 * 1000 // 24小时 - - if (now - stored.timestamp < expireTime) { - return { - inviter: stored.inviter, - source: stored.source || 'unknown', - t: stored.t - } - } else { - // 过期则清除 - clearInviteParams() - } - } - return null - } catch (error) { - console.error('获取邀请参数失败:', error) - return null - } -} - -/** - * 清除本地存储的邀请信息 - */ -export function clearInviteParams() { - try { - Taro.removeStorageSync('invite_params') - } catch (error) { - console.error('清除邀请参数失败:', error) - } -} - -/** - * 处理邀请关系建立 - */ -export async function handleInviteRelation(userId: number): Promise { - try { - const inviteParams = getStoredInviteParams() - if (!inviteParams || !inviteParams.inviter) { - return false - } - - const inviterId = parseInt(inviteParams.inviter) - if (isNaN(inviterId) || inviterId === userId) { - // 邀请人ID无效或自己邀请自己 - clearInviteParams() - return false - } - - // 防重复检查:检查是否已经处理过这个邀请关系 - const relationKey = `invite_relation_${inviterId}_${userId}` - const existingRelation = Taro.getStorageSync(relationKey) - - if (existingRelation) { - clearInviteParams() // 清除邀请参数 - return true // 返回true表示关系已存在 - } - - // 设置API调用超时 - const timeoutPromise = new Promise((_, reject) => - setTimeout(() => reject(new Error('API调用超时')), 5000) - ); - - // 使用新的绑定推荐关系接口 - const apiPromise = bindRefereeRelation({ - dealerId: inviterId, - userId: userId, - source: inviteParams.source || 'qrcode', - scene: inviteParams.source === 'qrcode' ? `uid_${inviterId}` : `inviter=${inviterId}&source=${inviteParams.source}&t=${inviteParams.t}` - }); - - // 等待API调用完成或超时 - await Promise.race([apiPromise, timeoutPromise]); - - // 标记邀请关系已处理(设置过期时间为7天) - Taro.setStorageSync(relationKey, { - inviterId, - userId, - timestamp: Date.now(), - source: inviteParams.source || 'qrcode' - }) - - // 清除本地存储的邀请参数 - clearInviteParams() - - return true - } catch (error) { - console.error('建立邀请关系失败:', error) - - // 如果是网络错误或超时,不清除邀请参数,允许稍后重试 - const errorMessage = error instanceof Error ? error.message : String(error) - if (errorMessage.includes('超时') || errorMessage.includes('网络')) { - console.log('网络问题,保留邀请参数供稍后重试') - return false - } - - // 其他错误(如业务逻辑错误),清除邀请参数 - clearInviteParams() - return false - } -} - -/** - * 检查是否有待处理的邀请 - */ -export function hasPendingInvite(): boolean { - const params = getStoredInviteParams() - return !!(params && params.inviter) -} - -/** - * 获取邀请来源的显示名称 - */ -export function getSourceDisplayName(source: string): string { - const sourceMap: Record = { - 'qrcode': '小程序码', - 'link': '分享链接', - 'share': '好友分享', - 'poster': '海报分享', - 'unknown': '未知来源' - } - - return sourceMap[source] || source -} - -/** - * 验证邀请码格式 - */ -export function validateInviteCode(scene: string): boolean { - try { - if (!scene) return false - - // 检查是否包含必要的参数 - const hasInviter = scene.includes('inviter=') - const hasSource = scene.includes('source=') - - return hasInviter && hasSource - } catch (error) { - return false - } -} - -/** - * 生成邀请场景值 - */ -export function generateInviteScene(inviterId: number, source: string): string { - const timestamp = Date.now() - return `inviter=${inviterId}&source=${source}&t=${timestamp}` -} - -/** - * 统计邀请来源 - */ -export function trackInviteSource(source: string, inviterId?: number) { - try { - // 记录邀请来源统计 - const trackData = { - source, - inviterId, - timestamp: Date.now(), - userAgent: Taro.getSystemInfoSync() - } - - // 可以发送到统计服务 - console.log('邀请来源统计:', trackData) - - // 暂存到本地,后续可批量上报 - const existingTracks = Taro.getStorageSync('invite_tracks') || [] - existingTracks.push(trackData) - - // 只保留最近100条记录 - if (existingTracks.length > 100) { - existingTracks.splice(0, existingTracks.length - 100) - } - - Taro.setStorageSync('invite_tracks', existingTracks) - } catch (error) { - console.error('统计邀请来源失败:', error) - } -} - -/** - * 调试工具:打印所有邀请相关的存储信息 - */ -export function debugInviteInfo() { - try { - console.log('=== 邀请参数调试信息 ===') - - // 获取启动参数 - const launchOptions = Taro.getLaunchOptionsSync() - console.log('启动参数:', JSON.stringify(launchOptions, null, 2)) - - // 获取存储的邀请参数 - const storedParams = Taro.getStorageSync('invite_params') - console.log('存储的邀请参数:', JSON.stringify(storedParams, null, 2)) - - // 获取用户信息 - const userId = Taro.getStorageSync('UserId') - const userInfo = Taro.getStorageSync('userInfo') - console.log('用户ID:', userId) - console.log('用户信息:', JSON.stringify(userInfo, null, 2)) - - // 获取邀请统计 - const inviteTracks = Taro.getStorageSync('invite_tracks') - console.log('邀请统计:', JSON.stringify(inviteTracks, null, 2)) - - console.log('=== 调试信息结束 ===') - - return { - launchOptions, - storedParams, - userId, - userInfo, - inviteTracks - } - } catch (error) { - console.error('获取调试信息失败:', error) - return null - } -} - -/** - * 检查并处理当前用户的邀请关系 - * 用于在用户登录后立即检查是否需要建立邀请关系 - */ -export async function checkAndHandleInviteRelation(): Promise { - try { - // 清理过期的防重记录 - cleanExpiredInviteRelations() - - // 获取当前用户信息 - const userInfo = Taro.getStorageSync('userInfo') - const userId = Taro.getStorageSync('UserId') - - const finalUserId = userId || userInfo?.userId - - if (!finalUserId) { - console.log('用户未登录,无法处理邀请关系') - return false - } - - console.log('使用用户ID处理邀请关系:', finalUserId) - - // 设置整体超时保护 - const timeoutPromise = new Promise((_, reject) => - setTimeout(() => reject(new Error('邀请关系处理整体超时')), 6000) - ); - - const handlePromise = handleInviteRelation(parseInt(finalUserId)); - - return await Promise.race([handlePromise, timeoutPromise]); - } catch (error) { - console.error('检查邀请关系失败:', error) - - // 记录失败次数,避免无限重试 - const failKey = 'invite_handle_fail_count' - const failCount = Taro.getStorageSync(failKey) || 0 - - if (failCount >= 3) { - console.log('邀请关系处理失败次数过多,清除邀请参数') - clearInviteParams() - Taro.removeStorageSync(failKey) - } else { - Taro.setStorageSync(failKey, failCount + 1) - } - - return false - } -} - -/** - * 手动触发邀请关系建立 - * 用于在特定页面或时机手动建立邀请关系 - */ -export async function manualHandleInviteRelation(userId: number): Promise { - try { - console.log('手动触发邀请关系建立,用户ID:', userId) - - const inviteParams = getStoredInviteParams() - if (!inviteParams || !inviteParams.inviter) { - console.log('没有待处理的邀请参数') - return false - } - - const result = await handleInviteRelation(userId) - - if (result) { - // 显示成功提示 - Taro.showModal({ - title: '邀请成功', - content: '您已成功加入邀请人的团队!', - showCancel: false, - confirmText: '知道了' - }) - } - - return result - } catch (error) { - console.error('手动处理邀请关系失败:', error) - return false - } -} - -/** - * 清理过期的邀请关系防重记录 - */ -export function cleanExpiredInviteRelations() { - try { - const keys = Taro.getStorageInfoSync().keys - const expireTime = 7 * 24 * 60 * 60 * 1000 // 7天 - const now = Date.now() - - keys.forEach(key => { - if (key.startsWith('invite_relation_')) { - try { - const data = Taro.getStorageSync(key) - if (data && data.timestamp && (now - data.timestamp > expireTime)) { - Taro.removeStorageSync(key) - } - } catch (error) { - // 如果读取失败,直接删除 - Taro.removeStorageSync(key) - } - } - }) - } catch (error) { - console.error('清理过期邀请关系记录失败:', error) - } -} - -/** - * 直接绑定推荐关系 - * 用于直接调用绑定推荐关系接口 - */ -export async function bindReferee(refereeId: number, userId?: number, source: string = 'qrcode'): Promise { - try { - // 如果没有传入userId,尝试从本地存储获取 - let targetUserId = userId - if (!targetUserId) { - const userInfo = Taro.getStorageSync('userInfo') - if (userInfo && userInfo.userId) { - targetUserId = userInfo.userId - } else { - throw new Error('无法获取用户ID') - } - } - - // 防止自己推荐自己 - if (refereeId === targetUserId) { - throw new Error('不能推荐自己') - } - - await bindRefereeRelation({ - dealerId: refereeId, - userId: targetUserId, - source: source, - scene: source === 'qrcode' ? `uid_${refereeId}` : undefined - }) - - return true - } catch (error: any) { - console.error('绑定推荐关系失败:', error) - return false - } -} diff --git a/dict/taro/src/utils/jsonUtils.ts b/dict/taro/src/utils/jsonUtils.ts deleted file mode 100644 index 8983ad0..0000000 --- a/dict/taro/src/utils/jsonUtils.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * 判断字符串是否为有效的JSON格式 - * @param str 要检测的字符串 - * @returns boolean - */ -export function isValidJSON(str: string): boolean { - if (typeof str !== 'string' || str.trim() === '') { - return false; - } - - try { - JSON.parse(str); - return true; - } catch (error) { - return false; - } -} - -/** - * 安全解析JSON,失败时返回默认值 - * @param str JSON字符串 - * @param defaultValue 默认值 - * @returns 解析结果或默认值 - */ -export function safeJSONParse(str: string, defaultValue: T): T { - try { - return JSON.parse(str); - } catch (error) { - return defaultValue; - } -} \ No newline at end of file diff --git a/dict/taro/src/utils/request.ts b/dict/taro/src/utils/request.ts deleted file mode 100644 index af6703d..0000000 --- a/dict/taro/src/utils/request.ts +++ /dev/null @@ -1,89 +0,0 @@ -import Taro from '@tarojs/taro' -import {BaseUrl, TenantId} from "@/utils/config"; - -let baseUrl = BaseUrl - -if(process.env.NODE_ENV === 'development'){ - baseUrl = 'http://localhost:9200/api' -} -export function request(options:any) { - const token = Taro.getStorageSync('access_token'); - const header = { - 'Content-Type': 'application/json', - 'TenantId': Taro.getStorageSync('TenantId') || TenantId - } - if(token){ - header['Authorization'] = token; - } - // 发起网络请求 - return new Promise((resolve, reject) => { - Taro.request({ - url: options.url, - method: options.method || 'GET', - data: options.data || {}, - header: options.header || header, - success: (res) => { - resolve(res.data) - }, - fail: (err) => { - reject(err) - } - // 可以添加其他Taro.request支持的参数 - }) - }); -} - -export function get(url: string,data?: any) { - if(url.indexOf('http') === -1){ - url = baseUrl + url - } - if(data){ - url = url + '?' + Object.keys(data).map(key => { - return key + '=' + data[key] - }).join('&') - } - return request({ - url, - method: 'GET' - }) -} -export function post(url:string, data?:any) { - if(url.indexOf('http') === -1){ - url = baseUrl + url - } - return request({ - url, - method: 'POST', - data - }) -} - -export function put(url:string, data?:any) { - if(url.indexOf('http') === -1){ - url = baseUrl + url - } - return request({ - url, - method: 'PUT', - data - }) -} - -export function del(url:string,data?: any) { - if(url.indexOf('http') === -1){ - url = baseUrl + url - } - return request({ - url, - method: 'DELETE', - data - }) -} - -export default { - request, - get, - post, - put, - del -} diff --git a/dict/taro/src/utils/server.ts b/dict/taro/src/utils/server.ts deleted file mode 100644 index ebaadcd..0000000 --- a/dict/taro/src/utils/server.ts +++ /dev/null @@ -1,20 +0,0 @@ -import Taro from '@tarojs/taro'; -import {User} from "@/api/system/user/model"; - -// 模版套餐ID -export const TEMPLATE_ID = 10398; -// 服务接口 -export const SERVER_API_URL = 'https://server.websoft.top/api'; -// export const SERVER_API_URL = 'http://127.0.0.1:8000/api'; -/** - * 保存用户信息到本地存储 - * @param token - * @param user - */ -export function saveStorageByLoginUser(token: string, user: User) { - Taro.setStorageSync('TenantId',user.tenantId) - Taro.setStorageSync('access_token', token) - Taro.setStorageSync('UserId', user.userId) - Taro.setStorageSync('Phone', user.phone) - Taro.setStorageSync('User', user) -} diff --git a/dict/taro/src/utils/time.ts b/dict/taro/src/utils/time.ts deleted file mode 100644 index e255130..0000000 --- a/dict/taro/src/utils/time.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * 获取当前时间 - */ -export function formatCurrentDate() { - // 创建一个Date对象,表示当前日期和时间 - const now = new Date(); - - // 获取年、月、日,并进行必要的格式化 - const day = String(now.getDate()).padStart(2, '0'); // 获取日,并确保是两位数 - const month = String(now.getMonth() + 1).padStart(2, '0'); // 获取月,并确保是两位数,月份是从0开始的,所以要加1 - const year = String(now.getFullYear()).slice(-2); // 获取年份的最后两位数字 - - return `${day}${month}${year}`; -} - -/** - * 获取当前时分秒 - */ -export function formatHhmmss() { - // 创建一个Date对象,表示当前日期和时间 - const now = new Date(); - // 获取当前的小时 - const hour = String(now.getHours()).padStart(2, '0'); - // 获取当前的分钟 - const minute = String(now.getMinutes()).padStart(2, '0'); - // 获取当前的秒数 - const second = String(now.getSeconds()).padStart(2, '0'); - return `${String(Number(hour) - 8).padStart(2, '0')}${minute}${second}`; -} - -/** - * 获取当前小时 - */ -export function getCurrentHour() { - const now = new Date(); - // 获取当前的小时 - const hour = String(now.getHours()).padStart(2, '0'); - return `${String(Number(hour) - 8).padStart(2, '0')}`; -} - -/** - * 获取当前日期 格式为 yyyy-mm-dd HH:mm:ss - */ -export function getCurrentDate() { -// 创建一个Date对象,自动设置为当前日期和时间 - const currentDate = new Date(); - -// 获取年份 - const year = currentDate.getFullYear(); - -// 获取月份(注意月份是从0开始计数的) - let month = currentDate.getMonth() + 1; - -// 获取日期 - let day = currentDate.getDate(); - -// 添加前导零(如果月份或日期是一位数,则添加前导零) - // @ts-ignore - month = (month < 10 ? '0' : '') + month; - // @ts-ignore - day = (day < 10 ? '0' : '') + day; - - // 获取当前小时 - const hour = currentDate.getHours(); - // 获取当前分钟 - const minute = currentDate.getMinutes(); - // 获取当前秒数 - const second = currentDate.getSeconds(); - -// 构建日期字符串 - var formattedDate = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; - -// 输出格式化的日期 - console.log(formattedDate); - return formattedDate; -} - diff --git a/dict/taro/src/utils/wxLogin.ts b/dict/taro/src/utils/wxLogin.ts deleted file mode 100644 index 3c26647..0000000 --- a/dict/taro/src/utils/wxLogin.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { wxPhoneLogin } from '@/api/passport/login'; -import Taro from '@tarojs/taro'; - -/** - * 微信登录工具类 - * 提供便捷的微信登录方法 - */ -export class WxLoginUtil { - /** - * 处理微信授权手机号登录 - * @param detail 微信授权返回的详细信息 - * @param options 登录选项 - */ - static async handleGetPhoneNumber( - detail: any, - options?: { - onSuccess?: (user: any) => void; - onError?: (error: string) => void; - showToast?: boolean; - navigateBack?: boolean; - tenantId?: number; - } - ) { - const { code, encryptedData, iv } = detail; - - if (!code) { - const errorMsg = '用户取消授权'; - if (options?.onError) { - options.onError(errorMsg); - } - if (options?.showToast !== false) { - Taro.showToast({ - title: errorMsg, - icon: 'none' - }); - } - return Promise.reject(new Error(errorMsg)); - } - - try { - return await wxPhoneLogin( - { code, encryptedData, iv }, - options - ); - } catch (error: any) { - console.error('微信登录失败:', error); - throw error; - } - } - - /** - * 简化版登录方法 - 只需要传入detail,使用默认配置 - * @param detail 微信授权返回的详细信息 - */ - static async quickLogin(detail: any) { - return this.handleGetPhoneNumber(detail, { - showToast: true, - navigateBack: true - }); - } - - /** - * 自定义成功回调的登录方法 - * @param detail 微信授权返回的详细信息 - * @param onSuccess 成功回调 - */ - static async loginWithCallback( - detail: any, - onSuccess: (user: any) => void - ) { - return this.handleGetPhoneNumber(detail, { - onSuccess, - showToast: true, - navigateBack: false - }); - } -} - -/** - * 创建微信登录处理函数的工厂方法 - * @param options 登录选项 - * @returns 返回一个可以直接用于 onGetPhoneNumber 的处理函数 - */ -export function createWxLoginHandler(options?: { - onSuccess?: (user: any) => void; - onError?: (error: string) => void; - showToast?: boolean; - navigateBack?: boolean; - tenantId?: number; -}) { - return ({ detail }: { detail: any }) => { - return WxLoginUtil.handleGetPhoneNumber(detail, options); - }; -} diff --git a/dict/taro/tailwind.config.js b/dict/taro/tailwind.config.js deleted file mode 100644 index 06cce7f..0000000 --- a/dict/taro/tailwind.config.js +++ /dev/null @@ -1,12 +0,0 @@ -// tailwind.config.js -module.exports = { - content: ['./src/**/*.{js,jsx,ts,tsx}'], - darkMode: 'media', // or 'media' or 'class' - theme: { - extend: {}, - }, - variants: { - extend: {}, - }, - plugins: [], -}; diff --git a/dict/taro/tsconfig.json b/dict/taro/tsconfig.json deleted file mode 100644 index a71efcd..0000000 --- a/dict/taro/tsconfig.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "compilerOptions": { - "target": "es2017", - "module": "commonjs", - "removeComments": false, - "preserveConstEnums": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "noImplicitAny": false, - "allowSyntheticDefaultImports": true, - "outDir": "lib", - "noUnusedLocals": true, - "noUnusedParameters": true, - "strictNullChecks": true, - "sourceMap": true, - "baseUrl": ".", - "rootDir": ".", - "jsx": "react-jsx", - "allowJs": true, - "resolveJsonModule": true, - "typeRoots": [ - "node_modules/@types" - ], - "paths": { - "@/components/*": ["./src/components/*"], - "@/utils/*": ["./src/utils/*"], - "@/assets/*": ["./src/assets/*"], - "@/api/*": ["./src/api/*"], - "@/hooks/*": ["./src/hooks/*"] - } - }, - "include": ["./src", "./types"], - "compileOnSave": false -} diff --git a/dict/taro/types/global.d.ts b/dict/taro/types/global.d.ts deleted file mode 100644 index 6788ab0..0000000 --- a/dict/taro/types/global.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/// - -declare module '*.png'; -declare module '*.gif'; -declare module '*.jpg'; -declare module '*.jpeg'; -declare module '*.svg'; -declare module '*.css'; -declare module '*.less'; -declare module '*.scss'; -declare module '*.sass'; -declare module '*.styl'; - -declare namespace NodeJS { - interface ProcessEnv { - /** NODE 内置环境变量, 会影响到最终构建生成产物 */ - NODE_ENV: 'development' | 'production', - /** 当前构建的平台 */ - TARO_ENV: 'weapp' | 'swan' | 'alipay' | 'h5' | 'rn' | 'tt' | 'quickapp' | 'qq' | 'jd' - /** - * 当前构建的小程序 appid - * @description 若不同环境有不同的小程序,可通过在 env 文件中配置环境变量`TARO_APP_ID`来方便快速切换 appid, 而不必手动去修改 dist/project.config.json 文件 - * @see https://taro-docs.jd.com/docs/next/env-mode-config#特殊环境变量-taro_app_id - */ - TARO_APP_ID: string - } -} diff --git a/dict/admin/src/api/clinic/clinicAppointment/index.ts b/output/admin/src/api/clinic/clinicAppointment/index.ts similarity index 100% rename from dict/admin/src/api/clinic/clinicAppointment/index.ts rename to output/admin/src/api/clinic/clinicAppointment/index.ts diff --git a/dict/admin/src/api/clinic/clinicAppointment/model/index.ts b/output/admin/src/api/clinic/clinicAppointment/model/index.ts similarity index 100% rename from dict/admin/src/api/clinic/clinicAppointment/model/index.ts rename to output/admin/src/api/clinic/clinicAppointment/model/index.ts diff --git a/dict/admin/src/api/clinic/clinicDoctorApply/index.ts b/output/admin/src/api/clinic/clinicDoctorApply/index.ts similarity index 100% rename from dict/admin/src/api/clinic/clinicDoctorApply/index.ts rename to output/admin/src/api/clinic/clinicDoctorApply/index.ts diff --git a/dict/admin/src/api/clinic/clinicDoctorApply/model/index.ts b/output/admin/src/api/clinic/clinicDoctorApply/model/index.ts similarity index 100% rename from dict/admin/src/api/clinic/clinicDoctorApply/model/index.ts rename to output/admin/src/api/clinic/clinicDoctorApply/model/index.ts diff --git a/dict/admin/src/api/shop/shopExpressTemplateDetail/index.ts b/output/admin/src/api/clinic/clinicDoctorMedicalRecord/index.ts similarity index 50% rename from dict/admin/src/api/shop/shopExpressTemplateDetail/index.ts rename to output/admin/src/api/clinic/clinicDoctorMedicalRecord/index.ts index 4f44544..b857e8f 100644 --- a/dict/admin/src/api/shop/shopExpressTemplateDetail/index.ts +++ b/output/admin/src/api/clinic/clinicDoctorMedicalRecord/index.ts @@ -1,13 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { ShopExpressTemplateDetail, ShopExpressTemplateDetailParam } from './model'; +import type { ClinicDoctorMedicalRecord, ClinicDoctorMedicalRecordParam } from './model'; /** - * 分页查询运费模板 + * 分页查询医疗记录 */ -export async function pageShopExpressTemplateDetail(params: ShopExpressTemplateDetailParam) { - const res = await request.get>>( - '/shop/shop-express-template-detail/page', +export async function pageClinicDoctorMedicalRecord(params: ClinicDoctorMedicalRecordParam) { + const res = await request.get>>( + '/clinic/clinic-doctor-medical-record/page', { params } @@ -19,11 +19,11 @@ export async function pageShopExpressTemplateDetail(params: ShopExpressTemplateD } /** - * 查询运费模板列表 + * 查询医疗记录列表 */ -export async function listShopExpressTemplateDetail(params?: ShopExpressTemplateDetailParam) { - const res = await request.get>( - '/shop/shop-express-template-detail', +export async function listClinicDoctorMedicalRecord(params?: ClinicDoctorMedicalRecordParam) { + const res = await request.get>( + '/clinic/clinic-doctor-medical-record', { params } @@ -35,11 +35,11 @@ export async function listShopExpressTemplateDetail(params?: ShopExpressTemplate } /** - * 添加运费模板 + * 添加医疗记录 */ -export async function addShopExpressTemplateDetail(data: ShopExpressTemplateDetail) { +export async function addClinicDoctorMedicalRecord(data: ClinicDoctorMedicalRecord) { const res = await request.post>( - '/shop/shop-express-template-detail', + '/clinic/clinic-doctor-medical-record', data ); if (res.data.code === 0) { @@ -49,11 +49,11 @@ export async function addShopExpressTemplateDetail(data: ShopExpressTemplateDeta } /** - * 修改运费模板 + * 修改医疗记录 */ -export async function updateShopExpressTemplateDetail(data: ShopExpressTemplateDetail) { +export async function updateClinicDoctorMedicalRecord(data: ClinicDoctorMedicalRecord) { const res = await request.put>( - '/shop/shop-express-template-detail', + '/clinic/clinic-doctor-medical-record', data ); if (res.data.code === 0) { @@ -63,11 +63,11 @@ export async function updateShopExpressTemplateDetail(data: ShopExpressTemplateD } /** - * 删除运费模板 + * 删除医疗记录 */ -export async function removeShopExpressTemplateDetail(id?: number) { +export async function removeClinicDoctorMedicalRecord(id?: number) { const res = await request.delete>( - '/shop/shop-express-template-detail/' + id + '/clinic/clinic-doctor-medical-record/' + id ); if (res.data.code === 0) { return res.data.message; @@ -76,11 +76,11 @@ export async function removeShopExpressTemplateDetail(id?: number) { } /** - * 批量删除运费模板 + * 批量删除医疗记录 */ -export async function removeBatchShopExpressTemplateDetail(data: (number | undefined)[]) { +export async function removeBatchClinicDoctorMedicalRecord(data: (number | undefined)[]) { const res = await request.delete>( - '/shop/shop-express-template-detail/batch', + '/clinic/clinic-doctor-medical-record/batch', { data } @@ -92,11 +92,11 @@ export async function removeBatchShopExpressTemplateDetail(data: (number | undef } /** - * 根据id查询运费模板 + * 根据id查询医疗记录 */ -export async function getShopExpressTemplateDetail(id: number) { - const res = await request.get>( - '/shop/shop-express-template-detail/' + id +export async function getClinicDoctorMedicalRecord(id: number) { + const res = await request.get>( + '/clinic/clinic-doctor-medical-record/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/dict/admin/src/api/shop/shopDealerOrder/model/index.ts b/output/admin/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts similarity index 59% rename from dict/admin/src/api/shop/shopDealerOrder/model/index.ts rename to output/admin/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts index 7d21c37..92d6ea4 100644 --- a/dict/admin/src/api/shop/shopDealerOrder/model/index.ts +++ b/output/admin/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts @@ -1,25 +1,15 @@ import type { PageParam } from '@/api'; /** - * 分销商订单记录表 + * 医疗记录 */ -export interface ShopDealerOrder { +export interface ClinicDoctorMedicalRecord { // 主键ID id?: number; // 买家用户ID userId?: number; - // 买家用户昵称 - nickname?: string; // 订单编号 orderNo?: string; - // 订单总金额(不含运费) - orderPrice?: string; - // 结算金额 - settledPrice?: string; - // 换算成度 - degreePrice?: string; - // 支付金额 - payPrice?: string; // 分销商用户id(一级) firstUserId?: number; // 分销商用户id(二级) @@ -32,25 +22,27 @@ export interface ShopDealerOrder { secondMoney?: string; // 分销佣金(三级) thirdMoney?: string; - // 一级分销商昵称 - firstNickname?: string; - // 二级分销商昵称 - secondNickname?: string; - // 三级分销商昵称 - thirdNickname?: string; - // 分销比例 - rate?: number; - // 商品单价 + // 单价 price?: string; - // 订单月份 + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 month?: string; // 订单是否失效(0未失效 1已失效) isInvalid?: number; // 佣金结算(0未结算 1已结算) isSettled?: number; // 结算时间 - settleTime?: number; - // 订单备注 + settleTime?: string; + // 备注 comments?: string; // 商城ID tenantId?: number; @@ -61,15 +53,9 @@ export interface ShopDealerOrder { } /** - * 分销商订单记录表搜索条件 + * 医疗记录搜索条件 */ -export interface ShopDealerOrderParam extends PageParam { +export interface ClinicDoctorMedicalRecordParam extends PageParam { id?: number; - orderNo?: string; - productName?: string; - userId?: number; - isInvalid?: number; - isSettled?: number; - myOrder?: number; keywords?: string; } diff --git a/dict/admin/src/api/bszx/bszxClass/index.ts b/output/admin/src/api/clinic/clinicDoctorUser/index.ts similarity index 52% rename from dict/admin/src/api/bszx/bszxClass/index.ts rename to output/admin/src/api/clinic/clinicDoctorUser/index.ts index 24eed7b..275286f 100644 --- a/dict/admin/src/api/bszx/bszxClass/index.ts +++ b/output/admin/src/api/clinic/clinicDoctorUser/index.ts @@ -1,14 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { BszxClass, BszxClassParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; +import type { ClinicDoctorUser, ClinicDoctorUserParam } from './model'; /** - * 分页查询百色中学-班级 + * 分页查询分销商用户记录表 */ -export async function pageBszxClass(params: BszxClassParam) { - const res = await request.get>>( - MODULES_API_URL + '/bszx/bszx-class/page', +export async function pageClinicDoctorUser(params: ClinicDoctorUserParam) { + const res = await request.get>>( + '/clinic/clinic-doctor-user/page', { params } @@ -20,11 +19,11 @@ export async function pageBszxClass(params: BszxClassParam) { } /** - * 查询百色中学-班级列表 + * 查询分销商用户记录表列表 */ -export async function listBszxClass(params?: BszxClassParam) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-class', +export async function listClinicDoctorUser(params?: ClinicDoctorUserParam) { + const res = await request.get>( + '/clinic/clinic-doctor-user', { params } @@ -36,11 +35,11 @@ export async function listBszxClass(params?: BszxClassParam) { } /** - * 添加百色中学-班级 + * 添加分销商用户记录表 */ -export async function addBszxClass(data: BszxClass) { +export async function addClinicDoctorUser(data: ClinicDoctorUser) { const res = await request.post>( - MODULES_API_URL + '/bszx/bszx-class', + '/clinic/clinic-doctor-user', data ); if (res.data.code === 0) { @@ -50,11 +49,11 @@ export async function addBszxClass(data: BszxClass) { } /** - * 修改百色中学-班级 + * 修改分销商用户记录表 */ -export async function updateBszxClass(data: BszxClass) { +export async function updateClinicDoctorUser(data: ClinicDoctorUser) { const res = await request.put>( - MODULES_API_URL + '/bszx/bszx-class', + '/clinic/clinic-doctor-user', data ); if (res.data.code === 0) { @@ -64,11 +63,11 @@ export async function updateBszxClass(data: BszxClass) { } /** - * 删除百色中学-班级 + * 删除分销商用户记录表 */ -export async function removeBszxClass(id?: number) { +export async function removeClinicDoctorUser(id?: number) { const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-class/' + id + '/clinic/clinic-doctor-user/' + id ); if (res.data.code === 0) { return res.data.message; @@ -77,11 +76,11 @@ export async function removeBszxClass(id?: number) { } /** - * 批量删除百色中学-班级 + * 批量删除分销商用户记录表 */ -export async function removeBatchBszxClass(data: (number | undefined)[]) { +export async function removeBatchClinicDoctorUser(data: (number | undefined)[]) { const res = await request.delete>( - MODULES_API_URL + '/bszx/bszx-class/batch', + '/clinic/clinic-doctor-user/batch', { data } @@ -93,11 +92,11 @@ export async function removeBatchBszxClass(data: (number | undefined)[]) { } /** - * 根据id查询百色中学-班级 + * 根据id查询分销商用户记录表 */ -export async function getBszxClass(id: number) { - const res = await request.get>( - MODULES_API_URL + '/bszx/bszx-class/' + id +export async function getClinicDoctorUser(id: number) { + const res = await request.get>( + '/clinic/clinic-doctor-user/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/dict/admin/src/api/shop/shopDealerUser/model/index.ts b/output/admin/src/api/clinic/clinicDoctorUser/model/index.ts similarity index 74% rename from dict/admin/src/api/shop/shopDealerUser/model/index.ts rename to output/admin/src/api/clinic/clinicDoctorUser/model/index.ts index d443ef2..af9744a 100644 --- a/dict/admin/src/api/shop/shopDealerUser/model/index.ts +++ b/output/admin/src/api/clinic/clinicDoctorUser/model/index.ts @@ -3,9 +3,11 @@ import type { PageParam } from '@/api'; /** * 分销商用户记录表 */ -export interface ShopDealerUser { +export interface ClinicDoctorUser { // 主键ID id?: number; + // 类型 0经销商 1企业 2集团 + type?: number; // 自增ID userId?: number; // 姓名 @@ -20,7 +22,7 @@ export interface ShopDealerUser { freezeMoney?: string; // 累积提现佣金 totalMoney?: string; - // 佣金比例 + // 收益基数 rate?: string; // 单价 price?: string; @@ -34,27 +36,24 @@ export interface ShopDealerUser { thirdNum?: number; // 专属二维码 qrcode?: string; + // 备注 + comments?: string; + // 排序号 + sortNumber?: number; // 是否删除 isDelete?: number; // 租户id tenantId?: number; // 创建时间 - createTime?: string | Date; + createTime?: string; // 修改时间 - updateTime?: string | Date; - // 扩展字段,用于编辑表单 - shopDealerUserId?: number; - shopDealerUserName?: string; - status?: number; - comments?: string; - sortNumber?: number; - image?: string; + updateTime?: string; } /** * 分销商用户记录表搜索条件 */ -export interface ShopDealerUserParam extends PageParam { +export interface ClinicDoctorUserParam extends PageParam { id?: number; keywords?: string; } diff --git a/dict/admin/src/api/hjm/hjmCourses/index.ts b/output/admin/src/api/clinic/clinicMedicalHistory/index.ts similarity index 52% rename from dict/admin/src/api/hjm/hjmCourses/index.ts rename to output/admin/src/api/clinic/clinicMedicalHistory/index.ts index 75a519d..84fbd8b 100644 --- a/dict/admin/src/api/hjm/hjmCourses/index.ts +++ b/output/admin/src/api/clinic/clinicMedicalHistory/index.ts @@ -1,14 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { HjmCourses, HjmCoursesParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; +import type { ClinicMedicalHistory, ClinicMedicalHistoryParam } from './model'; /** - * 分页查询课程 + * 分页查询病例 */ -export async function pageHjmCourses(params: HjmCoursesParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-courses/page', +export async function pageClinicMedicalHistory(params: ClinicMedicalHistoryParam) { + const res = await request.get>>( + '/clinic/clinic-medical-history/page', { params } @@ -20,11 +19,11 @@ export async function pageHjmCourses(params: HjmCoursesParam) { } /** - * 查询课程列表 + * 查询病例列表 */ -export async function listHjmCourses(params?: HjmCoursesParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-courses', +export async function listClinicMedicalHistory(params?: ClinicMedicalHistoryParam) { + const res = await request.get>( + '/clinic/clinic-medical-history', { params } @@ -36,11 +35,11 @@ export async function listHjmCourses(params?: HjmCoursesParam) { } /** - * 添加课程 + * 添加病例 */ -export async function addHjmCourses(data: HjmCourses) { +export async function addClinicMedicalHistory(data: ClinicMedicalHistory) { const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-courses', + '/clinic/clinic-medical-history', data ); if (res.data.code === 0) { @@ -50,11 +49,11 @@ export async function addHjmCourses(data: HjmCourses) { } /** - * 修改课程 + * 修改病例 */ -export async function updateHjmCourses(data: HjmCourses) { +export async function updateClinicMedicalHistory(data: ClinicMedicalHistory) { const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-courses', + '/clinic/clinic-medical-history', data ); if (res.data.code === 0) { @@ -64,11 +63,11 @@ export async function updateHjmCourses(data: HjmCourses) { } /** - * 删除课程 + * 删除病例 */ -export async function removeHjmCourses(id?: number) { +export async function removeClinicMedicalHistory(id?: number) { const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-courses/' + id + '/clinic/clinic-medical-history/' + id ); if (res.data.code === 0) { return res.data.message; @@ -77,11 +76,11 @@ export async function removeHjmCourses(id?: number) { } /** - * 批量删除课程 + * 批量删除病例 */ -export async function removeBatchHjmCourses(data: (number | undefined)[]) { +export async function removeBatchClinicMedicalHistory(data: (number | undefined)[]) { const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-courses/batch', + '/clinic/clinic-medical-history/batch', { data } @@ -93,11 +92,11 @@ export async function removeBatchHjmCourses(data: (number | undefined)[]) { } /** - * 根据id查询课程 + * 根据id查询病例 */ -export async function getHjmCourses(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-courses/' + id +export async function getClinicMedicalHistory(id: number) { + const res = await request.get>( + '/clinic/clinic-medical-history/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicMedicalHistory/model/index.ts b/output/admin/src/api/clinic/clinicMedicalHistory/model/index.ts new file mode 100644 index 0000000..2d603a4 --- /dev/null +++ b/output/admin/src/api/clinic/clinicMedicalHistory/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api'; + +/** + * 病例 + */ +export interface ClinicMedicalHistory { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 病例搜索条件 + */ +export interface ClinicMedicalHistoryParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/api/shop/shopUserCoupon/index.ts b/output/admin/src/api/clinic/clinicMedicine/index.ts similarity index 55% rename from dict/admin/src/api/shop/shopUserCoupon/index.ts rename to output/admin/src/api/clinic/clinicMedicine/index.ts index 936d260..fbda8cf 100644 --- a/dict/admin/src/api/shop/shopUserCoupon/index.ts +++ b/output/admin/src/api/clinic/clinicMedicine/index.ts @@ -1,13 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { ShopUserCoupon, ShopUserCouponParam } from './model'; +import type { ClinicMedicine, ClinicMedicineParam } from './model'; /** - * 分页查询用户优惠券 + * 分页查询药品库 */ -export async function pageShopUserCoupon(params: ShopUserCouponParam) { - const res = await request.get>>( - '/shop/shop-user-coupon/page', +export async function pageClinicMedicine(params: ClinicMedicineParam) { + const res = await request.get>>( + '/clinic/clinic-medicine/page', { params } @@ -19,11 +19,11 @@ export async function pageShopUserCoupon(params: ShopUserCouponParam) { } /** - * 查询用户优惠券列表 + * 查询药品库列表 */ -export async function listShopUserCoupon(params?: ShopUserCouponParam) { - const res = await request.get>( - '/shop/shop-user-coupon', +export async function listClinicMedicine(params?: ClinicMedicineParam) { + const res = await request.get>( + '/clinic/clinic-medicine', { params } @@ -35,11 +35,11 @@ export async function listShopUserCoupon(params?: ShopUserCouponParam) { } /** - * 添加用户优惠券 + * 添加药品库 */ -export async function addShopUserCoupon(data: ShopUserCoupon) { +export async function addClinicMedicine(data: ClinicMedicine) { const res = await request.post>( - '/shop/shop-user-coupon', + '/clinic/clinic-medicine', data ); if (res.data.code === 0) { @@ -49,11 +49,11 @@ export async function addShopUserCoupon(data: ShopUserCoupon) { } /** - * 修改用户优惠券 + * 修改药品库 */ -export async function updateShopUserCoupon(data: ShopUserCoupon) { +export async function updateClinicMedicine(data: ClinicMedicine) { const res = await request.put>( - '/shop/shop-user-coupon', + '/clinic/clinic-medicine', data ); if (res.data.code === 0) { @@ -63,11 +63,11 @@ export async function updateShopUserCoupon(data: ShopUserCoupon) { } /** - * 删除用户优惠券 + * 删除药品库 */ -export async function removeShopUserCoupon(id?: number) { +export async function removeClinicMedicine(id?: number) { const res = await request.delete>( - '/shop/shop-user-coupon/' + id + '/clinic/clinic-medicine/' + id ); if (res.data.code === 0) { return res.data.message; @@ -76,11 +76,11 @@ export async function removeShopUserCoupon(id?: number) { } /** - * 批量删除用户优惠券 + * 批量删除药品库 */ -export async function removeBatchShopUserCoupon(data: (number | undefined)[]) { +export async function removeBatchClinicMedicine(data: (number | undefined)[]) { const res = await request.delete>( - '/shop/shop-user-coupon/batch', + '/clinic/clinic-medicine/batch', { data } @@ -92,11 +92,11 @@ export async function removeBatchShopUserCoupon(data: (number | undefined)[]) { } /** - * 根据id查询用户优惠券 + * 根据id查询药品库 */ -export async function getShopUserCoupon(id: number) { - const res = await request.get>( - '/shop/shop-user-coupon/' + id +export async function getClinicMedicine(id: number) { + const res = await request.get>( + '/clinic/clinic-medicine/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicMedicine/model/index.ts b/output/admin/src/api/clinic/clinicMedicine/model/index.ts new file mode 100644 index 0000000..e5e0858 --- /dev/null +++ b/output/admin/src/api/clinic/clinicMedicine/model/index.ts @@ -0,0 +1,43 @@ +import type { PageParam } from '@/api'; + +/** + * 药品库 + */ +export interface ClinicMedicine { + // 主键ID + id?: number; + // 药名 + name?: string; + // 拼音 + pinyin?: string; + // 分类(如“清热解毒”、“补气养血”) + category?: string; + // 规格(如“饮片”、“颗粒”) + specification?: string; + // 单位(如“克”、“袋”) + unit?: string; + // 描述 + content?: string; + // 单价 + pricePerUnit?: string; + // 是否活跃 + isActive?: number; + // 买家用户ID + userId?: number; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 药品库搜索条件 + */ +export interface ClinicMedicineParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/api/shop/shopExpressTemplate/index.ts b/output/admin/src/api/clinic/clinicMedicineInout/index.ts similarity index 53% rename from dict/admin/src/api/shop/shopExpressTemplate/index.ts rename to output/admin/src/api/clinic/clinicMedicineInout/index.ts index 51e351f..222930b 100644 --- a/dict/admin/src/api/shop/shopExpressTemplate/index.ts +++ b/output/admin/src/api/clinic/clinicMedicineInout/index.ts @@ -1,13 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { ShopExpressTemplate, ShopExpressTemplateParam } from './model'; +import type { ClinicMedicineInout, ClinicMedicineInoutParam } from './model'; /** - * 分页查询运费模板 + * 分页查询出入库 */ -export async function pageShopExpressTemplate(params: ShopExpressTemplateParam) { - const res = await request.get>>( - '/shop/shop-express-template/page', +export async function pageClinicMedicineInout(params: ClinicMedicineInoutParam) { + const res = await request.get>>( + '/clinic/clinic-medicine-inout/page', { params } @@ -19,11 +19,11 @@ export async function pageShopExpressTemplate(params: ShopExpressTemplateParam) } /** - * 查询运费模板列表 + * 查询出入库列表 */ -export async function listShopExpressTemplate(params?: ShopExpressTemplateParam) { - const res = await request.get>( - '/shop/shop-express-template', +export async function listClinicMedicineInout(params?: ClinicMedicineInoutParam) { + const res = await request.get>( + '/clinic/clinic-medicine-inout', { params } @@ -35,11 +35,11 @@ export async function listShopExpressTemplate(params?: ShopExpressTemplateParam) } /** - * 添加运费模板 + * 添加出入库 */ -export async function addShopExpressTemplate(data: ShopExpressTemplate) { +export async function addClinicMedicineInout(data: ClinicMedicineInout) { const res = await request.post>( - '/shop/shop-express-template', + '/clinic/clinic-medicine-inout', data ); if (res.data.code === 0) { @@ -49,11 +49,11 @@ export async function addShopExpressTemplate(data: ShopExpressTemplate) { } /** - * 修改运费模板 + * 修改出入库 */ -export async function updateShopExpressTemplate(data: ShopExpressTemplate) { +export async function updateClinicMedicineInout(data: ClinicMedicineInout) { const res = await request.put>( - '/shop/shop-express-template', + '/clinic/clinic-medicine-inout', data ); if (res.data.code === 0) { @@ -63,11 +63,11 @@ export async function updateShopExpressTemplate(data: ShopExpressTemplate) { } /** - * 删除运费模板 + * 删除出入库 */ -export async function removeShopExpressTemplate(id?: number) { +export async function removeClinicMedicineInout(id?: number) { const res = await request.delete>( - '/shop/shop-express-template/' + id + '/clinic/clinic-medicine-inout/' + id ); if (res.data.code === 0) { return res.data.message; @@ -76,11 +76,11 @@ export async function removeShopExpressTemplate(id?: number) { } /** - * 批量删除运费模板 + * 批量删除出入库 */ -export async function removeBatchShopExpressTemplate(data: (number | undefined)[]) { +export async function removeBatchClinicMedicineInout(data: (number | undefined)[]) { const res = await request.delete>( - '/shop/shop-express-template/batch', + '/clinic/clinic-medicine-inout/batch', { data } @@ -92,11 +92,11 @@ export async function removeBatchShopExpressTemplate(data: (number | undefined)[ } /** - * 根据id查询运费模板 + * 根据id查询出入库 */ -export async function getShopExpressTemplate(id: number) { - const res = await request.get>( - '/shop/shop-express-template/' + id +export async function getClinicMedicineInout(id: number) { + const res = await request.get>( + '/clinic/clinic-medicine-inout/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicMedicineInout/model/index.ts b/output/admin/src/api/clinic/clinicMedicineInout/model/index.ts new file mode 100644 index 0000000..6593539 --- /dev/null +++ b/output/admin/src/api/clinic/clinicMedicineInout/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api'; + +/** + * 出入库 + */ +export interface ClinicMedicineInout { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 出入库搜索条件 + */ +export interface ClinicMedicineInoutParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/api/cms/cmsModel/index.ts b/output/admin/src/api/clinic/clinicMedicineStock/index.ts similarity index 52% rename from dict/admin/src/api/cms/cmsModel/index.ts rename to output/admin/src/api/clinic/clinicMedicineStock/index.ts index 934e776..ff60b0f 100644 --- a/dict/admin/src/api/cms/cmsModel/index.ts +++ b/output/admin/src/api/clinic/clinicMedicineStock/index.ts @@ -1,14 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { CmsModel, CmsModelParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; +import type { ClinicMedicineStock, ClinicMedicineStockParam } from './model'; /** - * 分页查询模型 + * 分页查询药品库存 */ -export async function pageCmsModel(params: CmsModelParam) { - const res = await request.get>>( - MODULES_API_URL + '/cms/cms-model/page', +export async function pageClinicMedicineStock(params: ClinicMedicineStockParam) { + const res = await request.get>>( + '/clinic/clinic-medicine-stock/page', { params } @@ -20,11 +19,11 @@ export async function pageCmsModel(params: CmsModelParam) { } /** - * 查询模型列表 + * 查询药品库存列表 */ -export async function listCmsModel(params?: CmsModelParam) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-model', +export async function listClinicMedicineStock(params?: ClinicMedicineStockParam) { + const res = await request.get>( + '/clinic/clinic-medicine-stock', { params } @@ -36,11 +35,11 @@ export async function listCmsModel(params?: CmsModelParam) { } /** - * 添加模型 + * 添加药品库存 */ -export async function addCmsModel(data: CmsModel) { +export async function addClinicMedicineStock(data: ClinicMedicineStock) { const res = await request.post>( - MODULES_API_URL + '/cms/cms-model', + '/clinic/clinic-medicine-stock', data ); if (res.data.code === 0) { @@ -50,11 +49,11 @@ export async function addCmsModel(data: CmsModel) { } /** - * 修改模型 + * 修改药品库存 */ -export async function updateCmsModel(data: CmsModel) { +export async function updateClinicMedicineStock(data: ClinicMedicineStock) { const res = await request.put>( - MODULES_API_URL + '/cms/cms-model', + '/clinic/clinic-medicine-stock', data ); if (res.data.code === 0) { @@ -64,11 +63,11 @@ export async function updateCmsModel(data: CmsModel) { } /** - * 删除模型 + * 删除药品库存 */ -export async function removeCmsModel(id?: number) { +export async function removeClinicMedicineStock(id?: number) { const res = await request.delete>( - MODULES_API_URL + '/cms/cms-model/' + id + '/clinic/clinic-medicine-stock/' + id ); if (res.data.code === 0) { return res.data.message; @@ -77,11 +76,11 @@ export async function removeCmsModel(id?: number) { } /** - * 批量删除模型 + * 批量删除药品库存 */ -export async function removeBatchCmsModel(data: (number | undefined)[]) { +export async function removeBatchClinicMedicineStock(data: (number | undefined)[]) { const res = await request.delete>( - MODULES_API_URL + '/cms/cms-model/batch', + '/clinic/clinic-medicine-stock/batch', { data } @@ -93,11 +92,11 @@ export async function removeBatchCmsModel(data: (number | undefined)[]) { } /** - * 根据id查询模型 + * 根据id查询药品库存 */ -export async function getCmsModel(id: number) { - const res = await request.get>( - MODULES_API_URL + '/cms/cms-model/' + id +export async function getClinicMedicineStock(id: number) { + const res = await request.get>( + '/clinic/clinic-medicine-stock/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicMedicineStock/model/index.ts b/output/admin/src/api/clinic/clinicMedicineStock/model/index.ts new file mode 100644 index 0000000..15719ac --- /dev/null +++ b/output/admin/src/api/clinic/clinicMedicineStock/model/index.ts @@ -0,0 +1,35 @@ +import type { PageParam } from '@/api'; + +/** + * 药品库存 + */ +export interface ClinicMedicineStock { + // 主键ID + id?: number; + // 药品 + medicineId?: number; + // 库存数量 + stockQuantity?: number; + // 最小库存预警 + minStockLevel?: number; + // 上次更新时间 + lastUpdated?: string; + // 买家用户ID + userId?: number; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 药品库存搜索条件 + */ +export interface ClinicMedicineStockParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/api/shop/shopExpress/index.ts b/output/admin/src/api/clinic/clinicOrder/index.ts similarity index 56% rename from dict/admin/src/api/shop/shopExpress/index.ts rename to output/admin/src/api/clinic/clinicOrder/index.ts index 6a154a7..0ef3d39 100644 --- a/dict/admin/src/api/shop/shopExpress/index.ts +++ b/output/admin/src/api/clinic/clinicOrder/index.ts @@ -1,13 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { ShopExpress, ShopExpressParam } from './model'; +import type { ClinicOrder, ClinicOrderParam } from './model'; /** - * 分页查询物流公司 + * 分页查询处方订单 */ -export async function pageShopExpress(params: ShopExpressParam) { - const res = await request.get>>( - '/shop/shop-express/page', +export async function pageClinicOrder(params: ClinicOrderParam) { + const res = await request.get>>( + '/clinic/clinic-order/page', { params } @@ -19,11 +19,11 @@ export async function pageShopExpress(params: ShopExpressParam) { } /** - * 查询物流公司列表 + * 查询处方订单列表 */ -export async function listShopExpress(params?: ShopExpressParam) { - const res = await request.get>( - '/shop/shop-express', +export async function listClinicOrder(params?: ClinicOrderParam) { + const res = await request.get>( + '/clinic/clinic-order', { params } @@ -35,11 +35,11 @@ export async function listShopExpress(params?: ShopExpressParam) { } /** - * 添加物流公司 + * 添加处方订单 */ -export async function addShopExpress(data: ShopExpress) { +export async function addClinicOrder(data: ClinicOrder) { const res = await request.post>( - '/shop/shop-express', + '/clinic/clinic-order', data ); if (res.data.code === 0) { @@ -49,11 +49,11 @@ export async function addShopExpress(data: ShopExpress) { } /** - * 修改物流公司 + * 修改处方订单 */ -export async function updateShopExpress(data: ShopExpress) { +export async function updateClinicOrder(data: ClinicOrder) { const res = await request.put>( - '/shop/shop-express', + '/clinic/clinic-order', data ); if (res.data.code === 0) { @@ -63,11 +63,11 @@ export async function updateShopExpress(data: ShopExpress) { } /** - * 删除物流公司 + * 删除处方订单 */ -export async function removeShopExpress(id?: number) { +export async function removeClinicOrder(id?: number) { const res = await request.delete>( - '/shop/shop-express/' + id + '/clinic/clinic-order/' + id ); if (res.data.code === 0) { return res.data.message; @@ -76,11 +76,11 @@ export async function removeShopExpress(id?: number) { } /** - * 批量删除物流公司 + * 批量删除处方订单 */ -export async function removeBatchShopExpress(data: (number | undefined)[]) { +export async function removeBatchClinicOrder(data: (number | undefined)[]) { const res = await request.delete>( - '/shop/shop-express/batch', + '/clinic/clinic-order/batch', { data } @@ -92,11 +92,11 @@ export async function removeBatchShopExpress(data: (number | undefined)[]) { } /** - * 根据id查询物流公司 + * 根据id查询处方订单 */ -export async function getShopExpress(id: number) { - const res = await request.get>( - '/shop/shop-express/' + id +export async function getClinicOrder(id: number) { + const res = await request.get>( + '/clinic/clinic-order/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/dict/admin/src/api/shop/shopOrder/model/index.ts b/output/admin/src/api/clinic/clinicOrder/model/index.ts similarity index 73% rename from dict/admin/src/api/shop/shopOrder/model/index.ts rename to output/admin/src/api/clinic/clinicOrder/model/index.ts index d0255bc..ddeb3cb 100644 --- a/dict/admin/src/api/shop/shopOrder/model/index.ts +++ b/output/admin/src/api/clinic/clinicOrder/model/index.ts @@ -1,21 +1,22 @@ import type { PageParam } from '@/api'; -import {OrderGoods} from "@/api/system/orderGoods/model"; /** - * 订单 + * 处方订单 */ -export interface ShopOrder { +export interface ClinicOrder { // 订单号 orderId?: number; // 订单编号 orderNo?: string; // 订单类型,0商城订单 1预定订单/外卖 2会员卡 type?: number; + // 订单标题 + title?: string; // 快递/自提 deliveryType?: number; // 下单渠道,0小程序预定 1俱乐部训练场 3活动订场 channel?: number; - // 微信支付订单号 + // 微信支付交易号号 transactionId?: string; // 微信退款订单号 refundOrder?: string; @@ -35,20 +36,18 @@ export interface ShopOrder { confirmId?: number; // IC卡号 icCard?: string; - // 头像 - avatar?: string; // 真实姓名 realName?: string; - // 手机号码 - phone?: string; - // 手机号码(脱敏) - mobile?: string; + // 关联收货地址 + addressId?: number; // 收货地址 address?: string; - // + // addressLat?: string; - // + // addressLng?: string; + // 买家留言 + buyerRemarks?: string; // 自提店铺id selfTakeMerchantId?: number; // 自提店铺 @@ -71,6 +70,10 @@ export interface ShopOrder { price?: string; // 价钱,用于积分赠送 money?: string; + // 取消时间 + cancelTime?: string; + // 取消原因 + cancelReason?: string; // 退款金额 refundMoney?: string; // 教练价格 @@ -79,20 +82,30 @@ export interface ShopOrder { totalNum?: number; // 教练id coachId?: number; + // 商品ID + formId?: number; // 支付的用户id payUserId?: number; - // 0余额支付, 1微信支付,102微信Native,2会员卡支付,3支付宝,4现金,5POS机,6VIP月卡,7VIP年卡,8VIP次卡,9IC月卡,10IC年卡,11IC次卡,12免费,13VIP充值卡,14IC充值卡,15积分支付,16VIP季卡,17IC季卡,18代付 + // 0余额支付,1微信支付,2支付宝支付,3银联支付,4现金支付,5POS机支付,6免费,7积分支付 payType?: number; - // 代付支付方式,0余额支付, 1微信支付,102微信Native,2会员卡支付,3支付宝,4现金,5POS机,6VIP月卡,7VIP年卡,8VIP次卡,9IC月卡,10IC年卡,11IC次卡,12免费,13VIP充值卡,14IC充值卡,15积分支付,16VIP季卡,17IC季卡,18代付 + // 微信支付子类型:JSAPI小程序支付,NATIVE扫码支付 + wechatPayType?: string; + // 0余额支付,1微信支付,2支付宝支付,3银联支付,4现金支付,5POS机支付,6免费,7积分支付 friendPayType?: number; // 0未付款,1已付款 - payStatus?: number; + payStatus?: string; // 0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 orderStatus?: number; // 发货状态(10未发货 20已发货 30部分发货) deliveryStatus?: number; + // 无需发货备注 + deliveryNote?: string; // 发货时间 deliveryTime?: string; + // 评价状态(0未评价 1已评价) + evaluateStatus?: number; + // 评价时间 + evaluateTime?: string; // 优惠类型:0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡,5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡 couponType?: number; // 优惠说明 @@ -106,9 +119,11 @@ export interface ShopOrder { // 预约详情开始时间数组 startTime?: string; // 是否已开具发票:0未开发票,1已开发票,2不能开具发票 - isInvoice?: number; + isInvoice?: string; // 发票流水号 invoiceNo?: string; + // 商家留言 + merchantRemarks?: string; // 支付时间 payTime?: string; // 退款时间 @@ -117,16 +132,16 @@ export interface ShopOrder { refundApplyTime?: string; // 过期时间 expirationTime?: string; + // 自提码 + selfTakeCode?: string; + // 是否已收到赠品 + hasTakeGift?: string; // 对账情况:0=未对账;1=已对账;3=已对账,金额对不上;4=未查询到该订单 checkBill?: number; // 订单是否已结算(0未结算 1已结算) isSettled?: number; // 系统版本号 0当前版本 value=其他版本 version?: number; - // 买家备注 - buyerRemarks: undefined, - // 商家备注 - merchantRemarks: undefined, // 用户id userId?: number; // 备注 @@ -141,29 +156,12 @@ export interface ShopOrder { updateTime?: string; // 创建时间 createTime?: string; - // 自提码 - selfTakeCode?: string; - // 是否已收到赠品 - hasTakeGift?: string; - // 订单商品 - orderGoods?: OrderGoods[]; } /** - * 订单搜索条件 + * 处方订单搜索条件 */ -export interface ShopOrderParam extends PageParam { +export interface ClinicOrderParam extends PageParam { orderId?: number; - orderNo?: string; - type?: number; - phone?: string; - userId?: number; - payUserId?: number; - nickname?: string; - payStatus?: number; - orderStatus?: number; - payType?: number; - isInvoice?: boolean; - statusFilter?: number; keywords?: string; } diff --git a/dict/admin/src/api/hjm/hjmQuestions/index.ts b/output/admin/src/api/clinic/clinicPatientUser/index.ts similarity index 53% rename from dict/admin/src/api/hjm/hjmQuestions/index.ts rename to output/admin/src/api/clinic/clinicPatientUser/index.ts index e877dd9..1b40e28 100644 --- a/dict/admin/src/api/hjm/hjmQuestions/index.ts +++ b/output/admin/src/api/clinic/clinicPatientUser/index.ts @@ -1,14 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { HjmQuestions, HjmQuestionsParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; +import type { ClinicPatientUser, ClinicPatientUserParam } from './model'; /** - * 分页查询题目 + * 分页查询患者 */ -export async function pageHjmQuestions(params: HjmQuestionsParam) { - const res = await request.get>>( - MODULES_API_URL + '/hjm/hjm-questions/page', +export async function pageClinicPatientUser(params: ClinicPatientUserParam) { + const res = await request.get>>( + '/clinic/clinic-patient-user/page', { params } @@ -20,11 +19,11 @@ export async function pageHjmQuestions(params: HjmQuestionsParam) { } /** - * 查询题目列表 + * 查询患者列表 */ -export async function listHjmQuestions(params?: HjmQuestionsParam) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-questions', +export async function listClinicPatientUser(params?: ClinicPatientUserParam) { + const res = await request.get>( + '/clinic/clinic-patient-user', { params } @@ -36,11 +35,11 @@ export async function listHjmQuestions(params?: HjmQuestionsParam) { } /** - * 添加题目 + * 添加患者 */ -export async function addHjmQuestions(data: HjmQuestions) { +export async function addClinicPatientUser(data: ClinicPatientUser) { const res = await request.post>( - MODULES_API_URL + '/hjm/hjm-questions', + '/clinic/clinic-patient-user', data ); if (res.data.code === 0) { @@ -50,11 +49,11 @@ export async function addHjmQuestions(data: HjmQuestions) { } /** - * 修改题目 + * 修改患者 */ -export async function updateHjmQuestions(data: HjmQuestions) { +export async function updateClinicPatientUser(data: ClinicPatientUser) { const res = await request.put>( - MODULES_API_URL + '/hjm/hjm-questions', + '/clinic/clinic-patient-user', data ); if (res.data.code === 0) { @@ -64,11 +63,11 @@ export async function updateHjmQuestions(data: HjmQuestions) { } /** - * 删除题目 + * 删除患者 */ -export async function removeHjmQuestions(id?: number) { +export async function removeClinicPatientUser(id?: number) { const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-questions/' + id + '/clinic/clinic-patient-user/' + id ); if (res.data.code === 0) { return res.data.message; @@ -77,11 +76,11 @@ export async function removeHjmQuestions(id?: number) { } /** - * 批量删除题目 + * 批量删除患者 */ -export async function removeBatchHjmQuestions(data: (number | undefined)[]) { +export async function removeBatchClinicPatientUser(data: (number | undefined)[]) { const res = await request.delete>( - MODULES_API_URL + '/hjm/hjm-questions/batch', + '/clinic/clinic-patient-user/batch', { data } @@ -93,11 +92,11 @@ export async function removeBatchHjmQuestions(data: (number | undefined)[]) { } /** - * 根据id查询题目 + * 根据id查询患者 */ -export async function getHjmQuestions(id: number) { - const res = await request.get>( - MODULES_API_URL + '/hjm/hjm-questions/' + id +export async function getClinicPatientUser(id: number) { + const res = await request.get>( + '/clinic/clinic-patient-user/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicPatientUser/model/index.ts b/output/admin/src/api/clinic/clinicPatientUser/model/index.ts new file mode 100644 index 0000000..b416faf --- /dev/null +++ b/output/admin/src/api/clinic/clinicPatientUser/model/index.ts @@ -0,0 +1,59 @@ +import type { PageParam } from '@/api'; + +/** + * 患者 + */ +export interface ClinicPatientUser { + // 主键ID + id?: number; + // 类型 0经销商 1企业 2集团 + type?: number; + // 自增ID + userId?: number; + // 姓名 + realName?: string; + // 手机号 + mobile?: string; + // 支付密码 + payPassword?: string; + // 当前可提现佣金 + money?: string; + // 已冻结佣金 + freezeMoney?: string; + // 累积提现佣金 + totalMoney?: string; + // 收益基数 + rate?: string; + // 单价 + price?: string; + // 推荐人用户ID + refereeId?: number; + // 成员数量(一级) + firstNum?: number; + // 成员数量(二级) + secondNum?: number; + // 成员数量(三级) + thirdNum?: number; + // 专属二维码 + qrcode?: string; + // 备注 + comments?: string; + // 排序号 + sortNumber?: number; + // 是否删除 + isDelete?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 患者搜索条件 + */ +export interface ClinicPatientUserParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/api/shop/shopCommissionRole/index.ts b/output/admin/src/api/clinic/clinicPrescription/index.ts similarity index 53% rename from dict/admin/src/api/shop/shopCommissionRole/index.ts rename to output/admin/src/api/clinic/clinicPrescription/index.ts index 60db05d..b5afe13 100644 --- a/dict/admin/src/api/shop/shopCommissionRole/index.ts +++ b/output/admin/src/api/clinic/clinicPrescription/index.ts @@ -1,13 +1,14 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { ShopCommissionRole, ShopCommissionRoleParam } from './model'; +import type { ClinicPrescription, ClinicPrescriptionParam } from './model'; /** - * 分页查询分红角色 + * 分页查询处方主表 + */ -export async function pageShopCommissionRole(params: ShopCommissionRoleParam) { - const res = await request.get>>( - '/shop/shop-commission-role/page', +export async function pageClinicPrescription(params: ClinicPrescriptionParam) { + const res = await request.get>>( + '/clinic/clinic-prescription/page', { params } @@ -19,11 +20,12 @@ export async function pageShopCommissionRole(params: ShopCommissionRoleParam) { } /** - * 查询分红角色列表 + * 查询处方主表 +列表 */ -export async function listShopCommissionRole(params?: ShopCommissionRoleParam) { - const res = await request.get>( - '/shop/shop-commission-role', +export async function listClinicPrescription(params?: ClinicPrescriptionParam) { + const res = await request.get>( + '/clinic/clinic-prescription', { params } @@ -35,11 +37,12 @@ export async function listShopCommissionRole(params?: ShopCommissionRoleParam) { } /** - * 添加分红角色 + * 添加处方主表 + */ -export async function addShopCommissionRole(data: ShopCommissionRole) { +export async function addClinicPrescription(data: ClinicPrescription) { const res = await request.post>( - '/shop/shop-commission-role', + '/clinic/clinic-prescription', data ); if (res.data.code === 0) { @@ -49,11 +52,12 @@ export async function addShopCommissionRole(data: ShopCommissionRole) { } /** - * 修改分红角色 + * 修改处方主表 + */ -export async function updateShopCommissionRole(data: ShopCommissionRole) { +export async function updateClinicPrescription(data: ClinicPrescription) { const res = await request.put>( - '/shop/shop-commission-role', + '/clinic/clinic-prescription', data ); if (res.data.code === 0) { @@ -63,11 +67,12 @@ export async function updateShopCommissionRole(data: ShopCommissionRole) { } /** - * 删除分红角色 + * 删除处方主表 + */ -export async function removeShopCommissionRole(id?: number) { +export async function removeClinicPrescription(id?: number) { const res = await request.delete>( - '/shop/shop-commission-role/' + id + '/clinic/clinic-prescription/' + id ); if (res.data.code === 0) { return res.data.message; @@ -76,11 +81,12 @@ export async function removeShopCommissionRole(id?: number) { } /** - * 批量删除分红角色 + * 批量删除处方主表 + */ -export async function removeBatchShopCommissionRole(data: (number | undefined)[]) { +export async function removeBatchClinicPrescription(data: (number | undefined)[]) { const res = await request.delete>( - '/shop/shop-commission-role/batch', + '/clinic/clinic-prescription/batch', { data } @@ -92,11 +98,12 @@ export async function removeBatchShopCommissionRole(data: (number | undefined)[] } /** - * 根据id查询分红角色 + * 根据id查询处方主表 + */ -export async function getShopCommissionRole(id: number) { - const res = await request.get>( - '/shop/shop-commission-role/' + id +export async function getClinicPrescription(id: number) { + const res = await request.get>( + '/clinic/clinic-prescription/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicPrescription/model/index.ts b/output/admin/src/api/clinic/clinicPrescription/model/index.ts new file mode 100644 index 0000000..4307d5d --- /dev/null +++ b/output/admin/src/api/clinic/clinicPrescription/model/index.ts @@ -0,0 +1,57 @@ +import type { PageParam } from '@/api'; + +/** + * 处方主表 + + */ +export interface ClinicPrescription { + // 主键ID + id?: number; + // 患者 + userId?: number; + // 医生 + doctorId?: number; + // 订单编号 + orderNo?: string; + // 关联就诊表 + visitRecordId?: number; + // 处方类型 0中药 1西药 + prescriptionType?: number; + // 诊断结果 + diagnosis?: string; + // 治疗方案 + treatmentPlan?: string; + // 煎药说明 + decoctionInstructions?: string; + // 订单总金额 + orderPrice?: string; + // 单价 + price?: string; + // 实付金额 + payPrice?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 状态, 0正常, 1已完成,2已支付,3已取消 + status?: number; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 处方主表 +搜索条件 + */ +export interface ClinicPrescriptionParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/admin/src/api/clinic/clinicPrescriptionItem/index.ts b/output/admin/src/api/clinic/clinicPrescriptionItem/index.ts new file mode 100644 index 0000000..5be1bf9 --- /dev/null +++ b/output/admin/src/api/clinic/clinicPrescriptionItem/index.ts @@ -0,0 +1,112 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { ClinicPrescriptionItem, ClinicPrescriptionItemParam } from './model'; + +/** + * 分页查询处方明细表 + + */ +export async function pageClinicPrescriptionItem(params: ClinicPrescriptionItemParam) { + const res = await request.get>>( + '/clinic/clinic-prescription-item/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询处方明细表 +列表 + */ +export async function listClinicPrescriptionItem(params?: ClinicPrescriptionItemParam) { + const res = await request.get>( + '/clinic/clinic-prescription-item', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加处方明细表 + + */ +export async function addClinicPrescriptionItem(data: ClinicPrescriptionItem) { + const res = await request.post>( + '/clinic/clinic-prescription-item', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改处方明细表 + + */ +export async function updateClinicPrescriptionItem(data: ClinicPrescriptionItem) { + const res = await request.put>( + '/clinic/clinic-prescription-item', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除处方明细表 + + */ +export async function removeClinicPrescriptionItem(id?: number) { + const res = await request.delete>( + '/clinic/clinic-prescription-item/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除处方明细表 + + */ +export async function removeBatchClinicPrescriptionItem(data: (number | undefined)[]) { + const res = await request.delete>( + '/clinic/clinic-prescription-item/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询处方明细表 + + */ +export async function getClinicPrescriptionItem(id: number) { + const res = await request.get>( + '/clinic/clinic-prescription-item/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/output/admin/src/api/clinic/clinicPrescriptionItem/model/index.ts b/output/admin/src/api/clinic/clinicPrescriptionItem/model/index.ts new file mode 100644 index 0000000..95050fa --- /dev/null +++ b/output/admin/src/api/clinic/clinicPrescriptionItem/model/index.ts @@ -0,0 +1,49 @@ +import type { PageParam } from '@/api'; + +/** + * 处方明细表 + + */ +export interface ClinicPrescriptionItem { + // 自增ID + id?: number; + // 关联处方 + prescriptionId?: number; + // 订单编号 + prescriptionNo?: string; + // 关联药品 + medicineId?: number; + // 剂量(如“10g”) + dosage?: string; + // 用法频率(如“每日三次”) + usageFrequency?: string; + // 服用天数 + days?: number; + // 购买数量 + amount?: number; + // 单价 + unitPrice?: string; + // 数量 + quantity?: number; + // 排序号 + sortNumber?: number; + // 备注 + comments?: string; + // 用户id + userId?: number; + // 租户id + tenantId?: number; + // 更新时间 + updateTime?: string; + // 创建时间 + createTime?: string; +} + +/** + * 处方明细表 +搜索条件 + */ +export interface ClinicPrescriptionItemParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/api/shop/spec/index.ts b/output/admin/src/api/clinic/clinicReport/index.ts similarity index 56% rename from dict/admin/src/api/shop/spec/index.ts rename to output/admin/src/api/clinic/clinicReport/index.ts index 402722a..dbace8d 100644 --- a/dict/admin/src/api/shop/spec/index.ts +++ b/output/admin/src/api/clinic/clinicReport/index.ts @@ -1,14 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { Spec, SpecParam } from './model'; -import { MODULES_API_URL } from '@/config/setting'; +import type { ClinicReport, ClinicReportParam } from './model'; /** - * 分页查询规格 + * 分页查询报告 */ -export async function pageSpec(params: SpecParam) { - const res = await request.get>>( - MODULES_API_URL + '/shop/spec/page', +export async function pageClinicReport(params: ClinicReportParam) { + const res = await request.get>>( + '/clinic/clinic-report/page', { params } @@ -20,11 +19,11 @@ export async function pageSpec(params: SpecParam) { } /** - * 查询规格列表 + * 查询报告列表 */ -export async function listSpec(params?: SpecParam) { - const res = await request.get>( - MODULES_API_URL + '/shop/spec', +export async function listClinicReport(params?: ClinicReportParam) { + const res = await request.get>( + '/clinic/clinic-report', { params } @@ -36,11 +35,11 @@ export async function listSpec(params?: SpecParam) { } /** - * 添加规格 + * 添加报告 */ -export async function addSpec(data: Spec) { +export async function addClinicReport(data: ClinicReport) { const res = await request.post>( - MODULES_API_URL + '/shop/spec', + '/clinic/clinic-report', data ); if (res.data.code === 0) { @@ -50,11 +49,11 @@ export async function addSpec(data: Spec) { } /** - * 修改规格 + * 修改报告 */ -export async function updateSpec(data: Spec) { +export async function updateClinicReport(data: ClinicReport) { const res = await request.put>( - MODULES_API_URL + '/shop/spec', + '/clinic/clinic-report', data ); if (res.data.code === 0) { @@ -64,11 +63,11 @@ export async function updateSpec(data: Spec) { } /** - * 删除规格 + * 删除报告 */ -export async function removeSpec(id?: number) { +export async function removeClinicReport(id?: number) { const res = await request.delete>( - MODULES_API_URL + '/shop/spec/' + id + '/clinic/clinic-report/' + id ); if (res.data.code === 0) { return res.data.message; @@ -77,11 +76,11 @@ export async function removeSpec(id?: number) { } /** - * 批量删除规格 + * 批量删除报告 */ -export async function removeBatchSpec(data: (number | undefined)[]) { +export async function removeBatchClinicReport(data: (number | undefined)[]) { const res = await request.delete>( - MODULES_API_URL + '/shop/spec/batch', + '/clinic/clinic-report/batch', { data } @@ -93,11 +92,11 @@ export async function removeBatchSpec(data: (number | undefined)[]) { } /** - * 根据id查询规格 + * 根据id查询报告 */ -export async function getSpec(id: number) { - const res = await request.get>( - MODULES_API_URL + '/shop/spec/' + id +export async function getClinicReport(id: number) { + const res = await request.get>( + '/clinic/clinic-report/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/dict/admin/src/api/sdy/sdyDealerOrder/model/index.ts b/output/admin/src/api/clinic/clinicReport/model/index.ts similarity index 66% rename from dict/admin/src/api/sdy/sdyDealerOrder/model/index.ts rename to output/admin/src/api/clinic/clinicReport/model/index.ts index 0e1d60b..866c365 100644 --- a/dict/admin/src/api/sdy/sdyDealerOrder/model/index.ts +++ b/output/admin/src/api/clinic/clinicReport/model/index.ts @@ -1,17 +1,15 @@ import type { PageParam } from '@/api'; /** - * 分销商订单记录表 + * 报告 */ -export interface ShopDealerOrder { +export interface ClinicReport { // 主键ID id?: number; // 买家用户ID userId?: number; // 订单编号 orderNo?: string; - // 订单总金额(不含运费) - orderPrice?: string; // 分销商用户id(一级) firstUserId?: number; // 分销商用户id(二级) @@ -24,12 +22,28 @@ export interface ShopDealerOrder { secondMoney?: string; // 分销佣金(三级) thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; // 订单是否失效(0未失效 1已失效) isInvalid?: number; // 佣金结算(0未结算 1已结算) isSettled?: number; // 结算时间 - settleTime?: number; + settleTime?: string; + // 备注 + comments?: string; // 商城ID tenantId?: number; // 创建时间 @@ -39,15 +53,9 @@ export interface ShopDealerOrder { } /** - * 分销商订单记录表搜索条件 + * 报告搜索条件 */ -export interface ShopDealerOrderParam extends PageParam { +export interface ClinicReportParam extends PageParam { id?: number; - orderId?: number; - orderNo?: string; - productName?: string; - userId?: number; - isInvalid?: number; - isSettled?: number; keywords?: string; } diff --git a/dict/admin/src/api/system/comment/index.ts b/output/admin/src/api/clinic/clinicVisitRecord/index.ts similarity index 53% rename from dict/admin/src/api/system/comment/index.ts rename to output/admin/src/api/clinic/clinicVisitRecord/index.ts index b49f7b5..0d231df 100644 --- a/dict/admin/src/api/system/comment/index.ts +++ b/output/admin/src/api/clinic/clinicVisitRecord/index.ts @@ -1,14 +1,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { Comment, CommentParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; +import type { ClinicVisitRecord, ClinicVisitRecordParam } from './model'; /** - * 分页查询应用评论 + * 分页查询病例 */ -export async function pageComment(params: CommentParam) { - const res = await request.get>>( - SERVER_API_URL + '/system/comment/page', +export async function pageClinicVisitRecord(params: ClinicVisitRecordParam) { + const res = await request.get>>( + '/clinic/clinic-visit-record/page', { params } @@ -20,11 +19,11 @@ export async function pageComment(params: CommentParam) { } /** - * 查询应用评论列表 + * 查询病例列表 */ -export async function listComment(params?: CommentParam) { - const res = await request.get>( - SERVER_API_URL + '/system/comment', +export async function listClinicVisitRecord(params?: ClinicVisitRecordParam) { + const res = await request.get>( + '/clinic/clinic-visit-record', { params } @@ -36,11 +35,11 @@ export async function listComment(params?: CommentParam) { } /** - * 添加应用评论 + * 添加病例 */ -export async function addComment(data: Comment) { +export async function addClinicVisitRecord(data: ClinicVisitRecord) { const res = await request.post>( - SERVER_API_URL + '/system/comment', + '/clinic/clinic-visit-record', data ); if (res.data.code === 0) { @@ -50,11 +49,11 @@ export async function addComment(data: Comment) { } /** - * 修改应用评论 + * 修改病例 */ -export async function updateComment(data: Comment) { +export async function updateClinicVisitRecord(data: ClinicVisitRecord) { const res = await request.put>( - SERVER_API_URL + '/system/comment', + '/clinic/clinic-visit-record', data ); if (res.data.code === 0) { @@ -64,11 +63,11 @@ export async function updateComment(data: Comment) { } /** - * 删除应用评论 + * 删除病例 */ -export async function removeComment(id?: number) { +export async function removeClinicVisitRecord(id?: number) { const res = await request.delete>( - SERVER_API_URL + '/system/comment/' + id + '/clinic/clinic-visit-record/' + id ); if (res.data.code === 0) { return res.data.message; @@ -77,11 +76,11 @@ export async function removeComment(id?: number) { } /** - * 批量删除应用评论 + * 批量删除病例 */ -export async function removeBatchComment(data: (number | undefined)[]) { +export async function removeBatchClinicVisitRecord(data: (number | undefined)[]) { const res = await request.delete>( - SERVER_API_URL + '/system/comment/batch', + '/clinic/clinic-visit-record/batch', { data } @@ -93,11 +92,11 @@ export async function removeBatchComment(data: (number | undefined)[]) { } /** - * 根据id查询应用评论 + * 根据id查询病例 */ -export async function getComment(id: number) { - const res = await request.get>( - SERVER_API_URL + '/system/comment/' + id +export async function getClinicVisitRecord(id: number) { + const res = await request.get>( + '/clinic/clinic-visit-record/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; diff --git a/output/admin/src/api/clinic/clinicVisitRecord/model/index.ts b/output/admin/src/api/clinic/clinicVisitRecord/model/index.ts new file mode 100644 index 0000000..cdb98c2 --- /dev/null +++ b/output/admin/src/api/clinic/clinicVisitRecord/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api'; + +/** + * 病例 + */ +export interface ClinicVisitRecord { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 病例搜索条件 + */ +export interface ClinicVisitRecordParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/admin/src/views/clinic/clinicAppointment/components/clinicAppointmentEdit.vue b/output/admin/src/views/clinic/clinicAppointment/components/clinicAppointmentEdit.vue similarity index 100% rename from dict/admin/src/views/clinic/clinicAppointment/components/clinicAppointmentEdit.vue rename to output/admin/src/views/clinic/clinicAppointment/components/clinicAppointmentEdit.vue diff --git a/dict/admin/src/views/bszx/bszxBranch/components/search.vue b/output/admin/src/views/clinic/clinicAppointment/components/search.vue similarity index 100% rename from dict/admin/src/views/bszx/bszxBranch/components/search.vue rename to output/admin/src/views/clinic/clinicAppointment/components/search.vue diff --git a/dict/admin/src/views/clinic/clinicAppointment/index.vue b/output/admin/src/views/clinic/clinicAppointment/index.vue similarity index 100% rename from dict/admin/src/views/clinic/clinicAppointment/index.vue rename to output/admin/src/views/clinic/clinicAppointment/index.vue diff --git a/dict/admin/src/views/clinic/clinicDoctorApply/components/clinicDoctorApplyEdit.vue b/output/admin/src/views/clinic/clinicDoctorApply/components/clinicDoctorApplyEdit.vue similarity index 100% rename from dict/admin/src/views/clinic/clinicDoctorApply/components/clinicDoctorApplyEdit.vue rename to output/admin/src/views/clinic/clinicDoctorApply/components/clinicDoctorApplyEdit.vue diff --git a/dict/admin/src/views/clinic/clinicAppointment/components/search.vue b/output/admin/src/views/clinic/clinicDoctorApply/components/search.vue similarity index 100% rename from dict/admin/src/views/clinic/clinicAppointment/components/search.vue rename to output/admin/src/views/clinic/clinicDoctorApply/components/search.vue diff --git a/dict/admin/src/views/clinic/clinicDoctorApply/index.vue b/output/admin/src/views/clinic/clinicDoctorApply/index.vue similarity index 100% rename from dict/admin/src/views/clinic/clinicDoctorApply/index.vue rename to output/admin/src/views/clinic/clinicDoctorApply/index.vue diff --git a/dict/admin/src/views/shop/shopUserCoupon/components/shopUserCouponEdit.vue b/output/admin/src/views/clinic/clinicDoctorMedicalRecord/components/clinicDoctorMedicalRecordEdit.vue similarity index 55% rename from dict/admin/src/views/shop/shopUserCoupon/components/shopUserCouponEdit.vue rename to output/admin/src/views/clinic/clinicDoctorMedicalRecord/components/clinicDoctorMedicalRecordEdit.vue index 3eb2bc0..4d742b4 100644 --- a/dict/admin/src/views/shop/shopUserCoupon/components/shopUserCouponEdit.vue +++ b/output/admin/src/views/clinic/clinicDoctorMedicalRecord/components/clinicDoctorMedicalRecordEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑用户优惠券' : '添加用户优惠券'" + :title="isUpdate ? '编辑医疗记录' : '添加医疗记录'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,136 +19,138 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 显示 - 隐藏 - - - - - - - - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -166,8 +168,8 @@ import { ref, reactive, watch } from 'vue'; import { Form, message } from 'ant-design-vue'; import { assignObject, uuid } from 'ele-admin-pro'; - import { addShopUserCoupon, updateShopUserCoupon } from '@/api/shop/shopUserCoupon'; - import { ShopUserCoupon } from '@/api/shop/shopUserCoupon/model'; + import { addClinicDoctorMedicalRecord, updateClinicDoctorMedicalRecord } from '@/api/clinic/clinicDoctorMedicalRecord'; + import { ClinicDoctorMedicalRecord } from '@/api/clinic/clinicDoctorMedicalRecord/model'; import { useThemeStore } from '@/store/modules/theme'; import { storeToRefs } from 'pinia'; import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; @@ -185,7 +187,7 @@ // 弹窗是否打开 visible: boolean; // 修改回显的数据 - data?: ShopUserCoupon | null; + data?: ClinicDoctorMedicalRecord | null; }>(); const emit = defineEmits<{ @@ -202,30 +204,35 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ id: undefined, - couponId: undefined, userId: undefined, - name: undefined, - description: undefined, - type: undefined, - reducePrice: undefined, - discount: undefined, - minPrice: undefined, - applyRange: undefined, - applyRangeConfig: undefined, - startTime: undefined, - endTime: undefined, - status: undefined, - useTime: undefined, - orderId: undefined, orderNo: undefined, - obtainType: undefined, - obtainSource: undefined, - deleted: undefined, + firstUserId: undefined, + secondUserId: undefined, + thirdUserId: undefined, + firstMoney: undefined, + secondMoney: undefined, + thirdMoney: undefined, + price: undefined, + orderPrice: undefined, + settledPrice: undefined, + degreePrice: undefined, + payPrice: undefined, + rate: undefined, + month: undefined, + isInvalid: undefined, + isSettled: undefined, + settleTime: undefined, + comments: undefined, tenantId: undefined, createTime: undefined, - updateTime: undefined + updateTime: undefined, + clinicDoctorMedicalRecordId: undefined, + clinicDoctorMedicalRecordName: '', + status: 0, + comments: '', + sortNumber: 100 }); /* 更新visible */ @@ -235,11 +242,11 @@ // 表单验证规则 const rules = reactive({ - shopUserCouponName: [ + clinicDoctorMedicalRecordName: [ { required: true, type: 'string', - message: '请填写用户优惠券名称', + message: '请填写医疗记录名称', trigger: 'blur' } ] @@ -273,7 +280,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateShopUserCoupon : addShopUserCoupon; + const saveOrUpdate = isUpdate.value ? updateClinicDoctorMedicalRecord : addClinicDoctorMedicalRecord; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/clinic/clinicDoctorApply/components/search.vue b/output/admin/src/views/clinic/clinicDoctorMedicalRecord/components/search.vue similarity index 100% rename from dict/admin/src/views/clinic/clinicDoctorApply/components/search.vue rename to output/admin/src/views/clinic/clinicDoctorMedicalRecord/components/search.vue diff --git a/output/admin/src/views/clinic/clinicDoctorMedicalRecord/index.vue b/output/admin/src/views/clinic/clinicDoctorMedicalRecord/index.vue new file mode 100644 index 0000000..da75699 --- /dev/null +++ b/output/admin/src/views/clinic/clinicDoctorMedicalRecord/index.vue @@ -0,0 +1,352 @@ + + + + + + + diff --git a/dict/admin/src/views/cms/cmsWebsiteField/components/cmsWebsiteFieldEdit.vue b/output/admin/src/views/clinic/clinicDoctorUser/components/clinicDoctorUserEdit.vue similarity index 54% rename from dict/admin/src/views/cms/cmsWebsiteField/components/cmsWebsiteFieldEdit.vue rename to output/admin/src/views/clinic/clinicDoctorUser/components/clinicDoctorUserEdit.vue index 3d5592c..6b3ca0a 100644 --- a/dict/admin/src/views/cms/cmsWebsiteField/components/cmsWebsiteFieldEdit.vue +++ b/output/admin/src/views/clinic/clinicDoctorUser/components/clinicDoctorUserEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑应用参数' : '添加应用参数'" + :title="isUpdate ? '编辑分销商用户记录表' : '添加分销商用户记录表'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,39 +19,109 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -62,35 +132,7 @@ v-model:value="form.comments" /> - - - - - - - - - - - - - + - + + + + @@ -114,8 +163,8 @@ import { ref, reactive, watch } from 'vue'; import { Form, message } from 'ant-design-vue'; import { assignObject, uuid } from 'ele-admin-pro'; - import { addCmsWebsiteField, updateCmsWebsiteField } from '@/api/cms/cmsWebsiteField'; - import { CmsWebsiteField } from '@/api/cms/cmsWebsiteField/model'; + import { addClinicDoctorUser, updateClinicDoctorUser } from '@/api/clinic/clinicDoctorUser'; + import { ClinicDoctorUser } from '@/api/clinic/clinicDoctorUser/model'; import { useThemeStore } from '@/store/modules/theme'; import { storeToRefs } from 'pinia'; import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; @@ -133,7 +182,7 @@ // 弹窗是否打开 visible: boolean; // 修改回显的数据 - data?: CmsWebsiteField | null; + data?: ClinicDoctorUser | null; }>(); const emit = defineEmits<{ @@ -150,24 +199,31 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ id: undefined, type: undefined, - name: undefined, - categoryId: undefined, - defaultValue: undefined, - modifyRange: undefined, + userId: undefined, + realName: undefined, + mobile: undefined, + payPassword: undefined, + money: undefined, + freezeMoney: undefined, + totalMoney: undefined, + rate: undefined, + price: undefined, + refereeId: undefined, + firstNum: undefined, + secondNum: undefined, + thirdNum: undefined, + qrcode: undefined, comments: undefined, - style: undefined, - value: undefined, - lang: undefined, - merchantId: undefined, sortNumber: undefined, - deleted: undefined, + isDelete: undefined, tenantId: undefined, createTime: undefined, - cmsWebsiteFieldId: undefined, - cmsWebsiteFieldName: '', + updateTime: undefined, + clinicDoctorUserId: undefined, + clinicDoctorUserName: '', status: 0, comments: '', sortNumber: 100 @@ -180,11 +236,11 @@ // 表单验证规则 const rules = reactive({ - cmsWebsiteFieldName: [ + clinicDoctorUserName: [ { required: true, type: 'string', - message: '请填写应用参数名称', + message: '请填写分销商用户记录表名称', trigger: 'blur' } ] @@ -218,7 +274,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateCmsWebsiteField : addCmsWebsiteField; + const saveOrUpdate = isUpdate.value ? updateClinicDoctorUser : addClinicDoctorUser; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsAdRecord/components/search.vue b/output/admin/src/views/clinic/clinicDoctorUser/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsAdRecord/components/search.vue rename to output/admin/src/views/clinic/clinicDoctorUser/components/search.vue diff --git a/dict/admin/src/views/cms/cmsArticleCategory/index.vue b/output/admin/src/views/clinic/clinicDoctorUser/index.vue similarity index 59% rename from dict/admin/src/views/cms/cmsArticleCategory/index.vue rename to output/admin/src/views/clinic/clinicDoctorUser/index.vue index d0318a4..8cecfef 100644 --- a/dict/admin/src/views/cms/cmsArticleCategory/index.vue +++ b/output/admin/src/views/clinic/clinicDoctorUser/index.vue @@ -1,10 +1,9 @@ diff --git a/dict/admin/src/views/shop/shopOrderGoods/components/shopOrderGoodsEdit.vue b/output/admin/src/views/clinic/clinicMedicalHistory/components/clinicMedicalHistoryEdit.vue similarity index 52% rename from dict/admin/src/views/shop/shopOrderGoods/components/shopOrderGoodsEdit.vue rename to output/admin/src/views/clinic/clinicMedicalHistory/components/clinicMedicalHistoryEdit.vue index 95a0e31..dae1b2f 100644 --- a/dict/admin/src/views/shop/shopOrderGoods/components/shopOrderGoodsEdit.vue +++ b/output/admin/src/views/clinic/clinicMedicalHistory/components/clinicMedicalHistoryEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑商品信息' : '添加商品信息'" + :title="isUpdate ? '编辑病例' : '添加病例'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,71 +19,60 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - + - + - + - - - - + - + - + - + @@ -93,81 +82,67 @@ v-model:value="form.price" /> - + - + - + - + - + - + - + - + - + - - - - - - @@ -178,17 +153,10 @@ v-model:value="form.comments" /> - + - - - @@ -200,8 +168,8 @@ import { ref, reactive, watch } from 'vue'; import { Form, message } from 'ant-design-vue'; import { assignObject, uuid } from 'ele-admin-pro'; - import { addShopOrderGoods, updateShopOrderGoods } from '@/api/shop/shopOrderGoods'; - import { ShopOrderGoods } from '@/api/shop/shopOrderGoods/model'; + import { addClinicMedicalHistory, updateClinicMedicalHistory } from '@/api/clinic/clinicMedicalHistory'; + import { ClinicMedicalHistory } from '@/api/clinic/clinicMedicalHistory/model'; import { useThemeStore } from '@/store/modules/theme'; import { storeToRefs } from 'pinia'; import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; @@ -219,7 +187,7 @@ // 弹窗是否打开 visible: boolean; // 修改回显的数据 - data?: ShopOrderGoods | null; + data?: ClinicMedicalHistory | null; }>(); const emit = defineEmits<{ @@ -236,34 +204,35 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ id: undefined, - orderId: undefined, - orderCode: undefined, - merchantId: undefined, - merchantName: undefined, - image: undefined, - goodsId: undefined, - goodsName: undefined, - spec: undefined, - skuId: undefined, - price: undefined, - totalNum: undefined, - payStatus: undefined, - orderStatus: undefined, - isFree: undefined, - version: undefined, - timePeriod: undefined, - dateTime: undefined, - startTime: undefined, - endTime: undefined, - timeFlag: undefined, - expirationTime: undefined, - comments: undefined, userId: undefined, + orderNo: undefined, + firstUserId: undefined, + secondUserId: undefined, + thirdUserId: undefined, + firstMoney: undefined, + secondMoney: undefined, + thirdMoney: undefined, + price: undefined, + orderPrice: undefined, + settledPrice: undefined, + degreePrice: undefined, + payPrice: undefined, + rate: undefined, + month: undefined, + isInvalid: undefined, + isSettled: undefined, + settleTime: undefined, + comments: undefined, tenantId: undefined, + createTime: undefined, updateTime: undefined, - createTime: undefined + clinicMedicalHistoryId: undefined, + clinicMedicalHistoryName: '', + status: 0, + comments: '', + sortNumber: 100 }); /* 更新visible */ @@ -273,11 +242,11 @@ // 表单验证规则 const rules = reactive({ - shopOrderGoodsName: [ + clinicMedicalHistoryName: [ { required: true, type: 'string', - message: '请填写商品信息名称', + message: '请填写病例名称', trigger: 'blur' } ] @@ -311,7 +280,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateShopOrderGoods : addShopOrderGoods; + const saveOrUpdate = isUpdate.value ? updateClinicMedicalHistory : addClinicMedicalHistory; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsArticleCategory/components/search.vue b/output/admin/src/views/clinic/clinicMedicalHistory/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsArticleCategory/components/search.vue rename to output/admin/src/views/clinic/clinicMedicalHistory/components/search.vue diff --git a/output/admin/src/views/clinic/clinicMedicalHistory/index.vue b/output/admin/src/views/clinic/clinicMedicalHistory/index.vue new file mode 100644 index 0000000..9a4fa55 --- /dev/null +++ b/output/admin/src/views/clinic/clinicMedicalHistory/index.vue @@ -0,0 +1,352 @@ + + + + + + + diff --git a/dict/admin/src/views/hjm/hjmCourses/components/hjmCoursesEdit.vue b/output/admin/src/views/clinic/clinicMedicine/components/clinicMedicineEdit.vue similarity index 66% rename from dict/admin/src/views/hjm/hjmCourses/components/hjmCoursesEdit.vue rename to output/admin/src/views/clinic/clinicMedicine/components/clinicMedicineEdit.vue index 6fab582..e3708d9 100644 --- a/dict/admin/src/views/hjm/hjmCourses/components/hjmCoursesEdit.vue +++ b/output/admin/src/views/clinic/clinicMedicine/components/clinicMedicineEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑课程' : '添加课程'" + :title="isUpdate ? '编辑药品库' : '添加药品库'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,54 +19,69 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - + - + - - - - + + + + + + + + + + + + + + + + - - - - - - 显示 - 隐藏 - - - - - (); const emit = defineEmits<{ @@ -139,17 +141,23 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ id: undefined, name: undefined, - type: undefined, - code: undefined, - image: undefined, + pinyin: undefined, + category: undefined, + specification: undefined, + unit: undefined, + content: undefined, + pricePerUnit: undefined, + isActive: undefined, userId: undefined, - deleted: undefined, + comments: undefined, tenantId: undefined, createTime: undefined, updateTime: undefined, + clinicMedicineId: undefined, + clinicMedicineName: '', status: 0, comments: '', sortNumber: 100 @@ -162,11 +170,11 @@ // 表单验证规则 const rules = reactive({ - hjmCoursesName: [ + clinicMedicineName: [ { required: true, type: 'string', - message: '请填写课程名称', + message: '请填写药品库名称', trigger: 'blur' } ] @@ -200,7 +208,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateHjmCourses : addHjmCourses; + const saveOrUpdate = isUpdate.value ? updateClinicMedicine : addClinicMedicine; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsArticleComment/components/search.vue b/output/admin/src/views/clinic/clinicMedicine/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsArticleComment/components/search.vue rename to output/admin/src/views/clinic/clinicMedicine/components/search.vue diff --git a/dict/admin/src/views/shop/shopExpressTemplateDetail/index.vue b/output/admin/src/views/clinic/clinicMedicine/index.vue similarity index 65% rename from dict/admin/src/views/shop/shopExpressTemplateDetail/index.vue rename to output/admin/src/views/clinic/clinicMedicine/index.vue index 66f2ef9..118145c 100644 --- a/dict/admin/src/views/shop/shopExpressTemplateDetail/index.vue +++ b/output/admin/src/views/clinic/clinicMedicine/index.vue @@ -3,7 +3,7 @@ - + diff --git a/output/admin/src/views/clinic/clinicMedicineInout/components/clinicMedicineInoutEdit.vue b/output/admin/src/views/clinic/clinicMedicineInout/components/clinicMedicineInoutEdit.vue new file mode 100644 index 0000000..99ce262 --- /dev/null +++ b/output/admin/src/views/clinic/clinicMedicineInout/components/clinicMedicineInoutEdit.vue @@ -0,0 +1,323 @@ + + + + diff --git a/dict/admin/src/views/cms/cmsArticleContent/components/search.vue b/output/admin/src/views/clinic/clinicMedicineInout/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsArticleContent/components/search.vue rename to output/admin/src/views/clinic/clinicMedicineInout/components/search.vue diff --git a/output/admin/src/views/clinic/clinicMedicineInout/index.vue b/output/admin/src/views/clinic/clinicMedicineInout/index.vue new file mode 100644 index 0000000..0c4d838 --- /dev/null +++ b/output/admin/src/views/clinic/clinicMedicineInout/index.vue @@ -0,0 +1,352 @@ + + + + + + + diff --git a/dict/admin/src/views/shop/shopUserReferee/components/shopUserRefereeEdit.vue b/output/admin/src/views/clinic/clinicMedicineStock/components/clinicMedicineStockEdit.vue similarity index 73% rename from dict/admin/src/views/shop/shopUserReferee/components/shopUserRefereeEdit.vue rename to output/admin/src/views/clinic/clinicMedicineStock/components/clinicMedicineStockEdit.vue index 2ce3894..34be3f9 100644 --- a/dict/admin/src/views/shop/shopUserReferee/components/shopUserRefereeEdit.vue +++ b/output/admin/src/views/clinic/clinicMedicineStock/components/clinicMedicineStockEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑用户推荐关系表' : '添加用户推荐关系表'" + :title="isUpdate ? '编辑药品库存' : '添加药品库存'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,27 +19,41 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - + + + + + + + + + + - - - - - - (); const emit = defineEmits<{ @@ -106,16 +113,22 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ id: undefined, - dealerId: undefined, + medicineId: undefined, + stockQuantity: undefined, + minStockLevel: undefined, + lastUpdated: undefined, userId: undefined, - level: undefined, comments: undefined, - deleted: undefined, tenantId: undefined, createTime: undefined, - updateTime: undefined + updateTime: undefined, + clinicMedicineStockId: undefined, + clinicMedicineStockName: '', + status: 0, + comments: '', + sortNumber: 100 }); /* 更新visible */ @@ -125,11 +138,11 @@ // 表单验证规则 const rules = reactive({ - shopUserRefereeName: [ + clinicMedicineStockName: [ { required: true, type: 'string', - message: '请填写用户推荐关系表名称', + message: '请填写药品库存名称', trigger: 'blur' } ] @@ -163,7 +176,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateShopUserReferee : addShopUserReferee; + const saveOrUpdate = isUpdate.value ? updateClinicMedicineStock : addClinicMedicineStock; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsArticleCount/components/search.vue b/output/admin/src/views/clinic/clinicMedicineStock/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsArticleCount/components/search.vue rename to output/admin/src/views/clinic/clinicMedicineStock/components/search.vue diff --git a/dict/admin/src/views/shop/shopUserReferee/index.vue b/output/admin/src/views/clinic/clinicMedicineStock/index.vue similarity index 69% rename from dict/admin/src/views/shop/shopUserReferee/index.vue rename to output/admin/src/views/clinic/clinicMedicineStock/index.vue index 2087452..64f538c 100644 --- a/dict/admin/src/views/shop/shopUserReferee/index.vue +++ b/output/admin/src/views/clinic/clinicMedicineStock/index.vue @@ -3,7 +3,7 @@ - + diff --git a/dict/admin/src/views/system/order/components/orderEdit.vue b/output/admin/src/views/clinic/clinicOrder/components/clinicOrderEdit.vue similarity index 53% rename from dict/admin/src/views/system/order/components/orderEdit.vue rename to output/admin/src/views/clinic/clinicOrder/components/clinicOrderEdit.vue index 935eb3e..a300bc9 100644 --- a/dict/admin/src/views/system/order/components/orderEdit.vue +++ b/output/admin/src/views/clinic/clinicOrder/components/clinicOrderEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑订单' : '添加订单'" + :title="isUpdate ? '编辑处方订单' : '添加处方订单'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -26,24 +26,38 @@ v-model:value="form.orderNo" /> - + - + + + + + + + - + @@ -54,6 +68,27 @@ v-model:value="form.refundOrder" /> + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -110,6 +243,20 @@ v-model:value="form.money" /> + + + + + + + + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (); const emit = defineEmits<{ @@ -318,36 +577,73 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ orderId: undefined, orderNo: undefined, type: undefined, + title: undefined, + deliveryType: undefined, channel: undefined, transactionId: undefined, refundOrder: undefined, + merchantId: undefined, + merchantName: undefined, + merchantCode: undefined, couponId: undefined, + cardId: undefined, + adminId: undefined, + confirmId: undefined, + icCard: undefined, realName: undefined, - phone: undefined, + addressId: undefined, + address: undefined, + addressLat: undefined, + addressLng: undefined, + buyerRemarks: undefined, + selfTakeMerchantId: undefined, + selfTakeMerchantName: undefined, + sendStartTime: undefined, + sendEndTime: undefined, + expressMerchantId: undefined, + expressMerchantName: undefined, totalPrice: undefined, reducePrice: undefined, payPrice: undefined, price: undefined, money: undefined, + cancelTime: undefined, + cancelReason: undefined, refundMoney: undefined, + coachPrice: undefined, totalNum: undefined, + coachId: undefined, + formId: undefined, + payUserId: undefined, payType: undefined, + wechatPayType: undefined, + friendPayType: undefined, payStatus: undefined, orderStatus: undefined, + deliveryStatus: undefined, + deliveryNote: undefined, + deliveryTime: undefined, + evaluateStatus: undefined, + evaluateTime: undefined, couponType: undefined, couponDesc: undefined, qrcode: undefined, + returnNum: undefined, + returnMoney: undefined, startTime: undefined, isInvoice: undefined, invoiceNo: undefined, + merchantRemarks: undefined, payTime: undefined, refundTime: undefined, refundApplyTime: undefined, expirationTime: undefined, + selfTakeCode: undefined, + hasTakeGift: undefined, checkBill: undefined, isSettled: undefined, version: undefined, @@ -358,8 +654,8 @@ tenantId: undefined, updateTime: undefined, createTime: undefined, - orderId: undefined, - orderName: '', + clinicOrderId: undefined, + clinicOrderName: '', status: 0, comments: '', sortNumber: 100 @@ -372,11 +668,11 @@ // 表单验证规则 const rules = reactive({ - orderName: [ + clinicOrderName: [ { required: true, type: 'string', - message: '请填写订单名称', + message: '请填写处方订单名称', trigger: 'blur' } ] @@ -410,7 +706,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateOrder : addOrder; + const saveOrUpdate = isUpdate.value ? updateClinicOrder : addClinicOrder; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsArticleLike/components/search.vue b/output/admin/src/views/clinic/clinicOrder/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsArticleLike/components/search.vue rename to output/admin/src/views/clinic/clinicOrder/components/search.vue diff --git a/output/admin/src/views/clinic/clinicOrder/index.vue b/output/admin/src/views/clinic/clinicOrder/index.vue new file mode 100644 index 0000000..c7ccb51 --- /dev/null +++ b/output/admin/src/views/clinic/clinicOrder/index.vue @@ -0,0 +1,671 @@ + + + + + + + diff --git a/dict/admin/src/views/dormitory/dormitoryApply/components/dormitoryApplyEdit.vue b/output/admin/src/views/clinic/clinicPatientUser/components/clinicPatientUserEdit.vue similarity index 65% rename from dict/admin/src/views/dormitory/dormitoryApply/components/dormitoryApplyEdit.vue rename to output/admin/src/views/clinic/clinicPatientUser/components/clinicPatientUserEdit.vue index 6ed64aa..9c74fd5 100644 --- a/dict/admin/src/views/dormitory/dormitoryApply/components/dormitoryApplyEdit.vue +++ b/output/admin/src/views/clinic/clinicPatientUser/components/clinicPatientUserEdit.vue @@ -5,7 +5,7 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '审批管理' : '办理入住'" + :title="isUpdate ? '编辑患者' : '添加患者'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,17 +19,17 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - + @@ -47,88 +47,81 @@ v-model:value="form.mobile" /> - + - + - - - - - - - + + + + + + + + + + + + + - + - + - + - + - - - - - - - - - @@ -139,6 +132,22 @@ v-model:value="form.comments" /> + + + + + + (); const emit = defineEmits<{ @@ -190,30 +199,31 @@ const images = ref([]); // 用户信息 - const form = reactive({ + const form = reactive({ id: undefined, type: undefined, userId: undefined, realName: undefined, mobile: undefined, - dealerName: undefined, - dealerCode: undefined, - address: undefined, + payPassword: undefined, money: undefined, + freezeMoney: undefined, + totalMoney: undefined, + rate: undefined, + price: undefined, refereeId: undefined, - applyType: undefined, - applyStatus: undefined, - applyTime: undefined, - auditTime: undefined, - contractTime: undefined, - expirationTime: undefined, - rejectReason: undefined, + firstNum: undefined, + secondNum: undefined, + thirdNum: undefined, + qrcode: undefined, comments: undefined, + sortNumber: undefined, + isDelete: undefined, tenantId: undefined, createTime: undefined, updateTime: undefined, - dormitoryApplyId: undefined, - dormitoryApplyName: '', + clinicPatientUserId: undefined, + clinicPatientUserName: '', status: 0, comments: '', sortNumber: 100 @@ -226,11 +236,11 @@ // 表单验证规则 const rules = reactive({ - dormitoryApplyName: [ + clinicPatientUserName: [ { required: true, type: 'string', - message: '请填写审批管理名称', + message: '请填写患者名称', trigger: 'blur' } ] @@ -264,7 +274,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateDormitoryApply : addDormitoryApply; + const saveOrUpdate = isUpdate.value ? updateClinicPatientUser : addClinicPatientUser; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsForm/components/search.vue b/output/admin/src/views/clinic/clinicPatientUser/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsForm/components/search.vue rename to output/admin/src/views/clinic/clinicPatientUser/components/search.vue diff --git a/output/admin/src/views/clinic/clinicPatientUser/index.vue b/output/admin/src/views/clinic/clinicPatientUser/index.vue new file mode 100644 index 0000000..bc3e57c --- /dev/null +++ b/output/admin/src/views/clinic/clinicPatientUser/index.vue @@ -0,0 +1,346 @@ + + + + + + + diff --git a/dict/admin/src/views/cms/cmsArticleCategory/components/cmsArticleCategoryEdit.vue b/output/admin/src/views/clinic/clinicPrescription/components/clinicPrescriptionEdit.vue similarity index 60% rename from dict/admin/src/views/cms/cmsArticleCategory/components/cmsArticleCategoryEdit.vue rename to output/admin/src/views/clinic/clinicPrescription/components/clinicPrescriptionEdit.vue index b44bb46..c13db67 100644 --- a/dict/admin/src/views/cms/cmsArticleCategory/components/cmsArticleCategoryEdit.vue +++ b/output/admin/src/views/clinic/clinicPrescription/components/clinicPrescriptionEdit.vue @@ -5,7 +5,9 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑文章分类表' : '添加文章分类表'" + :title="isUpdate ? '编辑处方主表 +' : '添加处方主表 +'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,89 +21,110 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 显示 + 隐藏 + + - - - - - - - - - - - - 显示 - 隐藏 - - - - - (); const emit = defineEmits<{ @@ -195,24 +184,29 @@ const images = ref([]); // 用户信息 - const form = reactive({ - categoryId: undefined, - categoryCode: undefined, - title: undefined, - type: undefined, - image: undefined, - parentId: undefined, - path: undefined, - component: undefined, - pageId: undefined, + const form = reactive({ + id: undefined, userId: undefined, - count: undefined, - hide: undefined, - recommend: undefined, - showIndex: undefined, + doctorId: undefined, + orderNo: undefined, + visitRecordId: undefined, + prescriptionType: undefined, + diagnosis: undefined, + treatmentPlan: undefined, + decoctionInstructions: undefined, + orderPrice: undefined, + price: undefined, + payPrice: undefined, + isInvalid: undefined, + isSettled: undefined, + settleTime: undefined, + status: undefined, + comments: undefined, tenantId: undefined, createTime: undefined, updateTime: undefined, + clinicPrescriptionId: undefined, + clinicPrescriptionName: '', status: 0, comments: '', sortNumber: 100 @@ -225,11 +219,12 @@ // 表单验证规则 const rules = reactive({ - cmsArticleCategoryName: [ + clinicPrescriptionName: [ { required: true, type: 'string', - message: '请填写文章分类表名称', + message: '请填写处方主表 +名称', trigger: 'blur' } ] @@ -263,7 +258,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateCmsArticleCategory : addCmsArticleCategory; + const saveOrUpdate = isUpdate.value ? updateClinicPrescription : addClinicPrescription; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsFormRecord/components/search.vue b/output/admin/src/views/clinic/clinicPrescription/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsFormRecord/components/search.vue rename to output/admin/src/views/clinic/clinicPrescription/components/search.vue diff --git a/dict/admin/src/views/shop/shopUserCoupon/index.vue b/output/admin/src/views/clinic/clinicPrescription/index.vue similarity index 61% rename from dict/admin/src/views/shop/shopUserCoupon/index.vue rename to output/admin/src/views/clinic/clinicPrescription/index.vue index 076d577..a96223e 100644 --- a/dict/admin/src/views/shop/shopUserCoupon/index.vue +++ b/output/admin/src/views/clinic/clinicPrescription/index.vue @@ -3,7 +3,7 @@ - + diff --git a/dict/admin/src/views/cms/cmsArticleComment/components/cmsArticleCommentEdit.vue b/output/admin/src/views/clinic/clinicPrescriptionItem/components/clinicPrescriptionItemEdit.vue similarity index 64% rename from dict/admin/src/views/cms/cmsArticleComment/components/cmsArticleCommentEdit.vue rename to output/admin/src/views/clinic/clinicPrescriptionItem/components/clinicPrescriptionItemEdit.vue index 707b64d..e5b2339 100644 --- a/dict/admin/src/views/cms/cmsArticleComment/components/cmsArticleCommentEdit.vue +++ b/output/admin/src/views/clinic/clinicPrescriptionItem/components/clinicPrescriptionItemEdit.vue @@ -5,7 +5,9 @@ :visible="visible" :maskClosable="false" :maxable="maxable" - :title="isUpdate ? '编辑文章评论表' : '添加文章评论表'" + :title="isUpdate ? '编辑处方明细表 +' : '添加处方明细表 +'" :body-style="{ paddingBottom: '28px' }" @update:visible="updateVisible" @ok="save" @@ -19,63 +21,70 @@ styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } " > - + - + - + - + - + - + - + - + - + + + + - - - 显示 - 隐藏 - - - + - + @@ -120,8 +123,8 @@ import { ref, reactive, watch } from 'vue'; import { Form, message } from 'ant-design-vue'; import { assignObject, uuid } from 'ele-admin-pro'; - import { addCmsArticleComment, updateCmsArticleComment } from '@/api/cms/cmsArticleComment'; - import { CmsArticleComment } from '@/api/cms/cmsArticleComment/model'; + import { addClinicPrescriptionItem, updateClinicPrescriptionItem } from '@/api/clinic/clinicPrescriptionItem'; + import { ClinicPrescriptionItem } from '@/api/clinic/clinicPrescriptionItem/model'; import { useThemeStore } from '@/store/modules/theme'; import { storeToRefs } from 'pinia'; import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; @@ -139,7 +142,7 @@ // 弹窗是否打开 visible: boolean; // 修改回显的数据 - data?: CmsArticleComment | null; + data?: ClinicPrescriptionItem | null; }>(); const emit = defineEmits<{ @@ -156,20 +159,25 @@ const images = ref([]); // 用户信息 - const form = reactive({ - commentId: undefined, - articleId: undefined, - score: undefined, - content: undefined, - isPicture: undefined, + const form = reactive({ + id: undefined, + prescriptionId: undefined, + prescriptionNo: undefined, + medicineId: undefined, + dosage: undefined, + usageFrequency: undefined, + days: undefined, + amount: undefined, + unitPrice: undefined, + quantity: undefined, + sortNumber: undefined, + comments: undefined, userId: undefined, - toUserId: undefined, - replyCommentId: undefined, - replyUserId: undefined, - deleted: undefined, tenantId: undefined, - createTime: undefined, updateTime: undefined, + createTime: undefined, + clinicPrescriptionItemId: undefined, + clinicPrescriptionItemName: '', status: 0, comments: '', sortNumber: 100 @@ -182,11 +190,12 @@ // 表单验证规则 const rules = reactive({ - cmsArticleCommentName: [ + clinicPrescriptionItemName: [ { required: true, type: 'string', - message: '请填写文章评论表名称', + message: '请填写处方明细表 +名称', trigger: 'blur' } ] @@ -220,7 +229,7 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateCmsArticleComment : addCmsArticleComment; + const saveOrUpdate = isUpdate.value ? updateClinicPrescriptionItem : addClinicPrescriptionItem; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/dict/admin/src/views/cms/cmsLangLog/components/search.vue b/output/admin/src/views/clinic/clinicPrescriptionItem/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsLangLog/components/search.vue rename to output/admin/src/views/clinic/clinicPrescriptionItem/components/search.vue diff --git a/dict/admin/src/views/shop/shopExpressTemplate/index.vue b/output/admin/src/views/clinic/clinicPrescriptionItem/index.vue similarity index 62% rename from dict/admin/src/views/shop/shopExpressTemplate/index.vue rename to output/admin/src/views/clinic/clinicPrescriptionItem/index.vue index 0314f9e..d056c2a 100644 --- a/dict/admin/src/views/shop/shopExpressTemplate/index.vue +++ b/output/admin/src/views/clinic/clinicPrescriptionItem/index.vue @@ -3,7 +3,7 @@ - + diff --git a/output/admin/src/views/clinic/clinicReport/components/clinicReportEdit.vue b/output/admin/src/views/clinic/clinicReport/components/clinicReportEdit.vue new file mode 100644 index 0000000..3390eab --- /dev/null +++ b/output/admin/src/views/clinic/clinicReport/components/clinicReportEdit.vue @@ -0,0 +1,323 @@ + + + + diff --git a/dict/admin/src/views/cms/cmsStatistics/components/search.vue b/output/admin/src/views/clinic/clinicReport/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsStatistics/components/search.vue rename to output/admin/src/views/clinic/clinicReport/components/search.vue diff --git a/dict/admin/src/views/shop/shopOrderGoods/index.vue b/output/admin/src/views/clinic/clinicReport/index.vue similarity index 58% rename from dict/admin/src/views/shop/shopOrderGoods/index.vue rename to output/admin/src/views/clinic/clinicReport/index.vue index 86452cf..7fc847f 100644 --- a/dict/admin/src/views/shop/shopOrderGoods/index.vue +++ b/output/admin/src/views/clinic/clinicReport/index.vue @@ -1,10 +1,9 @@ diff --git a/output/admin/src/views/clinic/clinicVisitRecord/components/clinicVisitRecordEdit.vue b/output/admin/src/views/clinic/clinicVisitRecord/components/clinicVisitRecordEdit.vue new file mode 100644 index 0000000..407a74d --- /dev/null +++ b/output/admin/src/views/clinic/clinicVisitRecord/components/clinicVisitRecordEdit.vue @@ -0,0 +1,323 @@ + + + + diff --git a/dict/admin/src/views/cms/cmsTemplate/components/search.vue b/output/admin/src/views/clinic/clinicVisitRecord/components/search.vue similarity index 100% rename from dict/admin/src/views/cms/cmsTemplate/components/search.vue rename to output/admin/src/views/clinic/clinicVisitRecord/components/search.vue diff --git a/dict/admin/src/views/shop/shopDealerCapital/index.vue b/output/admin/src/views/clinic/clinicVisitRecord/index.vue similarity index 57% rename from dict/admin/src/views/shop/shopDealerCapital/index.vue rename to output/admin/src/views/clinic/clinicVisitRecord/index.vue index 737b624..172c93b 100644 --- a/dict/admin/src/views/shop/shopDealerCapital/index.vue +++ b/output/admin/src/views/clinic/clinicVisitRecord/index.vue @@ -3,7 +3,7 @@ - + diff --git a/output/taro/src/api/clinic/clinicAppointment/index.ts b/output/taro/src/api/clinic/clinicAppointment/index.ts new file mode 100644 index 0000000..1ade179 --- /dev/null +++ b/output/taro/src/api/clinic/clinicAppointment/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicAppointment, ClinicAppointmentParam } from './model'; + +/** + * 分页查询挂号 + */ +export async function pageClinicAppointment(params: ClinicAppointmentParam) { + const res = await request.get>>( + '/clinic/clinic-appointment/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询挂号列表 + */ +export async function listClinicAppointment(params?: ClinicAppointmentParam) { + const res = await request.get>( + '/clinic/clinic-appointment', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加挂号 + */ +export async function addClinicAppointment(data: ClinicAppointment) { + const res = await request.post>( + '/clinic/clinic-appointment', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改挂号 + */ +export async function updateClinicAppointment(data: ClinicAppointment) { + const res = await request.put>( + '/clinic/clinic-appointment', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除挂号 + */ +export async function removeClinicAppointment(id?: number) { + const res = await request.del>( + '/clinic/clinic-appointment/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除挂号 + */ +export async function removeBatchClinicAppointment(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-appointment/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询挂号 + */ +export async function getClinicAppointment(id: number) { + const res = await request.get>( + '/clinic/clinic-appointment/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicAppointment/model/index.ts b/output/taro/src/api/clinic/clinicAppointment/model/index.ts new file mode 100644 index 0000000..19a2bff --- /dev/null +++ b/output/taro/src/api/clinic/clinicAppointment/model/index.ts @@ -0,0 +1,39 @@ +import type { PageParam } from '@/api/index'; + +/** + * 挂号 + */ +export interface ClinicAppointment { + // 主键ID + id?: number; + // 类型 + type?: number; + // 就诊原因 + reason?: string; + // 挂号时间 + evaluateTime?: string; + // 医生 + doctorId?: number; + // 患者 + userId?: number; + // 备注 + comments?: string; + // 排序号 + sortNumber?: number; + // 是否删除 + isDelete?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 挂号搜索条件 + */ +export interface ClinicAppointmentParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicDoctorApply/index.ts b/output/taro/src/api/clinic/clinicDoctorApply/index.ts new file mode 100644 index 0000000..e52655c --- /dev/null +++ b/output/taro/src/api/clinic/clinicDoctorApply/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicDoctorApply, ClinicDoctorApplyParam } from './model'; + +/** + * 分页查询医生入驻申请 + */ +export async function pageClinicDoctorApply(params: ClinicDoctorApplyParam) { + const res = await request.get>>( + '/clinic/clinic-doctor-apply/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询医生入驻申请列表 + */ +export async function listClinicDoctorApply(params?: ClinicDoctorApplyParam) { + const res = await request.get>( + '/clinic/clinic-doctor-apply', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加医生入驻申请 + */ +export async function addClinicDoctorApply(data: ClinicDoctorApply) { + const res = await request.post>( + '/clinic/clinic-doctor-apply', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改医生入驻申请 + */ +export async function updateClinicDoctorApply(data: ClinicDoctorApply) { + const res = await request.put>( + '/clinic/clinic-doctor-apply', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除医生入驻申请 + */ +export async function removeClinicDoctorApply(id?: number) { + const res = await request.del>( + '/clinic/clinic-doctor-apply/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除医生入驻申请 + */ +export async function removeBatchClinicDoctorApply(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-doctor-apply/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询医生入驻申请 + */ +export async function getClinicDoctorApply(id: number) { + const res = await request.get>( + '/clinic/clinic-doctor-apply/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/dict/admin/src/api/dormitory/dormitoryApply/model/index.ts b/output/taro/src/api/clinic/clinicDoctorApply/model/index.ts similarity index 50% rename from dict/admin/src/api/dormitory/dormitoryApply/model/index.ts rename to output/taro/src/api/clinic/clinicDoctorApply/model/index.ts index 9e65ce0..232f3c4 100644 --- a/dict/admin/src/api/dormitory/dormitoryApply/model/index.ts +++ b/output/taro/src/api/clinic/clinicDoctorApply/model/index.ts @@ -1,23 +1,41 @@ -import type { PageParam } from '@/api'; +import type { PageParam } from '@/api/index'; /** - * 审批管理 + * 医生入驻申请 */ -export interface DormitoryApply { +export interface ClinicDoctorApply { // 主键ID - id?: number; - // 类型 + applyId?: number; + // 类型 0医生 type?: number; // 用户ID userId?: number; // 姓名 realName?: string; + // 性别 1男 2女 + gender?: number; // 手机号 mobile?: string; // 客户名称 dealerName?: string; - // 客户编号 - dealerCode?: string; + // 证件号码 + idCard?: string; + // 生日 + birthDate?: string; + // 区分职称等级(如主治医师、副主任医师) + professionalTitle?: string; + // 工作单位 + workUnit?: string; + // 执业资格核心凭证 + practiceLicense?: string; + // 限定可执业科室或疾病类型 + practiceScope?: string; + // 开始工作时间 + startWorkDate?: string; + // 简历 + resume?: string; + // 使用 JSON 存储多个证件文件路径(如执业证、学历证) + certificationFiles?: string; // 详细地址 address?: string; // 签约价格 @@ -49,9 +67,9 @@ export interface DormitoryApply { } /** - * 审批管理搜索条件 + * 医生入驻申请搜索条件 */ -export interface DormitoryApplyParam extends PageParam { - id?: number; +export interface ClinicDoctorApplyParam extends PageParam { + applyId?: number; keywords?: string; } diff --git a/output/taro/src/api/clinic/clinicDoctorMedicalRecord/index.ts b/output/taro/src/api/clinic/clinicDoctorMedicalRecord/index.ts new file mode 100644 index 0000000..3c8cf98 --- /dev/null +++ b/output/taro/src/api/clinic/clinicDoctorMedicalRecord/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicDoctorMedicalRecord, ClinicDoctorMedicalRecordParam } from './model'; + +/** + * 分页查询医疗记录 + */ +export async function pageClinicDoctorMedicalRecord(params: ClinicDoctorMedicalRecordParam) { + const res = await request.get>>( + '/clinic/clinic-doctor-medical-record/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询医疗记录列表 + */ +export async function listClinicDoctorMedicalRecord(params?: ClinicDoctorMedicalRecordParam) { + const res = await request.get>( + '/clinic/clinic-doctor-medical-record', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加医疗记录 + */ +export async function addClinicDoctorMedicalRecord(data: ClinicDoctorMedicalRecord) { + const res = await request.post>( + '/clinic/clinic-doctor-medical-record', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改医疗记录 + */ +export async function updateClinicDoctorMedicalRecord(data: ClinicDoctorMedicalRecord) { + const res = await request.put>( + '/clinic/clinic-doctor-medical-record', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除医疗记录 + */ +export async function removeClinicDoctorMedicalRecord(id?: number) { + const res = await request.del>( + '/clinic/clinic-doctor-medical-record/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除医疗记录 + */ +export async function removeBatchClinicDoctorMedicalRecord(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-doctor-medical-record/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询医疗记录 + */ +export async function getClinicDoctorMedicalRecord(id: number) { + const res = await request.get>( + '/clinic/clinic-doctor-medical-record/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts b/output/taro/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts new file mode 100644 index 0000000..b7b84e4 --- /dev/null +++ b/output/taro/src/api/clinic/clinicDoctorMedicalRecord/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api/index'; + +/** + * 医疗记录 + */ +export interface ClinicDoctorMedicalRecord { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 医疗记录搜索条件 + */ +export interface ClinicDoctorMedicalRecordParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicDoctorUser/index.ts b/output/taro/src/api/clinic/clinicDoctorUser/index.ts new file mode 100644 index 0000000..8ee3d68 --- /dev/null +++ b/output/taro/src/api/clinic/clinicDoctorUser/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicDoctorUser, ClinicDoctorUserParam } from './model'; + +/** + * 分页查询分销商用户记录表 + */ +export async function pageClinicDoctorUser(params: ClinicDoctorUserParam) { + const res = await request.get>>( + '/clinic/clinic-doctor-user/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询分销商用户记录表列表 + */ +export async function listClinicDoctorUser(params?: ClinicDoctorUserParam) { + const res = await request.get>( + '/clinic/clinic-doctor-user', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加分销商用户记录表 + */ +export async function addClinicDoctorUser(data: ClinicDoctorUser) { + const res = await request.post>( + '/clinic/clinic-doctor-user', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改分销商用户记录表 + */ +export async function updateClinicDoctorUser(data: ClinicDoctorUser) { + const res = await request.put>( + '/clinic/clinic-doctor-user', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除分销商用户记录表 + */ +export async function removeClinicDoctorUser(id?: number) { + const res = await request.del>( + '/clinic/clinic-doctor-user/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除分销商用户记录表 + */ +export async function removeBatchClinicDoctorUser(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-doctor-user/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询分销商用户记录表 + */ +export async function getClinicDoctorUser(id: number) { + const res = await request.get>( + '/clinic/clinic-doctor-user/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicDoctorUser/model/index.ts b/output/taro/src/api/clinic/clinicDoctorUser/model/index.ts new file mode 100644 index 0000000..b7062ec --- /dev/null +++ b/output/taro/src/api/clinic/clinicDoctorUser/model/index.ts @@ -0,0 +1,59 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商用户记录表 + */ +export interface ClinicDoctorUser { + // 主键ID + id?: number; + // 类型 0经销商 1企业 2集团 + type?: number; + // 自增ID + userId?: number; + // 姓名 + realName?: string; + // 手机号 + mobile?: string; + // 支付密码 + payPassword?: string; + // 当前可提现佣金 + money?: string; + // 已冻结佣金 + freezeMoney?: string; + // 累积提现佣金 + totalMoney?: string; + // 收益基数 + rate?: string; + // 单价 + price?: string; + // 推荐人用户ID + refereeId?: number; + // 成员数量(一级) + firstNum?: number; + // 成员数量(二级) + secondNum?: number; + // 成员数量(三级) + thirdNum?: number; + // 专属二维码 + qrcode?: string; + // 备注 + comments?: string; + // 排序号 + sortNumber?: number; + // 是否删除 + isDelete?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商用户记录表搜索条件 + */ +export interface ClinicDoctorUserParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicMedicalHistory/index.ts b/output/taro/src/api/clinic/clinicMedicalHistory/index.ts new file mode 100644 index 0000000..1516e01 --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicalHistory/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicMedicalHistory, ClinicMedicalHistoryParam } from './model'; + +/** + * 分页查询病例 + */ +export async function pageClinicMedicalHistory(params: ClinicMedicalHistoryParam) { + const res = await request.get>>( + '/clinic/clinic-medical-history/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询病例列表 + */ +export async function listClinicMedicalHistory(params?: ClinicMedicalHistoryParam) { + const res = await request.get>( + '/clinic/clinic-medical-history', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加病例 + */ +export async function addClinicMedicalHistory(data: ClinicMedicalHistory) { + const res = await request.post>( + '/clinic/clinic-medical-history', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改病例 + */ +export async function updateClinicMedicalHistory(data: ClinicMedicalHistory) { + const res = await request.put>( + '/clinic/clinic-medical-history', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除病例 + */ +export async function removeClinicMedicalHistory(id?: number) { + const res = await request.del>( + '/clinic/clinic-medical-history/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除病例 + */ +export async function removeBatchClinicMedicalHistory(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-medical-history/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询病例 + */ +export async function getClinicMedicalHistory(id: number) { + const res = await request.get>( + '/clinic/clinic-medical-history/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicMedicalHistory/model/index.ts b/output/taro/src/api/clinic/clinicMedicalHistory/model/index.ts new file mode 100644 index 0000000..c4b63c9 --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicalHistory/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api/index'; + +/** + * 病例 + */ +export interface ClinicMedicalHistory { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 病例搜索条件 + */ +export interface ClinicMedicalHistoryParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicMedicine/index.ts b/output/taro/src/api/clinic/clinicMedicine/index.ts new file mode 100644 index 0000000..1699c95 --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicine/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicMedicine, ClinicMedicineParam } from './model'; + +/** + * 分页查询药品库 + */ +export async function pageClinicMedicine(params: ClinicMedicineParam) { + const res = await request.get>>( + '/clinic/clinic-medicine/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询药品库列表 + */ +export async function listClinicMedicine(params?: ClinicMedicineParam) { + const res = await request.get>( + '/clinic/clinic-medicine', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加药品库 + */ +export async function addClinicMedicine(data: ClinicMedicine) { + const res = await request.post>( + '/clinic/clinic-medicine', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改药品库 + */ +export async function updateClinicMedicine(data: ClinicMedicine) { + const res = await request.put>( + '/clinic/clinic-medicine', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除药品库 + */ +export async function removeClinicMedicine(id?: number) { + const res = await request.del>( + '/clinic/clinic-medicine/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除药品库 + */ +export async function removeBatchClinicMedicine(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-medicine/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询药品库 + */ +export async function getClinicMedicine(id: number) { + const res = await request.get>( + '/clinic/clinic-medicine/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicMedicine/model/index.ts b/output/taro/src/api/clinic/clinicMedicine/model/index.ts new file mode 100644 index 0000000..a9f4541 --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicine/model/index.ts @@ -0,0 +1,43 @@ +import type { PageParam } from '@/api/index'; + +/** + * 药品库 + */ +export interface ClinicMedicine { + // 主键ID + id?: number; + // 药名 + name?: string; + // 拼音 + pinyin?: string; + // 分类(如“清热解毒”、“补气养血”) + category?: string; + // 规格(如“饮片”、“颗粒”) + specification?: string; + // 单位(如“克”、“袋”) + unit?: string; + // 描述 + content?: string; + // 单价 + pricePerUnit?: string; + // 是否活跃 + isActive?: number; + // 买家用户ID + userId?: number; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 药品库搜索条件 + */ +export interface ClinicMedicineParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicMedicineInout/index.ts b/output/taro/src/api/clinic/clinicMedicineInout/index.ts new file mode 100644 index 0000000..3bff6aa --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicineInout/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicMedicineInout, ClinicMedicineInoutParam } from './model'; + +/** + * 分页查询出入库 + */ +export async function pageClinicMedicineInout(params: ClinicMedicineInoutParam) { + const res = await request.get>>( + '/clinic/clinic-medicine-inout/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询出入库列表 + */ +export async function listClinicMedicineInout(params?: ClinicMedicineInoutParam) { + const res = await request.get>( + '/clinic/clinic-medicine-inout', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加出入库 + */ +export async function addClinicMedicineInout(data: ClinicMedicineInout) { + const res = await request.post>( + '/clinic/clinic-medicine-inout', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改出入库 + */ +export async function updateClinicMedicineInout(data: ClinicMedicineInout) { + const res = await request.put>( + '/clinic/clinic-medicine-inout', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除出入库 + */ +export async function removeClinicMedicineInout(id?: number) { + const res = await request.del>( + '/clinic/clinic-medicine-inout/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除出入库 + */ +export async function removeBatchClinicMedicineInout(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-medicine-inout/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询出入库 + */ +export async function getClinicMedicineInout(id: number) { + const res = await request.get>( + '/clinic/clinic-medicine-inout/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicMedicineInout/model/index.ts b/output/taro/src/api/clinic/clinicMedicineInout/model/index.ts new file mode 100644 index 0000000..eb88a7d --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicineInout/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api/index'; + +/** + * 出入库 + */ +export interface ClinicMedicineInout { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 出入库搜索条件 + */ +export interface ClinicMedicineInoutParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicMedicineStock/index.ts b/output/taro/src/api/clinic/clinicMedicineStock/index.ts new file mode 100644 index 0000000..d428845 --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicineStock/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicMedicineStock, ClinicMedicineStockParam } from './model'; + +/** + * 分页查询药品库存 + */ +export async function pageClinicMedicineStock(params: ClinicMedicineStockParam) { + const res = await request.get>>( + '/clinic/clinic-medicine-stock/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询药品库存列表 + */ +export async function listClinicMedicineStock(params?: ClinicMedicineStockParam) { + const res = await request.get>( + '/clinic/clinic-medicine-stock', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加药品库存 + */ +export async function addClinicMedicineStock(data: ClinicMedicineStock) { + const res = await request.post>( + '/clinic/clinic-medicine-stock', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改药品库存 + */ +export async function updateClinicMedicineStock(data: ClinicMedicineStock) { + const res = await request.put>( + '/clinic/clinic-medicine-stock', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除药品库存 + */ +export async function removeClinicMedicineStock(id?: number) { + const res = await request.del>( + '/clinic/clinic-medicine-stock/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除药品库存 + */ +export async function removeBatchClinicMedicineStock(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-medicine-stock/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询药品库存 + */ +export async function getClinicMedicineStock(id: number) { + const res = await request.get>( + '/clinic/clinic-medicine-stock/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicMedicineStock/model/index.ts b/output/taro/src/api/clinic/clinicMedicineStock/model/index.ts new file mode 100644 index 0000000..e813231 --- /dev/null +++ b/output/taro/src/api/clinic/clinicMedicineStock/model/index.ts @@ -0,0 +1,35 @@ +import type { PageParam } from '@/api/index'; + +/** + * 药品库存 + */ +export interface ClinicMedicineStock { + // 主键ID + id?: number; + // 药品 + medicineId?: number; + // 库存数量 + stockQuantity?: number; + // 最小库存预警 + minStockLevel?: number; + // 上次更新时间 + lastUpdated?: string; + // 买家用户ID + userId?: number; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 药品库存搜索条件 + */ +export interface ClinicMedicineStockParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicOrder/index.ts b/output/taro/src/api/clinic/clinicOrder/index.ts new file mode 100644 index 0000000..29f32da --- /dev/null +++ b/output/taro/src/api/clinic/clinicOrder/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicOrder, ClinicOrderParam } from './model'; + +/** + * 分页查询处方订单 + */ +export async function pageClinicOrder(params: ClinicOrderParam) { + const res = await request.get>>( + '/clinic/clinic-order/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询处方订单列表 + */ +export async function listClinicOrder(params?: ClinicOrderParam) { + const res = await request.get>( + '/clinic/clinic-order', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加处方订单 + */ +export async function addClinicOrder(data: ClinicOrder) { + const res = await request.post>( + '/clinic/clinic-order', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改处方订单 + */ +export async function updateClinicOrder(data: ClinicOrder) { + const res = await request.put>( + '/clinic/clinic-order', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除处方订单 + */ +export async function removeClinicOrder(id?: number) { + const res = await request.del>( + '/clinic/clinic-order/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除处方订单 + */ +export async function removeBatchClinicOrder(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-order/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询处方订单 + */ +export async function getClinicOrder(id: number) { + const res = await request.get>( + '/clinic/clinic-order/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicOrder/model/index.ts b/output/taro/src/api/clinic/clinicOrder/model/index.ts new file mode 100644 index 0000000..e23e635 --- /dev/null +++ b/output/taro/src/api/clinic/clinicOrder/model/index.ts @@ -0,0 +1,167 @@ +import type { PageParam } from '@/api/index'; + +/** + * 处方订单 + */ +export interface ClinicOrder { + // 订单号 + orderId?: number; + // 订单编号 + orderNo?: string; + // 订单类型,0商城订单 1预定订单/外卖 2会员卡 + type?: number; + // 订单标题 + title?: string; + // 快递/自提 + deliveryType?: number; + // 下单渠道,0小程序预定 1俱乐部训练场 3活动订场 + channel?: number; + // 微信支付交易号号 + transactionId?: string; + // 微信退款订单号 + refundOrder?: string; + // 商户ID + merchantId?: number; + // 商户名称 + merchantName?: string; + // 商户编号 + merchantCode?: string; + // 使用的优惠券id + couponId?: number; + // 使用的会员卡id + cardId?: string; + // 关联管理员id + adminId?: number; + // 核销管理员id + confirmId?: number; + // IC卡号 + icCard?: string; + // 真实姓名 + realName?: string; + // 关联收货地址 + addressId?: number; + // 收货地址 + address?: string; + // + addressLat?: string; + // + addressLng?: string; + // 买家留言 + buyerRemarks?: string; + // 自提店铺id + selfTakeMerchantId?: number; + // 自提店铺 + selfTakeMerchantName?: string; + // 配送开始时间 + sendStartTime?: string; + // 配送结束时间 + sendEndTime?: string; + // 发货店铺id + expressMerchantId?: number; + // 发货店铺 + expressMerchantName?: string; + // 订单总额 + totalPrice?: string; + // 减少的金额,使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格 + reducePrice?: string; + // 实际付款 + payPrice?: string; + // 用于统计 + price?: string; + // 价钱,用于积分赠送 + money?: string; + // 取消时间 + cancelTime?: string; + // 取消原因 + cancelReason?: string; + // 退款金额 + refundMoney?: string; + // 教练价格 + coachPrice?: string; + // 购买数量 + totalNum?: number; + // 教练id + coachId?: number; + // 商品ID + formId?: number; + // 支付的用户id + payUserId?: number; + // 0余额支付,1微信支付,2支付宝支付,3银联支付,4现金支付,5POS机支付,6免费,7积分支付 + payType?: number; + // 微信支付子类型:JSAPI小程序支付,NATIVE扫码支付 + wechatPayType?: string; + // 0余额支付,1微信支付,2支付宝支付,3银联支付,4现金支付,5POS机支付,6免费,7积分支付 + friendPayType?: number; + // 0未付款,1已付款 + payStatus?: string; + // 0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 + orderStatus?: number; + // 发货状态(10未发货 20已发货 30部分发货) + deliveryStatus?: number; + // 无需发货备注 + deliveryNote?: string; + // 发货时间 + deliveryTime?: string; + // 评价状态(0未评价 1已评价) + evaluateStatus?: number; + // 评价时间 + evaluateTime?: string; + // 优惠类型:0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡,5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡 + couponType?: number; + // 优惠说明 + couponDesc?: string; + // 二维码地址,保存订单号,支付成功后才生成 + qrcode?: string; + // vip月卡年卡、ic月卡年卡回退次数 + returnNum?: number; + // vip充值回退金额 + returnMoney?: string; + // 预约详情开始时间数组 + startTime?: string; + // 是否已开具发票:0未开发票,1已开发票,2不能开具发票 + isInvoice?: string; + // 发票流水号 + invoiceNo?: string; + // 商家留言 + merchantRemarks?: string; + // 支付时间 + payTime?: string; + // 退款时间 + refundTime?: string; + // 申请退款时间 + refundApplyTime?: string; + // 过期时间 + expirationTime?: string; + // 自提码 + selfTakeCode?: string; + // 是否已收到赠品 + hasTakeGift?: string; + // 对账情况:0=未对账;1=已对账;3=已对账,金额对不上;4=未查询到该订单 + checkBill?: number; + // 订单是否已结算(0未结算 1已结算) + isSettled?: number; + // 系统版本号 0当前版本 value=其他版本 + version?: number; + // 用户id + userId?: number; + // 备注 + comments?: string; + // 排序号 + sortNumber?: number; + // 是否删除, 0否, 1是 + deleted?: number; + // 租户id + tenantId?: number; + // 修改时间 + updateTime?: string; + // 创建时间 + createTime?: string; +} + +/** + * 处方订单搜索条件 + */ +export interface ClinicOrderParam extends PageParam { + orderId?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicPatientUser/index.ts b/output/taro/src/api/clinic/clinicPatientUser/index.ts new file mode 100644 index 0000000..358f61e --- /dev/null +++ b/output/taro/src/api/clinic/clinicPatientUser/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicPatientUser, ClinicPatientUserParam } from './model'; + +/** + * 分页查询患者 + */ +export async function pageClinicPatientUser(params: ClinicPatientUserParam) { + const res = await request.get>>( + '/clinic/clinic-patient-user/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询患者列表 + */ +export async function listClinicPatientUser(params?: ClinicPatientUserParam) { + const res = await request.get>( + '/clinic/clinic-patient-user', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加患者 + */ +export async function addClinicPatientUser(data: ClinicPatientUser) { + const res = await request.post>( + '/clinic/clinic-patient-user', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改患者 + */ +export async function updateClinicPatientUser(data: ClinicPatientUser) { + const res = await request.put>( + '/clinic/clinic-patient-user', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除患者 + */ +export async function removeClinicPatientUser(id?: number) { + const res = await request.del>( + '/clinic/clinic-patient-user/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除患者 + */ +export async function removeBatchClinicPatientUser(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-patient-user/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询患者 + */ +export async function getClinicPatientUser(id: number) { + const res = await request.get>( + '/clinic/clinic-patient-user/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicPatientUser/model/index.ts b/output/taro/src/api/clinic/clinicPatientUser/model/index.ts new file mode 100644 index 0000000..76b2d4f --- /dev/null +++ b/output/taro/src/api/clinic/clinicPatientUser/model/index.ts @@ -0,0 +1,59 @@ +import type { PageParam } from '@/api/index'; + +/** + * 患者 + */ +export interface ClinicPatientUser { + // 主键ID + id?: number; + // 类型 0经销商 1企业 2集团 + type?: number; + // 自增ID + userId?: number; + // 姓名 + realName?: string; + // 手机号 + mobile?: string; + // 支付密码 + payPassword?: string; + // 当前可提现佣金 + money?: string; + // 已冻结佣金 + freezeMoney?: string; + // 累积提现佣金 + totalMoney?: string; + // 收益基数 + rate?: string; + // 单价 + price?: string; + // 推荐人用户ID + refereeId?: number; + // 成员数量(一级) + firstNum?: number; + // 成员数量(二级) + secondNum?: number; + // 成员数量(三级) + thirdNum?: number; + // 专属二维码 + qrcode?: string; + // 备注 + comments?: string; + // 排序号 + sortNumber?: number; + // 是否删除 + isDelete?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 患者搜索条件 + */ +export interface ClinicPatientUserParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicPrescription/index.ts b/output/taro/src/api/clinic/clinicPrescription/index.ts new file mode 100644 index 0000000..89dc7c8 --- /dev/null +++ b/output/taro/src/api/clinic/clinicPrescription/index.ts @@ -0,0 +1,108 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicPrescription, ClinicPrescriptionParam } from './model'; + +/** + * 分页查询处方主表 + + */ +export async function pageClinicPrescription(params: ClinicPrescriptionParam) { + const res = await request.get>>( + '/clinic/clinic-prescription/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询处方主表 +列表 + */ +export async function listClinicPrescription(params?: ClinicPrescriptionParam) { + const res = await request.get>( + '/clinic/clinic-prescription', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加处方主表 + + */ +export async function addClinicPrescription(data: ClinicPrescription) { + const res = await request.post>( + '/clinic/clinic-prescription', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改处方主表 + + */ +export async function updateClinicPrescription(data: ClinicPrescription) { + const res = await request.put>( + '/clinic/clinic-prescription', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除处方主表 + + */ +export async function removeClinicPrescription(id?: number) { + const res = await request.del>( + '/clinic/clinic-prescription/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除处方主表 + + */ +export async function removeBatchClinicPrescription(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-prescription/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询处方主表 + + */ +export async function getClinicPrescription(id: number) { + const res = await request.get>( + '/clinic/clinic-prescription/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicPrescription/model/index.ts b/output/taro/src/api/clinic/clinicPrescription/model/index.ts new file mode 100644 index 0000000..44d263f --- /dev/null +++ b/output/taro/src/api/clinic/clinicPrescription/model/index.ts @@ -0,0 +1,57 @@ +import type { PageParam } from '@/api/index'; + +/** + * 处方主表 + + */ +export interface ClinicPrescription { + // 主键ID + id?: number; + // 患者 + userId?: number; + // 医生 + doctorId?: number; + // 订单编号 + orderNo?: string; + // 关联就诊表 + visitRecordId?: number; + // 处方类型 0中药 1西药 + prescriptionType?: number; + // 诊断结果 + diagnosis?: string; + // 治疗方案 + treatmentPlan?: string; + // 煎药说明 + decoctionInstructions?: string; + // 订单总金额 + orderPrice?: string; + // 单价 + price?: string; + // 实付金额 + payPrice?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 状态, 0正常, 1已完成,2已支付,3已取消 + status?: number; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 处方主表 +搜索条件 + */ +export interface ClinicPrescriptionParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicPrescriptionItem/index.ts b/output/taro/src/api/clinic/clinicPrescriptionItem/index.ts new file mode 100644 index 0000000..06230a9 --- /dev/null +++ b/output/taro/src/api/clinic/clinicPrescriptionItem/index.ts @@ -0,0 +1,108 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicPrescriptionItem, ClinicPrescriptionItemParam } from './model'; + +/** + * 分页查询处方明细表 + + */ +export async function pageClinicPrescriptionItem(params: ClinicPrescriptionItemParam) { + const res = await request.get>>( + '/clinic/clinic-prescription-item/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询处方明细表 +列表 + */ +export async function listClinicPrescriptionItem(params?: ClinicPrescriptionItemParam) { + const res = await request.get>( + '/clinic/clinic-prescription-item', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加处方明细表 + + */ +export async function addClinicPrescriptionItem(data: ClinicPrescriptionItem) { + const res = await request.post>( + '/clinic/clinic-prescription-item', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改处方明细表 + + */ +export async function updateClinicPrescriptionItem(data: ClinicPrescriptionItem) { + const res = await request.put>( + '/clinic/clinic-prescription-item', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除处方明细表 + + */ +export async function removeClinicPrescriptionItem(id?: number) { + const res = await request.del>( + '/clinic/clinic-prescription-item/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除处方明细表 + + */ +export async function removeBatchClinicPrescriptionItem(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-prescription-item/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询处方明细表 + + */ +export async function getClinicPrescriptionItem(id: number) { + const res = await request.get>( + '/clinic/clinic-prescription-item/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicPrescriptionItem/model/index.ts b/output/taro/src/api/clinic/clinicPrescriptionItem/model/index.ts new file mode 100644 index 0000000..61a4813 --- /dev/null +++ b/output/taro/src/api/clinic/clinicPrescriptionItem/model/index.ts @@ -0,0 +1,49 @@ +import type { PageParam } from '@/api/index'; + +/** + * 处方明细表 + + */ +export interface ClinicPrescriptionItem { + // 自增ID + id?: number; + // 关联处方 + prescriptionId?: number; + // 订单编号 + prescriptionNo?: string; + // 关联药品 + medicineId?: number; + // 剂量(如“10g”) + dosage?: string; + // 用法频率(如“每日三次”) + usageFrequency?: string; + // 服用天数 + days?: number; + // 购买数量 + amount?: number; + // 单价 + unitPrice?: string; + // 数量 + quantity?: number; + // 排序号 + sortNumber?: number; + // 备注 + comments?: string; + // 用户id + userId?: number; + // 租户id + tenantId?: number; + // 更新时间 + updateTime?: string; + // 创建时间 + createTime?: string; +} + +/** + * 处方明细表 +搜索条件 + */ +export interface ClinicPrescriptionItemParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicReport/index.ts b/output/taro/src/api/clinic/clinicReport/index.ts new file mode 100644 index 0000000..1ba2df7 --- /dev/null +++ b/output/taro/src/api/clinic/clinicReport/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicReport, ClinicReportParam } from './model'; + +/** + * 分页查询报告 + */ +export async function pageClinicReport(params: ClinicReportParam) { + const res = await request.get>>( + '/clinic/clinic-report/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询报告列表 + */ +export async function listClinicReport(params?: ClinicReportParam) { + const res = await request.get>( + '/clinic/clinic-report', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加报告 + */ +export async function addClinicReport(data: ClinicReport) { + const res = await request.post>( + '/clinic/clinic-report', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改报告 + */ +export async function updateClinicReport(data: ClinicReport) { + const res = await request.put>( + '/clinic/clinic-report', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除报告 + */ +export async function removeClinicReport(id?: number) { + const res = await request.del>( + '/clinic/clinic-report/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除报告 + */ +export async function removeBatchClinicReport(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-report/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询报告 + */ +export async function getClinicReport(id: number) { + const res = await request.get>( + '/clinic/clinic-report/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicReport/model/index.ts b/output/taro/src/api/clinic/clinicReport/model/index.ts new file mode 100644 index 0000000..1838530 --- /dev/null +++ b/output/taro/src/api/clinic/clinicReport/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api/index'; + +/** + * 报告 + */ +export interface ClinicReport { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 报告搜索条件 + */ +export interface ClinicReportParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/output/taro/src/api/clinic/clinicVisitRecord/index.ts b/output/taro/src/api/clinic/clinicVisitRecord/index.ts new file mode 100644 index 0000000..20f04ce --- /dev/null +++ b/output/taro/src/api/clinic/clinicVisitRecord/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ClinicVisitRecord, ClinicVisitRecordParam } from './model'; + +/** + * 分页查询病例 + */ +export async function pageClinicVisitRecord(params: ClinicVisitRecordParam) { + const res = await request.get>>( + '/clinic/clinic-visit-record/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询病例列表 + */ +export async function listClinicVisitRecord(params?: ClinicVisitRecordParam) { + const res = await request.get>( + '/clinic/clinic-visit-record', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加病例 + */ +export async function addClinicVisitRecord(data: ClinicVisitRecord) { + const res = await request.post>( + '/clinic/clinic-visit-record', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改病例 + */ +export async function updateClinicVisitRecord(data: ClinicVisitRecord) { + const res = await request.put>( + '/clinic/clinic-visit-record', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除病例 + */ +export async function removeClinicVisitRecord(id?: number) { + const res = await request.del>( + '/clinic/clinic-visit-record/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除病例 + */ +export async function removeBatchClinicVisitRecord(data: (number | undefined)[]) { + const res = await request.del>( + '/clinic/clinic-visit-record/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询病例 + */ +export async function getClinicVisitRecord(id: number) { + const res = await request.get>( + '/clinic/clinic-visit-record/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/output/taro/src/api/clinic/clinicVisitRecord/model/index.ts b/output/taro/src/api/clinic/clinicVisitRecord/model/index.ts new file mode 100644 index 0000000..843e2ec --- /dev/null +++ b/output/taro/src/api/clinic/clinicVisitRecord/model/index.ts @@ -0,0 +1,61 @@ +import type { PageParam } from '@/api/index'; + +/** + * 病例 + */ +export interface ClinicVisitRecord { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单编号 + orderNo?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 单价 + price?: string; + // 订单总金额 + orderPrice?: string; + // 结算金额 + settledPrice?: string; + // 换算成度 + degreePrice?: string; + // 实发金额 + payPrice?: string; + // 税率 + rate?: string; + // 结算月份 + month?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: string; + // 备注 + comments?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 病例搜索条件 + */ +export interface ClinicVisitRecordParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/dict/taro/src/passport/forget.config.ts b/output/taro/src/clinic/clinicAppointment/add.config.ts similarity index 62% rename from dict/taro/src/passport/forget.config.ts rename to output/taro/src/clinic/clinicAppointment/add.config.ts index 1ec8847..969d528 100644 --- a/dict/taro/src/passport/forget.config.ts +++ b/output/taro/src/clinic/clinicAppointment/add.config.ts @@ -1,4 +1,4 @@ export default definePageConfig({ - navigationBarTitleText: '忘记密码', + navigationBarTitleText: '新增挂号', navigationBarTextStyle: 'black' }) diff --git a/output/taro/src/clinic/clinicAppointment/add.tsx b/output/taro/src/clinic/clinicAppointment/add.tsx new file mode 100644 index 0000000..45d6c04 --- /dev/null +++ b/output/taro/src/clinic/clinicAppointment/add.tsx @@ -0,0 +1,98 @@ +import {useEffect, useState, useRef} from "react"; +import {useRouter} from '@tarojs/taro' +import {Button, Loading, CellGroup, Input, TextArea, Form} from '@nutui/nutui-react-taro' +import Taro from '@tarojs/taro' +import {View} from '@tarojs/components' +import {ClinicAppointment} from "@/api/clinic/clinicAppointment/model"; +import {getClinicAppointment, listClinicAppointment, updateClinicAppointment, addClinicAppointment} from "@/api/clinic/clinicAppointment"; + +const AddClinicAppointment = () => { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicAppointment(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicAppointment({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicAppointment(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> +
submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/dict/taro/src/passport/wxLogin.config.ts b/output/taro/src/clinic/clinicAppointment/index.config.ts similarity index 62% rename from dict/taro/src/passport/wxLogin.config.ts rename to output/taro/src/clinic/clinicAppointment/index.config.ts index eea58ef..b704eb1 100644 --- a/dict/taro/src/passport/wxLogin.config.ts +++ b/output/taro/src/clinic/clinicAppointment/index.config.ts @@ -1,4 +1,4 @@ export default definePageConfig({ - navigationBarTitleText: '快捷登录', + navigationBarTitleText: '挂号管理', navigationBarTextStyle: 'black' }) diff --git a/output/taro/src/clinic/clinicAppointment/index.tsx b/output/taro/src/clinic/clinicAppointment/index.tsx new file mode 100644 index 0000000..c15aa62 --- /dev/null +++ b/output/taro/src/clinic/clinicAppointment/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicAppointment} from "@/api/clinic/clinicAppointment/model"; +import {listClinicAppointment, removeClinicAppointment, updateClinicAppointment} from "@/api/clinic/clinicAppointment"; + +const ClinicAppointmentList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicAppointment({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicAppointment(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicDoctorApply(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicDoctorApply({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicDoctorApply(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicDoctorApply/index.config.ts b/output/taro/src/clinic/clinicDoctorApply/index.config.ts new file mode 100644 index 0000000..7341a88 --- /dev/null +++ b/output/taro/src/clinic/clinicDoctorApply/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '医生入驻申请管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicDoctorApply/index.tsx b/output/taro/src/clinic/clinicDoctorApply/index.tsx new file mode 100644 index 0000000..e9ac7ae --- /dev/null +++ b/output/taro/src/clinic/clinicDoctorApply/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicDoctorApply} from "@/api/clinic/clinicDoctorApply/model"; +import {listClinicDoctorApply, removeClinicDoctorApply, updateClinicDoctorApply} from "@/api/clinic/clinicDoctorApply"; + +const ClinicDoctorApplyList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicDoctorApply({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicDoctorApply(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicDoctorMedicalRecord(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicDoctorMedicalRecord({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicDoctorMedicalRecord(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicDoctorMedicalRecord/index.config.ts b/output/taro/src/clinic/clinicDoctorMedicalRecord/index.config.ts new file mode 100644 index 0000000..2c057f3 --- /dev/null +++ b/output/taro/src/clinic/clinicDoctorMedicalRecord/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '医疗记录管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicDoctorMedicalRecord/index.tsx b/output/taro/src/clinic/clinicDoctorMedicalRecord/index.tsx new file mode 100644 index 0000000..adcb623 --- /dev/null +++ b/output/taro/src/clinic/clinicDoctorMedicalRecord/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicDoctorMedicalRecord} from "@/api/clinic/clinicDoctorMedicalRecord/model"; +import {listClinicDoctorMedicalRecord, removeClinicDoctorMedicalRecord, updateClinicDoctorMedicalRecord} from "@/api/clinic/clinicDoctorMedicalRecord"; + +const ClinicDoctorMedicalRecordList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicDoctorMedicalRecord({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicDoctorMedicalRecord(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicDoctorUser(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicDoctorUser({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicDoctorUser(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicDoctorUser/index.config.ts b/output/taro/src/clinic/clinicDoctorUser/index.config.ts new file mode 100644 index 0000000..bc1b1b6 --- /dev/null +++ b/output/taro/src/clinic/clinicDoctorUser/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '分销商用户记录表管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicDoctorUser/index.tsx b/output/taro/src/clinic/clinicDoctorUser/index.tsx new file mode 100644 index 0000000..02f4a52 --- /dev/null +++ b/output/taro/src/clinic/clinicDoctorUser/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicDoctorUser} from "@/api/clinic/clinicDoctorUser/model"; +import {listClinicDoctorUser, removeClinicDoctorUser, updateClinicDoctorUser} from "@/api/clinic/clinicDoctorUser"; + +const ClinicDoctorUserList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicDoctorUser({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicDoctorUser(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicMedicalHistory(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicMedicalHistory({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicMedicalHistory(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/dict/taro/src/passport/setting.config.ts b/output/taro/src/clinic/clinicMedicalHistory/index.config.ts similarity index 62% rename from dict/taro/src/passport/setting.config.ts rename to output/taro/src/clinic/clinicMedicalHistory/index.config.ts index 9bb1ab0..079dc70 100644 --- a/dict/taro/src/passport/setting.config.ts +++ b/output/taro/src/clinic/clinicMedicalHistory/index.config.ts @@ -1,4 +1,4 @@ export default definePageConfig({ - navigationBarTitleText: '服务配置', + navigationBarTitleText: '病例管理', navigationBarTextStyle: 'black' }) diff --git a/output/taro/src/clinic/clinicMedicalHistory/index.tsx b/output/taro/src/clinic/clinicMedicalHistory/index.tsx new file mode 100644 index 0000000..f30ea81 --- /dev/null +++ b/output/taro/src/clinic/clinicMedicalHistory/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicMedicalHistory} from "@/api/clinic/clinicMedicalHistory/model"; +import {listClinicMedicalHistory, removeClinicMedicalHistory, updateClinicMedicalHistory} from "@/api/clinic/clinicMedicalHistory"; + +const ClinicMedicalHistoryList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicMedicalHistory({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicMedicalHistory(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicMedicine(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicMedicine({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicMedicine(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicMedicine/index.config.ts b/output/taro/src/clinic/clinicMedicine/index.config.ts new file mode 100644 index 0000000..092fd56 --- /dev/null +++ b/output/taro/src/clinic/clinicMedicine/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '药品库管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicMedicine/index.tsx b/output/taro/src/clinic/clinicMedicine/index.tsx new file mode 100644 index 0000000..c6a368a --- /dev/null +++ b/output/taro/src/clinic/clinicMedicine/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicMedicine} from "@/api/clinic/clinicMedicine/model"; +import {listClinicMedicine, removeClinicMedicine, updateClinicMedicine} from "@/api/clinic/clinicMedicine"; + +const ClinicMedicineList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicMedicine({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicMedicine(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicMedicineInout(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicMedicineInout({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicMedicineInout(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicMedicineInout/index.config.ts b/output/taro/src/clinic/clinicMedicineInout/index.config.ts new file mode 100644 index 0000000..e51110e --- /dev/null +++ b/output/taro/src/clinic/clinicMedicineInout/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '出入库管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicMedicineInout/index.tsx b/output/taro/src/clinic/clinicMedicineInout/index.tsx new file mode 100644 index 0000000..c28380f --- /dev/null +++ b/output/taro/src/clinic/clinicMedicineInout/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicMedicineInout} from "@/api/clinic/clinicMedicineInout/model"; +import {listClinicMedicineInout, removeClinicMedicineInout, updateClinicMedicineInout} from "@/api/clinic/clinicMedicineInout"; + +const ClinicMedicineInoutList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicMedicineInout({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicMedicineInout(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicMedicineStock(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicMedicineStock({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicMedicineStock(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicMedicineStock/index.config.ts b/output/taro/src/clinic/clinicMedicineStock/index.config.ts new file mode 100644 index 0000000..d1d65f4 --- /dev/null +++ b/output/taro/src/clinic/clinicMedicineStock/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '药品库存管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicMedicineStock/index.tsx b/output/taro/src/clinic/clinicMedicineStock/index.tsx new file mode 100644 index 0000000..dd205c6 --- /dev/null +++ b/output/taro/src/clinic/clinicMedicineStock/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicMedicineStock} from "@/api/clinic/clinicMedicineStock/model"; +import {listClinicMedicineStock, removeClinicMedicineStock, updateClinicMedicineStock} from "@/api/clinic/clinicMedicineStock"; + +const ClinicMedicineStockList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicMedicineStock({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicMedicineStock(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicOrder(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicOrder({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicOrder(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicOrder/index.config.ts b/output/taro/src/clinic/clinicOrder/index.config.ts new file mode 100644 index 0000000..aa9c19c --- /dev/null +++ b/output/taro/src/clinic/clinicOrder/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '处方订单管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicOrder/index.tsx b/output/taro/src/clinic/clinicOrder/index.tsx new file mode 100644 index 0000000..27f35c7 --- /dev/null +++ b/output/taro/src/clinic/clinicOrder/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicOrder} from "@/api/clinic/clinicOrder/model"; +import {listClinicOrder, removeClinicOrder, updateClinicOrder} from "@/api/clinic/clinicOrder"; + +const ClinicOrderList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicOrder({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicOrder(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicPatientUser(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicPatientUser({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicPatientUser(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicPatientUser/index.config.ts b/output/taro/src/clinic/clinicPatientUser/index.config.ts new file mode 100644 index 0000000..4369b55 --- /dev/null +++ b/output/taro/src/clinic/clinicPatientUser/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '患者管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicPatientUser/index.tsx b/output/taro/src/clinic/clinicPatientUser/index.tsx new file mode 100644 index 0000000..26989a9 --- /dev/null +++ b/output/taro/src/clinic/clinicPatientUser/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicPatientUser} from "@/api/clinic/clinicPatientUser/model"; +import {listClinicPatientUser, removeClinicPatientUser, updateClinicPatientUser} from "@/api/clinic/clinicPatientUser"; + +const ClinicPatientUserList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicPatientUser({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicPatientUser(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicPrescription(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicPrescription({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicPrescription(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicPrescription/index.config.ts b/output/taro/src/clinic/clinicPrescription/index.config.ts new file mode 100644 index 0000000..d901939 --- /dev/null +++ b/output/taro/src/clinic/clinicPrescription/index.config.ts @@ -0,0 +1,5 @@ +export default definePageConfig({ + navigationBarTitleText: '处方主表 +管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicPrescription/index.tsx b/output/taro/src/clinic/clinicPrescription/index.tsx new file mode 100644 index 0000000..d4904ad --- /dev/null +++ b/output/taro/src/clinic/clinicPrescription/index.tsx @@ -0,0 +1,65 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicPrescription} from "@/api/clinic/clinicPrescription/model"; +import {listClinicPrescription, removeClinicPrescription, updateClinicPrescription} from "@/api/clinic/clinicPrescription"; + +const ClinicPrescriptionList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicPrescription({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicPrescription(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicPrescriptionItem(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicPrescriptionItem({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicPrescriptionItem(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicPrescriptionItem/index.config.ts b/output/taro/src/clinic/clinicPrescriptionItem/index.config.ts new file mode 100644 index 0000000..90f3f9e --- /dev/null +++ b/output/taro/src/clinic/clinicPrescriptionItem/index.config.ts @@ -0,0 +1,5 @@ +export default definePageConfig({ + navigationBarTitleText: '处方明细表 +管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicPrescriptionItem/index.tsx b/output/taro/src/clinic/clinicPrescriptionItem/index.tsx new file mode 100644 index 0000000..5d8c7c9 --- /dev/null +++ b/output/taro/src/clinic/clinicPrescriptionItem/index.tsx @@ -0,0 +1,65 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicPrescriptionItem} from "@/api/clinic/clinicPrescriptionItem/model"; +import {listClinicPrescriptionItem, removeClinicPrescriptionItem, updateClinicPrescriptionItem} from "@/api/clinic/clinicPrescriptionItem"; + +const ClinicPrescriptionItemList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicPrescriptionItem({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicPrescriptionItem(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicReport(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicReport({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicReport(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicReport/index.config.ts b/output/taro/src/clinic/clinicReport/index.config.ts new file mode 100644 index 0000000..ef096d0 --- /dev/null +++ b/output/taro/src/clinic/clinicReport/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '报告管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicReport/index.tsx b/output/taro/src/clinic/clinicReport/index.tsx new file mode 100644 index 0000000..afbeee8 --- /dev/null +++ b/output/taro/src/clinic/clinicReport/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicReport} from "@/api/clinic/clinicReport/model"; +import {listClinicReport, removeClinicReport, updateClinicReport} from "@/api/clinic/clinicReport"; + +const ClinicReportList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicReport({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicReport(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + { + const {params} = useRouter(); + const [loading, setLoading] = useState(true) + const [FormData, setFormData] = useState({}) + const formRef = useRef(null) + + const reload = async () => { + if (params.id) { + const data = await getClinicVisitRecord(Number(params.id)) + setFormData(data) + } else { + setFormData({}) + } + } + + // 提交表单 + const submitSucceed = async (values: any) => { + try { + if (params.id) { + // 编辑模式 + await updateClinicVisitRecord({ + ...values, + id: Number(params.id) + }) + } else { + // 新增模式 + await addClinicVisitRecord(values) + } + + Taro.showToast({ + title: `操作成功`, + icon: 'success' + }) + + setTimeout(() => { + return Taro.navigateBack() + }, 1000) + } catch (error) { + Taro.showToast({ + title: `操作失败`, + icon: 'error' + }); + } + } + + const submitFailed = (error: any) => { + console.log(error, 'err...') + } + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + if (loading) { + return 加载中 + } + + return ( + <> + submitSucceed(values)} + onFinishFailed={(errors) => submitFailed(errors)} + footer={ +
+ +
+ } + > + + diff --git a/output/taro/src/clinic/clinicVisitRecord/index.config.ts b/output/taro/src/clinic/clinicVisitRecord/index.config.ts new file mode 100644 index 0000000..079dc70 --- /dev/null +++ b/output/taro/src/clinic/clinicVisitRecord/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '病例管理', + navigationBarTextStyle: 'black' +}) diff --git a/output/taro/src/clinic/clinicVisitRecord/index.tsx b/output/taro/src/clinic/clinicVisitRecord/index.tsx new file mode 100644 index 0000000..bff0dee --- /dev/null +++ b/output/taro/src/clinic/clinicVisitRecord/index.tsx @@ -0,0 +1,64 @@ +import {useState} from "react"; +import Taro, {useDidShow} from '@tarojs/taro' +import {Button, Cell, CellGroup, Space, Empty, ConfigProvider, Divider} from '@nutui/nutui-react-taro' +import {Dongdong, ArrowRight, CheckNormal, Checked} from '@nutui/icons-react-taro' +import {View} from '@tarojs/components' +import {ClinicVisitRecord} from "@/api/clinic/clinicVisitRecord/model"; +import {listClinicVisitRecord, removeClinicVisitRecord, updateClinicVisitRecord} from "@/api/clinic/clinicVisitRecord"; + +const ClinicVisitRecordList = () => { + const [list, setList] = useState([]) + + const reload = () => { + listClinicVisitRecord({ + // 添加查询条件 + }) + .then(data => { + setList(data || []) + }) + .catch(() => { + Taro.showToast({ + title: '获取数据失败', + icon: 'error' + }); + }) + } + + + const onDel = async (id?: number) => { + await removeClinicVisitRecord(id) + Taro.showToast({ + title: '删除成功', + icon: 'success' + }); + reload(); + } + + useDidShow(() => { + reload() + }); + + if (list.length == 0) { + return ( + +
+ + + + +
+
+ ) + } + + return ( + <> + {list.map((item, _) => ( + > page(ClinicDoctorUserParam param) { + // 使用关联查询 + return success(clinicDoctorUserService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:list')") + @Operation(summary = "查询全部分销商用户记录表") + @GetMapping() + public ApiResult> list(ClinicDoctorUserParam param) { + // 使用关联查询 + return success(clinicDoctorUserService.listRel(param)); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:list')") + @Operation(summary = "根据id查询分销商用户记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(clinicDoctorUserService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:save')") + @OperationLog + @Operation(summary = "添加分销商用户记录表") + @PostMapping() + public ApiResult save(@RequestBody ClinicDoctorUser clinicDoctorUser) { + // 记录当前登录用户id + // User loginUser = getLoginUser(); + // if (loginUser != null) { + // clinicDoctorUser.setUserId(loginUser.getUserId()); + // } + if (clinicDoctorUserService.save(clinicDoctorUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:update')") + @OperationLog + @Operation(summary = "修改分销商用户记录表") + @PutMapping() + public ApiResult update(@RequestBody ClinicDoctorUser clinicDoctorUser) { + if (clinicDoctorUserService.updateById(clinicDoctorUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:remove')") + @OperationLog + @Operation(summary = "删除分销商用户记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (clinicDoctorUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:save')") + @OperationLog + @Operation(summary = "批量添加分销商用户记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (clinicDoctorUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:update')") + @OperationLog + @Operation(summary = "批量修改分销商用户记录表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(clinicDoctorUserService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicDoctorUser:remove')") + @OperationLog + @Operation(summary = "批量删除分销商用户记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (clinicDoctorUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/clinic/controller/ClinicPatientUserController.java b/src/main/java/com/gxwebsoft/clinic/controller/ClinicPatientUserController.java new file mode 100644 index 0000000..15ba4e9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/controller/ClinicPatientUserController.java @@ -0,0 +1,128 @@ +package com.gxwebsoft.clinic.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.clinic.service.ClinicPatientUserService; +import com.gxwebsoft.clinic.entity.ClinicPatientUser; +import com.gxwebsoft.clinic.param.ClinicPatientUserParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 患者控制器 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Tag(name = "患者管理") +@RestController +@RequestMapping("/api/clinic/clinic-patient-user") +public class ClinicPatientUserController extends BaseController { + @Resource + private ClinicPatientUserService clinicPatientUserService; + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:list')") + @Operation(summary = "分页查询患者") + @GetMapping("/page") + public ApiResult> page(ClinicPatientUserParam param) { + // 使用关联查询 + return success(clinicPatientUserService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:list')") + @Operation(summary = "查询全部患者") + @GetMapping() + public ApiResult> list(ClinicPatientUserParam param) { + // 使用关联查询 + return success(clinicPatientUserService.listRel(param)); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:list')") + @Operation(summary = "根据id查询患者") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(clinicPatientUserService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:save')") + @OperationLog + @Operation(summary = "添加患者") + @PostMapping() + public ApiResult save(@RequestBody ClinicPatientUser clinicPatientUser) { + // 记录当前登录用户id + // User loginUser = getLoginUser(); + // if (loginUser != null) { + // clinicPatientUser.setUserId(loginUser.getUserId()); + // } + if (clinicPatientUserService.save(clinicPatientUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:update')") + @OperationLog + @Operation(summary = "修改患者") + @PutMapping() + public ApiResult update(@RequestBody ClinicPatientUser clinicPatientUser) { + if (clinicPatientUserService.updateById(clinicPatientUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:remove')") + @OperationLog + @Operation(summary = "删除患者") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (clinicPatientUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:save')") + @OperationLog + @Operation(summary = "批量添加患者") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (clinicPatientUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:update')") + @OperationLog + @Operation(summary = "批量修改患者") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(clinicPatientUserService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('clinic:clinicPatientUser:remove')") + @OperationLog + @Operation(summary = "批量删除患者") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (clinicPatientUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/clinic/entity/ClinicAppointment.java b/src/main/java/com/gxwebsoft/clinic/entity/ClinicAppointment.java index e90b38b..33a758e 100644 --- a/src/main/java/com/gxwebsoft/clinic/entity/ClinicAppointment.java +++ b/src/main/java/com/gxwebsoft/clinic/entity/ClinicAppointment.java @@ -13,7 +13,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; * 挂号 * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:03 */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorApply.java b/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorApply.java index 32df405..8d8e173 100644 --- a/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorApply.java +++ b/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorApply.java @@ -15,7 +15,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; * 医生入驻申请 * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorUser.java b/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorUser.java new file mode 100644 index 0000000..617673e --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/entity/ClinicDoctorUser.java @@ -0,0 +1,94 @@ +package com.gxwebsoft.clinic.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 分销商用户记录表 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "ClinicDoctorUser对象", description = "分销商用户记录表") +public class ClinicDoctorUser implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "类型 0经销商 1企业 2集团") + private Integer type; + + @Schema(description = "自增ID") + private Integer userId; + + @Schema(description = "姓名") + private String realName; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "支付密码") + private String payPassword; + + @Schema(description = "当前可提现佣金") + private BigDecimal money; + + @Schema(description = "已冻结佣金") + private BigDecimal freezeMoney; + + @Schema(description = "累积提现佣金") + private BigDecimal totalMoney; + + @Schema(description = "收益基数") + private BigDecimal rate; + + @Schema(description = "单价") + private BigDecimal price; + + @Schema(description = "推荐人用户ID") + private Integer refereeId; + + @Schema(description = "成员数量(一级)") + private Integer firstNum; + + @Schema(description = "成员数量(二级)") + private Integer secondNum; + + @Schema(description = "成员数量(三级)") + private Integer thirdNum; + + @Schema(description = "专属二维码") + private String qrcode; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + private Integer sortNumber; + + @Schema(description = "是否删除") + private Integer isDelete; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/clinic/entity/ClinicPatientUser.java b/src/main/java/com/gxwebsoft/clinic/entity/ClinicPatientUser.java new file mode 100644 index 0000000..3d716ad --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/entity/ClinicPatientUser.java @@ -0,0 +1,94 @@ +package com.gxwebsoft.clinic.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 患者 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "ClinicPatientUser对象", description = "患者") +public class ClinicPatientUser implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "类型 0经销商 1企业 2集团") + private Integer type; + + @Schema(description = "自增ID") + private Integer userId; + + @Schema(description = "姓名") + private String realName; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "支付密码") + private String payPassword; + + @Schema(description = "当前可提现佣金") + private BigDecimal money; + + @Schema(description = "已冻结佣金") + private BigDecimal freezeMoney; + + @Schema(description = "累积提现佣金") + private BigDecimal totalMoney; + + @Schema(description = "收益基数") + private BigDecimal rate; + + @Schema(description = "单价") + private BigDecimal price; + + @Schema(description = "推荐人用户ID") + private Integer refereeId; + + @Schema(description = "成员数量(一级)") + private Integer firstNum; + + @Schema(description = "成员数量(二级)") + private Integer secondNum; + + @Schema(description = "成员数量(三级)") + private Integer thirdNum; + + @Schema(description = "专属二维码") + private String qrcode; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + private Integer sortNumber; + + @Schema(description = "是否删除") + private Integer isDelete; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/clinic/mapper/ClinicAppointmentMapper.java b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicAppointmentMapper.java index cfae040..adcec99 100644 --- a/src/main/java/com/gxwebsoft/clinic/mapper/ClinicAppointmentMapper.java +++ b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicAppointmentMapper.java @@ -12,7 +12,7 @@ import java.util.List; * 挂号Mapper * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:03 */ public interface ClinicAppointmentMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorApplyMapper.java b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorApplyMapper.java index e143b5f..2a08473 100644 --- a/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorApplyMapper.java +++ b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorApplyMapper.java @@ -12,7 +12,7 @@ import java.util.List; * 医生入驻申请Mapper * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ public interface ClinicDoctorApplyMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorUserMapper.java b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorUserMapper.java new file mode 100644 index 0000000..ffda343 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicDoctorUserMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.clinic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.clinic.entity.ClinicDoctorUser; +import com.gxwebsoft.clinic.param.ClinicDoctorUserParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 分销商用户记录表Mapper + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +public interface ClinicDoctorUserMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ClinicDoctorUserParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ClinicDoctorUserParam param); + +} diff --git a/src/main/java/com/gxwebsoft/clinic/mapper/ClinicPatientUserMapper.java b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicPatientUserMapper.java new file mode 100644 index 0000000..bf25805 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/mapper/ClinicPatientUserMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.clinic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.clinic.entity.ClinicPatientUser; +import com.gxwebsoft.clinic.param.ClinicPatientUserParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 患者Mapper + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +public interface ClinicPatientUserMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ClinicPatientUserParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ClinicPatientUserParam param); + +} diff --git a/src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicDoctorUserMapper.xml b/src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicDoctorUserMapper.xml new file mode 100644 index 0000000..9088c39 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicDoctorUserMapper.xml @@ -0,0 +1,90 @@ + + + + + + + SELECT a.* + FROM clinic_doctor_user a + + + AND a.id = #{param.id} + + + AND a.type = #{param.type} + + + AND a.user_id = #{param.userId} + + + AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') + + + AND a.mobile LIKE CONCAT('%', #{param.mobile}, '%') + + + AND a.pay_password LIKE CONCAT('%', #{param.payPassword}, '%') + + + AND a.money = #{param.money} + + + AND a.freeze_money = #{param.freezeMoney} + + + AND a.total_money = #{param.totalMoney} + + + AND a.rate = #{param.rate} + + + AND a.price = #{param.price} + + + AND a.referee_id = #{param.refereeId} + + + AND a.first_num = #{param.firstNum} + + + AND a.second_num = #{param.secondNum} + + + AND a.third_num = #{param.thirdNum} + + + AND a.qrcode LIKE CONCAT('%', #{param.qrcode}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.is_delete = #{param.isDelete} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicPatientUserMapper.xml b/src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicPatientUserMapper.xml new file mode 100644 index 0000000..7c4772e --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/mapper/xml/ClinicPatientUserMapper.xml @@ -0,0 +1,90 @@ + + + + + + + SELECT a.* + FROM clinic_patient_user a + + + AND a.id = #{param.id} + + + AND a.type = #{param.type} + + + AND a.user_id = #{param.userId} + + + AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') + + + AND a.mobile LIKE CONCAT('%', #{param.mobile}, '%') + + + AND a.pay_password LIKE CONCAT('%', #{param.payPassword}, '%') + + + AND a.money = #{param.money} + + + AND a.freeze_money = #{param.freezeMoney} + + + AND a.total_money = #{param.totalMoney} + + + AND a.rate = #{param.rate} + + + AND a.price = #{param.price} + + + AND a.referee_id = #{param.refereeId} + + + AND a.first_num = #{param.firstNum} + + + AND a.second_num = #{param.secondNum} + + + AND a.third_num = #{param.thirdNum} + + + AND a.qrcode LIKE CONCAT('%', #{param.qrcode}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.is_delete = #{param.isDelete} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/clinic/param/ClinicAppointmentParam.java b/src/main/java/com/gxwebsoft/clinic/param/ClinicAppointmentParam.java index e554724..a6e6a17 100644 --- a/src/main/java/com/gxwebsoft/clinic/param/ClinicAppointmentParam.java +++ b/src/main/java/com/gxwebsoft/clinic/param/ClinicAppointmentParam.java @@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode; * 挂号查询参数 * * @author 科技小王子 - * @since 2025-10-18 09:11:16 + * @since 2025-10-19 09:27:03 */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorApplyParam.java b/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorApplyParam.java index 240224d..e9863da 100644 --- a/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorApplyParam.java +++ b/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorApplyParam.java @@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode; * 医生入驻申请查询参数 * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorUserParam.java b/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorUserParam.java new file mode 100644 index 0000000..c1866f2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/param/ClinicDoctorUserParam.java @@ -0,0 +1,96 @@ +package com.gxwebsoft.clinic.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 分销商用户记录表查询参数 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "ClinicDoctorUserParam对象", description = "分销商用户记录表查询参数") +public class ClinicDoctorUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "类型 0经销商 1企业 2集团") + @QueryField(type = QueryType.EQ) + private Integer type; + + @Schema(description = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "姓名") + private String realName; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "支付密码") + private String payPassword; + + @Schema(description = "当前可提现佣金") + @QueryField(type = QueryType.EQ) + private BigDecimal money; + + @Schema(description = "已冻结佣金") + @QueryField(type = QueryType.EQ) + private BigDecimal freezeMoney; + + @Schema(description = "累积提现佣金") + @QueryField(type = QueryType.EQ) + private BigDecimal totalMoney; + + @Schema(description = "收益基数") + @QueryField(type = QueryType.EQ) + private BigDecimal rate; + + @Schema(description = "单价") + @QueryField(type = QueryType.EQ) + private BigDecimal price; + + @Schema(description = "推荐人用户ID") + @QueryField(type = QueryType.EQ) + private Integer refereeId; + + @Schema(description = "成员数量(一级)") + @QueryField(type = QueryType.EQ) + private Integer firstNum; + + @Schema(description = "成员数量(二级)") + @QueryField(type = QueryType.EQ) + private Integer secondNum; + + @Schema(description = "成员数量(三级)") + @QueryField(type = QueryType.EQ) + private Integer thirdNum; + + @Schema(description = "专属二维码") + private String qrcode; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "是否删除") + @QueryField(type = QueryType.EQ) + private Integer isDelete; + +} diff --git a/src/main/java/com/gxwebsoft/clinic/param/ClinicPatientUserParam.java b/src/main/java/com/gxwebsoft/clinic/param/ClinicPatientUserParam.java new file mode 100644 index 0000000..d3d8076 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/param/ClinicPatientUserParam.java @@ -0,0 +1,96 @@ +package com.gxwebsoft.clinic.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 患者查询参数 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "ClinicPatientUserParam对象", description = "患者查询参数") +public class ClinicPatientUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "类型 0经销商 1企业 2集团") + @QueryField(type = QueryType.EQ) + private Integer type; + + @Schema(description = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "姓名") + private String realName; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "支付密码") + private String payPassword; + + @Schema(description = "当前可提现佣金") + @QueryField(type = QueryType.EQ) + private BigDecimal money; + + @Schema(description = "已冻结佣金") + @QueryField(type = QueryType.EQ) + private BigDecimal freezeMoney; + + @Schema(description = "累积提现佣金") + @QueryField(type = QueryType.EQ) + private BigDecimal totalMoney; + + @Schema(description = "收益基数") + @QueryField(type = QueryType.EQ) + private BigDecimal rate; + + @Schema(description = "单价") + @QueryField(type = QueryType.EQ) + private BigDecimal price; + + @Schema(description = "推荐人用户ID") + @QueryField(type = QueryType.EQ) + private Integer refereeId; + + @Schema(description = "成员数量(一级)") + @QueryField(type = QueryType.EQ) + private Integer firstNum; + + @Schema(description = "成员数量(二级)") + @QueryField(type = QueryType.EQ) + private Integer secondNum; + + @Schema(description = "成员数量(三级)") + @QueryField(type = QueryType.EQ) + private Integer thirdNum; + + @Schema(description = "专属二维码") + private String qrcode; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "是否删除") + @QueryField(type = QueryType.EQ) + private Integer isDelete; + +} diff --git a/src/main/java/com/gxwebsoft/clinic/service/ClinicAppointmentService.java b/src/main/java/com/gxwebsoft/clinic/service/ClinicAppointmentService.java index e51dbb5..28c7ac1 100644 --- a/src/main/java/com/gxwebsoft/clinic/service/ClinicAppointmentService.java +++ b/src/main/java/com/gxwebsoft/clinic/service/ClinicAppointmentService.java @@ -11,7 +11,7 @@ import java.util.List; * 挂号Service * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ public interface ClinicAppointmentService extends IService { diff --git a/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorApplyService.java b/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorApplyService.java index bd73368..228ac95 100644 --- a/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorApplyService.java +++ b/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorApplyService.java @@ -11,7 +11,7 @@ import java.util.List; * 医生入驻申请Service * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ public interface ClinicDoctorApplyService extends IService { diff --git a/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorUserService.java b/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorUserService.java new file mode 100644 index 0000000..a417b1d --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/service/ClinicDoctorUserService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.clinic.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.clinic.entity.ClinicDoctorUser; +import com.gxwebsoft.clinic.param.ClinicDoctorUserParam; + +import java.util.List; + +/** + * 分销商用户记录表Service + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +public interface ClinicDoctorUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ClinicDoctorUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ClinicDoctorUserParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return ClinicDoctorUser + */ + ClinicDoctorUser getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/clinic/service/ClinicPatientUserService.java b/src/main/java/com/gxwebsoft/clinic/service/ClinicPatientUserService.java new file mode 100644 index 0000000..df37cc3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/service/ClinicPatientUserService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.clinic.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.clinic.entity.ClinicPatientUser; +import com.gxwebsoft.clinic.param.ClinicPatientUserParam; + +import java.util.List; + +/** + * 患者Service + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +public interface ClinicPatientUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ClinicPatientUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ClinicPatientUserParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return ClinicPatientUser + */ + ClinicPatientUser getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicAppointmentServiceImpl.java b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicAppointmentServiceImpl.java index bec0b59..2af3f86 100644 --- a/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicAppointmentServiceImpl.java +++ b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicAppointmentServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; * 挂号Service实现 * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ @Service public class ClinicAppointmentServiceImpl extends ServiceImpl implements ClinicAppointmentService { diff --git a/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorApplyServiceImpl.java b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorApplyServiceImpl.java index 305c4fd..9ba52d1 100644 --- a/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorApplyServiceImpl.java +++ b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorApplyServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; * 医生入驻申请Service实现 * * @author 科技小王子 - * @since 2025-10-18 09:11:17 + * @since 2025-10-19 09:27:04 */ @Service public class ClinicDoctorApplyServiceImpl extends ServiceImpl implements ClinicDoctorApplyService { diff --git a/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorUserServiceImpl.java b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorUserServiceImpl.java new file mode 100644 index 0000000..9de7f4e --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicDoctorUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.clinic.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.clinic.mapper.ClinicDoctorUserMapper; +import com.gxwebsoft.clinic.service.ClinicDoctorUserService; +import com.gxwebsoft.clinic.entity.ClinicDoctorUser; +import com.gxwebsoft.clinic.param.ClinicDoctorUserParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 分销商用户记录表Service实现 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Service +public class ClinicDoctorUserServiceImpl extends ServiceImpl implements ClinicDoctorUserService { + + @Override + public PageResult pageRel(ClinicDoctorUserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(ClinicDoctorUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public ClinicDoctorUser getByIdRel(Integer id) { + ClinicDoctorUserParam param = new ClinicDoctorUserParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicPatientUserServiceImpl.java b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicPatientUserServiceImpl.java new file mode 100644 index 0000000..ac5068b --- /dev/null +++ b/src/main/java/com/gxwebsoft/clinic/service/impl/ClinicPatientUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.clinic.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.clinic.mapper.ClinicPatientUserMapper; +import com.gxwebsoft.clinic.service.ClinicPatientUserService; +import com.gxwebsoft.clinic.entity.ClinicPatientUser; +import com.gxwebsoft.clinic.param.ClinicPatientUserParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 患者Service实现 + * + * @author 科技小王子 + * @since 2025-10-19 09:27:04 + */ +@Service +public class ClinicPatientUserServiceImpl extends ServiceImpl implements ClinicPatientUserService { + + @Override + public PageResult pageRel(ClinicPatientUserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(ClinicPatientUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public ClinicPatientUser getByIdRel(Integer id) { + ClinicPatientUserParam param = new ClinicPatientUserParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/ClinicGenerator.java b/src/test/java/com/gxwebsoft/generator/ClinicGenerator.java index f7ff568..56b204c 100644 --- a/src/test/java/com/gxwebsoft/generator/ClinicGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ClinicGenerator.java @@ -31,9 +31,9 @@ public class ClinicGenerator { // JAVA输出目录 private static final String OUTPUT_DIR = "/src/main/java"; // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/JAVA/generator/out/admin"; + private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/JAVA/generator/output/admin"; // UniApp文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/JAVA/generator/out/taro"; + private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/JAVA/generator/output/taro"; // Vue文件输出目录 private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 @@ -54,13 +54,13 @@ public class ClinicGenerator { "clinic_appointment", "clinic_doctor_apply", // "clinic_doctor_medical_record", -// "clinic_doctor_user", + "clinic_doctor_user", // "clinic_medical_history", // "clinic_medicine", // "clinic_medicine_inout", // "clinic_medicine_stock", // "clinic_order", -// "clinic_patient_user", + "clinic_patient_user", // "clinic_prescription", // "clinic_prescription_item", // "clinic_report",

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